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

Reply via email to