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

--- Comment #13 from Iain Sandoe <iains at gcc dot gnu.org> 2011-06-12 13:00:49 
UTC ---
(In reply to comment #12)
> The reason for the error is that no spec matches the option.  For most 
> targets, the option is matched in LINK_PIE_SPEC (only), which is part of 
> LINK_COMMAND_SPEC; Darwin uses its own LINK_COMMAND_SPEC (as does DJGPP).  
> I would advise making Darwin behave similarly to other targets by 
> including an appropriate spec for this option in Darwin's 
> LINK_COMMAND_SPEC.

that's what the attached patch @comment #10 does.

there are some potential refinements;

(a) the warning message from cc1 is a bit non-helpful when mdynamic-no-pic is
combined with pie - since it refers to fpic/fPIC which the user did not
actually supply (although she did imply it).,

(b) something like 

#undef PIE_SPEC
#define PIE_SPEC \
  "%{fpie|pie|fPIE: \
     %{mdynamic-no-pic: %n'-mdynamic-no-pic' overides '-pie', '-fpie' or
'-fPIE'; \
      :-pie}}"

would avoid the linker error when the combination is given - since the pic is
already overridden, at least it would be consistent.

Reply via email to