Package: src:gcc-5
Version: 5.2.1-17

I rewrite gnat sjlj support with a new src/libada-sjlj directory added,
instead of the huge patch to src/gcc/ada/gcc-interfaces/Makefile.in.

0001_libgnatvsn-prj.diff
     as we build libgnatsvn/libgnatprj in build/TRIPLET, so fix something
     left.

0002_ada-sjlj.diff
      Rewrite gnat sjlj support, with a new added directory.
      It still builds zcx in build/gcc/ada/rts (not rts-natvie),
      while builds sjlj in build/gcc/ada/rts-sjlj.
      Some dependency chains ins Makefile.def are also got some change.
      ada-acats-sjlj.diff is not needed any more, as with this method of build,
         the upstream test just works.

0003_prepare-ada-cross-support.diff
       This is some changes for cross gnat support.
        Make package priority extra when cross build instead of optional.
                gcc-5-cross asks for it?
        dependencies = { module=all-target-libgnatvsn;
on=all-target-libstdc++-v3; };
                  in fact libgnatprj requires some header files of libstdc++,
                  no idea whether libgnatprj does.
                  since libgnatprj depends on libgnatvsn, so add
libgnatvsn here.
                  This is found when cross build for mipsel
        TOOLS_LIBS: change the order and add stdc++ here.
                   on some architecture, the old order doesn't work.
now idea why.
                   this order just work for all architecture in the
list of gcc-5-cross.
         Maybe you still wish to disable ada cross by default here.


-- 
YunQiang Su
diff --git a/debian/patches/ada-acats.diff b/debian/patches/ada-acats.diff
index d06acfd..d420867 100644
--- a/debian/patches/ada-acats.diff
+++ b/debian/patches/ada-acats.diff
@@ -124,7 +125,7 @@ Index: b/src/gcc/testsuite/lib/gnat.exp
 ===================================================================
 --- a/src/gcc/testsuite/lib/gnat.exp
 +++ b/src/gcc/testsuite/lib/gnat.exp
-@@ -88,18 +88,24 @@ proc gnat_init { args } {
+@@ -88,18 +88,25 @@ proc gnat_init { args } {
      global GNAT_UNDER_TEST
      global TOOL_EXECUTABLE
      global gnat_target_current
@@ -141,10 +142,11 @@ Index: b/src/gcc/testsuite/lib/gnat.exp
 -          set GNAT_UNDER_TEST "[local_find_gnatmake]"
 -      }
 -    }
++    set target [target_info name]
 +    set GNAT_UNDER_TEST "$rootme/../gnattools/gnatmake -I$rootme/ada/rts 
--GCC=$rootme/xgcc --GNATBIND=$rootme/../gnattools/gnatbind 
--GNATLINK=$rootme/../gnattools/gnatlink -cargs -B$rootme -largs 
--GCC=$rootme/xgcc -B$rootme -margs"
 +    append ld_library_path ":$rootme/ada/rts"
-+    append ld_library_path ":$rootme/../libgnatvsn"
-+    append ld_library_path ":$rootme/../libgnatprj"
++    append ld_library_path ":$rootme/../$target/libgnatvsn"
++    append ld_library_path ":$rootme/../$target/libgnatprj"
 +    set_ld_library_path_env_vars
 +
 +    # gnatlink looks for system.ads itself and has no --RTS option, so
