--- Begin Message ---
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
--- End Message ---