OSDN Git Service

2009-06-22 Thomas Quinot <quinot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Jun 2009 12:24:57 +0000 (12:24 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Jun 2009 12:24:57 +0000 (12:24 +0000)
* 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

21 files changed:
gcc/ada/ChangeLog
gcc/ada/Makefile.rtl
gcc/ada/a-shcain.adb
gcc/ada/a-stboha.adb
gcc/ada/a-strhas.adb
gcc/ada/a-stunha.adb
gcc/ada/a-swbwha.adb
gcc/ada/a-swuwha.adb
gcc/ada/a-szbzha.adb
gcc/ada/a-szuzha.adb
gcc/ada/exp_ch3.adb
gcc/ada/g-spitbo.adb
gcc/ada/gcc-interface/Make-lang.in
gcc/ada/gcc-interface/Makefile.in
gcc/ada/gsocket.h
gcc/ada/impunit.adb
gcc/ada/s-htable.adb
gcc/ada/s-strhas.adb [moved from gcc/ada/a-stwiha.adb with 63% similarity]
gcc/ada/s-strhas.ads [moved from gcc/ada/a-stzhas.adb with 57% similarity]
gcc/ada/sem_ch6.adb
gcc/ada/sysdep.c

index 80e21d1..86b0ae3 100644 (file)
@@ -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
index 0b2bec5..ec3b931 100644 (file)
@@ -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) \
index 40ad73e..8c7ccbe 100644 (file)
 ------------------------------------------------------------------------------
 
 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;
index cc2cbf7..97ae526 100644 (file)
 -- 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;
index 080d295..f0ee060 100644 (file)
 -- 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;
index 59fc1a9..064a342 100644 (file)
 -- 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;
index a589036..643b5b0 100644 (file)
 -- 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;
index 9e7d38c..e367447 100644 (file)
 -- 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;
index 48e2727..9ee1e91 100644 (file)
 -- 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;
index fe357c5..13cb19b 100644 (file)
 -- 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;
index 458f300..3b2cc64 100644 (file)
@@ -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;
index 2015bb2..5b5e2a7 100644 (file)
@@ -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 --
       -------------
index 83b74fa..7b996f7 100644 (file)
@@ -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 \
index 8a9bbe3..f2ca2fb 100644 (file)
@@ -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.
index 16aa2ba..24928a1 100644 (file)
@@ -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
index 4c308ba..c8d3fd1 100644 (file)
@@ -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- --
index 7eea674..db43ab0 100644 (file)
@@ -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;
similarity index 63%
rename from gcc/ada/a-stwiha.adb
rename to gcc/ada/s-strhas.adb
index b4368f2..2e3a730 100644 (file)
@@ -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- --
 -- 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;
similarity index 57%
rename from gcc/ada/a-stzhas.adb
rename to gcc/ada/s-strhas.ads
index 1a72e0a..bd7c743 100644 (file)
@@ -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- --
 -- 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;
index d49ab79..ed1f745 100644 (file)
@@ -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);
index fd4dfad..df3bee2 100644 (file)
@@ -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