OSDN Git Service

2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / Makefile.in
index aa85f9f..6c9db7c 100644 (file)
@@ -1,11 +1,11 @@
 # Makefile for GNU Ada Compiler (GNAT).
-#   Copyright (C) 1994-2007 Free Software Foundation, Inc.
+#   Copyright (C) 1994-2008 Free Software Foundation, Inc.
 
 #This file is part of GCC.
 
 #GCC is free software; you can redistribute it and/or modify
 #it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
+#the Free Software Foundation; either version 3, or (at your option)
 #any later version.
 
 #GCC is distributed in the hope that it will be useful,
@@ -14,9 +14,8 @@
 #GNU General Public License for more details.
 
 #You should have received a copy of the GNU General Public License
-#along with GCC; see the file COPYING.  If not, write to
-#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-#Boston, MA 02110-1301, USA.
+#along with GCC; see the file COPYING3.  If not see
+#<http://www.gnu.org/licenses/>.
 
 # The makefile built from this file lives in the language subdirectory.
 # Its purpose is to provide support for:
 #      FLEX:    Gnu flex works.
 #      Other miscellaneous tools for obscure targets.
 
-# Tell GNU make 3.79 not to run this directory in parallel.
-# Not all of the required dependencies are present.
-.NOTPARALLEL:
-
 # Suppress smart makes who think they know how to automake Yacc files
 .y.c:
 
 # Variables that exist for you to override.
 # See below for how to change them for certain systems.
 
-# Various ways of specifying flags for compilations:  
+# Various ways of specifying flags for compilations:
 # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
 # BOOT_CFLAGS is the value of CFLAGS to pass
 # to the stage2 and stage3 compilations
@@ -144,7 +139,7 @@ shext  =
 hyphen = -
 
 # Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary 
+# Note that this has some bugs, and it seems currently necessary
 # to compile all the gen* files first by hand to avoid erroneous results.
 P =
 
@@ -401,6 +396,7 @@ ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -411,21 +407,24 @@ ifeq ($(strip $(filter-out m68k% wrs vx%,$(targ))),)
   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-vxworks.ads \
+  g-sttsne.ads<g-sttsne-locking.ads \
   system.ads<system-vxworks-m68k.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
 
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
+
   ifeq ($(strip $(filter-out yes,$(TRACE))),)
     LIBGNAT_TARGET_PAIRS += \
     s-traces.adb<s-traces-default.adb \
     s-tratas.adb<s-tratas-default.adb \
     s-trafor.adb<s-trafor-default.adb \
     s-trafor.ads<s-trafor-default.ads \
-    s-tfsetr.adb<s-tfsetr-vxworks.adb 
+    s-tfsetr.adb<s-tfsetr-vxworks.adb
   endif
 endif
 
@@ -439,6 +438,7 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -448,9 +448,9 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks,$(targ))),)
   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-vxworks.ads
+  g-sttsne.ads<g-sttsne-locking.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   ifeq ($(strip $(filter-out yes,$(TRACE))),)
     LIBGNAT_TARGET_PAIRS += \
@@ -458,7 +458,7 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks,$(targ))),)
     s-trafor.adb<s-trafor-default.adb \
     s-trafor.ads<s-trafor-default.ads \
     s-tratas.adb<s-tratas-default.adb \
-    s-tfsetr.adb<s-tfsetr-vxworks.adb 
+    s-tfsetr.adb<s-tfsetr-vxworks.adb
   endif
 
   ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
@@ -472,22 +472,26 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks,$(targ))),)
   else
     LIBGNAT_TARGET_PAIRS += \
     s-interr.adb<s-interr-vxworks.adb \
-    s-osinte.adb<s-osinte-vxworks.adb \
     s-tpopsp.adb<s-tpopsp-vxworks.adb \
     system.ads<system-vxworks-ppc.ads
 
     ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
       LIBGNAT_TARGET_PAIRS += \
-      s-osinte.ads<s-osinte-vxworks6.ads
+      s-osinte.ads<s-osinte-vxworks6.ads \
+      s-osinte.adb<s-osinte-vxworks-kernel.adb
     else
       LIBGNAT_TARGET_PAIRS += \
-      s-osinte.ads<s-osinte-vxworks.ads
+      s-osinte.ads<s-osinte-vxworks.ads \
+      s-osinte.adb<s-osinte-vxworks.adb
     endif
 
     EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
   endif
 
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
+
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
 endif
 
 # vxworksae / vxworks 653
@@ -517,10 +521,10 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworksae,$(targ))),)
   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-vxworks.ads \
+  g-sttsne.ads<g-sttsne-locking.ads \
   system.ads<system-vxworks-ppc-vthread.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
@@ -555,6 +559,7 @@ ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -565,13 +570,16 @@ ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)
   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-vxworks.ads \
+  g-sttsne.ads<g-sttsne-locking.ads \
   system.ads<system-vxworks-sparcv9.ads   \
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
+
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
 endif
 
 ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
