From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mxd2.seznam.cz (mxd2.seznam.cz [IPv6:2a02:598:2::210]) by sourceware.org (Postfix) with ESMTPS id 75A463858C27 for ; Sat, 7 May 2022 15:03:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 75A463858C27 Received: from email.seznam.cz by email-smtpc16a.ng.seznam.cz (email-smtpc16a.ng.seznam.cz [10.23.18.16]) id 4d7614085dfeae344d7c3949; Sat, 07 May 2022 17:03:05 +0200 (CEST) Received: from tlapnet-1-56.cust.tlapnet.cz (tlapnet-1-56.cust.tlapnet.cz [185.19.1.56]) by email.seznam.cz (szn-ebox-5.0.107) with HTTP; Sat, 07 May 2022 17:02:57 +0200 (CEST) From: "Zdenek Sojka" To: Subject: building --with-build-config=bootstrap-ubsan results in link failure Date: Sat, 07 May 2022 17:02:57 +0200 (CEST) Message-Id: Mime-Version: 1.0 (szn-mime-2.1.20) X-Mailer: szn-ebox-5.0.107 X-szn-frgn: X-szn-frgc: <0> X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2022 15:03:13 -0000 Hello, as suggested at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105368#c5 ,= I am trying to build gcc (trunk) with --with-build-config=3Dbootstrap-ubsan = , but the build fails to link in stage2 : ... make[5]: Entering directory '/repo/build-gcc-trunk-amd64/isl' /bin/sh ./libtool=C2=A0 --tag=3DCXX=C2=A0=C2=A0 --mode=3Dlink /repo/build-= gcc-trunk-amd64/./ prev-gcc/xg++ -B/repo/build-gcc-trunk-amd64/./prev-gcc/ -B/repo/gcc-trunk/= / binary-trunk-r13-166-20220507001626-gea3fbfda608-checking-release-bootstra= p- ubsan-amd64/x86_64-pc-linux-gnu/bin/ -nostdinc++ -B/repo/build-gcc-trunk-a= md 64/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs -B/repo/build-gcc-trunk= - amd64/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs=C2=A0 -I/repo/= build- gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-= linux-gnu=C2=A0 -I/repo/build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/lib= stdc++- v3/include=C2=A0 -I/repo/gcc-trunk/libstdc++-v3/libsupc++ -L/repo/build-gc= c-trunk -amd64/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs -L/repo/build-gcc-= trunk-amd64/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs=C2=A0 -g= -O2 - fno-checking -fsanitize=3Dundefined -DUBSAN_BOOTSTRAP=C2=A0 -static-libstd= c++ - static-libgcc -fsanitize=3Dundefined -static-libubsan -DUBSAN_BOOTSTRAP -B= / repo/build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libsanitizer/ -B/repo/= build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libsanitizer/ubsan/ -B/repo= / build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libsanitizer/ubsan/.libs= =C2=A0 -o isl_test_cpp isl_test_cpp-isl_test_cpp.o libisl.la /repo/build-gcc-trunk-a= md 64/./gmp/libgmp.la libtool: link: /repo/build-gcc-trunk-amd64/./prev-gcc/xg++ -B/repo/build-g= cc -trunk-amd64/./prev-gcc/ -B/repo/gcc-trunk//binary-trunk-r13-166- 20220507001626-gea3fbfda608-checking-release-bootstrap-ubsan-amd64/x86_64-= pc -linux-gnu/bin/ -nostdinc++ -B/repo/build-gcc-trunk-amd64/prev-x86_64-pc-= linux-gnu/libstdc++-v3/src/.libs -B/repo/build-gcc-trunk-amd64/prev-x86_64= - pc-linux-gnu/libstdc++-v3/libsupc++/.libs -I/repo/build-gcc-trunk-amd64/pr= ev -x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu -I/repo/buil= d- gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libstdc++-v3/include -I/repo/gcc-= trunk/libstdc++-v3/libsupc++ -g -O2 -fno-checking -fsanitize=3Dundefined -= DUBSAN_BOOTSTRAP -static-libstdc++ -static-libgcc -fsanitize=3Dundefined -= static-libubsan -DUBSAN_BOOTSTRAP -B/repo/build-gcc-trunk-amd64/prev-x86_6= 4- pc-linux-gnu/libsanitizer/ -B/repo/build-gcc-trunk-amd64/prev-x86_64-pc-= linux-gnu/libsanitizer/ubsan/ -B/repo/build-gcc-trunk-amd64/prev-x86_64-pc= - linux-gnu/libsanitizer/ubsan/.libs -o isl_test_cpp isl_test_cpp-isl_test_= cpp.o=C2=A0 -L/repo/build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libstdc= ++-v3/ src/.libs -L/repo/build-gcc-trunk-amd64/prev-x86_64-pc-linux-gnu/libstdc++= -v 3/libsupc++/.libs ./.libs/libisl.a /repo/build-gcc-trunk-amd64/./gmp/.libs= / libgmp.a /usr/bin/x86_64-pc-linux-gnu-ld: /repo/build-gcc-trunk-amd64/prev-x86_64-p= c- linux-gnu/libsanitizer/ubsan/.libs/libubsan.a(ubsan_type_hash_itanium.o): = in function `findBaseAtOffset(__cxxabiv1::__class_type_info const*, long)':= /repo/gcc-trunk/libsanitizer/ubsan/ubsan_type_hash_itanium.cpp:162: undefined reference to `__dynamic_cast' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/gcc-trunk/libsanitizer/ubsan/ubsan_= type_hash_itanium.cpp:166: undefined reference to `typeinfo for __cxxabiv1= :: __vmi_class_type_info' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/gcc-trunk/libsanitizer/ubsan/ubsan_= type_hash_itanium.cpp:166: undefined reference to `__dynamic_cast' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/build-gcc-trunk-amd64/prev-x86_64-p= c- linux-gnu/libsanitizer/ubsan/.libs/libubsan.a(ubsan_type_hash_itanium.o): = in function `isDerivedFromAtOffset(__cxxabiv1::__class_type_info const*, __= cxxabiv1::__class_type_info const*, long)': /repo/gcc-trunk/libsanitizer/ubsan/ubsan_type_hash_itanium.cpp:125: undefined reference to `__dynamic_cast' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/gcc-trunk/libsanitizer/ubsan/ubsan_= type_hash_itanium.cpp:129: undefined reference to `typeinfo for __cxxabiv1= :: __vmi_class_type_info' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/gcc-trunk/libsanitizer/ubsan/ubsan_= type_hash_itanium.cpp:129: undefined reference to `__dynamic_cast' /usr/bin/x86_64-pc-linux-gnu-ld: /repo/build-gcc-trunk-amd64/prev-x86_64-p= c- linux-gnu/libsanitizer/ubsan/.libs/libubsan.a(ubsan_type_hash_itanium.o): = in function `__ubsan::checkDynamicType(void*, void*, unsigned long)': /repo/gcc-trunk/libsanitizer/ubsan/ubsan_type_hash_itanium.cpp:233: undefined reference to `__dynamic_cast' collect2: error: ld returned 1 exit status I am configuring as: $ /repo/build-gcc-trunk-amd64/./prev-gcc/xgcc -v Using built-in specs. COLLECT_GCC=3D/repo/build-gcc-trunk-amd64/./prev-gcc/xgcc Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=3Dc,c++ --= enable-valgrind-annotations --disable-nls --enable-checking=3Drelease --wi= th- build-config=3Dbootstrap-ubsan --with-cloog --with-ppl --with-isl --build= =3Dx86_ 64-pc-linux-gnu --host=3Dx86_64-pc-linux-gnu --target=3Dx86_64-pc-linux-gn= u -- with-ld=3D/usr/bin/x86_64-pc-linux-gnu-ld --with-as=3D/usr/bin/x86_64-pc-l= inux- gnu-as --disable-libstdcxx-pch --prefix=3D/repo/gcc-trunk//binary-trunk-r1= 3- 166-20220507001626-gea3fbfda608-checking-release-bootstrap-ubsan-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 13.0.0 20220507 (experimental) (GCC) The libraries were downloaded by: $ contrib/download_prerequisites gmp-6.2.1.tar.bz2: OK mpfr-4.1.0.tar.bz2: OK mpc-1.2.1.tar.gz: OK isl-0.24.tar.bz2: OK All prerequisites downloaded successfully. Is there anything obvious I am doing wrong? Thanks in advance, Zdenek