I was building Spec 2006 with a powerpc64-linux cross compiler using the -save-temps option so that I could do some analysis on the generated code. Unfortunately, if I use -j4 in the make for the spec build, the test cactusADM does not build. I traced this down to there were several Startup.c files in different directories, and the spec make uses -o to put the resulting objects in different directories:
<gcc>/gcc <flags> -o PUGH/Startup.o PUGH/Startup.c <gcc>/gcc <flags> -o IOUtil/Startup.o IOUtil/Startup.c <gcc>/gcc <flags> -o BenchADMsrc/Startup.o BenchADMsrc/Startup.c <gcc>/gcc <flags> -o CartGrid3D/Startup.o CartGrid3D/Startup.c ... As luck would have it, make decided to compile several of of the Startup.c's at the same time, and since they wrote the files in the current directory, they overwrote each other, and the assembler complained about illegal input. -- Summary: -save-temps does not follow the -o option and instead puts the temp file in the current directory Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at linux dot vnet dot ibm dot com GCC build triplet: x86_64-gnu-linux GCC host triplet: x86_64-gnu-linux GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39293