This is a fallout of my fix for PR ada/83016, which allowed the --LINK option
of gnatlink to contain switches in addition to the linker itself. There is a
conflict with the switches passed with the --GCC option so this patch arranges
for the former switches to take precedence over the latter switches when it
comes to the final linking step.
Tested on x86-64/Linux, applied on the mainline.
2018-03-23 Eric Botcazou <ebotca...@adacore.com>
PR ada/85036
* gnatlink.adb (Process_Args): Drop existing link switches if multiple
switches are passed for --LINK.
--
Eric Botcazou
Index: gnatlink.adb
===================================================================
--- gnatlink.adb (revision 258629)
+++ gnatlink.adb (working copy)
@@ -544,6 +544,11 @@ procedure Gnatlink is
end if;
-- The other arguments are passed as-is to the linker
+ -- and override those coming from --GCC= if any.
+
+ if L_Args.all'Last >= 2 then
+ Gcc_Linker_Options.Set_Last (0);
+ end if;
for J in 2 .. L_Args.all'Last loop
Gcc_Linker_Options.Increment_Last;