https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109289

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #8 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to myself from comment #2)
>     [...]/source-gcc/libgcc/emutls.c: In function ‘__emutls_get_address’:
>     [...]/source-gcc/libgcc/emutls.c:172:13: error: implicit declaration of
> function ‘calloc’ [-Wimplicit-function-declaration]
>       172 |       arr = calloc (size + 1, sizeof (void *));
>           |             ^~~~~~
>     [...]/source-gcc/libgcc/emutls.c:32:1: note: include ‘<stdlib.h>’ or
> provide a declaration of ‘calloc’
>        31 | #include "gthr.h"
>       +++ |+#include <stdlib.h>
>        32 |
>     [...]/source-gcc/libgcc/emutls.c:172:13: warning: incompatible implicit
> declaration of built-in function ‘calloc’ [-Wbuiltin-declaration-mismatch]
>       172 |       arr = calloc (size + 1, sizeof (void *));
>           |             ^~~~~~
>     [...]/source-gcc/libgcc/emutls.c:172:13: note: include ‘<stdlib.h>’ or
> provide a declaration of ‘calloc’
>     [...]/source-gcc/libgcc/emutls.c:184:13: error: implicit declaration of
> function ‘realloc’ [-Wimplicit-function-declaration]
>       184 |       arr = realloc (arr, (size + 1) * sizeof (void *));
>           |             ^~~~~~~
>     [...]/source-gcc/libgcc/emutls.c:184:13: note: include ‘<stdlib.h>’ or
> provide a declaration of ‘realloc’
>     [...]/source-gcc/libgcc/emutls.c:184:13: warning: incompatible implicit
> declaration of built-in function ‘realloc’ [-Wbuiltin-declaration-mismatch]
>     [...]/source-gcc/libgcc/emutls.c:184:13: note: include ‘<stdlib.h>’ or
> provide a declaration of ‘realloc’

> GCC's suggestion to "include ‘<stdlib.h>’" needs to be carefully reviewed,
> in case this is meant to be buildable in an environment without C library
> headers?

(In reply to Florian Weimer from comment #3)
> Thomas, the safe thing to do would be to use __builtin_calloc and
> __builtin_realloc in those spots because it avoids a dependency on an
> external header that might not exist at this point.

That part got resolved differently, in commit
r14-6207-g6e84dafcc72d1cd6d028b42f1801e092a91d3214 "tsystem.h: Declare
calloc/realloc #ifdef inhibit_libc".

Reply via email to