On 13 Apr 2010, at 19:05, Peter O'Gorman wrote:

gcc hello.c  -g -o hc  => dsymutils gets run  (not expected from the
syntax, assuming that sources are irrelevant)

gcc hello.o -g -o hc => no dsymutils (expected from the absence of '.o'
in the list)

We don't want to run dsymutil if there are .o files, let the developer
do that.

OK, although AFAICT,
it should be harmless doing it in the general case (and, to some extent, more friendly).

If someone just does gcc -g -o foo foo.c, then any debugging information
will be lost when the temporary .o file is removed, thus, to allow
debugging such a foo, the compiler must run dsymutil.

That's understood - although see below for a comment on Fortran***.

Strange, Apple's gcc-4.2 doesn't have this bug (-lm), yet that portion
of the specs appears identical.

indeed - although of course there's no reason to suppose that gcc/ gcc.c is identical in the two cases (I can check that at some stage)

My question has more to do with whether the apparent intention of the spec is being honored.. ... and also why it doesn't work if I add more extensions (e.g. to extend coverage to Fortran, which Apple are not trying to cover in their case).

[***Even if I remove the %{.xxx.xxx.xx: } in the dsyutil section, there's a subsidiary issue with the Fortran case in that the debug info is only working if I put -save-temps on the CL].

cheers,
Iain

Reply via email to