Exactly what it says on the tin. gcc -v output: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-10.2.0-r2/work/gcc-10.2.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/10.2.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 10.2.0-r2 p3' --disable-esp --enable-libstdcxx-time --with-build-config=bootstrap-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --enable-vtable-verify --without-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.2.0 (Gentoo 10.2.0-r2 p3)
Please share the full build.log, emerge --info, and follow https://wiki.gentoo.org/wiki/Gcc-ICE-reporting-guide. I absolutely believe this has happened because we've seen it several times today in #gentoo, but this isn't enough information to start digging in yet.
Created attachment 663766 [details] Temporary sources
Created attachment 663769 [details] Temporary sources
Created attachment 663772 [details] Temporary sources
Created attachment 663775 [details] Temporary sources
Created attachment 663778 [details] emerge --info
Relevant excerpt from build.log (the entire file is too large to be uploaded as an attachment, even when compressed with xz): 8138:53.00 /usr/bin/x86_64-pc-linux-gnu-g++ -std=gnu++17 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++2a-compat -Wduplicated-cond -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wno-multistatement-macros -Wno-error=class-memaccess -Wno-error=deprecated-copy -Wformat -Wformat-security -Wformat-overflow=2 -Wno-psabi -fno-sized-deallocation -fno-aligned-new -march=native -pipe -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -O3 -fomit-frame-pointer -funwind-tables -o TestFloatingPoint /var/tmp/portage/www-client/firefox-81.0.1/work/firefox_build/mfbt/tests/TestFloatingPoint.list -flto=8 -flifetime-dse=1 -lpthread -Wl,-O1 -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--compress-debug-sections=zlib -fuse-ld=gold -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc -Wl,-Bsymbolic-functions -Wl,--icf=safe -fstack-protector-strong -Wl,-rpath-link,/var/tmp/portage/www-client/firefox-81.0.1/work/firefox_build/dist/bin -Wl,-rpath-link,/usr/lib -fdiagnostics-color -pie -ldl 8138:53.01 mfbt/tests/TestFunctionRef 8138:53.44 during RTL pass: ira 8138:53.44 /var/tmp/portage/www-client/firefox-81.0.1/work/firefox_build/dist/include/mozilla/Casting.h: In function 'BitwiseCast': 8138:53.44 /var/tmp/portage/www-client/firefox-81.0.1/work/firefox_build/dist/include/mozilla/Casting.h:64:1: internal compiler error: in to_frequency, at profile-count.c:273 8138:53.44 64 | } 8138:53.44 | ^ 8138:53.60 0x7f875cf33b9c __libc_start_main 8138:53.60 ../csu/libc-start.c:314 8138:53.60 Please submit a full bug report, 8138:53.60 with preprocessed source if appropriate. 8138:53.60 Please include the complete backtrace with any bug report. 8138:53.60 See <https://bugs.gentoo.org/> for instructions. 8138:53.62 make[5]: *** [/var/tmp/portage/www-client/firefox-81.0.1/temp/ccOINDWq.mk:2: /var/tmp/portage/www-client/firefox-81.0.1/temp/TestFloatingPoint.VV5wZn.ltrans0.ltrans.o] Error 1 8138:53.62 lto-wrapper: fatal error: make returned 2 exit status 8138:53.62 compilation terminated. The ICE can be reproduced by manually running the same command in the build directory. I'll try compressing build.log even further using some other method and upload the full log as soon as possible.
> internal compiler error: in to_frequency, at profile-count.c:273 I think it's a combination of USE="lto pgo". -march=native makes it harder to reproduce locally. Please expand it using https://wiki.gentoo.org/wiki/Gcc-ICE-reporting-guide#Expand_-march.3Dnative.2C_exact_gcc_version_and_other_system-specific_options and make sure the bug is still reproducible.
+pgo +lto on FF-81 needed to trigger this. FF-80 compiles with +pgo +lto correctly. FF-81 also compiles with +pgo -lto OR -pgo +lto, but not both. Reproduced on Zen2 and Skylake cpus with -march=native. Compiling now on a clean system without -march, will post results later. If anyone wants the full log, https://ozna.net/ff81build.log.bz2 (10mb), uncompressed size 400mb. Tested with both gcc-9.3.0-r1 and gcc-10.2.0-r2, same result.
Expanded -march=native on Zen2: -march=znver2 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -msha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mwbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mclwb -mmwaitx -mclzero -mno-pku -mrdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote -mno-ptwrite --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver2 on Haswell: -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-avx512vpopcntdq -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote -mno-ptwrite -mno-avx512bf16 -mno-enqcmd -mno-avx512vp2intersect --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=30720 -mtune=haswell
I've ran into this while testing as well after seeing users on IRC run into the issue. firefox:0/esr78+gcc+lto+pgo: works fine firefox:0/81.0+gcc+lto+pgo: ICE either+clang+lto+pgo: works fine either+gcc: works fine Was using gcc-9.3.0-r1 so I don't think it's gcc10-specific either, was with "-march=skylake -O2" only.
Please make sure that you are using ebuild from Gentoo repository after Sun, 04 Oct 2020 17:00:01 +0000 just in case.
Will give it a new try with just -O2 as well (no -march=), and using latest ebuild. Unfortunately does take a while to experiment given it fails in 2nd stage after profile generation.
(In reply to Ionen Wolkens from comment #13) > Will give it a new try with just -O2 as well (no -march=), and using latest > ebuild. Failed again with ICE with only -O2, double-checked that -march= wasn't in the build.log. Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz gcc-9.3.0-r1 USE="(cxx) lto (multilib) nptl openmp pch pgo (pie)" binutils-2.35.1 USE="gold plugins" rust-1.46.0 USE="system-bootstrap system-llvm" llvm-10.0.1 USE="libffi ncurses" firefox-81.0.1 USE="gmp-autoupdate lto pgo pulseaudio system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp" ::gentoo @ Sun, 04 Oct 2020 21:35:36 +0000 (732245df9fc5c11cd86ab2279b0f5e9e54f2f260) If can't reproduce feel free to ask anything you want me to try/provide.
And again, firefox:0/esr78 built fine with same configuration and gcc+lto+pgo. So only when USE="pgo -clang" maybe USE=lto should be blocked on firefox:0/81.0 until resolved.
Reproducible test case: https://vrbanc.com/hotlink/ICE-testcase.tar.bz2 [1.4MB] Run "g++ -o TestFloatingPoint *.o" to get the ICE.
I can confirm the error with stable gcc-9.3.0-r1 via the test case you provided
(In reply to Vedran Vrbanc from comment #16) > Reproducible test case: > > https://vrbanc.com/hotlink/ICE-testcase.tar.bz2 [1.4MB] > > Run "g++ -o TestFloatingPoint *.o" to get the ICE. Do you have similar testcase against gcc-10?
(In reply to Sergei Trofimovich from comment #18) > (In reply to Vedran Vrbanc from comment #16) > > Reproducible test case: > > > > https://vrbanc.com/hotlink/ICE-testcase.tar.bz2 [1.4MB] > > > > Run "g++ -o TestFloatingPoint *.o" to get the ICE. > > Do you have similar testcase against gcc-10? I can confirm that the same testcase provided occurs when using gcc 10.2.0-r2 (Gentoo), with the following output: lto1: fatal error: bytecode stream in file ‘Compression.o’ generated with GCC compiler older than 10.0 compilation terminated. lto-wrapper: fatal error: g++ returned 1 exit status compilation terminated. /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status gcc -v output can be seen in comment #0
(In reply to inasprecali from comment #19) Sorry, it seems like the error is just doe to mismatching gcc versions, please ignore.
when shuffeling through redhat #1849165 I get the impression their gcc bug has been solved by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96690 , so maybe you want to try it?
(In reply to Sergei Trofimovich from comment #18) > > Do you have similar testcase against gcc-10? Sure: https://vrbanc.com/hotlink/ICE-testcase-gcc10.tar.bz2 same deal, "g++ -o TestFloatingPoint *.o" to get the ICE. both test cases were compiled without -march, just "-O2 -pipe" sys-devel/gcc-9.3.0-r1 <- first test case sys-devel/gcc-10.2.0-r2 <- second test case sys-devel/binutils-2.34-r2 <- both builds
(In reply to Vedran Vrbanc from comment #22) > (In reply to Sergei Trofimovich from comment #18) > > > > > Do you have similar testcase against gcc-10? > > Sure: > > https://vrbanc.com/hotlink/ICE-testcase-gcc10.tar.bz2 > > same deal, "g++ -o TestFloatingPoint *.o" to get the ICE. > > > both test cases were compiled without -march, just "-O2 -pipe" > > sys-devel/gcc-9.3.0-r1 <- first test case > sys-devel/gcc-10.2.0-r2 <- second test case > > sys-devel/binutils-2.34-r2 <- both builds Thank you! I can reproduce it locally as well. Can you upload your 'emerge --info' for completeness?
Created attachment 663901 [details] emerge --info
Filed https://gcc.gnu.org/PR97295 upstream bug.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=bb31009f6bb62d2dbee6a4be9605c9286ef0df23 commit bb31009f6bb62d2dbee6a4be9605c9286ef0df23 Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-10-15 17:30:51 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-10-15 17:30:51 +0000 10.2.0: backport IPA to_frequency() ICE Reported-by: inasprecali@disroot.org Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> 10.2.0/gentoo/40_all_ipa-to_frequency.patch | 48 +++++++++++++++++++++++++++++ 10.2.0/gentoo/README.history | 3 ++ 2 files changed, 51 insertions(+)
Queued possible fix for next gcc-10 patchset. Should be released in gentoo in about a month. If you are feeling adventurous you can try the fix earlier by dropping the patch https://gitweb.gentoo.org/proj/gcc-patches.git/plain/10.2.0/gentoo/40_all_ipa-to_frequency.patch to /etc/portage/patches/sys-devel/gcc:10/ local patch directory and rebuld gcc.
any plans on pulling in the gcc-9 fix as well?
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=604daa40f01cb708beafcef226f1b207d576075d commit 604daa40f01cb708beafcef226f1b207d576075d Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-10-15 21:35:46 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-10-15 21:35:46 +0000 9.3.0: backport IPA to_frequency() ICE Reported-by: inasprecali@disroot.org Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> 9.3.0/gentoo/31_all_ipa-to_frequency.patch | 48 ++++++++++++++++++++++++++++++ 9.3.0/gentoo/README.history | 1 + 2 files changed, 49 insertions(+)
(In reply to tt_1 from comment #28) > any plans on pulling in the gcc-9 fix as well? We can do it. The patch should work as is on gcc-9 as well.
I can confirm that this patch works for gcc-9 and allows to compile up to firefox-82.0_rc2 with GCC and USE="lto pgo".
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33e2dd3e660a35122e076abec63252566326cfe0 commit 33e2dd3e660a35122e076abec63252566326cfe0 Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-11-04 07:25:45 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-11-04 07:43:50 +0000 sys-devel/gcc: 10.2.0: cut 4 patchset Single new patch: + 40_all_ipa-to_frequency.patch: fix ICE on empty profile merges. Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Package-Manager: Portage-3.0.9, Repoman-3.0.2 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-10.2.0-r3.ebuild | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=363ff6cb28a438d29a65efc77c07f40ed8e6c9ec commit 363ff6cb28a438d29a65efc77c07f40ed8e6c9ec Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-11-04 07:24:45 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-11-04 07:43:49 +0000 sys-devel/gcc: 9.3.0: cut 4 patchset Three new patches: + 30_all_plugin-objdump.patch: always use prefixed objdump + 31_all_ipa-to_frequency.patch: fix ICE on empty profile merges. + 32_all_assume-aligned.patch: don't assume alignment Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Bug: https://bugs.gentoo.org/750905 Bug: https://gcc.gnu.org/PR94163 Package-Manager: Portage-3.0.9, Repoman-3.0.2 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-9.3.0-r2.ebuild | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=d6e1bf3168cce755396a408032b4804a7a527d43 commit d6e1bf3168cce755396a408032b4804a7a527d43 Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-11-04 00:03:31 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-11-04 07:26:02 +0000 10.2.0: cut 4 patchset Single new patch: + 40_all_ipa-to_frequency.patch: fix ICE on empty profile merges. Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> 10.2.0/gentoo/README.history | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=3a85230e907766210c490f3d5d39153f7728f73c commit 3a85230e907766210c490f3d5d39153f7728f73c Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-11-04 00:07:29 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-11-04 07:25:58 +0000 9.3.0: cut 4 patchset Three new patches: + 30_all_plugin-objdump.patch: always use prefixed objdump + 31_all_ipa-to_frequency.patch: fix ICE on empty profile merges. + 32_all_assume-aligned.patch: don't assume alignment Bug: https://bugs.gentoo.org/746578 Bug: https://gcc.gnu.org/PR97295 Bug: https://bugs.gentoo.org/750905 Bug: https://gcc.gnu.org/PR94163 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> 9.3.0/gentoo/README.history | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Should be fixed in 9.3.0-r2.