Bug 2073643 - gcc: internal compiler error: Segmentation fault
Summary: gcc: internal compiler error: Segmentation fault
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2030595
TreeView+ depends on / blocked
 
Reported: 2022-04-09 05:37 UTC by Yunying Sun
Modified: 2022-04-18 02:27 UTC (History)
11 users (show)

Fixed In Version: gcc-12.0.1-0.16.fc37
Clone Of:
Environment:
Last Closed: 2022-04-16 12:46:36 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
preprocessed source (gzipped) (243.99 KB, application/gzip)
2022-04-11 13:45 UTC, Mamoru TASAKA
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 105223 0 P1 RESOLVED [12 Regression] filter_memfn_lookup internal compiler error 2022-04-12 07:21:46 UTC

Description Yunying Sun 2022-04-09 05:37:18 UTC
Description of problem:

Compiling for sgx-aesm-service package review always fails with:

gcc  -I. -Iinclude -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -include/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/dcap_source/QuoteVerification/sgxssl/Linux/../openssl_source/bypass_to_sgxssl.h -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/dcap_source/QuoteVerification/sgxssl/Linux/../openssl_source/OpenSSL_install_dir_tmp/ssl\"" -DENGINESDIR="\"/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/dcap_source/QuoteVerification/sgxssl/Linux/../openssl_source/OpenSSL_install_dir_tmp/lib/engines-1.1\"" -DNDEBUG -D_FORTIFY_SOURCE=2 -DGETPID_IS_MEANINGLESS -MMD -MF crypto/engine/eng_rdrand.d.tmp -MT crypto/engine/eng_rdrand.o -c -o crypto/engine/eng_rdrand.o crypto/engine/eng_rdrand.c
In file included from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceTracker.h:30,
                 from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.h:26,
                 from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.cpp:23:
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceReference.h: In instantiation of 'cppmicroservices::ServiceReference<S>::ServiceReference(const cppmicroservices::ServiceReferenceBase&) [with S = cppmicroservices::ServiceFindHook]':
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.cpp:127:68:   required from here
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceReference.h:93:24: internal compiler error: Segmentation fault
   93 |         this->operator=(0);
      |         ~~~~~~~~~~~~~~~^~~

Full log is available from koji build:
https://kojipkgs.fedoraproject.org//work/tasks/7181/85347181/build.log

Version-Release number of selected component (if applicable):
libgcc: x86_64 12.0.1-0.14.fc37
binutils: x86_64 2.38-8.fc37

How reproducible:
100%

Steps to Reproduce:
1. Download sgx-aesm-service-2.16.100.0-1.fc37.src.rpm from:
https://koji.fedoraproject.org/koji/taskinfo?taskID=85380960
2. Start koji build with the downloaded src.rpm:
$ koji build --scratch sgx-aesm-service-2.16.100.0-1.fc37.src.rpm
3. x86_64 build will fail with the error in description.

Actual results:
Compiling fails 100%.

Expected results:
Compiling succeeds.

Additional info:
1. Tried adding "%global _lto_cflags %nil" in spec, but it does not help.
2. sgx-aesm-service-2.16.100.0-1.fc37.src.rpm is available from the same koji task: https://koji.fedoraproject.org/koji/taskinfo?taskID=85380960 . SPEC file and source tarball are both included in the src.rpm.

Comment 1 Mamoru TASAKA 2022-04-11 13:45:34 UTC
Created attachment 1871794 [details]
preprocessed source (gzipped)

The exact command line is:

/usr/bin/c++ -DCppMicroServices_EXPORTS -DMINIZ_NO_ARCHIVE_WRITING_API -DMINIZ_NO_ZLIB_COMPATIBLE_NAMES -DUS_BUNDLE_NAME=system_bundle -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/build/framework/include -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/build/include -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/util -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/bundle -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/../third_party -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/util/include -I/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/third_party -fstack-protector-all -Werror -Wall -Wextra -Wpointer-arith -Winvalid-pch -Wcast-align -Wwrite-strings -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast -Wstrict-null-sentinel -Wsign-promo -fdiagnostics-show-option -Wno-deprecated-copy -Wno-deprecated-declarations  -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -DNDEBUG -fPIC -std=c++11 -MD -MT framework/CMakeFiles/CppMicroServices.dir/src/service/ServiceHooks.cpp.o -MF CMakeFiles/CppMicroServices.dir/src/service/ServiceHooks.cpp.o.d -o CMakeFiles/CppMicroServices.dir/src/service/ServiceHooks.cpp.o -c /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.cpp

Then

In file included from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceTracker.h:30,
                 from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.h:26,
                 from /builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.cpp:23:
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceReference.h: In instantiation of 'cppmicroservices::ServiceReference<S>::ServiceReference(const cppmicroservices::ServiceReferenceBase&) [with S = cppmicroservices::ServiceFindHook]':
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/src/service/ServiceHooks.cpp:127:68:   required from here
/builddir/build/BUILD/sgx-aesm-service-2.16.100.0/external/CppMicroServices/framework/include/cppmicroservices/ServiceReference.h:93:24: internal compiler error: Segmentation fault
   93 |         this->operator=(0);
      |         ~~~~~~~~~~~~~~~^~~
Please submit a full bug report, with preprocessed source.
See <http://bugzilla.redhat.com/bugzilla> for instructions.

Comment 2 Mamoru TASAKA 2022-04-11 13:50:50 UTC
gcc is gcc-12.0.1-0.14.fc37.x86_64

Comment 3 Marek Polacek 2022-04-11 14:09:14 UTC
Thanks for the preprocessed source!  Reproduced.  I thought this was fixed in https://gcc.gnu.org/PR104432 but looks like it's a different problem.

0x1773b61 crash_signal
	/home/mpolacek/src/gcc/gcc/toplev.cc:322
0xae557e tree_check(tree_node*, char const*, int, char const*, tree_code)
	/home/mpolacek/src/gcc/gcc/tree.h:3456
0xe17756 operator()
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:16411
0xe1799d filter_memfn_lookup
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:16417
0xe180ce tsubst_baselink
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:16506
0xe32588 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:21028
0xe30427 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:20658
0xe2d885 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:20099
0xe2ae60 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:19473
0xe22d0e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18486
0xe25b2d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18815
0xe259b7 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18799
0xe25b2d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18815
0xe257f9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18784
0xe22a79 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18458
0xe25b2d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18815
0xe22a79 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18458
0xe25b2d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:18815
0xe49a1f instantiate_body
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:26393
0xe4b3eb instantiate_decl(tree_node*, bool, bool)
	/home/mpolacek/src/gcc/gcc/cp/pt.cc:26685

Comment 4 Mamoru TASAKA 2022-04-16 12:46:36 UTC
Confirmed fixed in gcc-12.0.1-0.16.fc37 . Thank you.

Comment 5 Yunying Sun 2022-04-18 02:27:32 UTC
Thanks a lot for the fix and update.
Rebuilding the package now works fine with libgcc-12.0.1-0.16.fc37.x86_64: https://koji.fedoraproject.org/koji/taskinfo?taskID=85843976 .


Note You need to log in before you can comment on or make changes to this bug.