잘못된 정보:
/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/gcc-9.2.0/gcc/d/runtime.cc:37:6: warning: type 'libcall_type' violates the C++ One Definition Rule [-Wodr]
37 | enum libcall_type
| ^
/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/gcc-9.2.0/gcc/rtl.h:4108:6: note: an enum with different value name is defined in another translation unit
4108 | enum libcall_type
| ^
during RTL pass: ira
/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/gcc-9.2.0/gcc/vec.h: In function 'reserve':
/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/gcc-9.2.0/gcc/vec.h:385: internal compiler error: in to_frequency, at profile-count.c:265
385 | }
|
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.gentoo.org/> for instructions.
make[4]: *** [/var/tmp/portage/sys-devel/gcc-9.2.0-r2/temp/ccTMcIub.mk:2: /var/tmp/portage/sys-devel/gcc-9.2.0-r2/temp/d21.v85pN6.ltrans0.ltrans.o] Error 1
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[3]: *** [/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/gcc-9.2.0/gcc/d/Make-lang.in:148: d21] Error 1
make[3]: *** Waiting for unfinished jobs....
rm gcc.pod gdc.pod gccgo.pod gfortran.pod
make[3]: Leaving directory '/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/build/gcc'
make[2]: *** [Makefile:4915: all-stagefeedback-gcc] Error 2
make[2]: Leaving directory '/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/build'
make[1]: *** [Makefile:25729: stagefeedback-bubble] Error 2
make[1]: Leaving directory '/var/tmp/portage/sys-devel/gcc-9.2.0-r2/work/build'
make: *** [Makefile:25749: profiledbootstrap] Error 2
특정 기능:
int
profile_count::to_frequency (struct function *fun) const
{
if (!initialized_p ())
return BB_FREQ_MAX;
if (*this == profile_count::zero ())
return 0;
gcc_assert (REG_BR_PROB_BASE == BB_FREQ_MAX
&& fun->cfg->count_max.initialized_p ());
profile_probability prob = probability_in (fun->cfg->count_max);
if (!prob.initialized_p ())
return REG_BR_PROB_BASE;
return prob.to_reg_br_prob_base ();
}
저는 gcc 9.2로 구축해 왔으며 일부 더 작은 시스템과 커널을 가지고 있습니다. 어쩌면 뭔가 빠졌을 수도 있습니다. 그 외에도 "내부 컴파일러 오류" 문제에 대해 더 좋은 소식을 찾을 수 있을지 궁금합니다.
답변1
LTO+PGO 컴파일러 오류입니다.https://gcc.gnu.org/PR97295
CXXFLAGS=-O3 설정으로 gcc를 컴파일할 때 젠투에서 비슷한 문제가 관찰되었습니다. 이 문제는 해결되었습니다https://bugs.gentoo.org/701786.