@@ -586,6 +594,7 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -596,9 +605,9 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
   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-vxworks.ads
+  g-sttsne.ads<g-sttsne-locking.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   ifeq ($(strip $(filter-out yes,$(TRACE))),)
     LIBGNAT_TARGET_PAIRS += \
@@ -620,22 +629,26 @@ ifeq ($(strip $(filter-out %86 wrs vxworks,$(targ))),)
   else
     LIBGNAT_TARGET_PAIRS += \
     s-interr.adb<s-interr-vxworks.adb \
-    s-osinte.adb<s-osinte-vxworks.adb \
     s-tpopsp.adb<s-tpopsp-vxworks.adb \
     system.ads<system-vxworks-x86.ads
 
     ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
       LIBGNAT_TARGET_PAIRS += \
-      s-osinte.ads<s-osinte-vxworks6.ads
+      s-osinte.ads<s-osinte-vxworks6.ads \
+      s-osinte.adb<s-osinte-vxworks-kernel.adb
     else
       LIBGNAT_TARGET_PAIRS += \
-      s-osinte.ads<s-osinte-vxworks.ads
+      s-osinte.ads<s-osinte-vxworks.ads \
+      s-osinte.adb<s-osinte-vxworks.adb
     endif
 
     EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-vxwexc.o
   endif
 
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
+
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
 endif
 
 ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),)
@@ -651,6 +664,7 @@ ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -661,13 +675,16 @@ ifeq ($(strip $(filter-out arm% coff wrs vx%,$(targ))),)
   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-vxworks.ads \
+  g-sttsne.ads<g-sttsne-locking.ads \
   system.ads<system-vxworks-arm.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
+
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
 endif
 
 ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),)
@@ -683,6 +700,7 @@ ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),)
   s-osprim.adb<s-osprim-vxworks.adb \
   s-parame.ads<s-parame-vxworks.ads \
   s-parame.adb<s-parame-vxworks.adb \
+  s-stchop.ads<s-stchop-limit.ads \
   s-stchop.adb<s-stchop-vxworks.adb \
   s-taprop.adb<s-taprop-vxworks.adb \
   s-taspri.ads<s-taspri-vxworks.ads \
@@ -693,13 +711,16 @@ ifeq ($(strip $(filter-out mips% wrs vx%,$(targ))),)
   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-vxworks.ads \
+  g-sttsne.ads<g-sttsne-locking.ads \
   system.ads<system-vxworks-mips.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-vxworks.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb
 
   EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
   EXTRA_GNATRTL_TASKING_OBJS=s-vxwork.o
+
+  EXTRA_LIBGNAT_SRCS+=vx_stack_info.c
+  EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
 endif
 
 ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)
@@ -740,8 +761,8 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)
   else
     LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)
   endif
-  
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-solaris.adb
+
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
 
   EH_MECHANISM=-gcc
   THREADSLIB = -lposix4 -lthread
@@ -795,8 +816,9 @@ ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
   g-soliop.ads<g-soliop-solaris.ads \
   system.ads<system-solaris-x86.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-solaris.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
 
+  EH_MECHANISM=-gcc
   THREADSLIB = -lposix4 -lthread
   MISCLIB = -lposix4 -lnsl -lsocket
   SO_OPTS = -Wl,-h,
@@ -817,6 +839,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),)
   s-osprim.adb<s-osprim-posix.adb \
   s-taspri.ads<s-taspri-posix.ads \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+  g-sercom.adb<g-sercom-linux.adb \
   system.ads<system-linux-x86.ads
 
   ifeq ($(strip $(filter-out marte,$(THREAD_KIND))),)
@@ -839,16 +862,20 @@ ifeq ($(strip $(filter-out %86 linux%,$(arch) $(osys))),)
   else
     LIBGNAT_TARGET_PAIRS += \
     g-soccon.ads<g-soccon-linux-x86.ads \
+    s-linux.ads<s-linux.ads \
     s-osinte.adb<s-osinte-posix.adb \
     s-osinte.ads<s-osinte-linux.ads \
+    s-tasinf.ads<s-tasinf-linux.ads \
+    s-tasinf.adb<s-tasinf-linux.adb \
     s-taprop.adb<s-taprop-linux.adb
 
     EH_MECHANISM=-gcc
     THREADSLIB = -lpthread
+    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   endif
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
   GNATLIB_SHARED = gnatlib-shared-dual
@@ -869,15 +896,17 @@ ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)
   s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
   s-osprim.adb<s-osprim-posix.adb \
   s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
   s-taspri.ads<s-taspri-posix.ads \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
   system.ads<system-freebsd-x86.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
-  SYMLIB = -laddr2line -lbfd -liberty $(LIBINTL)
+  EH_MECHANISM=-gcc
   THREADSLIB = -lpthread
   GNATLIB_SHARED = gnatlib-shared-dual
   GMEM_LIB = gmemlib
