On Oct 26, 2011, at 6:10 AM, Richard Guenther wrote:
> This completely rewrites LTO option merging.

> Any comments?

Wondering if It breaks darwin?  
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50876

We have:

   %{Zmultiply_defined*:-multiply_defined %*} 

in LINK_SPEC.

and:

; Various linker options have a -Z added so that they can get to specs
; processing without interference.  Note that an option name with a
; prefix that matches another option name, that also takes an
; argument, being mapped to a -Z linker option, needs to be modified
; so the prefix is different, otherwise a '*' after the shorter option
; will match with the longer one.

multiply_defined
Driver RejectNegative Separate Alias(Zmultiply_defined)

in the .opt file.  We may well be the only port that does these sorts of 
tricks.  Essentially, we want to allow linker arguments on the command line, 
and have them never hit any machine independent option processing code, because 
they match (prefix match).  We accomplish this this by hiding them early, doing 
all the normal processing, and then way late, just before link, turning them 
back into the normal names.

Reply via email to