http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43751
--- Comment #6 from Iain Sandoe <iains at gcc dot gnu.org> 2010-11-27 09:29:24 UTC --- (In reply to comment #5) Firstly, the patch mentioned at comment #2 is withdrawn - it's no longer functional. > 1. for Fortran, one can effect a fix by altering the dsymutil spec in > config/darwin.h and config/darwin9.h thus: > > .c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|.f95|.f03|.f77|.for|.F|.F90|.F95|.F03: > > 2. The generic 'failing' is that the spec is looking at only the last item on > the c/l -- if that happens to be a source file, the dSYM will be generated. > There isn't a generic facility to recognize *any* source file and post a flag > (perhaps something worth considering in 4.7). > > So, you need to make at least one of your source files the last entry on the > c/l Well this used to work, but no longer does. The recent change to append the libgfortran.spec to the c/l means that one can no longer do this. we need a purpose-made capability to flag (any) source file present on the command line [any language]. > 3. To avoid the need for the dSYM at all -- if all you want to do is to debug > locally -- just use "-save-temps". this is the only current work-around for exes built from source in a single c/l. (NOTE: when the objects are built and linked in separate stages, the dSYM is not required in any event - since the objects are present in the build dir and not deleted until the user does so.)