@@ -903,7 +932,7 @@ ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),)
   system.ads<system-freebsd-x86.ads
 
   TOOLS_TARGET_PAIRS = \
-  mlib-tgt-specific.adb<mlib-tgt-linux.adb
+  mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
   GNATLIB_SHARED = gnatlib-shared-dual
 
   EH_MECHANISM=-gcc
@@ -919,11 +948,14 @@ ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),)
     a-intnam.ads<a-intnam-linux.ads \
     s-inmaop.adb<s-inmaop-posix.adb \
     s-intman.adb<s-intman-posix.adb \
+    s-linux.ads<s-linux.ads \
     s-osinte.adb<s-osinte-posix.adb \
     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-noaltstack.ads \
     s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
     system.ads<system-linux-s390x.ads
   else
@@ -931,18 +963,22 @@ ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),)
     a-intnam.ads<a-intnam-linux.ads \
     s-inmaop.adb<s-inmaop-posix.adb \
     s-intman.adb<s-intman-posix.adb \
+    s-linux.ads<s-linux.ads \
     s-osinte.adb<s-osinte-posix.adb \
     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-noaltstack.ads \
     s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
     system.ads<system-linux-s390.ads
   endif
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   THREADSLIB = -lpthread
   GNATLIB_SHARED = gnatlib-shared-dual
@@ -983,11 +1019,12 @@ ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),)
   endif
 
   EH_MECHANISM=-gcc
-  TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-irix.adb
+  TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-irix.adb
   TGT_LIB = -lexc
   MISCLIB = -lexc
   PREFIX_OBJS = $(PREFIX_REAL_OBJS)
   LIBRARY_VERSION := $(LIB_VERSION)
+  GMEM_LIB = gmemlib
 endif
 
 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),)
@@ -1027,7 +1064,7 @@ ifeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),)
   g-soccon.ads<g-soccon-hpux.ads \
   system.ads<system-hpux.ads
 
-  TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-hpux.adb
+  TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb
   EH_MECHANISM=-gcc
   TGT_LIB = /usr/lib/libcl.a
   THREADSLIB = -lpthread
@@ -1057,7 +1094,7 @@ ifeq ($(strip $(filter-out ibm aix%,$(manu) $(osys))),)
   PREFIX_OBJS=$(PREFIX_REAL_OBJS)
 
   TOOLS_TARGET_PAIRS = \
-  mlib-tgt-specific.adb<mlib-tgt-aix.adb \
+  mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
   indepsw.adb<indepsw-aix.adb
 
   GMEM_LIB = gmemlib
@@ -1065,7 +1102,7 @@ endif
 
 ifeq ($(strip $(filter-out lynxos,$(osys))),)
   TOOLS_TARGET_PAIRS = \
-  mlib-tgt-specific.adb<mlib-tgt-lynxos.adb \
+  mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \
   indepsw.adb<indepsw-gnu.adb
 
   ifeq ($(strip $(filter-out %86 lynxos,$(arch) $(osys))),)
@@ -1075,6 +1112,8 @@ ifeq ($(strip $(filter-out lynxos,$(osys))),)
     a-intnam.ads<a-intnam-lynxos.ads \
     g-bytswa.adb<g-bytswa-x86.adb \
     g-soccon.ads<g-soccon-lynxos.ads \
+    g-sttsne.adb<g-sttsne-locking.adb \
+    g-sttsne.ads<g-sttsne-locking.ads \
     s-inmaop.adb<s-inmaop-posix.adb \
     s-intman.adb<s-intman-posix.adb \
     s-osinte.adb<s-osinte-lynxos.adb \
@@ -1091,6 +1130,8 @@ ifeq ($(strip $(filter-out lynxos,$(osys))),)
     LIBGNAT_TARGET_PAIRS = \
     a-intnam.ads<a-intnam-lynxos.ads \
     g-soccon.ads<g-soccon-lynxos.ads \
+    g-sttsne.adb<g-sttsne-locking.adb \
+    g-sttsne.ads<g-sttsne-locking.ads \
     s-inmaop.adb<s-inmaop-posix.adb \
     s-intman.adb<s-intman-posix.adb \
     s-osinte.adb<s-osinte-lynxos.adb \
@@ -1105,6 +1146,7 @@ endif
 
 ifeq ($(strip $(filter-out rtems%,$(osys))),)
   LIBGNAT_TARGET_PAIRS = \
+  system.ads<system-rtems.ads \
   a-intnam.ads<a-intnam-rtems.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
@@ -1114,9 +1156,9 @@ ifeq ($(strip $(filter-out rtems%,$(osys))),)
   s-parame.adb<s-parame-rtems.adb \
   s-taprop.adb<s-taprop-posix.adb \
   s-taspri.ads<s-taspri-posix.ads \
