summaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorVincent Celier <celier@adacore.com>2005-03-29 18:13:14 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-03-29 18:13:14 +0200
commita50c33459fc9967a388f254e93de7cdbae438a66 (patch)
tree8a1db4e7ae4271afa67025e1b59a2e88bfb8713b /gcc/ada
parentbc5f3720c12852b05a9be63752e98331f214ab3b (diff)
downloadgcc-a50c33459fc9967a388f254e93de7cdbae438a66.tar.gz
2005-03-29 Vincent Celier <celier@adacore.com>
* 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 From-SVN: r97166
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/mlib-tgt-vms-alpha.adb12
-rw-r--r--gcc/ada/mlib-tgt-vms-ia64.adb12
-rw-r--r--gcc/ada/symbols-vms-alpha.adb15
3 files changed, 22 insertions, 17 deletions
diff --git a/gcc/ada/mlib-tgt-vms-alpha.adb b/gcc/ada/mlib-tgt-vms-alpha.adb
index ca7596b22f9..ed713ca3984 100644
--- a/gcc/ada/mlib-tgt-vms-alpha.adb
+++ b/gcc/ada/mlib-tgt-vms-alpha.adb
@@ -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
diff --git a/gcc/ada/mlib-tgt-vms-ia64.adb b/gcc/ada/mlib-tgt-vms-ia64.adb
index d3fba7e708f..8dfbcc2ed80 100644
--- a/gcc/ada/mlib-tgt-vms-ia64.adb
+++ b/gcc/ada/mlib-tgt-vms-ia64.adb
@@ -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
diff --git a/gcc/ada/symbols-vms-alpha.adb b/gcc/ada/symbols-vms-alpha.adb
index 2151706bc43..4fb68318f99 100644
--- a/gcc/ada/symbols-vms-alpha.adb
+++ b/gcc/ada/symbols-vms-alpha.adb
@@ -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;