@@ -156,7 +158,7 @@ Index: b/src/gcc/testsuite/lib/gnat.exp
  
      if ![info exists tmpdir] then {
        set tmpdir /tmp
-@@ -121,31 +127,6 @@ proc gnat_target_compile { source dest t
+@@ -121,31 +128,6 @@ proc gnat_target_compile { source dest t
        return [gcc_target_compile $source $dest $type $options]
      }
  
diff --git a/debian/patches/ada-libgnatprj.diff 
b/debian/patches/ada-libgnatprj.diff
index 46f6f02..ed31a0a 100644
--- a/debian/patches/ada-libgnatprj.diff
+++ b/debian/patches/ada-libgnatprj.diff
@@ -265,8 +265,8 @@ Index: b/src/configure.ac
  ENABLE_LIBADA=$enableval,
  ENABLE_LIBADA=yes)
  if test "${ENABLE_LIBADA}" != "yes" ; then
--  noconfigdirs="$noconfigdirs libgnatvsn gnattools"
-+  noconfigdirs="$noconfigdirs libgnatvsn libgnatprj gnattools"
+-  noconfigdirs="$noconfigdirs target-libgnatvsn gnattools"
++  noconfigdirs="$noconfigdirs target-libgnatvsn target-libgnatprj gnattools"
  fi
  
  AC_ARG_ENABLE(libssp,
diff --git a/debian/patches/ada-libgnatvsn.diff 
b/debian/patches/ada-libgnatvsn.diff
index 0dc3d35..222b4ab 100644
--- a/debian/patches/ada-libgnatvsn.diff
+++ b/debian/patches/ada-libgnatvsn.diff
@@ -262,7 +262,7 @@ Index: b/src/configure.ac
  ENABLE_LIBADA=yes)
  if test "${ENABLE_LIBADA}" != "yes" ; then
 -  noconfigdirs="$noconfigdirs gnattools"
-+  noconfigdirs="$noconfigdirs libgnatvsn gnattools"
++  noconfigdirs="$noconfigdirs target-libgnatvsn gnattools"
  fi
  
  AC_ARG_ENABLE(libssp,
diff --git a/debian/patches/ada-acats-sjlj.diff 
b/debian/patches/ada-acats-sjlj.diff
deleted file mode 100644
index 7dde89c..0000000
--- a/debian/patches/ada-acats-sjlj.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-# DP: - When running the ACATS, look for the shared libraries in
-# DP:   build/gcc/ada/rts-shared-zcx instead of build/gcc/ada/rts.
-
---- a/src/gcc/testsuite/lib/gnat.exp
-+++ b/src/gcc/testsuite/lib/gnat.exp
-@@ -94,18 +94,18 @@
- 
-     if { $gnat_initialized == 1 } { return }
- 
--    set GNAT_UNDER_TEST "$rootme/../gnattools/gnatmake -I$rootme/ada/rts 
--GCC=$rootme/xgcc --GNATBIND=$rootme/../gnattools/gnatbind 
--GNATLINK=$rootme/../gnattools/gnatlink -cargs -B$rootme -largs 
--GCC=$rootme/xgcc -B$rootme -margs"
--    append ld_library_path ":$rootme/ada/rts"
-+    set GNAT_UNDER_TEST "$rootme/../gnattools/gnatmake 
-I$rootme/ada/rts-shared-zcx --GCC=$rootme/xgcc 
--GNATBIND=$rootme/../gnattools/gnatbind 
--GNATLINK=$rootme/../gnattools/gnatlink -cargs -B$rootme -largs 
--GCC=$rootme/xgcc -B$rootme -margs"
-+    append ld_library_path ":$rootme/ada/rts-shared-zcx"
-     append ld_library_path ":$rootme/../libgnatvsn"
-     append ld_library_path ":$rootme/../libgnatprj"
-     set_ld_library_path_env_vars
- 
-     # gnatlink looks for system.ads itself and has no --RTS option, so
-     # specify via environment
--    verbose -log "ADA_INCLUDE_PATH=$rootme/ada/rts"
--    verbose -log "ADA_OBJECTS_PATH=$rootme/ada/rts"
--    setenv ADA_INCLUDE_PATH "$rootme/ada/rts"
--    setenv ADA_OBJECTS_PATH "$rootme/ada/rts"
-+    verbose -log "ADA_INCLUDE_PATH=$rootme/ada/rts-shared-zcx"
-+    verbose -log "ADA_OBJECTS_PATH=$rootme/ada/rts-shared-zcx"
-+    setenv ADA_INCLUDE_PATH "$rootme/ada/rts-shared-zcx"
-+    setenv ADA_OBJECTS_PATH "$rootme/ada/rts-shared-zcx"
- 
-     if ![info exists tmpdir] then {
-       set tmpdir /tmp
---- a/src/gcc/testsuite/ada/acats/run_all.sh
-+++ b/src/gcc/testsuite/ada/acats/run_all.sh
-@@ -12,8 +12,9 @@
- gccflags="-O2"
- gnatflags="-gnatws"
- 
--RTS=`cd $GNATTOOLS/../gcc/ada/rts; ${PWDCMD-pwd}`
--LD_LIBRARY_PATH=$RTS:$LIBGNATVSN:$LIBGNATPRJ
-+SHARED_RTS=`cd $GNATTOOLS/../gcc/ada/rts-shared-zcx; ${PWDCMD-pwd}`
-+RTS=`cd $GNATTOOLS/../gcc/ada/rts-static-zcx; ${PWDCMD-pwd}`
-+LD_LIBRARY_PATH=$SHARED_RTS:$LIBGNATVSN:$LIBGNATPRJ
- export LD_LIBRARY_PATH
- 
- target_run () {
diff --git a/debian/patches/ada-sjlj.diff b/debian/patches/ada-sjlj.diff
index dfb9ab7..679c2b4 100644
--- a/debian/patches/ada-sjlj.diff
+++ b/debian/patches/ada-sjlj.diff
@@ -1,715 +1,1033 @@
-# DP: There are two exception mechanisms to choose from: zero-cost and
-# DP: setjump/longjump.  The Ada run-time library uses either of them
-# DP: but not both.  Build both versions of the run-time library.
-
-# This patch changes the way the upstream Makefiles build the run-time
-# library.  Before the patch: libada/Makefile calls gcc/ada/Makefile,
-# which builds the "rts" subdirectory containing symbolic links to
-# most source files, and modified copies of a few source files (to
-# take target dependencies into account, and also to select the
-# exception handling mechanism in system.ads).  Then, gcc/ada/Makefile
-# calls itself recursively but in the "rts" subdirectory and builds
-# libgnat.a and libgnarl.a (and a couple other libraries:
-# libgccprefix.a, libgmem.a).  Upon return from this recursive call,
-# it deletes the source and object files from "rts", reconstructs the
-# source files, and builds libgnat.so and libgnarl.so by calling
-# itself recursively a second time in the "rts" directory.
-
-# Furthermore, gcc/ada/Makefile disables parallel makes, so building
-# the static and then shared versions of the RTS is entirely
-# sequential even on SMP systems.
-
-# As a consequence of the above, building the SJLJ version of the
-# library would overwrite the ZCX version.  Thus it is necessary to
-# manually save the previous version of the library before building the
-# second one.
-
-# After the patch: libada/Makefile calls gcc/ada/Makefile, which
-# builds the source directory (named gnatlib-sources instead of rts),
-# containing the symbolic links and target-dependent files.
-
-# In a second step, libada/Makefile calls gcc/ada/Makefile again to
-# build the targets gnatlib-shared-zcx, gnatlib-static-zcx and
-# gnatlib-static-sjlj (we could also build gnatlib-shared-sjlj, but
-# that triggers compiler errors on PowerPC).
-
-# Each of these three targets copies the source directory "rts" into a
-# new directory named rts-shared-zcx, rts-static-zcx or
-# rts-static-sjlj.  In the new directory, they change the value of
-# System.ZCX_By_Default, and then they call gcc/ada/Makefile
-# recursively in the new directory to build the library.
-
-# gcc/ada/Makefile.in has a .NOTPARALLEL directive preventing it from
-# launching commands in parallel.  However, libada/Makefile has no
-# such directive and can invoke up to three instances of
-# gcc/ada/Makefile.in in parallel.  This is okay because each of them
-# runs in a different directory.
-
-# This patch also updates libgnat{vsn,prj}/Makefile and
-# gnattools/Makefile to look for the shared ZCX version of the library
-# in the appropriate directory, rather than just "rts", and updates
-# the "make install" and binary targets as well.
-
-Index: b/src/libada/Makefile.in
+Index: b/src/libada-sjlj/Makefile.in
 ===================================================================
---- a/src/libada/Makefile.in
-+++ b/src/libada/Makefile.in
-@@ -16,7 +16,8 @@
- # <http://www.gnu.org/licenses/>.
- 
- # Default target; must be first.
--all: gnatlib
-+GNATLIB = gnatlib-static-zcx gnatlib-static-sjlj gnatlib-shared-zcx
-+all: $(GNATLIB)
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
- 
- .PHONY: all
-@@ -97,26 +98,28 @@
-         "CFLAGS=$(CFLAGS)"
- 
- # Rules to build gnatlib.
--.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared 
osconstool
--gnatlib: @default_gnatlib_target@
-+.PHONY: $(GNATLIB) osconstool
- 
--gnatlib-plain: osconstool $(GCC_DIR)/ada/Makefile
--      test -f stamp-libada || \
--      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \
--      && touch stamp-libada
--      -rm -rf adainclude
--      -rm -rf adalib
--      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
--      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
--
--gnatlib-sjlj gnatlib-zcx gnatlib-shared: osconstool $(GCC_DIR)/ada/Makefile
--      test -f stamp-libada || \
--      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \
--      && touch stamp-libada
--      -rm -rf adainclude
--      -rm -rf adalib
--      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
--      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
-+$(GCC_DIR)/ada/gnatlib-sources-sjlj/a-except.ads:
-+      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) \
-+        EH_MECHANISM="" \
-+        gnatlib-sources-sjlj/a-except.ads
-+
-+$(GCC_DIR)/ada/gnatlib-sources-zcx/a-except.ads:
-+      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) \
-+        EH_MECHANISM="-gcc" \
-+        gnatlib-sources-zcx/a-except.ads
-+
-+$(GNATLIB): osconstool $(GCC_DIR)/ada/Makefile \
-+$(GCC_DIR)/ada/gnatlib-sources-zcx/a-except.ads \
-+$(GCC_DIR)/ada/gnatlib-sources-sjlj/a-except.ads
-+      $(MAKE) -C $(GCC_DIR)/ada $(FLAGS_TO_PASS) \
-+        GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-+        GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+        TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
-+        THREAD_KIND="$(THREAD_KIND)" \
-+        TRACE="$(TRACE)" \
-+        $@
+--- /dev/null
++++ b/src/libada-sjlj/Makefile.in
+@@ -0,0 +1,201 @@
++# Makefile for libada.
++#   Copyright (C) 2003-2015 Free Software Foundation, Inc.
++#
++# This file 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 3 of the License, or
++# (at your option) any later version.
++# 
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++# 
++# You should have received a copy of the GNU General Public License
++# along with this program; see the file COPYING3.  If not see
++# <http://www.gnu.org/licenses/>.
++
++# Default target; must be first.
++all: gnatlib
++      $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
++
++.PHONY: all
++
++## Multilib support variables.
++MULTISRCTOP =
++MULTIBUILDTOP =
++MULTIDIRS =
++MULTISUBDIR =
++MULTIDO = true
++MULTICLEAN = true
++
++# Standard autoconf-set variables.
++SHELL = @SHELL@
++srcdir = @srcdir@
++libdir = @libdir@
++build = @build@
++target = @target@
++prefix = @prefix@
++
++# Nonstandard autoconf-set variables.
++enable_shared = @enable_shared@
++
++LN_S=@LN_S@
++AWK=@AWK@
++
++ifeq (cp -p,$(LN_S))
++LN_S_RECURSIVE = cp -pR
++else
++LN_S_RECURSIVE = $(LN_S)
++endif
++
++# Variables for the user (or the top level) to override.
++objext=.o
++THREAD_KIND=native
++TRACE=no
++LDFLAGS=
++
++# The tedious process of getting CFLAGS right.
++CFLAGS=-g
++PICFLAG = @PICFLAG@
++GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc
++GNATLIBCFLAGS= -g -O2
++GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) \
++      -fexceptions -DIN_RTS @have_getipinfo@
++
++host_subdir = @host_subdir@
++GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc
++
++target_noncanonical:=@target_noncanonical@
++version := $(shell cat $(srcdir)/../gcc/BASE-VER)
++libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
++ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
++ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
++
++# exeext should not be used because it's the *host* exeext.  We're building
++# a *target* library, aren't we?!?  Likewise for CC.  Still, provide bogus
++# definitions just in case something slips through the safety net provided
++# by recursive make invocations in gcc/ada/Makefile.in
++LIBADA_FLAGS_TO_PASS = \
++        "MAKEOVERRIDES=" \
++        "LDFLAGS=$(LDFLAGS)" \
++        "LN_S=$(LN_S)" \
++        "SHELL=$(SHELL)" \
++        "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
++        "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
++        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
++        "PICFLAG_FOR_TARGET=$(PICFLAG)" \
++        "THREAD_KIND=$(THREAD_KIND)" \
++        "TRACE=$(TRACE)" \
++        "MULTISUBDIR=$(MULTISUBDIR)" \
++        "libsubdir=$(libsubdir)" \
++        "objext=$(objext)" \
++        "prefix=$(prefix)" \
++        "exeext=.exeext.should.not.be.used " \
++      'CC=the.host.compiler.should.not.be.needed' \
++      "GCC_FOR_TARGET=$(CC)" \
++        "CFLAGS=$(CFLAGS)" \
++      "RTSDIR=rts-sjlj"
++
++# Rules to build gnatlib.
++.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared 
osconstool
++gnatlib: gnatlib-sjlj
++
++gnatlib-plain: osconstool $(GCC_DIR)/ada/Makefile
++      test -f stamp-libada || \
++      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \
++      && touch stamp-libada
++      -rm -rf adainclude
++      -rm -rf adalib
++      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
++      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
++
++gnatlib-sjlj gnatlib-zcx gnatlib-shared: osconstool $(GCC_DIR)/ada/Makefile
++      test -f stamp-libada || \
++      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \
++      && touch stamp-libada-sjlj
++      -rm -rf adainclude
++      -rm -rf adalib
++      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
++      $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
++
++osconstool:
++      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) 
./bldtools/oscons/xoscons
++
++install-gnatlib: $(GCC_DIR)/ada/Makefile
++      $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) install-gnatlib-sjlj
++
++# Check uninstalled version.
++check:
++
++# Check installed version.
++installcheck:
++
++# Build info (none here).
++info:
++
++# Build DVI (none here).
++dvi:
++
++# Build PDF (none here).
++pdf:
++
++# Build html (none here).
++html:
++
++# Build TAGS (none here).
++TAGS:
++
++.PHONY: check installcheck info dvi pdf html
++
++# Installation rules.
++install: install-gnatlib
++      $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
++
++install-strip: install
++
++install-info:
++
++install-pdf:
++
++install-html:
++
++.PHONY: install install-strip install-info install-pdf install-html
++
++# Cleaning rules.
++mostlyclean:
++      $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
++
++clean:
++      $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
++
++distclean:
++      $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
++      $(RM) Makefile config.status config.log
++
++maintainer-clean:
++
++.PHONY: mostlyclean clean distclean maintainer-clean
++
++# Rules for rebuilding this Makefile.
++Makefile: $(srcdir)/Makefile.in config.status
++      CONFIG_FILES=$@ ; \
++      CONFIG_HEADERS= ; \
++      $(SHELL) ./config.status
++
++config.status: $(srcdir)/configure
++      $(SHELL) ./config.status --recheck
++
++AUTOCONF = autoconf
++configure_deps = \
++      $(srcdir)/configure.ac \
++      $(srcdir)/../config/acx.m4 \
++      $(srcdir)/../config/override.m4 \
++      $(srcdir)/../config/multi.m4
++
++$(srcdir)/configure: @MAINT@ $(configure_deps)
++      cd $(srcdir) && $(AUTOCONF)
++
++# Don't export variables to the environment, in order to not confuse
++# configure.
++.NOEXPORT:
+Index: b/src/libada-sjlj/configure.ac
+===================================================================
+--- /dev/null
++++ b/src/libada-sjlj/configure.ac
+@@ -0,0 +1,140 @@
++# Configure script for libada.
++#   Copyright (C) 2003-2015 Free Software Foundation, Inc.
++#
++# This file 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 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; see the file COPYING3.  If not see
++# <http://www.gnu.org/licenses/>.
++
++sinclude(../config/acx.m4)
++sinclude(../config/multi.m4)
++sinclude(../config/override.m4)
++sinclude(../config/picflag.m4)
++sinclude(../config/unwind_ipinfo.m4)
++
++AC_INIT
++AC_PREREQ([2.64])
++
++AC_CONFIG_SRCDIR([Makefile.in])
++
++# Determine the host, build, and target systems
++AC_CANONICAL_BUILD
++AC_CANONICAL_HOST
++AC_CANONICAL_TARGET
++target_alias=${target_alias-$host_alias}
++
++# Determine the noncanonical target name, for directory use.
++ACX_NONCANONICAL_TARGET
++
++# Determine the target- and build-specific subdirectories
++GCC_TOPLEV_SUBDIRS
++
++# Command-line options.
++# Very limited version of AC_MAINTAINER_MODE.
++AC_ARG_ENABLE([maintainer-mode],
++  [AC_HELP_STRING([--enable-maintainer-mode],
++                 [enable make rules and dependencies not useful (and
++                  sometimes confusing) to the casual installer])],
++  [case ${enable_maintainer_mode} in
++     yes) MAINT='' ;;
++     no) MAINT='#' ;;
++     *) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;;
++   esac
++   maintainer_mode=${enableval}],
++  [MAINT='#'])
++AC_SUBST([MAINT])dnl
++
++AM_ENABLE_MULTILIB(, ..)
++# Calculate toolexeclibdir
++# Also toolexecdir, though it's only used in toolexeclibdir
++case ${enable_version_specific_runtime_libs} in
++  yes)
++    # Need the gcc compiler version to know where to install libraries
++    # and header files if --enable-version-specific-runtime-libs option
++    # is selected.
++    toolexecdir='$(libdir)/gcc/$(target_alias)'
++    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
++    ;;
++  no)
++    if test -n "$with_cross_host" &&
++       test x"$with_cross_host" != x"no"; then
++      # Install a library built with a cross compiler in tooldir, not libdir.
++      toolexecdir='$(exec_prefix)/$(target_alias)'
++      toolexeclibdir='$(toolexecdir)/lib'
++    else
++      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++      toolexeclibdir='$(libdir)'
++    fi
++    multi_os_directory=`$CC -print-multi-os-directory`
++    case $multi_os_directory in
++      .) ;; # Avoid trailing /.
++      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
++    esac
++    ;;
++esac
++AC_SUBST(toolexecdir)
++AC_SUBST(toolexeclibdir)
++#TODO: toolexeclibdir is currently disregarded
++
++# Check the compiler.
++# The same as in boehm-gc and libstdc++. Have to borrow it from there.
++# We must force CC to /not/ be precious variables; otherwise
++# the wrong, non-multilib-adjusted value will be used in multilibs.
++# As a side effect, we have to subst CFLAGS ourselves.
++
++m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
++m4_define([_AC_ARG_VAR_PRECIOUS],[])
++AC_PROG_CC
++m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
++
++AC_SUBST(CFLAGS)
++
++AC_ARG_ENABLE([shared],
++[AC_HELP_STRING([--disable-shared],
++                [don't provide a shared libgnat])],
++[
++case $enable_shared in
++  yes | no) ;;
++  *)
++    enable_shared=no
++    IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
++    for pkg in $enableval; do
++      case $pkg in
++        ada | libada)
++          enable_shared=yes ;;
++      esac
++    done
++    IFS="$ac_save_ifs"
++    ;;
++esac
++], [enable_shared=yes])
++AC_SUBST([enable_shared])
++
++GCC_PICFLAG
++AC_SUBST([PICFLAG])
++
++# These must be passed down, or are needed by gcc/libgcc.mvars
++AC_PROG_AWK
++AC_PROG_LN_S
++
++# Check for _Unwind_GetIPInfo
++GCC_CHECK_UNWIND_GETIPINFO
++have_getipinfo=
++if test x$have_unwind_getipinfo = xyes; then
++  have_getipinfo=-DHAVE_GETIPINFO
++fi
++AC_SUBST(have_getipinfo)
++
++# Output: create a Makefile.
++AC_CONFIG_FILES([Makefile])
++
++AC_OUTPUT
+Index: b/src/Makefile.def
+===================================================================
+--- a/src/Makefile.def
++++ b/src/Makefile.def
+@@ -177,6 +177,13 @@ target_modules = { module= libada; no_in
+                  missing= TAGS;
+                  missing= install-info;
+                  missing= installcheck; };
++target_modules = { module= libada-sjlj; no_install=true; no_check=true;
++                 missing= info;
++                 missing= dvi;
++                 missing= html;
++                 missing= TAGS;
++                 missing= install-info;
++                 missing= installcheck; };
+ target_modules = { module= libgnatvsn; no_check=true;
+                  missing= info;
+                  missing= dvi;
+@@ -384,6 +391,7 @@ dependencies = { module=all-libcpp; on=a
+ dependencies = { module=all-fixincludes; on=all-libiberty; };
  
- osconstool:
-       $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) 
./bldtools/oscons/xoscons
-Index: b/src/gcc/ada/gcc-interface/Makefile.in
+ dependencies = { module=all-target-libada; on=all-gcc; };
++dependencies = { module=all-target-libada-sjlj; on=all-target-libada; };
+ dependencies = { module=all-gnattools; on=all-target-libada; };
+ dependencies = { module=all-gnattools; on=all-target-libgnatvsn; };
+ dependencies = { module=all-gnattools; on=all-target-libgnatprj; };
+Index: b/src/Makefile.in
 ===================================================================
---- a/src/gcc/ada/gcc-interface/Makefile.in
-+++ b/src/gcc/ada/gcc-interface/Makefile.in
-@@ -2459,84 +2459,107 @@
-   $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
-   $(ADA_EXCLUDE_SRCS))
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -964,6 +964,7 @@ configure-target:  \
+     maybe-configure-target-boehm-gc \
+     maybe-configure-target-rda \
+     maybe-configure-target-libada \
++    maybe-configure-target-libada-sjlj \
+     maybe-configure-target-libgnatvsn \
+     maybe-configure-target-libgnatprj \
+     maybe-configure-target-libgomp \
+@@ -1132,6 +1133,7 @@ all-target: maybe-all-target-zlib
+ all-target: maybe-all-target-boehm-gc
+ all-target: maybe-all-target-rda
+ all-target: maybe-all-target-libada
++all-target: maybe-all-target-libada-sjlj
+ all-target: maybe-all-target-libgnatvsn
+ all-target: maybe-all-target-libgnatprj
+ @if target-libgomp-no-bootstrap
+@@ -1229,6 +1231,7 @@ info-target: maybe-info-target-zlib
+ info-target: maybe-info-target-boehm-gc
+ info-target: maybe-info-target-rda
+ info-target: maybe-info-target-libada
++info-target: maybe-info-target-libada-sjlj
+ info-target: maybe-info-target-libgnatvsn
+ info-target: maybe-info-target-libgnatprj
+ info-target: maybe-info-target-libgomp
+@@ -1319,6 +1322,7 @@ dvi-target: maybe-dvi-target-zlib
+ dvi-target: maybe-dvi-target-boehm-gc
+ dvi-target: maybe-dvi-target-rda
+ dvi-target: maybe-dvi-target-libada
++dvi-target: maybe-dvi-target-libada-sjlj
+ dvi-target: maybe-dvi-target-libgnatvsn
+ dvi-target: maybe-dvi-target-libgnatprj
+ dvi-target: maybe-dvi-target-libgomp
+@@ -1409,6 +1413,7 @@ pdf-target: maybe-pdf-target-zlib
+ pdf-target: maybe-pdf-target-boehm-gc
+ pdf-target: maybe-pdf-target-rda
+ pdf-target: maybe-pdf-target-libada
++pdf-target: maybe-pdf-target-libada-sjlj
+ pdf-target: maybe-pdf-target-libgnatvsn
+ pdf-target: maybe-pdf-target-libgnatprj
+ pdf-target: maybe-pdf-target-libgomp
+@@ -1499,6 +1504,7 @@ html-target: maybe-html-target-zlib
+ html-target: maybe-html-target-boehm-gc
+ html-target: maybe-html-target-rda
+ html-target: maybe-html-target-libada
++html-target: maybe-html-target-libada-sjlj
+ html-target: maybe-html-target-libgnatvsn
+ html-target: maybe-html-target-libgnatprj
+ html-target: maybe-html-target-libgomp
+@@ -1589,6 +1595,7 @@ TAGS-target: maybe-TAGS-target-zlib
+ TAGS-target: maybe-TAGS-target-boehm-gc
+ TAGS-target: maybe-TAGS-target-rda
+ TAGS-target: maybe-TAGS-target-libada
++TAGS-target: maybe-TAGS-target-libada-sjlj
+ TAGS-target: maybe-TAGS-target-libgnatvsn
+ TAGS-target: maybe-TAGS-target-libgnatprj
+ TAGS-target: maybe-TAGS-target-libgomp
+@@ -1679,6 +1686,7 @@ install-info-target: maybe-install-info-
+ install-info-target: maybe-install-info-target-boehm-gc
+ install-info-target: maybe-install-info-target-rda
+ install-info-target: maybe-install-info-target-libada
++install-info-target: maybe-install-info-target-libada-sjlj
+ install-info-target: maybe-install-info-target-libgnatvsn
+ install-info-target: maybe-install-info-target-libgnatprj
+ install-info-target: maybe-install-info-target-libgomp
+@@ -1769,6 +1777,7 @@ install-pdf-target: maybe-install-pdf-ta
+ install-pdf-target: maybe-install-pdf-target-boehm-gc
+ install-pdf-target: maybe-install-pdf-target-rda
+ install-pdf-target: maybe-install-pdf-target-libada
++install-pdf-target: maybe-install-pdf-target-libada-sjlj
+ install-pdf-target: maybe-install-pdf-target-libgnatvsn
+ install-pdf-target: maybe-install-pdf-target-libgnatprj
+ install-pdf-target: maybe-install-pdf-target-libgomp
+@@ -1859,6 +1868,7 @@ install-html-target: maybe-install-html-
+ install-html-target: maybe-install-html-target-boehm-gc
+ install-html-target: maybe-install-html-target-rda
+ install-html-target: maybe-install-html-target-libada
++install-html-target: maybe-install-html-target-libada-sjlj
+ install-html-target: maybe-install-html-target-libgnatvsn
+ install-html-target: maybe-install-html-target-libgnatprj
+ install-html-target: maybe-install-html-target-libgomp
+@@ -1949,6 +1959,7 @@ installcheck-target: maybe-installcheck-
+ installcheck-target: maybe-installcheck-target-boehm-gc
+ installcheck-target: maybe-installcheck-target-rda
+ installcheck-target: maybe-installcheck-target-libada
++installcheck-target: maybe-installcheck-target-libada-sjlj
+ installcheck-target: maybe-installcheck-target-libgnatvsn
+ installcheck-target: maybe-installcheck-target-libgnatprj
+ installcheck-target: maybe-installcheck-target-libgomp
+@@ -2039,6 +2050,7 @@ mostlyclean-target: maybe-mostlyclean-ta
+ mostlyclean-target: maybe-mostlyclean-target-boehm-gc
+ mostlyclean-target: maybe-mostlyclean-target-rda
+ mostlyclean-target: maybe-mostlyclean-target-libada
++mostlyclean-target: maybe-mostlyclean-target-libada-sjlj
+ mostlyclean-target: maybe-mostlyclean-target-libgnatvsn
+ mostlyclean-target: maybe-mostlyclean-target-libgnatprj
+ mostlyclean-target: maybe-mostlyclean-target-libgomp
+@@ -2129,6 +2141,7 @@ clean-target: maybe-clean-target-zlib
+ clean-target: maybe-clean-target-boehm-gc
+ clean-target: maybe-clean-target-rda
+ clean-target: maybe-clean-target-libada
++clean-target: maybe-clean-target-libada-sjlj
+ clean-target: maybe-clean-target-libgnatvsn
+ clean-target: maybe-clean-target-libgnatprj
+ clean-target: maybe-clean-target-libgomp
+@@ -2219,6 +2232,7 @@ distclean-target: maybe-distclean-target
+ distclean-target: maybe-distclean-target-boehm-gc
+ distclean-target: maybe-distclean-target-rda
+ distclean-target: maybe-distclean-target-libada
++distclean-target: maybe-distclean-target-libada-sjlj
+ distclean-target: maybe-distclean-target-libgnatvsn
+ distclean-target: maybe-distclean-target-libgnatprj
+ distclean-target: maybe-distclean-target-libgomp
+@@ -2309,6 +2323,7 @@ maintainer-clean-target: maybe-maintaine
+ maintainer-clean-target: maybe-maintainer-clean-target-boehm-gc
+ maintainer-clean-target: maybe-maintainer-clean-target-rda
+ maintainer-clean-target: maybe-maintainer-clean-target-libada
++maintainer-clean-target: maybe-maintainer-clean-target-libada-sjlj
+ maintainer-clean-target: maybe-maintainer-clean-target-libgnatvsn
+ maintainer-clean-target: maybe-maintainer-clean-target-libgnatprj
+ maintainer-clean-target: maybe-maintainer-clean-target-libgomp
+@@ -2454,6 +2469,7 @@ check-target:  \
+     maybe-check-target-boehm-gc \
+     maybe-check-target-rda \
+     maybe-check-target-libada \
++    maybe-check-target-libada-sjlj \
+     maybe-check-target-libgnatvsn \
+     maybe-check-target-libgnatprj \
+     maybe-check-target-libgomp \
+@@ -2631,6 +2647,7 @@ install-target:  \
+     maybe-install-target-boehm-gc \
+     maybe-install-target-rda \
+     maybe-install-target-libada \
++    maybe-install-target-libada-sjlj \
+     maybe-install-target-libgnatvsn \
+     maybe-install-target-libgnatprj \
+     maybe-install-target-libgomp \
+@@ -2741,6 +2758,7 @@ install-strip-target:  \
+     maybe-install-strip-target-boehm-gc \
+     maybe-install-strip-target-rda \
+     maybe-install-strip-target-libada \
++    maybe-install-strip-target-libada-sjlj \
+     maybe-install-strip-target-libgnatvsn \
+     maybe-install-strip-target-libgnatprj \
+     maybe-install-strip-target-libgomp \
+@@ -45650,6 +45668,352 @@ maintainer-clean-target-libada:
  
