]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gnatbind.adb (Is_Cross_Compiler): New function returning True for cross-compiler.
authorPascal Obry <obry@adacore.com>
Tue, 15 Nov 2005 13:59:20 +0000 (14:59 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 15 Nov 2005 13:59:20 +0000 (14:59 +0100)
2005-11-14  Pascal Obry  <obry@adacore.com>

* gnatbind.adb (Is_Cross_Compiler): New function returning True for
cross-compiler.
(Scan_Bind_Arg): Fail with an error message if -M option is used
on a native compiler.

From-SVN: r106982

gcc/ada/gnatbind.adb

index 270d3342810e04eeb5e67d8d8da182f0bfab6e1f..e9222c94595a3a9b9001344fc96eea7fc93573fa 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -87,6 +87,9 @@ procedure Gnatbind is
    --  All the one character arguments are still handled by Switch. This
    --  routine handles -aO -aI and -I-.
 
+   function Is_Cross_Compiler return Boolean;
+   --  Returns True iff this is a cross-compiler
+
    ---------------------------------
    -- Gnatbind_Supports_Auto_Init --
    ---------------------------------
@@ -99,6 +102,17 @@ procedure Gnatbind is
       return gnat_binder_supports_auto_init /= 0;
    end Gnatbind_Supports_Auto_Init;
 
+   -----------------------
+   -- Is_Cross_Compiler --
+   -----------------------
+
+   function Is_Cross_Compiler return Boolean is
+      Cross_Compiler : Integer;
+      pragma Import (C, Cross_Compiler, "__gnat_is_cross_compiler");
+   begin
+      return Cross_Compiler = 1;
+   end Is_Cross_Compiler;
+
    ----------------------------------
    -- List_Applicable_Restrictions --
    ----------------------------------
@@ -350,8 +364,12 @@ procedure Gnatbind is
          --  -Mname
 
          elsif Argv'Length >= 3 and then Argv (2) = 'M' then
-            Opt.Bind_Alternate_Main_Name := True;
-            Opt.Alternate_Main_Name := new String'(Argv (3 .. Argv'Last));
+            if Is_Cross_Compiler then
+               Opt.Bind_Alternate_Main_Name := True;
+               Opt.Alternate_Main_Name := new String'(Argv (3 .. Argv'Last));
+            else
+               Fail ("-M option only valid for a cross-compiler");
+            end if;
 
          --  All other options are single character and are handled by
          --  Scan_Binder_Switches.