-  s-auxdec.ads<s-auxdec-empty.ads \
-  s-auxdec.adb<s-auxdec-empty.adb \
-  s-tpopsp.adb<s-tpopsp-rtems.adb
+  s-tpopsp.adb<s-tpopsp-rtems.adb \
+  g-soccon.ads<g-soccon-rtems.ads \
+  s-stchop.adb<s-stchop-rtems.adb
 endif
 
 ifeq ($(strip $(filter-out alpha% dec osf%,$(targ))),)
@@ -1136,7 +1178,7 @@ ifeq ($(strip $(filter-out alpha% dec osf%,$(targ))),)
   g-soccon.ads<g-soccon-tru64.ads \
   system.ads<system-tru64.ads
 
-  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-tru64.adb
+  TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-tru64.adb
 
   EH_MECHANISM=-gcc
   GMEM_LIB=gmemlib
@@ -1155,7 +1197,7 @@ LN_S = cp -p
 
 .SUFFIXES: .sym
 
-.o.sym: 
+.o.sym:
        @ gnu:[bin]vmssymvec $<
 endif
 
@@ -1164,12 +1206,11 @@ 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-auxdec.ads<s-auxdec-vms_64.ads \
-  s-crtl.ads<s-crtl-vms64.ads \
+  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 \
-  system.ads<system-vms_64.ads
+  system.ads<system-vms-ia64.ads
 
   LIBGNAT_TARGET_PAIRS_AUX2 = \
   s-parame.ads<s-parame-vms-ia64.ads
@@ -1178,9 +1219,9 @@ 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-auxdec.ads<s-auxdec-vms_64.ads \
-  s-crtl.ads<s-crtl-vms64.ads \
   s-osinte.adb<s-osinte-vms.adb \
   s-osinte.ads<s-osinte-vms.ads \
   s-vaflop.adb<s-vaflop-vms-alpha.adb \
@@ -1217,10 +1258,15 @@ endif
   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 \
@@ -1228,25 +1274,25 @@ endif
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
   s-tpopde.adb<s-tpopde-vms.adb \
   s-tpopde.ads<s-tpopde-vms.ads \
-  s-traent.adb<s-traent-vms.adb \
-  s-traent.ads<s-traent-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-vms-ia64.adb \
+  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-vms-alpha.adb \
+  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
 
-  EXTRA_GNATMAKE_OBJS = mlib-tgt-vms.o
+  EXTRA_GNATMAKE_OBJS = mlib-tgt-vms_common.o
 
   GMEM_LIB = gmemlib
   EH_MECHANISM=-gcc
@@ -1255,6 +1301,8 @@ 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
   EXTRA_GNATTOOLS = \
      ../../gnatlbr$(exeext)  \
@@ -1262,7 +1310,7 @@ endif
      ../../vms_help$(exeext) \
      ../../gnat.hlp
   # This command transforms (YYYYMMDD) into YY,MMDD
-  GSMATCH_VERSION := $(shell grep "^ *Gnat_Static_Version_String" $(fsrcpfx)gnatvsn.ads | sed -e 's/.*(\(.*\)).*/\1/' -e 's/\(..\)\(..\)\(....\)/\2,\3/')
+  GSMATCH_VERSION := $(shell grep "^ *Gnat_Static_Version_String" $(fsrcpfx)gnatvsn.ads | sed -e 's/.*(\(.*\)).*/\1/' -e 's/\(..\)\(..\)\(....\).*/\2,\3/')
   TOOLS_LIBS_LO := --for-linker=sys\\$$\$$library:trace.exe
   LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION))
 endif
@@ -1271,40 +1319,116 @@ ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
   LIBGNAT_TARGET_PAIRS = \
   a-dirval.adb<a-dirval-mingw.adb \
   a-excpol.adb<a-excpol-abort.adb \
-  a-intnam.ads<a-intnam-mingw.ads \
   a-numaux.adb<a-numaux-x86.adb \
   a-numaux.ads<a-numaux-x86.ads \
   s-gloloc.adb<s-gloloc-mingw.adb \
   s-inmaop.adb<s-inmaop-dummy.adb \
-  s-interr.adb<s-interr-sigaction.adb \
-  s-intman.adb<s-intman-mingw.adb \
   s-memory.adb<s-memory-mingw.adb \
-  s-osinte.ads<s-osinte-mingw.ads \
-  s-osprim.adb<s-osprim-mingw.adb \
-  s-taprop.adb<s-taprop-mingw.adb \
   s-taspri.ads<s-taspri-mingw.ads \
+  s-tasinf.adb<s-tasinf-mingw.adb \
+  s-tasinf.ads<s-tasinf-mingw.ads \
   g-bytswa.adb<g-bytswa-x86.adb \
   g-socthi.ads<g-socthi-mingw.ads \
   g-socthi.adb<g-socthi-mingw.adb \
   g-stsifd.adb<g-stsifd-sockets.adb \
   g-soccon.ads<g-soccon-mingw.ads \
