OSDN Git Service

2005-03-29 Vincent Celier <celier@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:13:14 +0000 (16:13 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:13:14 +0000 (16:13 +0000)
* mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
(Build_Dynamic_Library.Version_String): Return the empty string when
Lib_Version is empty or when the symbol policy is not Autonomous.

* symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
a symbol is not in the reference symbol file, increase the Major ID
and set the Minor ID to 0.
Use gsmatch=lequal instead of gsmatch=equal

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97166 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/mlib-tgt-vms-alpha.adb
gcc/ada/mlib-tgt-vms-ia64.adb
gcc/ada/symbols-vms-alpha.adb

index ca7596b..ed713ca 100644 (file)
@@ -160,8 +160,10 @@ package body MLib.Tgt is
       --  Returns Symbol_File, if not empty. Otherwise, returns "symvec.opt"
 
       function Version_String return String;
-      --  Returns Lib_Version if not empty, otherwise returns "1".
-      --  Fails gnatmake if Lib_Version is not the image of a positive number.
+      --  Returns Lib_Version if not empty and if Symbol_Data.Symbol_Policy is
+      --  not Autonomous, otherwise returns "".
+      --  When Symbol_Data.Symbol_Policy is Autonomous, fails gnatmake if
+      --  Lib_Version is not the image of a positive number.
 
       ------------------
       -- Is_Interface --
@@ -215,8 +217,10 @@ package body MLib.Tgt is
       function Version_String return String is
          Version : Integer := 0;
       begin
-         if Lib_Version = "" then
-            return "1";
+         if Lib_Version = ""
+           or else Symbol_Data.Symbol_Policy /= Autonomous
+         then
+            return "";
 
          else
             begin
index d3fba7e..8dfbcc2 100644 (file)
@@ -160,8 +160,10 @@ package body MLib.Tgt is
       --  Returns Symbol_File, if not empty. Otherwise, returns "symvec.opt"
 
       function Version_String return String;
-      --  Returns Lib_Version if not empty, otherwise returns "1".
-      --  Fails gnatmake if Lib_Version is not the image of a positive number.
+      --  Returns Lib_Version if not empty and if Symbol_Data.Symbol_Policy is
+      --  not Autonomous, otherwise returns "".
+      --  When Symbol_Data.Symbol_Policy is Autonomous, fails gnatmake if
+      --  Lib_Version is not the image of a positive number.
 
       ------------------
       -- Is_Interface --
@@ -215,8 +217,10 @@ package body MLib.Tgt is
       function Version_String return String is
          Version : Integer := 0;
       begin
-         if Lib_Version = "" then
-            return "1";
+         if Lib_Version = ""
+           or else Symbol_Data.Symbol_Policy /= Autonomous
+         then
+            return "";
 
          else
             begin
index 2151706..4fb6831 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2003-2004 Free Software Foundation, Inc.          --
+--          Copyright (C) 2003-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- --
@@ -36,7 +36,7 @@ package body Symbols is
    Symbol_Vector   : constant String := "SYMBOL_VECTOR=(";
    Equal_Data      : constant String := "=DATA)";
    Equal_Procedure : constant String := "=PROCEDURE)";
-   Gsmatch         : constant String := "gsmatch=equal,";
+   Gsmatch         : constant String := "gsmatch=lequal,";
 
    Symbol_File_Name : String_Access := null;
    --  Name of the symbol file
@@ -668,18 +668,15 @@ package body Symbols is
                   Success := False;
                   return;
 
-               elsif Soft_Minor_ID then
-                  Minor_ID := Minor_ID + 1;
+               elsif Soft_Major_ID then
+                  Major_ID := Major_ID + 1;
+                  Minor_ID := 0;
+                  Soft_Major_ID := False;
                   Soft_Minor_ID := False;
                end if;
 
                Original_Symbols.Table (Index_1).Present := False;
                Free (Original_Symbols.Table (Index_1).Name);
-
-               if Soft_Minor_ID then
-                  Minor_ID := Minor_ID + 1;
-                  Soft_Minor_ID := False;
-               end if;
             end if;
          end loop;