On Wed, 26 Oct 2011, Mike Stump wrote:

> 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.

Well, it shouldn't - the options should be properly parsed and
marked as CL_DRIVER and thus should get passed through just fine.

You have to debug what goes wrong.

Richard.

Reply via email to