[PATCH] s390x: Require GCC 7.1 or later to build glibc.

Adhemerval Zanella adhemerval.zanella@linaro.org
Thu Dec 17 17:35:27 GMT 2020



On 15/12/2020 11:18, Stefan Liebler via Libc-alpha wrote:
> GCC 6.5 fails to correctly build ldconfig with recent ld.so.cache
> commits, e.g.:
> 785969a047ad2f23f758901c6816422573544453
> elf: Implement a string table for ldconfig, with tail merging
> 
> If glibc is build with gcc 6.5.0:
> __builtin_add_overflow is used in
> <glibc>/elf/stringtable.c:stringtable_finalize()
> which leads to ldconfig failing with "String table is too large".
> This is also recognizable in following tests:
> FAIL: elf/tst-glibc-hwcaps-cache
> FAIL: elf/tst-glibc-hwcaps-prepend-cache
> FAIL: elf/tst-ldconfig-X
> FAIL: elf/tst-ldconfig-bad-aux-cache
> FAIL: elf/tst-ldconfig-ld_so_conf-update
> FAIL: elf/tst-stringtable
> 
> See gcc "Bug 98269 - gcc 6.5.0 __builtin_add_overflow() with small
> uint32_t values incorrectly detects overflow"
> (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269)

I don't have a strong preference, but one option would be to add a
workaround on include/intprops.h and use INT_ADD_OVERFLOW instead
(it should use __builtins where appropriated). 

In any case, it would be good to alert gnulib developers about this
potential issue.

>From the bug report, it seems that only s390 is affected, right?


More information about the Libc-alpha mailing list