--../stamp-gnatlib-$(RTSDIR):
--      @if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
--      then \
--        $(ECHO) You must first build the GNAT library: make gnatlib; \
--        false; \
--      else \
--        true; \
--      fi
-+libgnat = libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
  
--install-gnatlib: ../stamp-gnatlib-$(RTSDIR)
-+install-gnatlib: $(GNATLIB_SHARED)
- #     Create the directory before deleting it, in case the directory is
- #     a list of directories (as it may be on VMS). This ensures we are
- #     deleting the right one.
--      -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
--      -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
--      $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
--      $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
--      -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
--      -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
--      for file in $(RTSDIR)/*.ali; do \
--          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
-+      -$(MKDIR) $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR)
-+      $(RMDIR) $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR)
-+      $(RMDIR) $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR)
-+
-+      -$(MKDIR) $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR)
-+      $(RMDIR) $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR)
-+      $(RMDIR) $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR)
-+      -$(MKDIR) $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR)
-+
-+      for file in rts-shared-zcx/*.ali; do \
-+      $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR); \
-+      done
-+      for file in rts-static-sjlj/*.ali; do \
-+      $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR); \
-+      done
+ 
++.PHONY: configure-target-libada-sjlj maybe-configure-target-libada-sjlj
++maybe-configure-target-libada-sjlj:
++@if gcc-bootstrap
++configure-target-libada-sjlj: stage_current
++@endif gcc-bootstrap
++@if target-libada-sjlj
++maybe-configure-target-libada-sjlj: configure-target-libada-sjlj
++configure-target-libada-sjlj: 
++      @: $(MAKE); $(unstage)
++      @r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      echo "Checking multilib configuration for libada-sjlj..."; \
++      $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj ; \
++      $(CC_FOR_TARGET) --print-multi-lib > 
$(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 2> /dev/null ; \
++      if test -r $(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \
++        if cmp -s $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 
$(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \
++          rm -f $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp; \
++        else \
++          rm -f $(TARGET_SUBDIR)/libada-sjlj/Makefile; \
++          mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 
$(TARGET_SUBDIR)/libada-sjlj/multilib.out; \
++        fi; \
++      else \
++        mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 
$(TARGET_SUBDIR)/libada-sjlj/multilib.out; \
++      fi; \
++      test ! -f $(TARGET_SUBDIR)/libada-sjlj/Makefile || exit 0; \
++      $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj ; \
++      $(NORMAL_TARGET_EXPORTS)  \
++      echo Configuring in $(TARGET_SUBDIR)/libada-sjlj; \
++      cd "$(TARGET_SUBDIR)/libada-sjlj" || exit 1; \
++      case $(srcdir) in \
++        /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
++        *) topdir=`echo $(TARGET_SUBDIR)/libada-sjlj/ | \
++              sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
++      esac; \
++      module_srcdir=libada-sjlj; \
++      rm -f no-such-file || : ; \
++      CONFIG_SITE=no-such-file $(SHELL) \
++        $$s/$$module_srcdir/configure \
++        --srcdir=$${topdir}/$$module_srcdir \
++        $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
++        --target=${target_alias}  \
++        || exit 1
++@endif target-libada-sjlj
 +
-+      -cd rts-static-zcx; for file in *$(arext);do \
-+      $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR); \
-+      $(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR)/$$file; \
-       done
--      -cd $(RTSDIR); for file in *$(arext);do \
--          $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
--          $(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_RTL_OBJ_DIR)/$$file; \
-+      -cd rts-static-sjlj; for file in *$(arext);do \
-+      $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR); \
-+      $(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR)/$$file; \
-       done
-+
-+      -$(foreach file, $(EXTRA_ADALIB_FILES), \
-+          $(INSTALL_DATA_DATE) rts-static-zcx/$(file) 
$(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR) && \
-+      ) true
-       -$(foreach file, $(EXTRA_ADALIB_FILES), \
--          $(INSTALL_DATA_DATE) $(RTSDIR)/$(file) $(DESTDIR)$(ADA_RTL_OBJ_DIR) 
&& \
-+          $(INSTALL_DATA_DATE) rts-static-sjlj/$(file) 
$(DESTDIR)$(ADA_SJLJ_RTL_OBJ_DIR) && \
-       ) true
- #     Install the shared libraries, if any, using $(INSTALL) instead
- #     of $(INSTALL_DATA). The latter may force a mode inappropriate
- #     for shared libraries on some targets, e.g. on HP-UX where the x
- #     permission is required.
--#     Also install the .dSYM directories if they exist (these directories
--#     contain the debug information for the shared libraries on darwin)
-       for file in gnat gnarl; do \
--         if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 
]; then \
--            $(INSTALL) 
$(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
--                       $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
--         fi; \
--         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); \
-+         if [ -f 
rts-shared-zcx/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 ]; then \
-+            $(INSTALL) 
rts-shared-zcx/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
-+                       $(DESTDIR)$(ADA_NATIVE_RTL_OBJ_DIR); \
-          fi; \
-       done
- # This copy must be done preserving the date on the original file.
--      for file in $(RTSDIR)/*.ad?; do \
--          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
-+      for file in rts-shared-zcx/*.adb rts-shared-zcx/*.ads; do \
-+          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR); \
-       done
--      cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
--      cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
-+      $(CHMOD) u=rw,go=r $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR)/*.adb
-+      $(CHMOD) u=rw,go=r $(DESTDIR)$(ADA_NATIVE_INCLUDE_DIR)/*.ads
-+      for file in rts-static-sjlj/*.adb rts-static-sjlj/*.ads; do \
-+          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR); \
-+      done
-+      $(CHMOD) u=rw,go=r $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR)/*.adb
-+      $(CHMOD) u=rw,go=r $(DESTDIR)$(ADA_SJLJ_INCLUDE_DIR)/*.ads
 +
-+      (cd $(DESTDIR)$(libsubdir); \
-+      ln -s rts-native/adainclude adainclude; \
-+      ln -s rts-native/adalib     adalib;)
 +
-+replace_zcx_by_default=\
-+'s/ZCX_By_Default.*/ZCX_By_Default            : constant Boolean := 
$(zcx_by_default);/'
 +
