where gcc -save-temps puts temporary files

Andrew Haley aph@redhat.com
Tue Jan 15 12:40:00 GMT 2008

Marty Leisner writes:
 > gcc -save-temps is defined to leave temporaries in the current directory.
 > This works intuitively where the build writes the output files into the current
 > directory.  Not everything works that way.
 > It seems it makes more sense to always leave it alongside the output...
 > If I'm debugging a build (of something like the linux kernel) its
 > calling the C compiler with
 > gcc <flags> foo/bar/src.c -c  -o <dest>foo/bar/src.o
 > If I add -save-temps, it puts the .i and .s in the current directory...
 > I found this not intuitive and has the following problems:
 >    1) if current directory isn't writable, -save-temps won't work
 >    2) if multiple files in subdirectories have the same name (and different
 > paths) -save-temps will overwrite temporary files
 > Comments?  This would be an easy change to make.  Would it be desirable
 > to change the behavior of -save-temps?

I don't agree.  It would make it impossible to follow a common
practice of cd'ing to a tmpdir and doing

   gcc /foo/bar/baz.c -o /foo/build/baz.o -save-temps

This suggested change is a bad idea.  Emitting to cwd is the most
convenient default for my usage.


Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903

More information about the Gcc-help mailing list