Re: Missing <stdlib.h> include in lib/autoconf/c.m4
Sam James <[email protected]>
| Newsgroups | gmane.comp.sysutils.autoconf.bugs |
|---|---|
| Message-ID | <[email protected]> |
> On 5 Nov 2022, at 05:07, Sam James <[email protected]> wrote: > > Hello, > > When working on Clang 16 (and presumably GCC 14) porting [0], I noticed the following > when building GNU grep 3.8: > ``` > configure:6215: checking for clang-16 option to enable C11 features > configure:6230: clang-16 -c -g -O2 conftest.c >&5 > conftest.c:26:14: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] > static char *e (p, i) > ^ > conftest.c:246:3: error: call to undeclared library function 'free' with type 'void (void *)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > free (ia); > ^ > conftest.c:246:3: note: include the header <stdlib.h> or explicitly provide a declaration for 'free' > 1 warning and 1 error generated. > [...] > ``` I would send a patch for the original issue but I'm wondering how to handle freestanding (see big comment above _AC_C_C89_TEST_GLOBALS). We need another one (<assert.h>) I think for _Static_assert in _AC_C_C11_TEST_GLOBALS too, up until C23? > > Tracing it through, it looks like there's a missing <stdlib.h> include for free() in autoconf's lib/autoconf/c.m4 (_AC_C_C99_TEST_GLOBALS). > > [0] https://lwn.net/Articles/913505/ > [1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213 > > Best, > sam
signature.asc
(application/pgp-signature, 358 B)
-----BEGIN PGP SIGNATURE----- iNUEARYKAH0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCY2blj18UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MAAKCRBzhAn1IN+R kBPJAP9fCQS96ohb1pRKH1+uorVlhQ0ZV27b6lg4R0aAL/pf7QD/dAiP+QrmhbiL 7C2LSoTdbdkvQDgUOM8Ouu3Da6ZyJgo= =f4EA -----END PGP SIGNATURE-----