-+gnatlib-sources-zcx/a-except.ads: dir=$(dir $@)
-+gnatlib-sources-zcx/a-except.ads: zcx_by_default=True
 +
-+gnatlib-sources-sjlj/a-except.ads: dir=$(dir $@)
-+gnatlib-sources-sjlj/a-except.ads: zcx_by_default=False
- 
--../stamp-gnatlib1-$(RTSDIR): Makefile
--      $(RMDIR) $(RTSDIR)
--      $(MKDIR) $(RTSDIR)
--      $(CHMOD) u+w $(RTSDIR)
-+gnatlib-sources-zcx/a-except.ads gnatlib-sources-sjlj/a-except.ads:
-+      $(MKDIR) $(dir)
-+      $(CHMOD) u+w $(dir)
- # Copy target independent sources
-       $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
--        $(LN_S) $(fsrcpfx)ada/$(f) $(RTSDIR) ;) true
-+        $(LN_S) $(fsrcpfx)ada/$(f) $(dir) ;) true
- # Remove files not used
--      $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
-+      $(RM) $(patsubst %,$(dir)/%,$(ADA_EXCLUDE_FILES))
- # Remove files to be replaced by target dependent sources
-       $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
--                      $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
--      for f in $(RTSDIR)/*-*-*.ads $(RTSDIR)/*-*-*.adb; do \
-+                      $(dir)/$(word 1,$(subst <, ,$(PAIR))))
-+      for f in $(dir)/*-*-*.ads $(dir)/*-*-*.adb; do \
-         case "$$f" in \
--          $(RTSDIR)/s-stratt-*) ;; \
-+          $(dir)/s-stratt-*) ;; \
-           *) $(RM) $$f ;; \
-         esac; \
-       done
- # Copy new target dependent sources
-       $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
-                 $(LN_S) $(fsrcpfx)ada/$(word 2,$(subst <, ,$(PAIR))) \
--                      $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
-+                      $(dir)/$(word 1,$(subst <, ,$(PAIR)));)
-+      sed -e $(replace_zcx_by_default) $(dir)/system.ads > $(dir)/s.ads
- # Copy tsystem.h
--      $(CP) $(srcdir)/tsystem.h $(RTSDIR)
--      $(RM) ../stamp-gnatlib-$(RTSDIR)
--      touch ../stamp-gnatlib1-$(RTSDIR)
-+      $(CP) $(srcdir)/tsystem.h $(dir)
++.PHONY: all-target-libada-sjlj maybe-all-target-libada-sjlj
++maybe-all-target-libada-sjlj:
++@if gcc-bootstrap
++all-target-libada-sjlj: stage_current
++@endif gcc-bootstrap
++@if target-libada-sjlj
++TARGET-target-libada-sjlj=all
++maybe-all-target-libada-sjlj: all-target-libada-sjlj
++all-target-libada-sjlj: configure-target-libada-sjlj
++      @: $(MAKE); $(unstage)
++      @r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS)  \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
++              $(TARGET-target-libada-sjlj))
++@endif target-libada-sjlj
++
++
++
++
++
++.PHONY: check-target-libada-sjlj maybe-check-target-libada-sjlj
++maybe-check-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-check-target-libada-sjlj: check-target-libada-sjlj
++
++# Dummy target for uncheckable module.
++check-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: install-target-libada-sjlj maybe-install-target-libada-sjlj
++maybe-install-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-install-target-libada-sjlj: install-target-libada-sjlj
++
++# Dummy target for uninstallable.
++install-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: install-strip-target-libada-sjlj 
maybe-install-strip-target-libada-sjlj
++maybe-install-strip-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-install-strip-target-libada-sjlj: install-strip-target-libada-sjlj
++
++# Dummy target for uninstallable.
++install-strip-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++# Other targets (info, dvi, pdf, etc.)
++
++.PHONY: maybe-info-target-libada-sjlj info-target-libada-sjlj
++maybe-info-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-info-target-libada-sjlj: info-target-libada-sjlj
++
++# libada-sjlj doesn't support info.
++info-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-dvi-target-libada-sjlj dvi-target-libada-sjlj
++maybe-dvi-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-dvi-target-libada-sjlj: dvi-target-libada-sjlj
++
++# libada-sjlj doesn't support dvi.
++dvi-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-pdf-target-libada-sjlj pdf-target-libada-sjlj
++maybe-pdf-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-pdf-target-libada-sjlj: pdf-target-libada-sjlj
++
++pdf-target-libada-sjlj: \
++    configure-target-libada-sjlj 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing pdf in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 pdf) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-html-target-libada-sjlj html-target-libada-sjlj
++maybe-html-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-html-target-libada-sjlj: html-target-libada-sjlj
++
++# libada-sjlj doesn't support html.
++html-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-TAGS-target-libada-sjlj TAGS-target-libada-sjlj
++maybe-TAGS-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-TAGS-target-libada-sjlj: TAGS-target-libada-sjlj
++
++# libada-sjlj doesn't support TAGS.
++TAGS-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-install-info-target-libada-sjlj install-info-target-libada-sjlj
++maybe-install-info-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-install-info-target-libada-sjlj: install-info-target-libada-sjlj
++
++# libada-sjlj doesn't support install-info.
++install-info-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-install-pdf-target-libada-sjlj install-pdf-target-libada-sjlj
++maybe-install-pdf-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-install-pdf-target-libada-sjlj: install-pdf-target-libada-sjlj
++
++install-pdf-target-libada-sjlj: \
++    configure-target-libada-sjlj \
++    pdf-target-libada-sjlj 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing install-pdf in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 install-pdf) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-install-html-target-libada-sjlj install-html-target-libada-sjlj
++maybe-install-html-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-install-html-target-libada-sjlj: install-html-target-libada-sjlj
++
++install-html-target-libada-sjlj: \
++    configure-target-libada-sjlj \
++    html-target-libada-sjlj 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing install-html in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 install-html) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-installcheck-target-libada-sjlj installcheck-target-libada-sjlj
++maybe-installcheck-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-installcheck-target-libada-sjlj: installcheck-target-libada-sjlj
++
++# libada-sjlj doesn't support installcheck.
++installcheck-target-libada-sjlj:
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-mostlyclean-target-libada-sjlj mostlyclean-target-libada-sjlj
++maybe-mostlyclean-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-mostlyclean-target-libada-sjlj: mostlyclean-target-libada-sjlj
++
++mostlyclean-target-libada-sjlj: 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 mostlyclean) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-clean-target-libada-sjlj clean-target-libada-sjlj
++maybe-clean-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-clean-target-libada-sjlj: clean-target-libada-sjlj
++
++clean-target-libada-sjlj: 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing clean in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 clean) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-distclean-target-libada-sjlj distclean-target-libada-sjlj
++maybe-distclean-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-distclean-target-libada-sjlj: distclean-target-libada-sjlj
++
++distclean-target-libada-sjlj: 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing distclean in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 distclean) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++.PHONY: maybe-maintainer-clean-target-libada-sjlj 
maintainer-clean-target-libada-sjlj
++maybe-maintainer-clean-target-libada-sjlj:
++@if target-libada-sjlj
++maybe-maintainer-clean-target-libada-sjlj: maintainer-clean-target-libada-sjlj
++
++maintainer-clean-target-libada-sjlj: 
++      @: $(MAKE); $(unstage)
++      @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0 ; \
++      r=`${PWD_COMMAND}`; export r; \
++      s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
++      $(NORMAL_TARGET_EXPORTS) \
++      echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada-sjlj" ; \
++      for flag in $(EXTRA_TARGET_FLAGS); do \
++        eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
++      done; \
++      (cd $(TARGET_SUBDIR)/libada-sjlj && \
++        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
++                "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
++                "RANLIB=$${RANLIB}" \
++                "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
++                 maintainer-clean) \
++        || exit 1
++
++@endif target-libada-sjlj
++
++
++
++
++
+ .PHONY: configure-target-libgnatvsn maybe-configure-target-libgnatvsn
+ maybe-configure-target-libgnatvsn:
+ @if gcc-bootstrap
+@@ -50496,6 +50860,7 @@ configure-target-zlib: stage_last
+ configure-target-boehm-gc: stage_last
+ configure-target-rda: stage_last
+ configure-target-libada: stage_last
++configure-target-libada-sjlj: stage_last
+ configure-target-libgnatvsn: stage_last
+ configure-target-libgnatprj: stage_last
+ configure-stage1-target-libgomp: maybe-all-stage1-gcc
+@@ -50533,6 +50898,7 @@ configure-target-zlib: maybe-all-gcc
+ configure-target-boehm-gc: maybe-all-gcc
+ configure-target-rda: maybe-all-gcc
+ configure-target-libada: maybe-all-gcc
++configure-target-libada-sjlj: maybe-all-gcc
+ configure-target-libgnatvsn: maybe-all-gcc
+ configure-target-libgnatprj: maybe-all-gcc
+ configure-target-libgomp: maybe-all-gcc
+@@ -50875,6 +51241,7 @@ all-stage4-fixincludes: maybe-all-stage4
+ all-stageprofile-fixincludes: maybe-all-stageprofile-libiberty
+ all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty
+ all-target-libada: maybe-all-gcc
++all-target-libada-sjlj: maybe-all-target-libada
+ all-gnattools: maybe-all-target-libada
+ all-gnattools: maybe-all-target-libgnatvsn
+ all-gnattools: maybe-all-target-libgnatprj
+@@ -51452,6 +51819,7 @@ configure-target-zlib: maybe-all-target-
+ configure-target-boehm-gc: maybe-all-target-libgcc
+ configure-target-rda: maybe-all-target-libgcc
+ configure-target-libada: maybe-all-target-libgcc
++configure-target-libada-sjlj: maybe-all-target-libgcc
+ configure-target-libgnatvsn: maybe-all-target-libgcc
+ configure-target-libgnatprj: maybe-all-target-libgcc
+ configure-target-libgomp: maybe-all-target-libgcc
+@@ -51507,6 +51875,8 @@ configure-target-rda: maybe-all-target-n
  
- ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%, 
$(host_cpu) $(host_os))),)
- OSCONS_CPP=../../$(DECC) -E /comment=as_is -DNATIVE \
-@@ -2563,9 +2586,11 @@
-       $(CP) $^ ./bldtools/oscons
-       (cd ./bldtools/oscons ; gnatmake -q xoscons)
+ configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss
  
--$(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c 
gsocket.h ./bldtools/oscons/xoscons
--      $(RM) $(RTSDIR)/s-oscons-tmplt.i $(RTSDIR)/s-oscons-tmplt.s
--      (cd $(RTSDIR) ; \
-+.PRECIOUS: %/s-oscons.ads
-+%/s-oscons.ads: dir = $(dir $@)
-+%/s-oscons.ads: s-oscons-tmplt.c gsocket.h ./bldtools/oscons/xoscons
-+      $(RM) $(dir)/s-oscons-tmplt.i $(dir)/s-oscons-tmplt.s
-+      (cd $(dir) ; \
-           $(OSCONS_CPP) ; \
-           $(OSCONS_EXTRACT) ; \
-           ../bldtools/oscons/xoscons s-oscons)
-@@ -2576,9 +2601,12 @@
- # Example: cd $(RTSDIR); ar rc libfoo.a $(LONG_LIST_OF_OBJS)
- # is guaranteed to overflow the buffer.
++configure-target-libada-sjlj: maybe-all-target-newlib 
maybe-all-target-libgloss
++
+ configure-target-libgnatvsn: maybe-all-target-newlib maybe-all-target-libgloss
  
--gnatlib: ../stamp-gnatlib1-$(RTSDIR) $(RTSDIR)/s-oscons.ads
-+%/libgnat$(arext): build_dir = $(dir $@)
-+%/libgnat$(arext): libgnarl = $(subst libgnat,libgnarl,$@)
-+%/libgnat$(arext): libgnala = $(subst libgnat,libgnala,$@)
-+%/libgnat$(arext): % %/s-oscons.ads
- # C files
--      $(MAKE) -C $(RTSDIR) \
-+      $(MAKE) -C $(build_dir) \
-               CC="`echo \"$(GCC_FOR_TARGET)\" \
-               | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
-               INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
-@@ -2587,7 +2615,7 @@
-               srcdir=$(fsrcdir) \
-               -f ../Makefile $(LIBGNAT_OBJS)
- # Ada files
--      $(MAKE) -C $(RTSDIR) \
-+      $(MAKE) -C $(build_dir) \
-               CC="`echo \"$(GCC_FOR_TARGET)\" \
-               | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
-               ADA_INCLUDES="" \
-@@ -2596,24 +2624,24 @@
-               FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
-               srcdir=$(fsrcdir) \
-               -f ../Makefile $(GNATRTL_OBJS)
--      $(RM) $(RTSDIR)/libgnat$(arext) $(RTSDIR)/libgnarl$(arext)
--      $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnat$(arext) \
--         $(addprefix $(RTSDIR)/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
--      $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnat$(arext)
--      $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnarl$(arext) \
--         $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS))
--      $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnarl$(arext)
-+      $(RM) $@ $(libgnarl)
-+      $(AR_FOR_TARGET) $(AR_FLAGS) $@ \
-+         $(addprefix $(build_dir),$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) 
g-trasym.o)
-+      $(RANLIB_FOR_TARGET) $@
-+      $(AR_FOR_TARGET) $(AR_FLAGS) $(libgnarl) \
-+         $(addprefix $(build_dir),$(GNATRTL_TASKING_OBJS))
-+      $(RANLIB_FOR_TARGET) $(libgnarl)
-         ifeq ($(GMEM_LIB),gmemlib)
--              $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgmem$(arext) \
--                $(RTSDIR)/memtrack.o
--              $(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext)
-+              $(AR_FOR_TARGET) $(AR_FLAGS) $(build_dir)libgmem$(arext) \
-+                $(build_dir)memtrack.o
-+              $(RANLIB_FOR_TARGET) $(build_dir)libgmem$(arext)
-         endif
--      $(CHMOD) a-wx $(RTSDIR)/*.ali
--      touch ../stamp-gnatlib-$(RTSDIR)
+ configure-target-libgnatprj: maybe-all-target-newlib maybe-all-target-libgloss
+Index: b/src/configure.ac
+===================================================================
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -175,6 +175,7 @@ target_libraries="target-libgcc \
+               ${libgcj} \
+               target-libobjc \
+               target-libada \
++              target-libada-sjlj \
+               ${target_libiberty} \
+               target-libgnatvsn \
+               target-libgnatprj \
+@@ -447,7 +448,7 @@ AC_ARG_ENABLE(libada,
+ ENABLE_LIBADA=$enableval,
+ ENABLE_LIBADA=yes)
+ if test "${ENABLE_LIBADA}" != "yes" ; then
+-  noconfigdirs="$noconfigdirs target-libgnatvsn target-libgnatprj gnattools"
++  noconfigdirs="$noconfigdirs target-libgnatvsn target-libgnatprj gnattools 
target-libada-sjlj"
+ fi
  
- # Warning: this target assumes that LIBRARY_VERSION has been set correctly.
--gnatlib-shared-default:
--      $(MAKE) -C $(RTSDIR) \
-+%/$(libgnat): build_dir = $(dir $@)
-+%/$(libgnat): libgnarl = $(notdir $(subst libgnat,libgnarl,$@))
-+%/$(libgnat): % %/s-oscons.ads
-+      $(MAKE) -C $(build_dir) \
-               CC="`echo \"$(GCC_FOR_TARGET)\" \
-               | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
-               INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
-@@ -2621,7 +2649,7 @@
-               FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
-               srcdir=$(fsrcdir) \
-               -f ../Makefile $(LIBGNAT_OBJS)
--      $(MAKE) -C $(RTSDIR) \
-+      $(MAKE) -C $(build_dir) \
-               CC="`echo \"$(GCC_FOR_TARGET)\" \
-               | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
-               ADA_INCLUDES="" \
-@@ -2631,176 +2659,46 @@
-               srcdir=$(fsrcdir) \
-               -f ../Makefile \
-               $(GNATRTL_OBJS)
--      $(RM) $(RTSDIR)/libgna*$(soext) $(RTSDIR)/libgna*$(soext).1
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-shared $(GNATLIBCFLAGS) \
-+      $(RM) $(build_dir)/libgna*$(soext) $(build_dir)/libgna*$(soext).1
-+      cd $(build_dir); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
-               $(PICFLAG_FOR_TARGET) \
--              -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
-+              -o $(notdir $@).1 \
-               $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
--              $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
-+              $(SO_OPTS)$(notdir $@).1 \
-               $(MISCLIB) -lm
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-shared $(GNATLIBCFLAGS) \
-+      cd $(build_dir); $(LN_S) $(notdir $@).1 $(notdir $@)
-+      cd $(build_dir); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
-               $(PICFLAG_FOR_TARGET) \
--              -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
-+              -o $(libgnarl).1 \
-               $(GNATRTL_TASKING_OBJS) \
--              $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
-+              $(SO_OPTS)$(libgnarl).1 \
-               $(THREADSLIB)
--      cd $(RTSDIR); for lib in gnat gnarl; do \
--              l=lib$${lib}$(hyphen)$(LIBRARY_VERSION)$(soext); \
--              $(LN_S) $$l.1 $$l; \
--      done
--# Delete the object files, lest they be linked statically into the tools
--# executables.  Only the .ali, .a and .so files must remain.
--      rm -f $(RTSDIR)/*.o
--      $(CHMOD) a-wx $(RTSDIR)/*.ali
-+      cd $(build_dir); $(LN_S) $(libgnarl).1 $(libgnarl)
+ AC_ARG_ENABLE(libssp,
+Index: b/src/gcc/ada/gcc-interface/Makefile.in
+===================================================================
+--- a/src/gcc/ada/gcc-interface/Makefile.in
++++ b/src/gcc/ada/gcc-interface/Makefile.in
+@@ -208,7 +208,7 @@ TOOLSCASE =
  
--gnatlib-shared-dual:
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib
--      $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib-shared-default
-+gnatlib-shared-dual: gnatlib-static-zcx gnatlib-static-sjlj gnatlib-shared-zcx
+ # Multilib handling
+ MULTISUBDIR =
+-RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
++RTSDIR := rts$(subst /,_,$(MULTISUBDIR))
  
--gnatlib-shared-dual-win32:
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
--           PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib
--      $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib-shared-win32
--
--# ??? we need to add the option to support auto-import of arrays/records to
--# the GNATLIBFLAGS when this will be supported by GNAT. At this point we will
--# use the gnatlib-shared-dual-win32 target to build the GNAT runtimes on
--# Windows.
--gnatlib-shared-win32:
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" 
\
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib
--      $(RM) $(RTSDIR)/libgna*$(soext)
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-shared -shared-libgcc \
--              $(PICFLAG_FOR_TARGET) \
--              -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
--              $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-shared -shared-libgcc \
--              $(PICFLAG_FOR_TARGET) \
--              -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(GNATRTL_TASKING_OBJS) \
--              $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
--
--gnatlib-shared-darwin:
--      $(MAKE) $(FLAGS_TO_PASS) \
--           GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET) 
-fno-common" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--           gnatlib
--      $(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext)
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-dynamiclib $(PICFLAG_FOR_TARGET) \
--              -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
--              $(SO_OPTS) \
--              
-Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(MISCLIB)
--      cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
--                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` 
-dynamiclib $(PICFLAG_FOR_TARGET) \
--              -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(GNATRTL_TASKING_OBJS) \
--              $(SO_OPTS) \
--              
-Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
--      cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              libgnat$(soext)
--      cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
--              libgnarl$(soext)
--      cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
--      cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
--
--gnatlib-shared-vms:
--      $(MAKE) $(FLAGS_TO_PASS) \
--             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
--           GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
--           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
--           MULTISUBDIR="$(MULTISUBDIR)" \
--           THREAD_KIND="$(THREAD_KIND)" \
--             gnatlib
--      $(RM) $(RTSDIR)/libgna*$(soext)
--      cd $(RTSDIR) && \
--      ../../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 $(RTSDIR) && \
--      ../../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) \
--         sys\$$library:trace.exe \
--         --for-linker=/noinform \
--         --for-linker=SYMVEC_$$$$.opt \
--         --for-linker=gsmatch=equal,$(GSMATCH_VERSION)
--
--gnatlib-shared:
-+gnatlib-shared-zcx: rts = $(subst gnatlib,rts,$@)
-+gnatlib-shared-zcx: gnatlib-sources-zcx/a-except.ads
-+      if [ ! -d $(rts) ] ; then \
-+          cp -a gnatlib-sources-zcx $(rts); \
-+          $(MV) $(rts)/s.ads $(rts)/system.ads; \
-+      fi
-       $(MAKE) $(FLAGS_TO_PASS) \
-+             EH_MECHANISM="-gcc" \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-            GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-            PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
--             $(GNATLIB_SHARED)
-+             $(rts)/$(libgnat)
+ # Link flags used to build gnat tools.  By default we prefer to statically
+ # link with libgcc to avoid a dependency on shared libgcc (which is tricky
+@@ -2567,6 +2567,27 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
+       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
+       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
  
--# When building a SJLJ runtime for VxWorks, in addition to forcing
--# ZCX_By_default to False, we need to ensure that extra linker options
--# are not passed to prevent the inclusion of useless objects and
--# potential troubles from the presence of extra symbols and references
--# in some configurations.  The inhibition is performed by commenting
--# the pragma instead of deleting the line, as the latter might result
--# in getting multiple blank lines, hence a style check error, as a
--# result.
--gnatlib-sjlj:
++install-gnatlib-sjlj: ../stamp-gnatlib-$(RTSDIR)
++#     Create the directory before deleting it, in case the directory is
++#     a list of directories (as it may be on VMS). This ensures we are
++#     deleting the right one.
++      -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ)
++      -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ)
++      $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ)
++      $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ)
++      -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ)
++      -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ)
++      for file in $(RTSDIR)/*.ali; do \
++          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ); \
++      done
++      # This copy must be done preserving the date on the original file.
++      for file in $(RTSDIR)/*.ad?; do \
++          $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); \
++      done
++      cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.adb
++      cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.ads
++
++
+ ../stamp-gnatlib1-$(RTSDIR): Makefile
+       $(RMDIR) $(RTSDIR)
+       $(MKDIR) $(RTSDIR)
+@@ -2820,13 +2841,14 @@ gnatlib-shared:
+ # in getting multiple blank lines, hence a style check error, as a
+ # result.
+ gnatlib-sjlj:
 -      $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \
--      THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
--      sed -e 's/ZCX_By_Default.*/ZCX_By_Default            : constant Boolean 
:= False;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads
--      sed -e 's/\(pragma Linker.*crtbe.*\)/--  \1/' $(RTSDIR)/s.ads > 
$(RTSDIR)/s2.ads
--      $(RM) $(RTSDIR)/s.ads
--      $(MV) $(RTSDIR)/s2.ads $(RTSDIR)/system.ads
-+gnatlib-static-sjlj: rts = $(subst gnatlib,rts,$@)
-+gnatlib-static-sjlj: gnatlib-sources-sjlj/a-except.ads
-+      if [ ! -d $(rts) ] ; then \
-+          cp -a gnatlib-sources-sjlj $(rts); \
-+          $(MV) $(rts)/s.ads $(rts)/system.ads; \
-+      fi
++      $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" RTSDIR="$(RTSDIR)" \
+       THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
+       sed -e 's/ZCX_By_Default.*/ZCX_By_Default            : constant Boolean 
:= False;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads
+       sed -e 's/\(pragma Linker.*crtbe.*\)/--  \1/' $(RTSDIR)/s.ads > 
$(RTSDIR)/s2.ads
+       $(RM) $(RTSDIR)/s.ads
+       $(MV) $(RTSDIR)/s2.ads $(RTSDIR)/system.ads
        $(MAKE) $(FLAGS_TO_PASS) \
