gnatlink.adb (Process_Args): Do not disable scanning of ALI file for back end switche...
authorVincent Celier <celier@adacore.com>
Fri, 23 May 2008 13:28:41 +0000 (15:28 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 23 May 2008 13:28:41 +0000 (15:28 +0200)
2008-05-23  Vincent Celier  <celier@adacore.com>

* gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
back end switches when executable specified with --GCC= is same as
default, even if there are additional options.

* gnat_ugn.texi:
Document when the back end switches from the ALI file are taken into
account when gnatlink is invoked with --GCC=

From-SVN: r135804

gcc/ada/gnat_ugn.texi
gcc/ada/gnatlink.adb

index 4d9abacfa5fd6804594b1611998f74c04c076ba8..a14afdeeb8ca62eeb9cfedf8a8f7c3b8c817f2d8 100644 (file)
@@ -8597,7 +8597,11 @@ use @code{foo -x -y} as your compiler. Note that switch @option{-c} is always
 inserted after your command name. Thus in the above example the compiler
 command that will be used by @command{gnatlink} will be @code{foo -c -x -y}.
 A limitation of this syntax is that the name and path name of the executable
-itself must not include any embedded spaces. If several
+itself must not include any embedded spaces. If the compiler executable is
+different from the default one (gcc or <prefix>-gcc), then the back-end
+switches in the ALI file are not used to compile the binder generated source.
+For example, this is the case with @option{--GCC="foo -x -y"}. But the back end
+switches will be used for @option{--GCC="gcc -gnatv"}. If several
 @option{--GCC=compiler_name} are used, only the last @var{compiler_name}
 is taken into account. However, all the additional switches are also taken
 into account. Thus,
index 3a1ef9b4dd74a3a4b5c4e6caa19612f09289e1ac..256504bf6eb70ba7bef9a90d53ee195ce2035b34 100644 (file)
@@ -521,8 +521,10 @@ procedure Gnatlink is
                                                  (Arg (7 .. Arg'Last));
 
                   begin
-                     Gcc := new String'(Program_Args.all (1).all);
-                     Standard_Gcc := False;
+                     if Program_Args.all (1).all /= Gcc.all then
+                        Gcc := new String'(Program_Args.all (1).all);
+                        Standard_Gcc := False;
+                     end if;
 
                      --  Set appropriate flags for switches passed