-  g-soliop.ads<g-soliop-mingw.ads \
-  system.ads<system-mingw.ads
+  g-soliop.ads<g-soliop-mingw.ads
+
+  ifeq ($(strip $(filter-out rtx_w32 rtx_rtss,$(THREAD_KIND))),)
+    LIBGNAT_TARGET_PAIRS += \
+    s-intman.adb<s-intman-dummy.adb \
+    s-osinte.ads<s-osinte-rtx.ads \
+    s-osprim.adb<s-osprim-rtx.adb \
+    s-taprop.adb<s-taprop-rtx.adb \
+    system.ads<system-rtx.ads
+
+    EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.o
+
+    MISCLIB = -lwsock32 -lrtapi_w32
+    THREADSLIB=-lrtapi_w32
+  else
+    LIBGNAT_TARGET_PAIRS += \
+    a-exetim.adb<a-exetim-mingw.adb \
+    a-exetim.ads<a-exetim-mingw.ads \
+    a-intnam.ads<a-intnam-mingw.ads \
+    g-sercom.adb<g-sercom-mingw.adb \
+    s-interr.adb<s-interr-sigaction.adb \
+    s-intman.adb<s-intman-mingw.adb \
+    s-osinte.ads<s-osinte-mingw.ads \
+    s-osprim.adb<s-osprim-mingw.adb \
+    s-taprop.adb<s-taprop-mingw.adb \
+    system.ads<system-mingw.ads
+
+    EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.o g-regist.o
+    EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
+
+    MISCLIB = -lwsock32
+
+    # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
+    # auto-import support for array/record will be done.
+    GNATLIB_SHARED = gnatlib-shared-win32
+  endif
 
   TOOLS_TARGET_PAIRS= \
-  mlib-tgt-specific.adb<mlib-tgt-mingw.adb \
+  mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
   indepsw.adb<indepsw-mingw.adb
 
-  MISCLIB = -lwsock32
+  EH_MECHANISM=-gcc
   GMEM_LIB = gmemlib
   PREFIX_OBJS = $(PREFIX_REAL_OBJS)
   EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
   EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
-  EXTRA_GNATRTL_NONTASKING_OBJS = g-regist.o
   soext = .dll
-# ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT auto-import
-# support for array/record will be done.
-  GNATLIB_SHARED = gnatlib-shared-win32
+  LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
+ifeq ($(strip $(filter-out mips linux%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS = \
+  a-intnam.ads<a-intnam-linux.ads \
+  g-soccon.ads<g-soccon-linux-mips.ads \
+  s-inmaop.adb<s-inmaop-posix.adb \
+  s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
+  s-osinte.adb<s-osinte-posix.adb \
+  s-osinte.ads<s-osinte-linux.ads \
+  s-osprim.adb<s-osprim-posix.adb \
+  s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
+  s-taspri.ads<s-taspri-posix.ads \
+  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+  system.ads<system-linux-mips.ads
+
+  EH_MECHANISM=-gcc
+  THREADSLIB = -lpthread
+  GNATLIB_SHARED = gnatlib-shared-dual
+  GMEM_LIB = gmemlib
+  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
+  LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
+ifeq ($(strip $(filter-out mipsel linux%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS = \
+  a-intnam.ads<a-intnam-linux.ads \
+  g-soccon.ads<g-soccon-linux-mips.ads \
+  s-inmaop.adb<s-inmaop-posix.adb \
+  s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
+  s-osinte.adb<s-osinte-posix.adb \
+  s-osinte.ads<s-osinte-linux.ads \
+  s-osprim.adb<s-osprim-posix.adb \
+  s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
+  s-taspri.ads<s-taspri-posix.ads \
+  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+  system.ads<system-linux-mipsel.ads
+
+  EH_MECHANISM=-gcc
+  THREADSLIB = -lpthread
+  GNATLIB_SHARED = gnatlib-shared-dual
+  GMEM_LIB = gmemlib
+  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
   LIBRARY_VERSION := $(LIB_VERSION)
 endif
 
@@ -1314,18 +1438,23 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),)
   g-soccon.ads<g-soccon-linux-ppc.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
   s-osinte.adb<s-osinte-posix.adb \
   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-noaltstack.ads \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+  g-sercom.adb<g-sercom-linux.adb \
   system.ads<system-linux-ppc.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   THREADSLIB = -lpthread
   GNATLIB_SHARED = gnatlib-shared-dual
@@ -1339,18 +1468,22 @@ ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
   s-osinte.adb<s-osinte-posix.adb \
   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-noaltstack.ads \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
   system.ads<system-linux-sparc.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   THREADSLIB = -lpthread
   GNATLIB_SHARED = gnatlib-shared-dual
@@ -1364,19 +1497,53 @@ ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),)
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux-hppa.ads \
   s-osinte.adb<s-osinte-posix.adb \
-  s-osinte.ads<s-osinte-linux-hppa.ads \
+  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-noaltstack.ads \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
   system.ads<system-linux-hppa.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
+  EH_MECHANISM=-gcc
+  THREADSLIB = -lpthread
+  GNATLIB_SHARED = gnatlib-shared-dual
+  GMEM_LIB = gmemlib
+  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
+  LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
+ifeq ($(strip $(filter-out sh4% linux%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS = \
+  a-intnam.ads<a-intnam-linux.ads \
+  s-inmaop.adb<s-inmaop-posix.adb \
+  s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
+  s-osinte.adb<s-osinte-posix.adb \
+  s-osinte.ads<s-osinte-linux.ads \
+  s-osprim.adb<s-osprim-posix.adb \
+  s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
+  s-taspri.ads<s-taspri-posix-noaltstack.ads \
+  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+  system.ads<system-linux-sh4.ads
+
+  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=
   THREADSLIB = -lpthread
   GNATLIB_SHARED = gnatlib-shared-dual
   GMEM_LIB = gmemlib
@@ -1391,18 +1558,23 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
   g-soccon.ads<g-soccon-linux-64.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
   s-osinte.ads<s-osinte-linux.ads \
   s-osinte.adb<s-osinte-posix.adb \
   s-osprim.adb<s-osprim-posix.adb \
   s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
-  s-taspri.ads<s-taspri-posix.ads \
+  s-taspri.ads<s-taspri-posix-noaltstack.ads \
+  g-sercom.adb<g-sercom-linux.adb \
   system.ads<system-linux-ia64.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   MISCLIB=
   THREADSLIB=-lpthread
@@ -1417,18 +1589,22 @@ ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),)
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
-  s-osinte.ads<s-osinte-linux-alpha.ads \
+  s-linux.ads<s-linux-alpha.ads \
+  s-osinte.ads<s-osinte-linux.ads \
   s-osinte.adb<s-osinte-posix.adb \
   s-osprim.adb<s-osprim-posix.adb \
   s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
-  s-taspri.ads<s-taspri-posix.ads \
+  s-taspri.ads<s-taspri-posix-noaltstack.ads \
   system.ads<system-linux-alpha.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   MISCLIB=
   THREADSLIB=-lpthread
@@ -1445,18 +1621,23 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),)
   g-soccon.ads<g-soccon-linux-64.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
   s-intman.adb<s-intman-posix.adb \
+  s-linux.ads<s-linux.ads \
   s-osinte.ads<s-osinte-linux.ads \
   s-osinte.adb<s-osinte-posix.adb \
   s-osprim.adb<s-osprim-posix.adb \
   s-taprop.adb<s-taprop-linux.adb \
+  s-tasinf.ads<s-tasinf-linux.ads \
+  s-tasinf.adb<s-tasinf-linux.adb \
   s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
   s-taspri.ads<s-taspri-posix.ads \
+  g-sercom.adb<g-sercom-linux.adb \
   system.ads<system-linux-x86_64.ads
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
     indepsw.adb<indepsw-gnu.adb
 
+  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
   EH_MECHANISM=-gcc
   THREADSLIB=-lpthread
   GNATLIB_SHARED=gnatlib-shared-dual
@@ -1465,25 +1646,41 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),)
   LIBRARY_VERSION := $(LIB_VERSION)
 endif
 
-ifeq ($(strip $(filter-out powerpc darwin%,$(arch) $(osys))),)
-  LIBGNAT_TARGET_PAIRS = \
-  a-intnam.ads<a-intnam-darwin.ads \
-  a-numaux.ads<a-numaux-darwin.ads \
-  a-numaux.adb<a-numaux-darwin.adb \
-  g-soccon.ads<g-soccon-darwin.ads \
-  i-forbla.adb<i-forbla-darwin.adb \
-  s-inmaop.adb<s-inmaop-posix.adb \
-  s-intman.adb<s-intman-posix.adb \
-  s-osinte.adb<s-osinte-darwin.adb \
-  s-osinte.ads<s-osinte-darwin.ads \
-  s-osprim.adb<s-osprim-posix.adb \
-  s-taprop.adb<s-taprop-posix.adb \
-  s-taspri.ads<s-taspri-posix.ads \
-  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
-  system.ads<system-darwin-ppc.ads
+ifeq ($(strip $(filter-out darwin%,$(osys))),)
+  ifeq ($(strip $(filter-out %86,$(arch))),)
+    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-osinte.adb<s-osinte-darwin.adb \
+    s-osinte.ads<s-osinte-darwin.ads \
+    s-osprim.adb<s-osprim-posix.adb \
+    s-taprop.adb<s-taprop-posix.adb \
+    s-taspri.ads<s-taspri-posix.ads \
+    s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+    g-soccon.ads<g-soccon-darwin.ads \
+    a-numaux.ads<a-numaux-x86.ads \
+    a-numaux.adb<a-numaux-x86.adb \
+    system.ads<system-darwin-x86.ads
+  else
+    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-osinte.adb<s-osinte-darwin.adb \
+    s-osinte.ads<s-osinte-darwin.ads \
+    s-osprim.adb<s-osprim-posix.adb \
+    s-taprop.adb<s-taprop-posix.adb \
+    s-taspri.ads<s-taspri-posix.ads \
+    s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+    g-soccon.ads<g-soccon-darwin.ads \
+    a-numaux.ads<a-numaux-darwin.ads \
+    a-numaux.adb<a-numaux-darwin.adb \
+    system.ads<system-darwin-ppc.ads
+  endif
 
   TOOLS_TARGET_PAIRS =  \