++           RTSDIR="$(RTSDIR)" \
             EH_MECHANISM="" \
             GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-@@ -2809,13 +2707,15 @@
-            FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
--           PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
-+           PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
-+           $(rts)/libgnat.a
- 
--gnatlib-zcx:
--      $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \
--        THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
--      sed -e 's/ZCX_By_Default.*/ZCX_By_Default            : constant Boolean 
:= True;/' $(RTSDIR)/system.ads > $(RTSDIR)/s.ads
--      $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads
-+gnatlib-static-zcx: rts = $(subst gnatlib,rts,$@)
-+gnatlib-static-zcx: gnatlib-sources-zcx/a-except.ads
-+      if [ ! -d $(rts) ] ; then \
-+          cp -a gnatlib-sources-zcx $(rts); \
-+          $(MV) $(rts)/s.ads $(rts)/system.ads; \
-+      fi
-       $(MAKE) $(FLAGS_TO_PASS) \
-            EH_MECHANISM="-gcc" \
-            GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-@@ -2824,10 +2724,15 @@
-            FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
--           PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
-+           PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
-+           $(rts)/libgnat$(arext)
+            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
+@@ -2875,6 +2897,8 @@ b_gnatm.o : b_gnatm.adb
  
  ADA_INCLUDE_DIR = $(libsubdir)/adainclude
  ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
