Message ID | 540D9E47.6020904@redhat.com |
---|---|
State | New |
Headers | show |
Seems fine.
Hi, turning implicit-function-declaration warnings into errors leads to build failure on 31bit s390 due to several usages of macro udiv_qrnnd declared in file stdlib/longlong.h, e.g.: "gcc elf-init.c ... ../sysdeps/wordsize-32/divdi3.c: In function '__udivmoddi4': ../sysdeps/wordsize-32/divdi3.c:82:4: error: implicit declaration of function '__udiv_w_sdiv' [-Werror=implicit-function-declaration] udiv_qrnnd (q0, n0, n1, n0, d0); ^ " Andreas Krebbel had proposed a patch for fixing the warning/error on glibc-list (https://sourceware.org/ml/libc-alpha/2014-01/msg00280.html), which was then forwarded to gcc-list (https://gcc.gnu.org/ml/gcc-patches/2014-02/msg00194.html), but without any response. I will ping on the gcc list. The stdlib/longlong.h file in glibc needs to be updated from gcc source after commit in gcc. Bye Stefan On 09/08/2014 02:17 PM, Florian Weimer wrote: > GCC 4.4, the minimum compiler version, supports this option. Unlike > other warnings, -Wimplicit-function-declaration warnings should be > independent of compiler versions, so this change should not cause > compiler-specific build failures (the usual trouble with -Werror). > > Testing this change revealed one missing #include file in a test case. >
From 842685f0c3f38d81474e809ff0b112099ed11e1c Mon Sep 17 00:00:00 2001 From: Florian Weimer <fweimer@redhat.com> Date: Mon, 8 Sep 2014 13:49:36 +0200 Subject: [PATCH 1/2] Turn on -Werror=implicit-function-declaration GCC 4.4, the minimum compiler version, supports this option. Unlike other warnings, -Wimplicit-function-declaration warnings should be independent of compiler versions, so this change should not cause compiler-specific build failures. --- ChangeLog | 8 ++++++++ Makeconfig | 2 +- stdlib/tst-tls-atexit-lib.c | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) 2014-09-08 Florian Weimer <fweimer@redhat.com> * Makeconfig (gccwarn-c): Turn implicit-function-declaration warnings into errors. * stdlib/tst-tls-atexit-lib.c: Include <stdlib.h>, for the __cxa_thread_atexit_impl prototype. diff --git a/Makeconfig b/Makeconfig index cef0f06..0f8069b 100644 --- a/Makeconfig +++ b/Makeconfig @@ -717,7 +717,7 @@ else +gccwarn := -Wall -Wwrite-strings -Winline endif +gccwarn += -Wundef -+gccwarn-c = -Wstrict-prototypes ++gccwarn-c = -Wstrict-prototypes -Werror=implicit-function-declaration # We do not depend on the address of constants in different files to be # actually different, so allow the compiler to merge them all. diff --git a/stdlib/tst-tls-atexit-lib.c b/stdlib/tst-tls-atexit-lib.c index 964f94b..b67d62f 100644 --- a/stdlib/tst-tls-atexit-lib.c +++ b/stdlib/tst-tls-atexit-lib.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <stdlib.h> + extern void *__dso_handle; typedef struct -- 1.9.3