summaryrefslogtreecommitdiffstats
path: root/gcc/ada
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-22 12:24:57 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-22 12:24:57 +0000
commit7b7ad9c5488c4d997aa7a40467e79a7befddd1d2 (patch)
tree2c2f2f3cdeb10d78e9d0a86792f53fb95d5c97cd /gcc/ada
parent110eae0386ebafdc88a763a03d1c320317eca961 (diff)
downloadppe42-gcc-7b7ad9c5488c4d997aa7a40467e79a7befddd1d2.tar.gz
ppe42-gcc-7b7ad9c5488c4d997aa7a40467e79a7befddd1d2.zip
2009-06-22 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb: Minor code reorganization (avoid an unnecessary tree copy). 2009-06-22 Ed Falis <falis@adacore.com> * sysdep.c: remove include for nfsLib.h and an NFS specific error message for VxWorks 653 vThreads: not supported by the OS. * gsocket.h: disable sockets for VxWorks 653 vThreads. 2009-06-22 Robert Dewar <dewar@adacore.com> * sem_ch6.adb: Add ??? comment for bad use of Style_Check 2009-06-22 Matthew Gingell <gingell@adacore.com> Arnaud Charlet <charlet@adacore.com> * a-stzhas.adb, a-stwiha.adb, impunit.adb, a-swbwha.adb, a-shcain.adb, s-htable.adb, a-szuzha.adb, a-stunha.adb, a-stboha.adb, a-strhas.adb, g-spitbo.adb, s-strhas.adb, a-szbzha.adb, s-strhas.ads, Makefile.rtl, a-swuwha.adb: New unit System.String_Hash. Refactor redundant cut and pasted hash functions with instances of a new generic hash function. Implement a new string hashing algorithm which appears in testing to be move effective than to previous approach. * gcc-interface/Make-lang.in: Update dependencies. * gcc-interface/Makefile.in: Reindent correctly vms targets. Fix setting of TOOLS_TARGET_PAIRS for bare board platforms. Disable socket support for Vxworks 653 vThreads. Improve handling of signals on darwin. (GNATMAKE_OBJS): Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog27
-rw-r--r--gcc/ada/Makefile.rtl3
-rw-r--r--gcc/ada/a-shcain.adb20
-rw-r--r--gcc/ada/a-stboha.adb19
-rw-r--r--gcc/ada/a-strhas.adb19
-rw-r--r--gcc/ada/a-stunha.adb19
-rw-r--r--gcc/ada/a-swbwha.adb20
-rw-r--r--gcc/ada/a-swuwha.adb19
-rw-r--r--gcc/ada/a-szbzha.adb20
-rw-r--r--gcc/ada/a-szuzha.adb20
-rw-r--r--gcc/ada/exp_ch3.adb19
-rw-r--r--gcc/ada/g-spitbo.adb24
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in201
-rw-r--r--gcc/ada/gcc-interface/Makefile.in374
-rw-r--r--gcc/ada/gsocket.h4
-rw-r--r--gcc/ada/impunit.adb2
-rw-r--r--gcc/ada/s-htable.adb17
-rw-r--r--gcc/ada/s-strhas.adb (renamed from gcc/ada/a-stwiha.adb)48
-rw-r--r--gcc/ada/s-strhas.ads (renamed from gcc/ada/a-stzhas.adb)50
-rw-r--r--gcc/ada/sem_ch6.adb2
-rw-r--r--gcc/ada/sysdep.c6
21 files changed, 470 insertions, 463 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 80e21d13a5a..86b0ae32534 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,30 @@
+2009-06-22 Thomas Quinot <quinot@adacore.com>
+
+ * exp_ch3.adb: Minor code reorganization (avoid an unnecessary tree
+ copy).
+
+2009-06-22 Matthew Gingell <gingell@adacore.com>
+
+ * a-stzhas.adb, a-stwiha.adb, impunit.adb, a-swbwha.adb, a-shcain.adb,
+ s-htable.adb, a-szuzha.adb, a-stunha.adb, a-stboha.adb, a-strhas.adb,
+ g-spitbo.adb, s-strhas.adb, a-szbzha.adb, s-strhas.ads, Makefile.rtl,
+ a-swuwha.adb: New unit System.String_Hash.
+ Refactor redundant cut and pasted hash functions with instances of a
+ new generic hash function.
+ Implement a new string hashing algorithm which appears in testing to
+ be move effective than to previous approach.
+
+2009-06-22 Ed Falis <falis@adacore.com>
+
+ * sysdep.c: remove include for nfsLib.h and an NFS specific error
+ message for VxWorks 653 vThreads: not supported by the OS.
+
+ * gsocket.h: disable sockets for VxWorks 653 vThreads.
+
+2009-06-22 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch6.adb: Add ??? comment for bad use of Style_Check
+
2009-06-22 Robert Dewar <dewar@adacore.com>
* sinput.adb, sinput.ads (Expr_First_Char, Expr_Last_Char): Replaced
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 0b2bec599ef..ec3b931240f 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -213,14 +213,12 @@ GNATRTL_NONTASKING_OBJS= \
a-stunha$(objext) \
a-stwibo$(objext) \
a-stwifi$(objext) \
- a-stwiha$(objext) \
a-stwima$(objext) \
a-stwise$(objext) \
a-stwisu$(objext) \
a-stwiun$(objext) \
a-stzbou$(objext) \
a-stzfix$(objext) \
- a-stzhas$(objext) \
a-stzmap$(objext) \
a-stzsea$(objext) \
a-stzsup$(objext) \
@@ -562,6 +560,7 @@ GNATRTL_NONTASKING_OBJS= \
s-stoele$(objext) \
s-stopoo$(objext) \
s-stratt$(objext) \
+ s-strhas$(objext) \
s-ststop$(objext) \
s-soflin$(objext) \
s-memory$(objext) \
diff --git a/gcc/ada/a-shcain.adb b/gcc/ada/a-shcain.adb
index 40ad73e9ecf..8c7ccbef441 100644
--- a/gcc/ada/a-shcain.adb
+++ b/gcc/ada/a-shcain.adb
@@ -28,26 +28,14 @@
------------------------------------------------------------------------------
with Ada.Characters.Handling; use Ada.Characters.Handling;
-
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Hash_Case_Insensitive
(Key : String) return Containers.Hash_Type
is
use Ada.Containers;
-
- Tmp : Hash_Type;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
+ function Hash is new System.String_Hash.Hash
+ (Character, String, Hash_Type);
begin
- Tmp := 0;
- for J in Key'Range loop
- Tmp := Rotate_Left (Tmp, 3) + Character'Pos (To_Lower (Key (J)));
- end loop;
-
- return Tmp;
+ return Hash (To_Lower (Key));
end Ada.Strings.Hash_Case_Insensitive;
diff --git a/gcc/ada/a-stboha.adb b/gcc/ada/a-stboha.adb
index cc2cbf7632b..97ae52666bf 100644
--- a/gcc/ada/a-stboha.adb
+++ b/gcc/ada/a-stboha.adb
@@ -27,25 +27,14 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Bounded.Hash (Key : Bounded.Bounded_String)
return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash_Fun is new System.String_Hash.Hash
+ (Character, String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Bounded.Length (Key) loop
- Tmp := Rotate_Left (Tmp, 3) + Character'Pos (Bounded.Element (Key, J));
- end loop;
-
- return Tmp;
+ return Hash_Fun (Bounded.To_String (Key));
end Ada.Strings.Bounded.Hash;
diff --git a/gcc/ada/a-strhas.adb b/gcc/ada/a-strhas.adb
index 080d2951e6a..f0ee0602f5c 100644
--- a/gcc/ada/a-strhas.adb
+++ b/gcc/ada/a-strhas.adb
@@ -27,23 +27,12 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Hash (Key : String) return Containers.Hash_Type is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Character, String, Hash_Type);
begin
- Tmp := 0;
- for J in Key'Range loop
- Tmp := Rotate_Left (Tmp, 3) + Character'Pos (Key (J));
- end loop;
-
- return Tmp;
+ return Hash (Key);
end Ada.Strings.Hash;
diff --git a/gcc/ada/a-stunha.adb b/gcc/ada/a-stunha.adb
index 59fc1a9b39d..064a34294ae 100644
--- a/gcc/ada/a-stunha.adb
+++ b/gcc/ada/a-stunha.adb
@@ -27,25 +27,14 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Unbounded.Hash
(Key : Unbounded_String) return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Character, String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Key.Last loop
- Tmp := Rotate_Left (Tmp, 3) + Character'Pos (Key.Reference (J));
- end loop;
-
- return Tmp;
+ return Hash (To_String (Key));
end Ada.Strings.Unbounded.Hash;
diff --git a/gcc/ada/a-swbwha.adb b/gcc/ada/a-swbwha.adb
index a589036d3fc..643b5b0e654 100644
--- a/gcc/ada/a-swbwha.adb
+++ b/gcc/ada/a-swbwha.adb
@@ -27,27 +27,15 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Wide_Bounded.Wide_Hash
(Key : Bounded.Bounded_Wide_String)
return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Wide_Character, Wide_String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Bounded.Length (Key) loop
- Tmp := Rotate_Left (Tmp, 3) +
- Wide_Character'Pos (Bounded.Element (Key, J));
- end loop;
-
- return Tmp;
+ return Hash (Bounded.To_Wide_String (Key));
end Ada.Strings.Wide_Bounded.Wide_Hash;
diff --git a/gcc/ada/a-swuwha.adb b/gcc/ada/a-swuwha.adb
index 9e7d38caa90..e3674478325 100644
--- a/gcc/ada/a-swuwha.adb
+++ b/gcc/ada/a-swuwha.adb
@@ -27,25 +27,14 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Wide_Unbounded.Wide_Hash
(Key : Unbounded_Wide_String) return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Wide_Character, Wide_String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Key.Last loop
- Tmp := Rotate_Left (Tmp, 3) + Wide_Character'Pos (Key.Reference (J));
- end loop;
-
- return Tmp;
+ return Hash (To_Wide_String (Key));
end Ada.Strings.Wide_Unbounded.Wide_Hash;
diff --git a/gcc/ada/a-szbzha.adb b/gcc/ada/a-szbzha.adb
index 48e2727468d..9ee1e91374e 100644
--- a/gcc/ada/a-szbzha.adb
+++ b/gcc/ada/a-szbzha.adb
@@ -27,27 +27,15 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Wide_Wide_Bounded.Wide_Wide_Hash
(Key : Bounded.Bounded_Wide_Wide_String)
return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Wide_Wide_Character, Wide_Wide_String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Bounded.Length (Key) loop
- Tmp := Rotate_Left (Tmp, 3) +
- Wide_Wide_Character'Pos (Bounded.Element (Key, J));
- end loop;
-
- return Tmp;
+ return Hash (Bounded.To_Wide_Wide_String (Key));
end Ada.Strings.Wide_Wide_Bounded.Wide_Wide_Hash;
diff --git a/gcc/ada/a-szuzha.adb b/gcc/ada/a-szuzha.adb
index fe357c5ddec..13cb19b7dcd 100644
--- a/gcc/ada/a-szuzha.adb
+++ b/gcc/ada/a-szuzha.adb
@@ -27,26 +27,14 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Hash
(Key : Unbounded_Wide_Wide_String) return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Wide_Wide_Character, Wide_Wide_String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Key.Last loop
- Tmp := Rotate_Left (Tmp, 3) +
- Wide_Wide_Character'Pos (Key.Reference (J));
- end loop;
-
- return Tmp;
+ return Hash (To_Wide_Wide_String (Key));
end Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Hash;
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index 458f300b8dd..3b2cc64a0bd 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -1895,14 +1895,17 @@ package body Exp_Ch3 is
and then not (Nkind_In (Kind, N_Aggregate, N_Extension_Aggregate))
and then not Is_Inherently_Limited_Type (Typ)
then
- Append_List_To (Res,
- Make_Adjust_Call (
- Ref => New_Copy_Tree (Lhs, New_Scope => Proc_Id),
- Typ => Etype (Id),
- Flist_Ref =>
- Find_Final_List
- (Etype (Id), New_Copy_Tree (Lhs, New_Scope => Proc_Id)),
- With_Attach => Make_Integer_Literal (Loc, 1)));
+ declare
+ Ref : constant Node_Id :=
+ New_Copy_Tree (Lhs, New_Scope => Proc_Id);
+ begin
+ Append_List_To (Res,
+ Make_Adjust_Call (
+ Ref => Ref,
+ Typ => Etype (Id),
+ Flist_Ref => Find_Final_List (Etype (Id), Ref),
+ With_Attach => Make_Integer_Literal (Loc, 1)));
+ end;
end if;
return Res;
diff --git a/gcc/ada/g-spitbo.adb b/gcc/ada/g-spitbo.adb
index 2015bb2eee7..5b5e2a78e04 100644
--- a/gcc/ada/g-spitbo.adb
+++ b/gcc/ada/g-spitbo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2007, AdaCore --
+-- Copyright (C) 1998-2009, AdaCore --
-- --
-- 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- --
@@ -37,6 +37,8 @@ with Ada.Strings.Unbounded.Aux; use Ada.Strings.Unbounded.Aux;
with GNAT.Debug_Utilities; use GNAT.Debug_Utilities;
with GNAT.IO; use GNAT.IO;
+with System.String_Hash;
+
with Ada.Unchecked_Deallocation;
package body GNAT.Spitbol is
@@ -326,8 +328,8 @@ package body GNAT.Spitbol is
-- Local Subprograms --
-----------------------
- function Hash (Str : String) return Unsigned_32;
- -- Compute hash function for given String
+ function Hash is new System.String_Hash.Hash
+ (Character, String, Unsigned_32);
------------
-- Adjust --
@@ -613,22 +615,6 @@ package body GNAT.Spitbol is
end if;
end Get;
- ----------
- -- Hash --
- ----------
-
- function Hash (Str : String) return Unsigned_32 is
- Result : Unsigned_32 := Str'Length;
-
- begin
- for J in Str'Range loop
- Result := Rotate_Left (Result, 3) +
- Unsigned_32 (Character'Pos (Str (J)));
- end loop;
-
- return Result;
- end Hash;
-
-------------
-- Present --
-------------
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 83b74fa4ff2..7b996f7723b 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -120,8 +120,8 @@ GNAT1_C_OBJS = ada/b_gnat1.o ada/adadecode.o ada/adaint.o ada/cstreams.o \
GNAT_ADA_OBJS = ada/s-bitops.o ada/ada.o ada/a-charac.o ada/a-chlat1.o ada/a-except.o \
ada/a-elchha.o ada/a-ioexce.o \
- ada/s-memory.o ada/s-carun8.o ada/s-casuti.o ada/s-strcom.o ada/s-purexc.o \
- ada/s-htable.o ada/s-traceb.o ada/s-mastop.o ada/ali.o \
+ ada/s-memory.o ada/s-carun8.o ada/s-casuti.o ada/s-strcom.o ada/s-strhas.o \
+ ada/s-purexc.o ada/s-htable.o ada/s-traceb.o ada/s-mastop.o ada/ali.o \
ada/alloc.o ada/atree.o ada/butil.o ada/casing.o ada/checks.o ada/comperr.o \
ada/csets.o ada/cstand.o ada/debug.o ada/debug_a.o ada/einfo.o ada/elists.o \
ada/errout.o ada/erroutc.o ada/err_vars.o ada/eval_fat.o ada/exp_attr.o \
@@ -262,6 +262,7 @@ GNATBIND_OBJS = \
ada/s-stache.o \
ada/s-stalib.o \
ada/s-stoele.o \
+ ada/s-strhas.o \
ada/s-strops.o \
ada/s-traceb.o \
ada/s-traent.o \
@@ -1243,22 +1244,24 @@ ada/ada.o : ada/ada.ads ada/system.ads
ada/ali-util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/ali.ads ada/ali-util.ads ada/ali-util.adb \
- ada/alloc.ads ada/atree.ads ada/binderr.ads ada/casing.ads \
- ada/csets.ads ada/debug.ads ada/einfo.ads ada/err_vars.ads ada/gnat.ads \
- ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads \
- ada/namet.ads ada/namet.adb ada/opt.ads ada/osint.ads ada/output.ads \
- ada/rident.ads ada/scans.ads ada/scng.ads ada/scng.adb ada/sinfo.ads \
- ada/sinput.ads ada/sinput.adb ada/sinput-c.ads ada/snames.ads \
- ada/stringt.ads ada/stringt.adb ada/styleg.ads ada/styleg.adb \
- ada/stylesw.ads ada/system.ads ada/s-carun8.ads ada/s-crc32.ads \
- ada/s-crc32.adb ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb \
+ ada/alloc.ads ada/atree.ads ada/atree.adb ada/binderr.ads \
+ ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
+ ada/err_vars.ads ada/gnat.ads ada/g-htable.ads ada/gnatvsn.ads \
+ ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \
+ ada/nlists.ads ada/opt.ads ada/osint.ads ada/output.ads ada/rident.ads \
+ ada/scans.ads ada/scng.ads ada/scng.adb ada/sinfo.ads ada/sinput.ads \
+ ada/sinput.adb ada/sinput-c.ads ada/snames.ads ada/stringt.ads \
+ ada/stringt.adb ada/styleg.ads ada/styleg.adb ada/stylesw.ads \
+ ada/system.ads ada/s-carun8.ads ada/s-crc32.ads ada/s-crc32.adb \
+ ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads \
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
- ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
- ada/s-unstyp.ads ada/s-utf_32.ads ada/s-utf_32.adb ada/s-wchcon.ads \
- ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/types.adb \
- ada/uintp.ads ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads \
- ada/urealp.ads ada/urealp.adb ada/widechar.ads
+ ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads \
+ ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads ada/s-utf_32.adb \
+ ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
+ ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb \
+ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
+ ada/widechar.ads
ada/ali.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \
ada/ali.ads ada/ali.adb ada/alloc.ads ada/butil.ads ada/casing.ads \
@@ -1268,10 +1271,10 @@ ada/ali.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \
ada/system.ads ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads \
ada/s-htable.adb ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
- ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
- ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
- ada/table.adb ada/tree_io.ads ada/types.ads ada/unchconv.ads \
- ada/unchdeal.ads ada/widechar.ads
+ ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads \
+ ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+ ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads \
+ ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads
ada/alloc.o : ada/alloc.ads ada/system.ads
@@ -1523,18 +1526,19 @@ ada/errout.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/urealp.ads ada/widechar.ads
ada/erroutc.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
- ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/casing.ads \
- ada/debug.ads ada/einfo.ads ada/err_vars.ads ada/erroutc.ads \
- ada/erroutc.adb ada/hostparm.ads ada/interfac.ads ada/namet.ads \
- ada/namet.adb ada/opt.ads ada/output.ads ada/output.adb ada/rident.ads \
- ada/sinfo.ads ada/sinput.ads ada/sinput.adb ada/snames.ads \
- ada/system.ads ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads \
- ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
- ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
- ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
- ada/table.ads ada/table.adb ada/targparm.ads ada/tree_io.ads \
- ada/types.ads ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads \
- ada/urealp.ads ada/widechar.ads
+ ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
+ ada/casing.ads ada/debug.ads ada/einfo.ads ada/err_vars.ads \
+ ada/erroutc.ads ada/erroutc.adb ada/hostparm.ads ada/interfac.ads \
+ ada/namet.ads ada/namet.adb ada/nlists.ads ada/opt.ads ada/output.ads \
+ ada/output.adb ada/rident.ads ada/sinfo.ads ada/sinput.ads \
+ ada/sinput.adb ada/snames.ads ada/system.ads ada/s-exctab.ads \
+ ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
+ ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
+ ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
+ ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
+ ada/table.adb ada/targparm.ads ada/tree_io.ads ada/types.ads \
+ ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
+ ada/widechar.ads
ada/eval_fat.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
@@ -2010,11 +2014,11 @@ ada/exp_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
- ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
- ada/table.ads ada/table.adb ada/tbuild.ads ada/tbuild.adb \
- ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
- ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
- ada/urealp.ads
+ ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+ ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tbuild.ads \
+ ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
+ ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
+ ada/unchdeal.ads ada/urealp.ads
ada/exp_fixd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
@@ -2265,10 +2269,10 @@ ada/fmap.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/gnat.ads ada/g-htable.ads ada/hostparm.ads ada/namet.ads \
ada/opt.ads ada/osint.ads ada/output.ads ada/system.ads \
ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb ada/s-memory.ads \
- ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads ada/s-string.ads \
- ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
- ada/table.adb ada/tree_io.ads ada/types.ads ada/unchconv.ads \
- ada/unchdeal.ads
+ ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads ada/s-strhas.ads \
+ ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+ ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads \
+ ada/unchconv.ads ada/unchdeal.ads
ada/fname-uf.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/casing.ads ada/debug.ads \
@@ -2277,10 +2281,10 @@ ada/fname-uf.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/namet.ads ada/opt.ads ada/osint.ads ada/output.ads ada/rident.ads \
ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb \
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
- ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
- ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
- ada/tree_io.ads ada/types.ads ada/uname.ads ada/unchconv.ads \
- ada/unchdeal.ads ada/widechar.ads
+ ada/s-stalib.ads ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \
+ ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
+ ada/targparm.ads ada/tree_io.ads ada/types.ads ada/uname.ads \
+ ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads
ada/fname.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/fname.ads \
@@ -2472,18 +2476,19 @@ ada/inline.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads
ada/instpar.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
- ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/casing.ads \
- ada/debug.ads ada/einfo.ads ada/gnatvsn.ads ada/hostparm.ads \
- ada/instpar.ads ada/instpar.adb ada/interfac.ads ada/namet.ads \
- ada/opt.ads ada/output.ads ada/sdefault.ads ada/sinfo.ads \
- ada/sinput.ads ada/sinput.adb ada/sinput-l.ads ada/snames.ads \
- ada/system.ads ada/s-carun8.ads ada/s-crc32.ads ada/s-crc32.adb \
- ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
- ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
- ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
- ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
- ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \
- ada/unchdeal.ads ada/urealp.ads ada/widechar.ads
+ ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
+ ada/casing.ads ada/debug.ads ada/einfo.ads ada/gnatvsn.ads \
+ ada/hostparm.ads ada/instpar.ads ada/instpar.adb ada/interfac.ads \
+ ada/namet.ads ada/nlists.ads ada/opt.ads ada/output.ads \
+ ada/sdefault.ads ada/sinfo.ads ada/sinput.ads ada/sinput.adb \
+ ada/sinput-l.ads ada/snames.ads ada/system.ads ada/s-carun8.ads \
+ ada/s-crc32.ads ada/s-crc32.adb ada/s-exctab.ads ada/s-imenne.ads \
+ ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \
+ ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+ ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+ ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
+ ada/types.ads ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads \
+ ada/urealp.ads ada/widechar.ads
ada/interfac.o : ada/interfac.ads ada/system.ads
@@ -2718,10 +2723,10 @@ ada/osint.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/s-casuti.ads ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb \
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
- ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
- ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
- ada/targparm.ads ada/tree_io.ads ada/types.ads ada/unchconv.ads \
- ada/unchdeal.ads ada/widechar.ads
+ ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads \
+ ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
+ ada/table.adb ada/targparm.ads ada/tree_io.ads ada/types.ads \
+ ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads
ada/output.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/hostparm.ads ada/output.ads ada/output.adb \
@@ -2777,21 +2782,22 @@ ada/prep.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/unchdeal.ads ada/urealp.ads
ada/prepcomp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
- ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/casing.ads \
- ada/csets.ads ada/debug.ads ada/einfo.ads ada/err_vars.ads \
- ada/errout.ads ada/erroutc.ads ada/gnat.ads ada/g-dyntab.ads \
- ada/g-dyntab.adb ada/g-hesorg.ads ada/hostparm.ads ada/interfac.ads \
- ada/lib.ads ada/lib-writ.ads ada/namet.ads ada/opt.ads ada/osint.ads \
- ada/output.ads ada/prep.ads ada/prepcomp.ads ada/prepcomp.adb \
- ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb ada/sinfo.ads \
- ada/sinput.ads ada/sinput.adb ada/sinput-l.ads ada/snames.ads \
- ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
- ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-crc32.ads \
- ada/s-crc32.adb ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads \
- ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
- ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
- ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads \
- ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
+ ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
+ ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
+ ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/gnat.ads \
+ ada/g-dyntab.ads ada/g-dyntab.adb ada/g-hesorg.ads ada/hostparm.ads \
+ ada/interfac.ads ada/lib.ads ada/lib-writ.ads ada/namet.ads \
+ ada/nlists.ads ada/opt.ads ada/osint.ads ada/output.ads ada/prep.ads \
+ ada/prepcomp.ads ada/prepcomp.adb ada/scans.ads ada/scn.ads \
+ ada/scng.ads ada/scng.adb ada/sinfo.ads ada/sinput.ads ada/sinput.adb \
+ ada/sinput-l.ads ada/snames.ads ada/stringt.ads ada/stringt.adb \
+ ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \
+ ada/system.ads ada/s-crc32.ads ada/s-crc32.adb ada/s-exctab.ads \
+ ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
+ ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
+ ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
+ ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \
+ ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads
ada/repinfo.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
@@ -2904,10 +2910,10 @@ ada/s-exctab.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/system.ads ada/s-exctab.ads ada/s-exctab.adb \
ada/s-htable.ads ada/s-htable.adb ada/s-parame.ads ada/s-soflin.ads \
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
- ada/s-traent.ads
+ ada/s-strhas.ads ada/s-traent.ads
ada/s-htable.o : ada/ada.ads ada/a-uncdea.ads ada/system.ads \
- ada/s-htable.ads ada/s-htable.adb
+ ada/s-htable.ads ada/s-htable.adb ada/s-strhas.ads
ada/s-imenne.o : ada/ada.ads ada/a-unccon.ads ada/system.ads \
ada/s-imenne.ads ada/s-imenne.adb
@@ -2974,6 +2980,8 @@ ada/s-stoele.o : ada/ada.ads ada/a-unccon.ads ada/system.ads \
ada/s-strcom.o : ada/ada.ads ada/a-unccon.ads ada/system.ads \
ada/s-strcom.ads ada/s-strcom.adb
+ada/s-strhas.o : ada/system.ads ada/s-strhas.ads ada/s-strhas.adb
+
ada/s-string.o : ada/ada.ads ada/a-uncdea.ads ada/system.ads \
ada/s-string.ads ada/s-string.adb
@@ -3259,12 +3267,12 @@ ada/sem_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads \
ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
- ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
- ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
- ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
- ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
- ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
- ada/widechar.ads
+ ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \
+ ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \
+ ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
+ ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
+ ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
+ ada/urealp.ads ada/urealp.adb ada/widechar.ads
ada/sem_ch13.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
@@ -3624,9 +3632,9 @@ ada/sem_elim.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \
ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb \
ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
- ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
- ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
- ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
+ ada/s-stalib.ads ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \
+ ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
+ ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads
ada/sem_eval.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
@@ -3844,12 +3852,12 @@ ada/sem_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
- ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads \
- ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
- ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
- ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
- ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
- ada/widechar.ads
+ ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+ ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
+ ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
+ ada/ttypes.ads ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb \
+ ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
+ ada/urealp.adb ada/widechar.ads
ada/sem_vfpt.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
@@ -4186,9 +4194,10 @@ ada/uintp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/g-htable.ads ada/hostparm.ads ada/opt.ads ada/output.ads \
ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb \
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads \
- ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
- ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
- ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads
+ ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+ ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
+ ada/types.ads ada/uintp.ads ada/uintp.adb ada/unchconv.ads \
+ ada/unchdeal.ads
ada/uname.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 8a9bbe3a59b..f2ca2fbc576 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -184,7 +184,7 @@ TARGET_ADA_SRCS =
TOOLSCASE =
# Multilib handling
-MULTISUBDIR =
+MULTISUBDIR =
RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
# End of variables for you to override.
@@ -293,14 +293,13 @@ GNATMAKE_OBJS = a-except.o ali.o ali-util.o s-casuti.o \
erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o \
gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o \
make.o makeusg.o makeutl.o mlib.o mlib-fil.o mlib-prj.o mlib-tgt.o \
- mlib-tgt-specific.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o output.o \
- prj.o prj-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o prj-err.o prj-ext.o prj-nmsc.o \
- prj-pars.o prj-part.o prj-proc.o prj-strt.o prj-tree.o prj-util.o \
- rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o \
- scans.o scng.o sdefault.o sfn_scan.o s-purexc.o s-htable.o \
- sinfo.o sinput.o sinput-c.o sinput-p.o \
- snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o switch.o switch-m.o \
- table.o targparm.o tempdir.o tree_io.o types.o \
+ mlib-tgt-specific.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o \
+ output.o prj.o prj-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o \
+ prj-err.o prj-ext.o prj-nmsc.o prj-pars.o prj-part.o prj-proc.o prj-strt.o \
+ prj-tree.o prj-util.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o \
+ scans.o scng.o sdefault.o sfn_scan.o s-purexc.o s-htable.o sinfo.o sinput.o \
+ sinput-c.o sinput-p.o snames.o stand.o stringt.o styleg.o stylesw.o system.o \
+ validsw.o switch.o switch-m.o table.o targparm.o tempdir.o tree_io.o types.o \
uintp.o uname.o urealp.o usage.o widechar.o \
$(EXTRA_GNATMAKE_OBJS)
@@ -494,23 +493,40 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks,$(targ))),)
EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
else
- LIBGNAT_TARGET_PAIRS += \
- s-interr.adb<s-interr-hwint.adb \
- s-tpopsp.adb<s-tpopsp-vxworks.adb
-
- ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
+ ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
LIBGNAT_TARGET_PAIRS += \
- s-vxwext.ads<s-vxwext-kernel.ads \
- s-vxwext.adb<s-vxwext-kernel.adb \
- system.ads<system-vxworks-ppc-kernel.ads
+ s-vxwext.ads<s-vxwext-rtp.ads \
+ s-vxwext.adb<s-vxwext-rtp.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
+ system.ads<system-vxworks-ppc-rtp.ads
EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
else
- LIBGNAT_TARGET_PAIRS += \
- system.ads<system-vxworks-ppc.ads
- endif
+ ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
+ LIBGNAT_TARGET_PAIRS += \
+ s-interr.adb<s-interr-hwint.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
+ s-vxwext.ads<s-vxwext-kernel.ads \
+ s-vxwext.adb<s-vxwext-kernel-smp.adb \
+ system.ads<system-vxworks-ppc-kernel.ads
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ s-interr.adb<s-interr-hwint.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks.adb
+
+ ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
+ LIBGNAT_TARGET_PAIRS += \
+ s-vxwext.ads<s-vxwext-kernel.ads \
+ s-vxwext.adb<s-vxwext-kernel.adb \
+ system.ads<system-vxworks-ppc-kernel.ads
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ system.ads<system-vxworks-ppc.ads
+ endif
- EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
+ endif
+ EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
+ endif
endif
EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
@@ -543,11 +559,6 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworksae,$(targ))),)
s-vxwext.adb<s-vxwext-noints.adb \
s-vxwext.ads<s-vxwext-vthreads.ads \
s-vxwork.ads<s-vxwork-ppc.ads \
- g-socthi.ads<g-socthi-vxworks.ads \
- g-socthi.adb<g-socthi-vxworks.adb \
- g-stsifd.adb<g-stsifd-sockets.adb \
- g-sttsne.adb<g-sttsne-vxworks.adb \
- g-sttsne.ads<g-sttsne-locking.ads \
g-trasym.ads<g-trasym-unimplemented.ads \
g-trasym.adb<g-trasym-unimplemented.adb \
system.ads<system-vxworks-ppc-vthread.ads
@@ -562,8 +573,18 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworksae,$(targ))),)
# Extra pairs for the vthreads runtime
ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
LIBGNAT_TARGET_PAIRS += \
- s-thread.adb<s-thread-ae653.adb
+ s-thread.adb<s-thread-ae653.adb \
+ $(DUMMY_SOCKETS_TARGET_PAIRS)
+
+ GNATRTL_SOCKETS_OBJS =
EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ g-socthi.ads<g-socthi-vxworks.ads \
+ g-socthi.adb<g-socthi-vxworks.adb \
+ g-stsifd.adb<g-stsifd-sockets.adb \
+ g-sttsne.adb<g-sttsne-vxworks.adb \
+ g-sttsne.ads<g-sttsne-locking.ads
endif
ifeq ($(strip $(filter-out yes,$(TRACE))),)
@@ -604,11 +625,6 @@ ifeq ($(strip $(filter-out %86 wrs vxworksae,$(targ))),)
s-vxwext.adb<s-vxwext-noints.adb \
s-vxwext.ads<s-vxwext-vthreads.ads \
s-vxwork.ads<s-vxwork-x86.ads \
- g-socthi.ads<g-socthi-vxworks.ads \
- g-socthi.adb<g-socthi-vxworks.adb \
- g-stsifd.adb<g-stsifd-sockets.adb \
- g-sttsne.adb<g-sttsne-vxworks.adb \
- g-sttsne.ads<g-sttsne-locking.ads \
g-trasym.ads<g-trasym-unimplemented.ads \
g-trasym.adb<g-trasym-unimplemented.adb \
system.ads<system-vxworks-x86.ads
@@ -623,8 +639,18 @@ ifeq ($(strip $(filter-out %86 wrs vxworksae,$(targ))),)
# Extra pairs for the vthreads runtime
ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
LIBGNAT_TARGET_PAIRS += \
- s-thread.adb<s-thread-ae653.adb
+ s-thread.adb<s-thread-ae653.adb \
+ $(DUMMY_SOCKETS_TARGET_PAIRS)
+
+ GNATRTL_SOCKETS_OBJS =
EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ g-socthi.ads<g-socthi-vxworks.ads \
+ g-socthi.adb<g-socthi-vxworks.adb \
+ g-stsifd.adb<g-stsifd-sockets.adb \
+ g-sttsne.adb<g-sttsne-vxworks.adb \
+ g-sttsne.ads<g-sttsne-locking.ads
endif
ifeq ($(strip $(filter-out yes,$(TRACE))),)
@@ -726,25 +752,41 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
else
- LIBGNAT_TARGET_PAIRS += \
- s-interr.adb<s-interr-hwint.adb \
- s-tpopsp.adb<s-tpopsp-vxworks.adb
-
- ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
+ ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
LIBGNAT_TARGET_PAIRS += \
- s-vxwext.ads<s-vxwext-kernel.ads \
- s-vxwext.adb<s-vxwext-kernel.adb \
- system.ads<system-vxworks-x86-kernel.ads
+ s-vxwext.ads<s-vxwext-rtp.ads \
+ s-vxwext.adb<s-vxwext-rtp.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
+ system.ads<system-vxworks-x86-rtp.ads
EXTRA_GNATRTL_NONTASKING_OBJS=s-vxwexc.o
else
- LIBGNAT_TARGET_PAIRS += \
- system.ads<system-vxworks-x86.ads
- endif
+ ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
+ LIBGNAT_TARGET_PAIRS += \
+ s-interr.adb<s-interr-hwint.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks-tls.adb \
+ s-vxwext.ads<s-vxwext-kernel.ads \
+ s-vxwext.adb<s-vxwext-kernel-smp.adb \
+ system.ads<system-vxworks-x86-kernel.ads
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ s-interr.adb<s-interr-hwint.adb \
+ s-tpopsp.adb<s-tpopsp-vxworks.adb
+
+ ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
+ LIBGNAT_TARGET_PAIRS += \
+ s-vxwext.ads<s-vxwext-kernel.ads \
+ s-vxwext.adb<s-vxwext-kernel.adb \
+ system.ads<system-vxworks-x86-kernel.ads
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ system.ads<system-vxworks-x86.ads
+ endif
+ endif
- EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
+ EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
+ endif
endif
-
EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o s-vxwext.o
EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
@@ -988,9 +1030,9 @@ ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),)
s-osinte.ads<s-osinte-linux.ads \
s-osprim.adb<s-osprim-posix.adb \
s-taprop.adb<s-taprop-linux.adb \
- s-taspri.ads<s-taspri-posix.ads \
s-tasinf.ads<s-tasinf-linux.ads \
s-tasinf.adb<s-tasinf-linux.adb \
+ s-taspri.ads<s-taspri-posix.ads \
system.ads<system-linux-x86.ads
EH_MECHANISM=-gcc
@@ -1356,94 +1398,94 @@ LN_S = cp -p
endif
ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ))),)
-ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)
- LIBGNAT_TARGET_PAIRS_AUX1 = \
- g-enblsp.adb<g-enblsp-vms-ia64.adb \
- g-trasym.adb<g-trasym-vms-ia64.adb \
- s-asthan.adb<s-asthan-vms-ia64.adb \
- s-osinte.adb<s-osinte-vms-ia64.adb \
- s-osinte.ads<s-osinte-vms-ia64.ads \
- s-vaflop.adb<s-vaflop-vms-ia64.adb \
- g-trasym.ads<g-trasym-unimplemented.ads \
- g-trasym.adb<g-trasym-unimplemented.adb \
- system.ads<system-vms-ia64.ads
-
- LIBGNAT_TARGET_PAIRS_AUX2 = \
- s-parame.ads<s-parame-vms-ia64.ads
-else
-ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)
- LIBGNAT_TARGET_PAIRS_AUX1 = \
- g-enblsp.adb<g-enblsp-vms-alpha.adb \
- g-trasym.adb<g-trasym-vms-alpha.adb \
- s-traent.adb<s-traent-vms.adb \
- s-traent.ads<s-traent-vms.ads \
- s-asthan.adb<s-asthan-vms-alpha.adb \
- s-osinte.adb<s-osinte-vms.adb \
- s-osinte.ads<s-osinte-vms.ads \
- s-vaflop.adb<s-vaflop-vms-alpha.adb \
- system.ads<system-vms_64.ads
-
-ifeq ($(strip $(filter-out express EXPRESS,$(THREAD_KIND))),)
- LIBGNAT_TARGET_PAIRS_AUX2 = \
- s-parame.ads<s-parame-vms-restrict.ads
-else
- LIBGNAT_TARGET_PAIRS_AUX2 = \
- s-parame.ads<s-parame-vms-alpha.ads
-endif
-endif
-endif
+ ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)
+ LIBGNAT_TARGET_PAIRS_AUX1 = \
+ g-enblsp.adb<g-enblsp-vms-ia64.adb \
+ g-trasym.adb<g-trasym-vms-ia64.adb \
+ s-asthan.adb<s-asthan-vms-ia64.adb \
+ s-osinte.adb<s-osinte-vms-ia64.adb \
+ s-osinte.ads<s-osinte-vms-ia64.ads \
+ s-vaflop.adb<s-vaflop-vms-ia64.adb \
+ g-trasym.ads<g-trasym-unimplemented.ads \
+ g-trasym.adb<g-trasym-unimplemented.adb \
+ system.ads<system-vms-ia64.ads
+
+ LIBGNAT_TARGET_PAIRS_AUX2 = \
+ s-parame.ads<s-parame-vms-ia64.ads
+ else
+ ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)
+ LIBGNAT_TARGET_PAIRS_AUX1 = \
+ g-enblsp.adb<g-enblsp-vms-alpha.adb \
+ g-trasym.adb<g-trasym-vms-alpha.adb \
+ s-traent.adb<s-traent-vms.adb \
+ s-traent.ads<s-traent-vms.ads \
+ s-asthan.adb<s-asthan-vms-alpha.adb \
+ s-osinte.adb<s-osinte-vms.adb \
+ s-osinte.ads<s-osinte-vms.ads \
+ s-vaflop.adb<s-vaflop-vms-alpha.adb \
+ system.ads<system-vms_64.ads
+
+ ifeq ($(strip $(filter-out express EXPRESS,$(THREAD_KIND))),)
+ LIBGNAT_TARGET_PAIRS_AUX2 = \
+ s-parame.ads<s-parame-vms-restrict.ads
+ else
+ LIBGNAT_TARGET_PAIRS_AUX2 = \
+ s-parame.ads<s-parame-vms-alpha.ads
+ endif
+ endif
+ endif
LIBGNAT_TARGET_PAIRS = \
- a-caldel.adb<a-caldel-vms.adb \
- a-calend.adb<a-calend-vms.adb \
- a-calend.ads<a-calend-vms.ads \
- a-dirval.adb<a-dirval-vms.adb \
- a-excpol.adb<a-excpol-abort.adb \
- a-intnam.ads<a-intnam-vms.ads \
- a-numaux.ads<a-numaux-vms.ads \
- g-expect.adb<g-expect-vms.adb \
- g-socthi.ads<g-socthi-vms.ads \
- g-socthi.adb<g-socthi-vms.adb \
- g-stsifd.adb<g-stsifd-sockets.adb \
- g-sttsne.adb<g-sttsne-locking.adb \
- g-sttsne.ads<g-sttsne-locking.ads \
- i-c.ads<i-c-vms_64.ads \
- i-cstrin.ads<i-cstrin-vms_64.ads \
- i-cstrin.adb<i-cstrin-vms_64.adb \
- i-cpoint.ads<i-cpoint-vms_64.ads \
- i-cpoint.adb<i-cpoint-vms_64.adb \
- i-cstrea.adb<i-cstrea-vms.adb \
- memtrack.adb<memtrack-vms_64.adb \
- s-auxdec.ads<s-auxdec-vms_64.ads \
- s-crtl.ads<s-crtl-vms_64.ads \
- s-inmaop.adb<s-inmaop-vms.adb \
- s-interr.adb<s-interr-vms.adb \
- s-intman.adb<s-intman-vms.adb \
- s-intman.ads<s-intman-vms.ads \
- s-memory.adb<s-memory-vms_64.adb \
- s-memory.ads<s-memory-vms_64.ads \
- s-osprim.adb<s-osprim-vms.adb \
- s-osprim.ads<s-osprim-vms.ads \
- s-taprop.adb<s-taprop-vms.adb \
- s-tasdeb.adb<s-tasdeb-vms.adb \
- s-taspri.ads<s-taspri-vms.ads \
- s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
- s-tpopde.adb<s-tpopde-vms.adb \
- s-tpopde.ads<s-tpopde-vms.ads \
- $(LIBGNAT_TARGET_PAIRS_AUX1) \
- $(LIBGNAT_TARGET_PAIRS_AUX2)
-
-ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)
- TOOLS_TARGET_PAIRS= \
- mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
- symbols.adb<symbols-vms.adb \
- symbols-processing.adb<symbols-processing-vms-ia64.adb
-else
- TOOLS_TARGET_PAIRS= \
- mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
- symbols.adb<symbols-vms.adb \
- symbols-processing.adb<symbols-processing-vms-alpha.adb
-endif
+ a-caldel.adb<a-caldel-vms.adb \
+ a-calend.adb<a-calend-vms.adb \
+ a-calend.ads<a-calend-vms.ads \
+ a-dirval.adb<a-dirval-vms.adb \
+ a-excpol.adb<a-excpol-abort.adb \
+ a-intnam.ads<a-intnam-vms.ads \
+ a-numaux.ads<a-numaux-vms.ads \
+ g-expect.adb<g-expect-vms.adb \
+ g-socthi.ads<g-socthi-vms.ads \
+ g-socthi.adb<g-socthi-vms.adb \
+ g-stsifd.adb<g-stsifd-sockets.adb \
+ g-sttsne.adb<g-sttsne-locking.adb \
+ g-sttsne.ads<g-sttsne-locking.ads \
+ i-c.ads<i-c-vms_64.ads \
+ i-cstrin.ads<i-cstrin-vms_64.ads \
+ i-cstrin.adb<i-cstrin-vms_64.adb \
+ i-cpoint.ads<i-cpoint-vms_64.ads \
+ i-cpoint.adb<i-cpoint-vms_64.adb \
+ i-cstrea.adb<i-cstrea-vms.adb \
+ memtrack.adb<memtrack-vms_64.adb \
+ s-auxdec.ads<s-auxdec-vms_64.ads \
+ s-crtl.ads<s-crtl-vms_64.ads \
+ s-inmaop.adb<s-inmaop-vms.adb \
+ s-interr.adb<s-interr-vms.adb \
+ s-intman.adb<s-intman-vms.adb \
+ s-intman.ads<s-intman-vms.ads \
+ s-memory.adb<s-memory-vms_64.adb \
+ s-memory.ads<s-memory-vms_64.ads \
+ s-osprim.adb<s-osprim-vms.adb \
+ s-osprim.ads<s-osprim-vms.ads \
+ s-taprop.adb<s-taprop-vms.adb \
+ s-tasdeb.adb<s-tasdeb-vms.adb \
+ s-taspri.ads<s-taspri-vms.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ s-tpopde.adb<s-tpopde-vms.adb \
+ s-tpopde.ads<s-tpopde-vms.ads \
+ $(LIBGNAT_TARGET_PAIRS_AUX1) \
+ $(LIBGNAT_TARGET_PAIRS_AUX2)
+
+ ifeq ($(strip $(filter-out ia64 hp vms% openvms%,$(targ))),)
+ TOOLS_TARGET_PAIRS= \
+ mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
+ symbols.adb<symbols-vms.adb \
+ symbols-processing.adb<symbols-processing-vms-ia64.adb
+ else
+ TOOLS_TARGET_PAIRS= \
+ mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
+ symbols.adb<symbols-vms.adb \
+ symbols-processing.adb<symbols-processing-vms-alpha.adb
+ endif
adamsg.o: adamsg.msg
-$(DECC) --cc=message adamsg.msg -o adamsg.o
@@ -1453,10 +1495,10 @@ adamsg.o: adamsg.msg
GMEM_LIB = gmemlib
EH_MECHANISM=-gcc
GNATLIB_SHARED=gnatlib-shared-vms
-ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)
- EXTRA_LIBGNAT_SRCS=vmshandler.asm
- EXTRA_LIBGNAT_OBJS=vmshandler.o
-endif
+ ifeq ($(strip $(filter-out alpha64 dec vms% openvms% alphavms%,$(targ))),)
+ EXTRA_LIBGNAT_SRCS=vmshandler.asm
+ EXTRA_LIBGNAT_OBJS=vmshandler.o
+ endif
EXTRA_LIBGNAT_SRCS+=adamsg.msg
EXTRA_LIBGNAT_OBJS+=adamsg.o
EXTRA_GNATRTL_TASKING_OBJS=s-tpopde.o
@@ -1471,6 +1513,12 @@ endif
LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION))
endif
+ifeq ($(strip $(filter-out avr none powerpc% eabispe leon% erc32% unknown elf,$(targ))),)
+ TOOLS_TARGET_PAIRS=\
+ mlib-tgt-specific.adb<mlib-tgt-specific-xi.adb \
+ indepsw.adb<indepsw-gnu.adb
+endif
+
ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-dirval.adb<a-dirval-mingw.adb \
@@ -1799,7 +1847,7 @@ ifeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),)
TOOLS_TARGET_PAIRS = \
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-linux.adb
-
+
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
EH_MECHANISM=-gcc
MISCLIB=
@@ -1842,6 +1890,32 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
LIBRARY_VERSION := $(LIB_VERSION)
endif
+ifeq ($(strip $(filter-out ia64% hp hpux%,$(targ))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<a-intnam-hpux.ads \
+ s-inmaop.adb<s-inmaop-posix.adb \
+ s-intman.adb<s-intman-posix.adb \
+ s-osinte.adb<s-osinte-posix.adb \
+ s-osinte.ads<s-osinte-hpux.ads \
+ s-osprim.adb<s-osprim-posix.adb \
+ s-taprop.adb<s-taprop-posix.adb \
+ s-taspri.ads<s-taspri-posix-noaltstack.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ system.ads<system-hpux-ia64.ads
+
+ TOOLS_TARGET_PAIRS = \
+ mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb
+
+ MISCLIB=
+ THREADSLIB=-lpthread
+ GNATLIB_SHARED=gnatlib-shared-dual
+ GMEM_LIB = gmemlib
+ soext = .sl
+ SO_OPTS = -Wl,+h,
+ PREFIX_OBJS=$(PREFIX_REAL_OBJS)
+ LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-linux.ads \
@@ -1910,10 +1984,10 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-darwin.ads \
s-inmaop.adb<s-inmaop-posix.adb \
- s-intman.adb<s-intman-posix.adb \
+ s-intman.adb<s-intman-susv3.adb \
s-osinte.adb<s-osinte-darwin.adb \
s-osinte.ads<s-osinte-darwin.ads \
- s-osprim.adb<s-osprim-posix.adb \
+ s-osprim.adb<s-osprim-darwin.adb \
s-taprop.adb<s-taprop-posix.adb \
s-taspri.ads<s-taspri-posix.ads \
s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
@@ -1934,10 +2008,10 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-darwin.ads \
s-inmaop.adb<s-inmaop-posix.adb \
- s-intman.adb<s-intman-posix.adb \
+ s-intman.adb<s-intman-susv3.adb \
s-osinte.adb<s-osinte-darwin.adb \
s-osinte.ads<s-osinte-darwin.ads \
- s-osprim.adb<s-osprim-posix.adb \
+ s-osprim.adb<s-osprim-darwin.adb \
s-taprop.adb<s-taprop-posix.adb \
s-taspri.ads<s-taspri-posix.ads \
s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
@@ -2176,8 +2250,8 @@ install-gnatlib: ../stamp-gnatlib-$(RTSDIR)
$(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \
fi; \
- if [ -d rts/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \
- $(CP) -r rts/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
+ if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \
+ $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
$(DESTDIR)$(ADA_RTL_OBJ_DIR); \
fi; \
done
@@ -2387,8 +2461,8 @@ gnatlib-shared-darwin:
libgnat$(soext)
cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
libgnarl$(soext)
- cd rts; dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
- cd rts; dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
+ cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
+ cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
gnatlib-shared-vms:
$(MAKE) $(FLAGS_TO_PASS) \
@@ -2552,15 +2626,15 @@ vx_stack_info.o : vx_stack_info.c
cio.o : cio.c
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
- $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
init.o : init.c adaint.h raise.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
- $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
initialize.o : initialize.c raise.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
- $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
targext.o : targext.c
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
@@ -2571,7 +2645,7 @@ targext.o : targext.c
# the SEH handling on Windows. The reasons are not clear.
seh_init.o : seh_init.c raise.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) -O0 \
- $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
# Need to keep the frame pointer in this file to pop the stack properly on
# some targets.
diff --git a/gcc/ada/gsocket.h b/gcc/ada/gsocket.h
index 16aa2ba4c55..24928a1f936 100644
--- a/gcc/ada/gsocket.h
+++ b/gcc/ada/gsocket.h
@@ -29,9 +29,9 @@
* *
****************************************************************************/
-#if defined(__nucleus__)
+#if defined(__nucleus__) || defined(VTHREADS)
-#warning Sockets not supported on this platform
+#warning Sockets not supported on these platforms
#undef HAVE_SOCKETS
#else
diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb
index 4c308baeea5..c8d3fd10cf8 100644
--- a/gcc/ada/impunit.adb
+++ b/gcc/ada/impunit.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2008, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2009, 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- --
diff --git a/gcc/ada/s-htable.adb b/gcc/ada/s-htable.adb
index 7eea674617a..db43ab094a6 100644
--- a/gcc/ada/s-htable.adb
+++ b/gcc/ada/s-htable.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2008, AdaCore --
+-- Copyright (C) 1995-2009, AdaCore --
-- --
-- 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- --
@@ -34,6 +34,7 @@
pragma Compiler_Unit;
with Ada.Unchecked_Deallocation;
+with System.String_Hash;
package body System.HTable is
@@ -340,22 +341,14 @@ package body System.HTable is
----------
function Hash (Key : String) return Header_Num is
-
type Uns is mod 2 ** 32;
- function Rotate_Left (Value : Uns; Amount : Natural) return Uns;
- pragma Import (Intrinsic, Rotate_Left);
-
- Hash_Value : Uns;
+ function Hash_Fun is
+ new System.String_Hash.Hash (Character, String, Uns);
begin
- Hash_Value := 0;
- for J in Key'Range loop
- Hash_Value := Rotate_Left (Hash_Value, 3) + Character'Pos (Key (J));
- end loop;
-
return Header_Num'First +
- Header_Num'Base (Hash_Value mod Header_Num'Range_Length);
+ Header_Num'Base (Hash_Fun (Key) mod Header_Num'Range_Length);
end Hash;
end System.HTable;
diff --git a/gcc/ada/a-stwiha.adb b/gcc/ada/s-strhas.adb
index b4368f28ed3..2e3a730d27b 100644
--- a/gcc/ada/a-stwiha.adb
+++ b/gcc/ada/s-strhas.adb
@@ -1,12 +1,12 @@
------------------------------------------------------------------------------
-- --
--- GNAT LIBRARY COMPONENTS --
+-- GNAT COMPILER COMPONENTS --
-- --
--- A D A . S T R I N G S . W I D E _ H A S H --
+-- S Y S T E M . S T R I N G _ H A S H --
-- --
--- B o d y --
+-- S p e c --
-- --
--- Copyright (C) 2004-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009, 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- --
@@ -24,28 +24,30 @@
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
--- This unit was originally developed by Matthew J Heaney. --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
-
-function Ada.Strings.Wide_Hash
- (Key : Wide_String) return Containers.Hash_Type
-is
- use Ada.Containers;
+package body System.String_Hash is
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
+ -- Compute a hash value for a key. The approach here is follows
+ -- the algorithm used in GNU Awk and the ndbm substitute SDBM by
+ -- Ozan Yigit.
- Tmp : Hash_Type;
+ function Hash (Key : Key_Type) return Hash_Type
+ is
+ function Shift_Left
+ (Value : Hash_Type; Amount : Natural) return Hash_Type;
+ pragma Import (Intrinsic, Shift_Left);
-begin
- Tmp := 0;
- for J in Key'Range loop
- Tmp := Rotate_Left (Tmp, 3) + Wide_Character'Pos (Key (J));
- end loop;
+ H : Hash_Type := 0;
+ begin
+ for J in Key'Range loop
+ H := Char_Type'Pos (Key (J))
+ + Shift_Left (H, 6) + Shift_Left (H, 16) - H;
+ end loop;
+ return H;
+ end Hash;
- return Tmp;
-end Ada.Strings.Wide_Hash;
+end System.String_Hash;
diff --git a/gcc/ada/a-stzhas.adb b/gcc/ada/s-strhas.ads
index 1a72e0a554c..bd7c7431c15 100644
--- a/gcc/ada/a-stzhas.adb
+++ b/gcc/ada/s-strhas.ads
@@ -1,12 +1,12 @@
------------------------------------------------------------------------------
-- --
--- GNAT LIBRARY COMPONENTS --
+-- GNAT COMPILER COMPONENTS --
-- --
--- A D A . S T R I N G S . W I D E _ W I D E _ H A S H --
+-- S Y S T E M . S T R I N G _ H A S H --
-- --
--- B o d y --
+-- S p e c --
-- --
--- Copyright (C) 2004-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009, 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- --
@@ -24,28 +24,34 @@
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
--- This unit was originally developed by Matthew J Heaney. --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+-- This package provides a generic hashing function over strings,
+-- suitable for use with a string keyed hash table.
+--
+-- The strategy used here is not appropriate for applications that
+-- require cryptographically strong hashes, or for application which
+-- wish to use very wide hash values as pseudo unique identifiers. In
+-- such cases please refer to GNAT.SHA1 and GNAT.MD5.
+
+package System.String_Hash is
+ pragma Pure;
-function Ada.Strings.Wide_Wide_Hash
- (Key : Wide_Wide_String) return Containers.Hash_Type
-is
- use Ada.Containers;
+ generic
+ type Char_Type is (<>);
+ -- The character type composing the key string type.
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
+ type Key_Type is array (Positive range <>) of Char_Type;
+ -- The string type to use as a hash key.
- Tmp : Hash_Type;
+ type Hash_Type is mod <>;
+ -- The type to be returned as a hash value.
-begin
- Tmp := 0;
- for J in Key'Range loop
- Tmp := Rotate_Left (Tmp, 3) + Wide_Wide_Character'Pos (Key (J));
- end loop;
+ function Hash (Key : Key_Type) return Hash_Type;
+ pragma Inline (Hash);
+ -- Compute a hash value for a key.
- return Tmp;
-end Ada.Strings.Wide_Wide_Hash;
+end System.String_Hash;
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index d49ab79a43d..ed1f745b1fd 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -1831,7 +1831,7 @@ package body Sem_Ch6 is
Body_Spec);
end if;
- elsif Style_Check
+ elsif Style_Check -- ??? incorrect use of Style_Check!
and then Is_Overriding_Operation (Spec_Id)
then
pragma Assert (Unit_Declaration_Node (Body_Id) = N);
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index fd4dfad97db..df3bee2c3e8 100644
--- a/gcc/ada/sysdep.c
+++ b/gcc/ada/sysdep.c
@@ -6,7 +6,7 @@
* *
* C Implementation File *
* *
- * Copyright (C) 1992-2009 Free Software Foundation, Inc. *
+ * Copyright (C) 1992-2009, 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- *
@@ -35,7 +35,7 @@
#ifdef __vxworks
#include "ioLib.h"
#include "dosFsLib.h"
-#ifndef __RTP__
+#if ! defined ( __RTP__) && ! defined (VTHREADS)
# include "nfsLib.h"
#endif
#include "selectLib.h"
@@ -928,7 +928,7 @@ __gnat_is_file_not_found_error (int errno_val) {
* filesystem-specific variants of this error.
*/
case S_dosFsLib_FILE_NOT_FOUND:
-#ifndef __RTP__
+#if ! defined (__RTP__) && ! defined (VTHREADS)
case S_nfsLib_NFSERR_NOENT:
#endif
#endif
OpenPOWER on IntegriCloud