Hi! On 2021-08-20T15:11:45+0200, I wrote: > On 2021-08-20T11:45:29+0200, Jakub Jelinek via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> --- libgomp/error.c.jj 2021-08-19 12:53:44.693106618 +0200 >> +++ libgomp/error.c 2021-08-19 17:58:55.633203432 +0200 > >> +void >> +GOMP_warning (const char *msg, size_t msglen) >> +{ >> + if (msg && msglen == (size_t) -1) >> + gomp_error ("error directive encountered: %s", msg); >> + else if (msg) >> + { >> + fputs ("\nlibgomp: error directive encountered: ", stderr); >> + fwrite (msg, 1, msglen, stderr); >> + fputc ('\n', stderr); >> + } >> + else >> + gomp_error ("error directive encountered"); >> +} >> + >> +void >> +GOMP_error (const char *msg, size_t msglen) >> +{ >> + if (msg && msglen == (size_t) -1) >> + gomp_fatal ("fatal error: error directive encountered: %s", msg); >> + else if (msg) >> + { >> + fputs ("\nlibgomp: fatal error: error directive encountered: ", >> stderr); >> + fwrite (msg, 1, msglen, stderr); >> + fputc ('\n', stderr); >> + exit (EXIT_FAILURE); >> + } >> + else >> + gomp_fatal ("fatal error: error directive encountered"); >> +} > > At least for nvptx offloading, and at least given the newlib sources I'm > using, the 'fputs'/'fwrite' calls here drag in 'isatty', which isn't > provided by my nvptx newlib at present, so we get, for example: > > [...] > FAIL: libgomp.c/../libgomp.c-c++-common/declare_target-1.c (test for > excess errors) > Excess errors: > unresolved symbol isatty > mkoffload: fatal error: > [...]/build-gcc/./gcc/x86_64-pc-linux-gnu-accel-nvptx-none-gcc returned 1 > exit status > [...] > > ..., and many more. > > Now, there are many ways of addressing this... The most simple one: > conditionalize these 'GOMP_warning'/'GOMP_error' definitions on > '#ifndef LIBGOMP_OFFLOADED_ONLY' is not possible here, because it's > permissible to use the 'error' directive also inside 'target' regions, as > far as I can tell?
Ah, I just re-discovered 'libgomp/config/nvptx/error.c' -- I'll cook something up. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955