Turn implict-function-declaration warnings into errors
Commit Message
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.
Comments
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.
@@ -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.
@@ -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