diff options
Diffstat (limited to 'gcc/ada/gnatlink.adb')
-rw-r--r-- | gcc/ada/gnatlink.adb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ada/gnatlink.adb b/gcc/ada/gnatlink.adb index ef35b931f13..fc1996f41ab 100644 --- a/gcc/ada/gnatlink.adb +++ b/gcc/ada/gnatlink.adb @@ -1297,6 +1297,38 @@ procedure Gnatlink is -- Start of processing for Gnatlink begin + -- Add the directory where gnatlink is invoked in front of the + -- path, if gnatlink is invoked with directory information. + -- Only do this if the platform is not VMS, where the notion of path + -- does not really exist. + + if not Hostparm.OpenVMS then + declare + Command : constant String := Command_Name; + + begin + for Index in reverse Command'Range loop + if Command (Index) = Directory_Separator then + declare + Absolute_Dir : constant String := + Normalize_Pathname + (Command (Command'First .. Index)); + + PATH : constant String := + Absolute_Dir & + Path_Separator & + Getenv ("PATH").all; + + begin + Setenv ("PATH", PATH); + end; + + exit; + end if; + end loop; + end; + end if; + Process_Args; if Argument_Count = 0 |