-    mlib-tgt-specific.adb<mlib-tgt-darwin.adb
+    mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb
 
   EH_MECHANISM=-gcc
   GNATLIB_SHARED = gnatlib-shared-darwin
@@ -1542,8 +1739,11 @@ LIBGNAT_OBJS = adaint.o argv.o cio.o cstreams.o ctrl_c.o errno.o exit.o env.o \
 
 include $(fsrcdir)/Makefile.rtl
 
+GNATRTL_LINEARALGEBRA_OBJS = a-nlcoar.o a-nllcar.o a-nllrar.o a-nlrear.o \
+  a-nucoar.o a-nurear.o i-forbla.o i-forlap.o s-gearop.o
+
 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
-  g-trasym.o memtrack.o
+  $(GNATRTL_LINEARALGEBRA_OBJS) g-trasym.o memtrack.o
 
 # Default run time files
 
@@ -1552,9 +1752,10 @@ ADA_INCLUDE_SRCS =\
  machcode.ads text_io.ads unchconv.ads unchdeal.ads \
  sequenio.ads system.ads memtrack.adb \
  a-[a-o]*.adb a-[p-z]*.adb a-[a-o]*.ads a-[p-z]*.ads g-*.ad? i-*.ad? \
- s-[a-o]*.adb s-[p-z]*.adb s-[a-o]*.ads s-[p-z]*.ads  
+ s-[a-o]*.adb s-[p-z]*.adb s-[a-o]*.ads s-[p-z]*.ads
+
+LIBGNAT=../rts/libgnat.a
 
-LIBGNAT=../rts/libgnat.a 
 GCC_LINK=$(CC) -static-libgcc $(ADA_INCLUDES)
 
 # when compiling the tools, the runtime has to be first on the path so that
@@ -1566,7 +1767,7 @@ ifeq ($(TOOLSCASE),native)
   vpath %.h   ../rts ../
 endif
 
-# in the cross tools case, everything is compiled with the native 
+# in the cross tools case, everything is compiled with the native
 # gnatmake/link. Therefore only -I needs to be modified in ADA_INCLUDES
 ifeq ($(TOOLSCASE),cross)
   vpath %.ads ../
@@ -1575,56 +1776,29 @@ ifeq ($(TOOLSCASE),cross)
   vpath %.h   ../
 endif
 
