[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: -Wlto-type-mismatch warning in error()
From: |
Gavin Smith |
Subject: |
Re: -Wlto-type-mismatch warning in error() |
Date: |
Wed, 7 Dec 2022 21:37:17 +0000 |
On Wed, Dec 07, 2022 at 08:57:45PM +0000, Sam James wrote:
> ../gnulib/lib/error.h:33:13: error: type of ‘error’ does not match original
> declaration [-Werror=lto-type-mismatch]
> 33 | extern void error (int __status, int __errnum, const char *__format,
> ...)
> | ^
> install-info.c:218:1: note: type mismatch in parameter 1
> 218 | error (const char *fmt, ...)
> | ^
> install-info.c:218:1: note: ‘error’ was previously declared here
> install-info.c:218:1: note: code may be misoptimized unless
> ‘-fno-strict-aliasing’ is used
> lto1: some warnings being treated as errors
> lto-wrapper: fatal error: //usr/bin/x86_64-pc-linux-gnu-gcc returned 1 exit
> status
> compilation terminated.
> /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld:
> error: lto-wrapper failed
> collect2: error: ld returned 1 exit status
> make[3]: *** [Makefile:1514: ginstall-info] Error 1
> ```
>
> This is with GCC 12.2.1 20221203.
>
> We've also seen this in GNU make, so not sure if it's a
> gnulib problem or not, as it may be in lib/error.h (hence CCing bug-gnulib):
> - https://bugs.gentoo.org/863713 (texinfo)
> - https://bugs.gentoo.org/863824 (make)
I expect it is not a gnulib problem. install-info/install-info.c declares
a function called "error" which appears to clash with a function from glibc.
The function called "error" in install-info is correctly used when
e.g. "install-info one two three" is run, printing
install-info: excess command line argument `three'
It may depend on the configuration process and what parts of gnulib are
being used. The "error" module is brought in by "xalloc" (which we
ask for explicitly).
>From the Gentoo bug report
> -Werror=lto-type-mismatch:
> User to find possible runtime issues in packages. It likely means the package
> is unsafe to build & use with LTO.
> For projects using the same identifier but with different types across
> different files, they must be fixed to be consistent across the codebase.
The simplest way to fix this problem would probably be to rename the "error"
function in install-info.c. Perhaps this issue has never come up before
because people have not used the LTO options for building.
- -Wlto-type-mismatch warning in error(), Sam James, 2022/12/07
- Re: -Wlto-type-mismatch warning in error(),
Gavin Smith <=
- Re: -Wlto-type-mismatch warning in error(), Bruno Haible, 2022/12/07
- Re: -Wlto-type-mismatch warning in error(), Eli Zaretskii, 2022/12/08
- Re: -Wlto-type-mismatch warning in error(), Arsen Arsenović, 2022/12/08
- Re: -Wlto-type-mismatch warning in error(), Eli Zaretskii, 2022/12/08
- Re: namespacing issues with Gnulib, Bruno Haible, 2022/12/08
- Re: namespacing issues with Gnulib, Eli Zaretskii, 2022/12/08
- Re: namespacing issues with Gnulib, Arsen Arsenović, 2022/12/08
- Re: namespacing issues with Gnulib, Paul Eggert, 2022/12/08
- Re: -Wlto-type-mismatch warning in error(), Arsen Arsenović, 2022/12/08
- Re: -Wlto-type-mismatch warning in error(), Gavin Smith, 2022/12/09