-+ADA_NATIVE_INCLUDE_DIR = $(libsubdir)/rts-native/adainclude
-+ADA_NATIVE_RTL_OBJ_DIR = $(libsubdir)/rts-native/adalib
-+ADA_SJLJ_INCLUDE_DIR = $(libsubdir)/rts-sjlj/adainclude
-+ADA_SJLJ_RTL_OBJ_DIR = $(libsubdir)/rts-sjlj/adalib
++ADA_INCLUDE_DIR_SJLJ = $(libsubdir)/rts-sjlj/adainclude
++ADA_RTL_OBJ_DIR_SJLJ = $(libsubdir)/rts-sjlj/adalib
  
  # Special flags
  
-Index: b/src/gnattools/Makefile.in
+Index: b/src/gcc/ada/gcc-interface/config-lang.in
 ===================================================================
---- a/src/gnattools/Makefile.in
-+++ b/src/gnattools/Makefile.in
-@@ -44,15 +44,16 @@
-  -L../../../$(target_noncanonical)/libstdc++-v3/src/.libs \
-  -L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs
- 
-+RTS=../gcc/ada/rts-shared-zcx
- CFLAGS=-O2 -Wall
- ADA_CFLAGS=-O2 -gnatn
--ADA_INCLUDES=-nostdinc -I- -I. -I../gcc/ada/rts -I../libgnatvsn 
-I../libgnatprj
-+ADA_INCLUDES=-nostdinc -I- -I. -I$(RTS) -I../libgnatvsn -I../libgnatprj
- LIB_VERSION=$(strip $(shell grep ' Library_Version :' \
-               ../libgnatvsn/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
--SHARED_ADA_LIBS := -L../gcc/ada/rts -lgnat-$(LIB_VERSION)
-+SHARED_ADA_LIBS := -L$(RTS) -lgnat-$(LIB_VERSION)
- SHARED_ADA_LIBS += -L../libgnatvsn -lgnatvsn
- SHARED_ADA_LIBS += -L../libgnatprj -lgnatprj
--STATIC_ADA_LIBS := ../gcc/ada/rts/libgnat.a
-+STATIC_ADA_LIBS := ../gcc/ada/rts-static-zcx/libgnat.a
- STATIC_GCC_LIBS := ../gcc/libcommon-target.a ../gcc/libcommon.a 
../libcpp/libcpp.a \
- ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a
- 
-@@ -126,6 +127,7 @@
+--- a/src/gcc/ada/gcc-interface/config-lang.in
++++ b/src/gcc/ada/gcc-interface/config-lang.in
+@@ -34,8 +34,8 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad
  
- .PHONY: gnattools gnattools-native gnattools-cross regnattools
- gnattools: @default_gnattools_target@
-+      (cd $(RTS); if [ -d obj ]; then mv obj/* .; rmdir obj; fi)
+ outputs="ada/gcc-interface/Makefile ada/Makefile"
  
- BODIES := $(foreach f,$(OBJECTS),$(wildcard $(patsubst 
%.o,@srcdir@/../gcc/ada/%.adb,$(f))))
- SPECS  := $(foreach f,$(OBJECTS),$(wildcard $(patsubst 
%.o,@srcdir@/../gcc/ada/%.ads,$(f))))
-@@ -141,9 +143,12 @@
-                 rm -f $(word 1,$(subst <, ,$(PAIR)));\
-                 $(LN_S) @srcdir@/../gcc/ada/$(word 2,$(subst <, ,$(PAIR))) \
-                         $(word 1,$(subst <, ,$(PAIR)));)
-+# Move the RTS object files away lest they be linked statically into the
-+# tools.  Only the .ali, .a and .so files must remain.
-+      (cd $(RTS); mkdir obj; mv *.o obj; chmod a-wx *.ali)
-       touch $@
+-target_libs="target-libada target-libgnatvsn target-libgnatprj"
+-lang_dirs="libada libgnatvsn libgnatprj gnattools"
++target_libs="target-libada target-libgnatvsn target-libgnatprj 
target-libada-sjlj"
++lang_dirs="libada libgnatvsn libgnatprj gnattools libada-sjlj"
  
--gnattools-native: ../gcc/ada/rts/libgnat-$(LIB_VERSION).so
-+gnattools-native: $(RTS)/libgnat-$(LIB_VERSION).so
- gnattools-native: ../libgnatvsn/libgnatvsn.so
- gnattools-native: stamp-gnattools-sources
- gnattools-native: $(TOOLS)
-@@ -159,7 +164,7 @@
-       $(GCC) -o $@ $^ \
-         ../libgnatprj/libgnatprj.a \
-         ../libgnatvsn/libgnatvsn.a \
--        ../gcc/ada/rts/libgnat.a $(STATIC_GCC_LIBS)
-+        $(STATIC_ADA_LIBS) $(STATIC_GCC_LIBS)
- 
- gnatlink: $(GNATLINK_OBJS) b_gnatl.o
-       $(GCC) -o $@ $^ $(SHARED_ADA_LIBS) $(STATIC_GCC_LIBS)
-Index: b/src/libgnatprj/Makefile.in
-===================================================================
---- a/src/libgnatprj/Makefile.in
-+++ b/src/libgnatprj/Makefile.in
-@@ -26,7 +26,8 @@
-                sed -e 's/.*"\(.*\)".*/\1/'))
- GCC=$(CC)
- GPP=$(CXX)
--LIBGNAT_JUST_BUILT := -nostdinc -I../gcc/ada/rts
-+RTS:=../gcc/ada/rts-shared-zcx
-+LIBGNAT_JUST_BUILT := -nostdinc -I$(RTS)
- LIBGNATVSN := -I../libgnatvsn
- CFLAGS := -g -O2
- ADAFLAGS := -g -O2 -gnatn
-@@ -76,7 +77,7 @@
-       : # Make libgnatprj.so
-       $(GCC) -o $@ -shared -fPIC -Wl,--soname,$@ 
-Wl,--no-allow-shlib-undefined \
-          $^ $(addprefix ../libiberty/pic/,$(LIBIBERTY_OBJECTS)) \
--         -L../gcc/ada/rts -lgnat-$(LIB_VERSION) \
-+         -L$(RTS) -lgnat-$(LIB_VERSION) \
-          -L../libgnatvsn -lgnatvsn
-       $(LN_S) -f libgnatprj.so.$(LIB_VERSION) libgnatprj.so
-       chmod a=r obj-shared/*.ali
-Index: b/src/libgnatvsn/Makefile.in
-===================================================================
---- a/src/libgnatvsn/Makefile.in
-+++ b/src/libgnatvsn/Makefile.in
-@@ -25,7 +25,8 @@
-                  @srcdir@/../gcc/ada/gnatvsn.ads | \
-                sed -e 's/.*"\(.*\)".*/\1/'))
- GCC:=../gcc/xgcc -B../gcc/
--LIBGNAT_JUST_BUILT := -nostdinc -I../gcc/ada/rts
-+RTS:=../gcc/ada/rts-shared-zcx
-+LIBGNAT_JUST_BUILT := -nostdinc -I$(RTS)
- CFLAGS := -g -O2 -gnatn
- BASEVER := $(shell cat @srcdir@/../gcc/BASE-VER)
- DEVPHASE := $(shell cat @srcdir@/../gcc/DEV-PHASE)
-@@ -66,7 +67,7 @@
- libgnatvsn.so.$(LIB_VERSION): $(addprefix obj-shared/,$(OBJECTS))
-       : # Make libgnatvsn.so
-       $(GCC) -o $@ -shared -fPIC -Wl,--soname,$@ $^ \
--         -L../gcc/ada/rts -lgnat-$(LIB_VERSION)
-+         -L$(RTS) -lgnat-$(LIB_VERSION)
-       ln -s libgnatvsn.so.$(LIB_VERSION) libgnatvsn.so
-       chmod a=r obj-shared/*.ali
- # Make the .ali files, but not the .o files, visible to the gnat tools.
+ # Ada is not enabled by default for the time being.
+ build_by_default=no
 Index: b/src/gcc/ada/gcc-interface/Make-lang.in
 ===================================================================
 --- a/src/gcc/ada/gcc-interface/Make-lang.in
 +++ b/src/gcc/ada/gcc-interface/Make-lang.in
-@@ -85,7 +85,8 @@
-       "ADA_FOR_TARGET=$(ADA_FOR_TARGET)"      \
-       "INSTALL=$(INSTALL)"                    \
-       "INSTALL_DATA=$(INSTALL_DATA)"          \
--      "INSTALL_PROGRAM=$(INSTALL_PROGRAM)"
-+      "INSTALL_PROGRAM=$(INSTALL_PROGRAM)"    \
-+      "GCC_FOR_TARGET=$(GCC_FOR_TARGET)"
+@@ -783,6 +783,7 @@ ada.install-common:
+ 
+ install-gnatlib:
+       $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) 
install-gnatlib$(LIBGNAT_TARGET)
++      $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) 
RTSDIR="rts-sjlj" install-gnatlib-sjlj$(LIBGNAT_TARGET)
  
- # Say how to compile Ada programs.
- .SUFFIXES: .ada .adb .ads
+ install-gnatlib-obj:
+       $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) 
install-gnatlib-obj
diff --git a/debian/rules.d/binary-ada.mk b/debian/rules.d/binary-ada.mk
index 08d1d58..05967c4 100644
--- a/debian/rules.d/binary-ada.mk
+++ b/debian/rules.d/binary-ada.mk
@@ -48,7 +48,7 @@ GNAT_TOOLS = gnat gnatbind gnatchop gnatclean gnatfind gnatkr 
gnatlink \
             gnatls gnatmake gnatname gnatprep gnatxref gnathtml
 
 ifeq ($(with_gnatsjlj),yes)
-       rts_subdir = rts-native/
+       rts_subdir = 
 endif
 
 dirs_gnat = \
@@ -63,12 +63,6 @@ files_gnat = \
        $(gcc_lib_dir)/{adalib,adainclude} \
        $(foreach i,$(GNAT_TOOLS),$(PF)/bin/$(cmd_prefix)$(i)$(pkg_ver))
 
-ifeq ($(with_gnatsjlj),yes)
-files_gnat += \
-       $(gcc_lib_dir)/$(rts_subdir)
-endif
-# rts-sjlj moved to a separate package
-
 dirs_lgnat = \
        $(docdir) \
        $(PF)/lib
@@ -295,15 +289,7 @@ endif
 
 ifeq ($(with_gnatsjlj),yes)
        dh_installdirs -p$(p_gnsjlj) $(gcc_lib_dir)
-       dh_movefiles -p$(p_gnsjlj) $(gcc_lib_dir)/rts-sjlj
-       dh_link -p$(p_gnsjlj) \
-          $(gcc_lib_dir)/rts-sjlj usr/share/ada/adainclude/rts-sjlj
-       dh_link -p$(p_gnsjlj) \
-          $(gcc_lib_dir)/rts-sjlj/adalib/libgnat.a \
-          $(gcc_lib_dir)/rts-sjlj/adalib/libgnat-$(GNAT_VERSION).a
-       dh_link -p$(p_gnsjlj) \
-          $(gcc_lib_dir)/rts-sjlj/adalib/libgnarl.a \
-          $(gcc_lib_dir)/rts-sjlj/adalib/libgnarl-$(GNAT_VERSION).a
+       dh_movefiles -p$(p_gnsjlj) $(gcc_lib_dir)/rts-sjlj/adalib 
$(gcc_lib_dir)/rts-sjlj/adainclude
 endif
 
 ifeq ($(with_libgnat),yes)
diff --git a/debian/rules.defs b/debian/rules.defs
index 9ffdc63..89e6f1e 100644
--- a/debian/rules.defs
+++ b/debian/rules.defs
@@ -637,7 +637,7 @@ endif
 ifeq ($(with_ada),yes)
   enabled_languages += ada
   with_libgnat := yes
-  with_gnatsjlj := disabled # FIXME
+  with_gnatsjlj := yes
 endif
 
 # C++ -------------------------
diff --git a/debian/rules.patch b/debian/rules.patch
index d147709..3c8ef05 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -171,9 +170,7 @@ ifeq ($(with_ada),yes)
   endif
   ifeq ($(with_gnatsjlj),yes)
     debian_patches += \
-       ada-acats-sjlj
-    debian_patches += \
-       ada-sjlj FIXME needs update
+       ada-sjlj
   endif
 
   debian_patches += ada-link-shlib
diff --git a/debian/control.m4 b/debian/control.m4
index 35da8ea..e434941 100644
--- a/debian/control.m4
+++ b/debian/control.m4
@@ -4866,7 +4866,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`any')
 ifdef(`MULTIARCH', `Multi-Arch: same
 Pre-Depends: multiarch-support
 ')`'dnl
-Priority: PRI(optional)
+Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends}
 BUILT_USING`'dnl
 Description: runtime for applications compiled with GNAT (shared library)
@@ -4919,7 +4919,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`any')
 ifdef(`MULTIARCH', `Multi-Arch: same
 Pre-Depends: multiarch-support
 ')`'dnl
-Priority: PRI(optional)
+Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Section: ifdef(`TARGET',`devel',`libs')
 Depends: BASEDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends}
 BUILT_USING`'dnl
@@ -4980,7 +4980,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`any')
 ifdef(`MULTIARCH', `Multi-Arch: same
 Pre-Depends: multiarch-support
 ')`'dnl
-Priority: PRI(optional)
+Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Section: ifdef(`TARGET',`devel',`libs')
 Depends: BASEDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), 
libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends}
 BUILT_USING`'dnl
diff --git a/debian/patches/ada-gnattools-cross.diff 
b/debian/patches/ada-gnattools-cross.diff
index bb3cc27..6dc6853 100644
--- a/debian/patches/ada-gnattools-cross.diff
+++ b/debian/patches/ada-gnattools-cross.diff
@@ -44,8 +44,8 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
 -  ../../libcommon.a ../../../libcpp/libcpp.a $(LIBGNAT) $(LIBINTL) 
$(LIBICONV) \
 -  ../$(LIBBACKTRACE) ../$(LIBIBERTY) $(SYSLIBS) $(TGT_LIB)
 +
-+TOOLS_LIBS = ../link.o ../targext.o ../../ggc-none.o ../../version.o 
../../errors.o ../../../libiberty/pic/lrealpath.o \
-+      ../../libbackend.a ../$(LIBBACKTRACE) ../../libcommon-target.a 
../$(LIBIBERTY) ../../libcommon.a ../../../libcpp/libcpp.a
++TOOLS_LIBS = ../link.o ../targext.o ../../ggc-none.o ../../version.o 
../../../libiberty/pic/lrealpath.o \
++      ../../libbackend.a ../../libcommon-target.a ../../libcommon.a 
../../../libcpp/libcpp.a ../$(LIBBACKTRACE) ../$(LIBIBERTY) -lstdc++
 +
 +ifeq ($(host),$(target))
 +  TOOLS_LIBS +=  -L../$(RTSDIR) -lgnat-5 \
diff --git a/debian/patches/ada-libgnatprj.diff 
b/debian/patches/ada-libgnatprj.diff
index ed31a0a..f6c5bfa 100644
--- a/debian/patches/ada-libgnatprj.diff
+++ b/debian/patches/ada-libgnatprj.diff
@@ -238,7 +238,7 @@ Index: b/src/Makefile.def
  target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
  target_modules = { module= libitm; lib_path=.libs; };
  target_modules = { module= libatomic; lib_path=.libs; };
-@@ -379,7 +386,10 @@ dependencies = { module=all-fixincludes;
+@@ -379,8 +386,12 @@ dependencies = { module=all-fixincludes;
  dependencies = { module=all-target-libada; on=all-gcc; };
  dependencies = { module=all-gnattools; on=all-target-libada; };
  dependencies = { module=all-gnattools; on=all-target-libgnatvsn; };
@@ -247,8 +247,10 @@ Index: b/src/Makefile.def
 +dependencies = { module=all-target-libgnatprj; on=all-target-libgnatvsn; };
 +dependencies = { module=all-target-libgnatprj; on=all-target-libiberty; };
  dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; };
++dependencies = { module=all-target-libgnatvsn; on=all-target-libstdc++-v3; };
  
  // Depending on the specific configuration, the LTO plugin will either use the
+ // generic libiberty build or the specific build for linker plugins.
 Index: b/src/configure.ac
 ===================================================================
 --- a/src/configure.ac
@@ -948,7 +950,7 @@ Index: b/src/Makefile.in
  configure-target-libgomp: maybe-all-gcc
  configure-target-libitm: maybe-all-gcc
  configure-target-libatomic: maybe-all-gcc
-@@ -50501,7 +50877,10 @@ all-stagefeedback-fixincludes: maybe-all
+@@ -50501,8 +50877,12 @@ all-stagefeedback-fixincludes: maybe-all
  all-target-libada: maybe-all-gcc
  all-gnattools: maybe-all-target-libada
  all-gnattools: maybe-all-target-libgnatvsn
@@ -957,9 +959,11 @@ Index: b/src/Makefile.in
 +all-target-libgnatprj: maybe-all-target-libgnatvsn
 +all-target-libgnatprj: maybe-all-target-libiberty
  all-gnattools: maybe-all-target-libstdc++-v3
++all-target-libgnatvsn: maybe-all-target-libstdc++-v3
  all-lto-plugin: maybe-all-libiberty
  
-@@ -51074,6 +51453,7 @@ configure-target-boehm-gc: maybe-all-tar
+ all-stage1-lto-plugin: maybe-all-stage1-libiberty
+@@ -51074,6 +51454,7 @@ configure-target-boehm-gc: maybe-all-tar
  configure-target-rda: maybe-all-target-libgcc
  configure-target-libada: maybe-all-target-libgcc
  configure-target-libgnatvsn: maybe-all-target-libgcc
@@ -967,7 +971,7 @@ Index: b/src/Makefile.in
  configure-target-libgomp: maybe-all-target-libgcc
  configure-target-libitm: maybe-all-target-libgcc
  configure-target-libatomic: maybe-all-target-libgcc
-@@ -51129,6 +51509,8 @@ configure-target-libada: maybe-all-targe
+@@ -51129,6 +51510,8 @@ configure-target-libada: maybe-all-targe
  
  configure-target-libgnatvsn: maybe-all-target-newlib maybe-all-target-libgloss
  
diff --git a/debian/rules.defs b/debian/rules.defs
index 7931cc7..d1aa87b 100644
--- a/debian/rules.defs
+++ b/debian/rules.defs
@@ -561,7 +561,7 @@ ifneq (,$(filter $(distrelease),trusty))
   ada_no_cpus += arm64
 endif
 ada_no_systems := 
-ada_no_cross   := yes
+ada_no_cross   := no
 ada_no_snap    := no
 ifeq ($(single_package),yes)
   ada_no_cpus += m68k powerpcspe sh4 sparc64

Reply via email to