http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48524

           Summary: spec language does not cover switches with separated
                    form
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: driver
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: dirtye...@gentoo.org


Up until 4.6.0, we could write a simple spec rule for an arbitrary preprocessor
definition like:

%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}

-D and -U flags have both joined and separate forms and the above rule worked
as long as the joined form was used.  This was good enough for the most part,
since the separate form is rare enough that I didn't even know it existed until
now.  As of 4.6.0, as outlined in PR47236, these flags are now regenerated in
their canonical, separate, form for specs processing with the benefit that
specs no longer have to handle the non-canonical cases.

The problem we have though, is that there doesn't actually seem to be any way
to write a spec rule for a switch substitution using the separated form, or at
least any that I've found.  The above rule no longer matches, and whitespace
and wildcard characters don't seem to be allowed in switch names.

I'd like to request that the spec language be extended to provide a way to
match separate-form switches, which would restore the functionality we need. 
This is both an enhancement request and, in my point of view, a regression,
since the loss of the ability to write specs matching preprocessor symbols has
broken several of our projects in ways that would be very difficult to fix
otherwise.

Reply via email to