http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57578
Bug ID: 57578 Summary: SPE detection broken on Linux (bits/predefs.h: No such file or directory) Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: stigge at antcom dot de SPE detection broken on Linux (bits/predefs.h: No such file or directory) The build of powerpc spe on Linux aborts like this: [...] /«PKGBUILDDIR»/build/./gcc/xgcc -B/«PKGBUILDDIR»/build/./gcc/ -B/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/bin/ -B/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/lib/ -isystem /usr/lib/gcc-snapshot/powerpc-linux-gnuspe/include -isystem /usr/lib/gcc-snapshot/powerpc-linux-gnuspe/sys-include -g -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -mlong-double-128 -mno-minimal-toc -I. -I. -I../.././gcc -I../../../src/libgcc -I../../../src/libgcc/. -I../../../src/libgcc/../gcc -I../../../src/libgcc/../include -I../../../src/libgcc/../libdecnumber/dpd -I../../../src/libgcc/../libdecnumber -DHAVE_CC_TLS -o _gcov_merge_single.o -MT _gcov_merge_single.o -MD -MP -MF _gcov_merge_single.dep -DL_gcov_merge_single -c ../../../src/libgcc/libgcov.c In file included from /usr/include/stdio.h:28:0, from ../../../src/libgcc/../gcc/tsystem.h:87, from ../../../src/libgcc/libgcov.c:27: /usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory #include <bits/predefs.h> ^ compilation terminated. [...] Turns out that the detection of the SPE case is done via rs6000/e500-double.h in $(tm_file_list), but e500-double.h was removed recently, and hence not added anymore to $(tm_file_list). However, in the SPE (i.e. e500v2) case, with_cpu is set exactly to 8548 in config.gcc. I solved this in gcc/config/rs6000/t-linux by replacing the line MULTIARCH_DIRNAME = powerpc-linux-gnuspe$(if $(findstring rs6000/e500-double.h, $(tm_file_list)),,v1) with MULTIARCH_DIRNAME = powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1) Thanks!