-
-../../gnatchop$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatchop --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatchop 
-       $(GNATLINK) -v gnatchop -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnat$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatcmd --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatcmd 
-       $(GNATLINK) -v gnatcmd -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatkr$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatkr --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatkr 
-       $(GNATLINK) -v gnatkr -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatls$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatls --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatls 
-       $(GNATLINK) -v gnatls -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatname$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatname --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatname 
-       $(GNATLINK) -v gnatname -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gprmake$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gprmake --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gprmake
-       $(GNATLINK) -v gprmake -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatprep$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatprep --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatprep 
-       $(GNATLINK) -v gnatprep -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatxref$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatxref --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatxref 
-       $(GNATLINK) -v gnatxref -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatfind$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatfind --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatfind 
-       $(GNATLINK) -v gnatfind -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
-
-../../gnatclean$(exeext): 
-       $(GNATMAKE) -c $(ADA_INCLUDES) gnatclean --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatclean
-       $(GNATLINK) -v gnatclean -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+common-tools:
+       $(GNATMAKE) -c -b $(ADA_INCLUDES) \
+         --GNATBIND="$(GNATBIND)" --GCC="$(CC) $(ALL_ADAFLAGS)" \
+         gnatchop gnatcmd gnatkr gnatls gnatprep gnatxref gnatfind gnatname \
+         gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)
+       $(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatxref -o ../../gnatxref$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatfind -o ../../gnatfind$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
+       $(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \
+               --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
 
 ../../gnatsym$(exeext): 
        $(GNATMAKE) -c $(ADA_INCLUDES) gnatsym --GCC="$(CC) $(ALL_ADAFLAGS)"
@@ -1633,18 +1807,18 @@ endif
 
 ../../gnatdll$(exeext): 
        $(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) $(GNATBIND_FLAGS) gnatdll
+       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll
        $(GNATLINK) -v gnatdll -o $@ --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
 
 ../../vxaddr2line$(exeext): targext.o
        $(GNATMAKE) -c  $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line 
+       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line
        $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" targext.o $(CLIB)
 
 gnatmake-re:  link.o targext.o
        $(GNATMAKE) $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)"
        $(GNATMAKE) -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake 
+       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake
        $(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \
                --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
 
@@ -1652,11 +1826,11 @@ gnatmake-re:  link.o targext.o
 # with the former version of gnatlink itself which cannot override itself.
 gnatlink-re:  link.o targext.o
        $(GNATMAKE) -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"
-       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink 
+       $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink
        $(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \
                    --GCC="$(GCC_LINK)" $(TOOLS_LIBS)
        $(MV)  ../../gnatlinknew$(exeext)  ../../gnatlink$(exeext)
-  
+
 # Needs to be built with CC=gcc
 # Since the RTL should be built with the latest compiler, remove the
 #  stamp target in the parent directory whenever gnat1 is rebuilt
@@ -1670,12 +1844,6 @@ gnatlink-re:  link.o targext.o
        $(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) \
                    $(TOOLS_LIBS)
 
-../../gnatbl$(exeext): gnatbl.o
-       $(GCC_LINK) -o $@ $(ALL_CFLAGS) $(LDFLAGS) gnatbl.o $(TOOLS_LIBS)
-
-gnatbl.o: gnatbl.c adaint.h
-       $(CC) $(ALL_CFLAGS) $(INCLUDES) -c $< $(OUTPUT_OPTION)
-
 ../stamp-gnatlib:
        @if [ ! -f stamp-gnatlib ] ; \
        then \
@@ -1780,6 +1948,7 @@ gnatlib: ../stamp-gnatlib1 ../stamp-gnatlib2
                | sed -e 's,^\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
                INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
                 CFLAGS="$(GNATLIBCFLAGS_FOR_C)" \
+               FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
                srcdir=$(fsrcdir) \
                -f ../Makefile $(LIBGNAT_OBJS)
        $(MAKE) -C rts \
@@ -1788,6 +1957,7 @@ gnatlib: ../stamp-gnatlib1 ../stamp-gnatlib2
                ADA_INCLUDES="" \
                 CFLAGS="$(GNATLIBCFLAGS)" \
                ADAFLAGS="$(GNATLIBFLAGS)" \
+               FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
                srcdir=$(fsrcdir) \
                -f ../Makefile \
                $(GNATRTL_OBJS)
@@ -1803,6 +1973,9 @@ gnatlib: ../stamp-gnatlib1 ../stamp-gnatlib2
        $(AR_FOR_TARGET) $(AR_FLAGS) rts/libgnarl$(arext) \
           $(addprefix rts/,$(GNATRTL_TASKING_OBJS))
        $(RANLIB_FOR_TARGET) rts/libgnarl$(arext)
+       $(AR_FOR_TARGET) $(AR_FLAGS) rts/libgnala$(arext) \
+          $(addprefix rts/,$(GNATRTL_LINEARALGEBRA_OBJS))
+       $(RANLIB_FOR_TARGET) rts/libgnala$(arext)
         ifeq ($(GMEM_LIB),gmemlib)
                $(AR_FOR_TARGET) $(AR_FLAGS) rts/libgmem$(arext) \
                  rts/memtrack.o
@@ -1917,20 +2090,18 @@ gnatlib-shared-vms:
             THREAD_KIND="$(THREAD_KIND)" \
              gnatlib
        $(RM) rts/libgna*$(soext)
-       cd rts && echo "case_sensitive=yes" > SYMVEC_$$$$.opt && \
-       objdump --syms $(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) | \
-       $(SHLIB_SYMVEC) >> SYMVEC_$$$$.opt && \
-       echo "case_sensitive=NO" >> SYMVEC_$$$$.opt && \
+       cd rts && \
+       ../../gnatsym -s SYMVEC_$$$$.opt \
+       $(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) && \
        ../../xgcc -g -B../../ -shared -shared-libgcc \
           -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) libgnat.a \
           sys\$$library:trace.exe \
           --for-linker=/noinform \
           --for-linker=SYMVEC_$$$$.opt \
           --for-linker=gsmatch=equal,$(GSMATCH_VERSION)
-       cd rts && echo "case_sensitive=yes" > SYMVEC_$$$$.opt && \
-       objdump --syms $(GNATRTL_TASKING_OBJS) | \
-       $(SHLIB_SYMVEC) >> SYMVEC_$$$$.opt && \
-       echo "case_sensitive=NO" >> SYMVEC_$$$$.opt && \
+       cd rts && \
+       ../../gnatsym -s SYMVEC_$$$$.opt \
+       $(GNATRTL_TASKING_OBJS) && \
        ../../xgcc -g -B../../ -shared -shared-libgcc \
           -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
           libgnarl.a libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
@@ -2066,6 +2237,7 @@ socket.o  : socket.c gsocket.h
 sysdep.o  : sysdep.c
 raise-gcc.o : raise-gcc.c raise.h
 raise.o   : raise.c raise.h
+vx_stack_info.o : vx_stack_info.c
 
 gen-soccon: gen-soccon.c gsocket.h
        $(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \