specs question.

IainS developer@sandoe-acoustics.co.uk
Mon Apr 12 22:41:00 GMT 2010


On 12 Apr 2010, at 23:24, Ian Lance Taylor wrote:

> IainS <developer@sandoe-acoustics.co.uk> writes:
>
>> what is the expected behavior of ?
>>
>> %{.c|.cc|.for|.F90: foo }
>>
>> .. as I read gcc/gcc.c I would expect to get "foo" for command lines
>> with files with these suffixes:
>> .c
>> .cc
>> .for
>> .F90
>>
>> but not otherwise (since it says . binds more strongly than |) ;
>
> That sounds right to me.  Do you see something different

yeah .. we use it in Darwin's dsymutil spec.

%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
     %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
    %{gdwarf-2:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{! 
o:a.out}}}}}}}}}}}}"
     %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n"


if you put "-lm" on the c/l dsymutil doesn't get called.

Almost as if ".m"  was being treated as a regex rather than a  
suffix... (but I don't think that's the whole story).

and I find that if I put .for|.f90 etc it makes no difference to  
fortran getting debugged...

---
... if I take away the %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: }

It all works as expected...

----

I looked at the code (briefly) that parses the %{ } but it needs some  
time to digest what's going on - so I thought asking would be a good  
plan ;-)

Iain



More information about the Gcc mailing list