summaryrefslogtreecommitdiff
path: root/gcc/ada/mlib-tgt-irix.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/mlib-tgt-irix.adb')
-rw-r--r--gcc/ada/mlib-tgt-irix.adb26
1 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ada/mlib-tgt-irix.adb b/gcc/ada/mlib-tgt-irix.adb
index 6429eae4e15..25fc1c13e15 100644
--- a/gcc/ada/mlib-tgt-irix.adb
+++ b/gcc/ada/mlib-tgt-irix.adb
@@ -100,6 +100,7 @@ package body MLib.Tgt is
Foreign : Argument_List;
Afiles : Argument_List;
Options : Argument_List;
+ Options_2 : Argument_List;
Interfaces : Argument_List;
Lib_Filename : String;
Lib_Dir : String;
@@ -127,10 +128,10 @@ package body MLib.Tgt is
-- After moving -lxxx to Options_2, N_Options up to index Options_Last
-- will contain the Options to pass to MLib.Utl.Gcc.
- Options_2 : Argument_List (Options'Range);
- Options_2_Last : Natural := Options_2'First - 1;
- -- Options_2 up to index Options_2_Last will contain the Options_2 to
- -- pass to MLib.Utl.Gcc.
+ Real_Options_2 : Argument_List (1 .. Options'Length + Options_2'Length);
+ Real_Options_2_Last : Natural := 0;
+ -- Real_Options_2 up to index Real_Options_2_Last will contain the
+ -- Options_2 to pass to MLib.Utl.Gcc.
begin
if Opt.Verbose_Mode then
@@ -159,8 +160,8 @@ package body MLib.Tgt is
if Arg'Length > 2
and then Arg (Arg'First .. Arg'First + 1) = "-l"
then
- Options_2_Last := Options_2_Last + 1;
- Options_2 (Options_2_Last) := Arg;
+ Real_Options_2_Last := Real_Options_2_Last + 1;
+ Real_Options_2 (Real_Options_2_Last) := Arg;
N_Options (Index .. Options_Last - 1) :=
N_Options (Index + 1 .. Options_Last);
Options_Last := Options_Last - 1;
@@ -171,6 +172,13 @@ package body MLib.Tgt is
end loop;
end;
+ -- Add to Real_Options_2 the argument Options_2
+
+ Real_Options_2
+ (Real_Options_2_Last + 1 .. Real_Options_2_Last + Options_2'Length) :=
+ Options_2;
+ Real_Options_2_Last := Real_Options_2_Last + Options_2'Length;
+
if Lib_Version = "" then
MLib.Utl.Gcc
(Output_File => Lib_File,
@@ -178,7 +186,7 @@ package body MLib.Tgt is
Options => N_Options (N_Options'First .. Options_Last) &
Init_Fini.all,
Driver_Name => Driver_Name,
- Options_2 => Options_2 (Options_2'First .. Options_2_Last));
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
else
Version_Arg := new String'("-Wl,-soname," & Lib_Version);
@@ -190,7 +198,7 @@ package body MLib.Tgt is
Options => N_Options (N_Options'First .. Options_Last) &
Version_Arg & Init_Fini.all,
Driver_Name => Driver_Name,
- Options_2 => Options_2 (Options_2'First .. Options_2_Last));
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
Symbolic_Link_Needed := Lib_Version /= Lib_File;
else
@@ -200,7 +208,7 @@ package body MLib.Tgt is
Options => N_Options (N_Options'First .. Options_Last) &
Version_Arg & Init_Fini.all,
Driver_Name => Driver_Name,
- Options_2 => Options_2 (Options_2'First .. Options_2_Last));
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
Symbolic_Link_Needed :=
Lib_Dir & Directory_Separator & Lib_Version /= Lib_File;
end if;