https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94139
Bug ID: 94139 Summary: GCC9.2.0 build GCC8.2.0 break Product: gcc Version: 9.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: kangshan0910 at hotmail dot com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Gcc8.2.0 will fail to be built after glibc is updated from 2.30 to 2.31. Here is the reproduce steps: 1. Download gcc-8.2.0 source code from ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz or ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz or https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz 2. Unzip the package #cd gcc-8.2.0 #./contrib/download_prerequisites #./configure --disable-multilib --enable-checking=release #make defconfig #make clean #make -j4 After a while, the following error will occur. /home/pnp/.phoronix-test-suite/installed-tests/pts/build-gcc-1.1.2/gcc-8.2.0/host-x86_64-pc-linux-gnu/gcc/xgcc -shared-libgcc -B/home/pnp/.phoronix-test-suite/installed-tests/pts/build-gcc-1.1.2/gcc-8.2.0/host-x86_64-pc-linux-gnu/gcc -nostdinc++ -L/home/pnp/.phoronix-test-suite/installed-tests/pts/build-gcc-1.1.2/gcc-8.2.0/x86_64-pc-linux-gnu/libstdc++-v3/src -L/home/pnp/.phoronix-test-suite/installed-tests/pts/build-gcc-1.1.2/gcc-8.2.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs -L/home/pnp/.phoronix-test-suite/installed-tests/pts/build-gcc-1.1.2/gcc-8.2.0/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=1 -DHAVE_TIRPC_RPC_XDR_H=1 -I. -I../../.././libsanitizer/sanitizer_common -I.. -I ../../.././libsanitizer/include -isystem ../../.././libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/x86_64-pc-linux-gnu -I../../.././libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11 -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I ../../.././libsanitizer/../libbacktrace -I ../libbacktrace -I ../../.././libsanitizer/../include -include ../../.././libsanitizer/libbacktrace/backtrace-rename.h -O2 -g -O3 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -m64 -fasynchronous-unwind-tables -Wp,-D_REENTRANT -ftree-loop-distribute-patterns -Wl,-z -Wl,now -Wl,-z -Wl,relro -fno-semantic-interposition -ffat-lto-objects -fno-trapping-math -Wl,-sort-common -Wl,--enable-new-dtags -mtune=skylake -Wa,-mbranches-within-32B-boundaries -fvisibility-inlines-hidden -Wl,--enable-new-dtags -D_GNU_SOURCE -MT sanitizer_platform_limits_posix.lo -MD -MP -MF .deps/sanitizer_platform_limits_posix.Tpo -c ../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -fPIC -DPIC -o .libs/sanitizer_platform_limits_posix.o In file included from ../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:193: ../../.././libsanitizer/sanitizer_common/sanitizer_internal_defs.h:317:72: error: size of array ‘assertion_failed__1152’ is negative typedef char IMPL_PASTE(assertion_failed_##_, line)[2*(int)(pred)-1] ^ ../../.././libsanitizer/sanitizer_common/sanitizer_internal_defs.h:311:30: note: in expansion of macro ‘IMPL_COMPILER_ASSERT’ #define COMPILER_CHECK(pred) IMPL_COMPILER_ASSERT(pred, __LINE__) ^~~~~~~~~~~~~~~~~~~~ ../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h:1475:3: note: in expansion of macro ‘COMPILER_CHECK’ COMPILER_CHECK(sizeof(((__sanitizer_##CLASS *) NULL)->MEMBER) == \ ^~~~~~~~~~~~~~ ../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:1152:1: note: in expansion of macro ‘CHECK_SIZE_AND_OFFSET’ CHECK_SIZE_AND_OFFSET(ipc_perm, mode); ^~~~~~~~~~~~~~~~~~~~~ My debug environment is Clear Linux 32530, its default glibc is 2.31.