summaryrefslogtreecommitdiff
path: root/debian/patches/ada-sjlj.diff
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2013-04-26 14:25:48 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2013-04-26 14:25:48 +0000
commit5eaea87ce8b7e0fb430d583f60436d45f7cf674a (patch)
tree150ae28ad72172d3b2bd24026039a31d704da066 /debian/patches/ada-sjlj.diff
parent2c550a63928d484b28356305fd85e428511b47d3 (diff)
downloadgcc-48-5eaea87ce8b7e0fb430d583f60436d45f7cf674a.tar.gz
[ Matthias Klose ]
* Merge back changes from gnat-4.8 4.8.0-1~exp2. [Ludovic Brenta] * debian/patches/ada-libgnatprj.diff: do not include indepsw.o in the library, it is used only in the gnattools. git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.8@6721 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
Diffstat (limited to 'debian/patches/ada-sjlj.diff')
-rw-r--r--debian/patches/ada-sjlj.diff245
1 files changed, 117 insertions, 128 deletions
diff --git a/debian/patches/ada-sjlj.diff b/debian/patches/ada-sjlj.diff
index ce21121..9765d7e 100644
--- a/debian/patches/ada-sjlj.diff
+++ b/debian/patches/ada-sjlj.diff
@@ -65,7 +65,7 @@ Index: b/src/libada/Makefile.in
.PHONY: all
@@ -97,26 +98,28 @@
- "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
+ "CFLAGS=$(CFLAGS)"
# Rules to build gnatlib.
-.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
@@ -78,8 +78,8 @@ Index: b/src/libada/Makefile.in
- && touch stamp-libada
- -rm -rf adainclude
- -rm -rf adalib
-- $(LN_S) $(ADA_RTS_DIR) adainclude
-- $(LN_S) $(ADA_RTS_DIR) 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 || \
@@ -87,8 +87,8 @@ Index: b/src/libada/Makefile.in
- && touch stamp-libada
- -rm -rf adainclude
- -rm -rf adalib
-- $(LN_S) $(ADA_RTS_DIR) adainclude
-- $(LN_S) $(ADA_RTS_DIR) 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="" \
@@ -116,9 +116,9 @@ 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
-@@ -2234,57 +2234,75 @@
- a-[a-o]*.adb a-[p-z]*.adb a-[a-o]*.ads a-[p-z]*.ads g-*.ad? i-*.ad? \
- s-[a-o]*.adb s-[p-z]*.adb s-[a-o]*.ads s-[p-z]*.ads
+@@ -2353,84 +2353,109 @@
+ $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
+ $(ADA_EXCLUDE_SRCS))
-../stamp-gnatlib-$(RTSDIR):
- @if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
@@ -192,7 +192,7 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
-# 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) ]; then \
+- 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; \
@@ -223,17 +223,7 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
+ (cd $(DESTDIR)$(libsubdir); \
+ ln -s rts-native/adainclude adainclude; \
+ ln -s rts-native/adalib adalib;)
-
- # NOTE: The $(foreach ...) commands assume ";" is the valid separator between
- # successive target commands. Although the Gnu make documentation
-@@ -2295,30 +2313,37 @@
-
- # GNULLI Begin ###########################################################
-
--../stamp-gnatlib1-$(RTSDIR): Makefile
-- $(RMDIR) $(RTSDIR)
-- $(MKDIR) $(RTSDIR)
-- $(CHMOD) u+w $(RTSDIR)
++
+replace_zcx_by_default=\
+'s/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := $(zcx_by_default);/'
+
@@ -242,7 +232,11 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
+
+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)
@@ -250,6 +244,9 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
$(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))))
@@ -274,73 +271,65 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
- touch ../stamp-gnatlib1-$(RTSDIR)
+ $(CP) $(srcdir)/tsystem.h $(dir)
- # GNULLI End #############################################################
-
-@@ -2347,9 +2372,10 @@
+ ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(subst -, ,$(host)))),)
+ OSCONS_CPP=../../$(DECC) -E /comment=as_is -DNATIVE \
+@@ -2457,9 +2482,11 @@
$(CP) $^ ./bldtools/oscons
(cd ./bldtools/oscons ; gnatmake -q xoscons)
-$(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)
-@@ -2360,8 +2386,11 @@
+ ../bldtools/oscons/xoscons s-oscons)
+@@ -2470,9 +2497,12 @@
# Example: cd $(RTSDIR); ar rc libfoo.a $(LONG_LIST_OF_OBJS)
# is guaranteed to overflow the buffer.
-gnatlib: ../stamp-gnatlib1-$(RTSDIR) $(RTSDIR)/s-oscons.ads
-- $(MAKE) -C $(RTSDIR) \
+%/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./../.." \
-@@ -2369,7 +2398,7 @@
- FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
+@@ -2481,7 +2511,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="" \
-@@ -2377,35 +2406,37 @@
- ADAFLAGS="$(GNATLIBFLAGS)" \
+@@ -2490,24 +2520,24 @@
FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
srcdir=$(fsrcdir) \
-- -f ../Makefile \
-- $(GNATRTL_OBJS)
+ -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) g-trasym.o convert_addresses.o)
+- $(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)
-- $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgnala$(arext) \
-- $(addprefix $(RTSDIR)/,$(GNATRTL_LINEARALGEBRA_OBJS))
-- $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnala$(arext)
-+ -f ../Makefile \
-+ $(GNATRTL_OBJS)
+ $(RM) $@ $(libgnarl)
+ $(AR_FOR_TARGET) $(AR_FLAGS) $@ \
-+ $(addprefix $(build_dir),$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) g-trasym.o convert_addresses.o)
++ $(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)
-+ $(AR_FOR_TARGET) $(AR_FLAGS) $(libgnala) \
-+ $(addprefix $(build_dir),$(GNATRTL_LINEARALGEBRA_OBJS))
-+ $(RANLIB_FOR_TARGET) $(libgnala)
ifeq ($(GMEM_LIB),gmemlib)
- $(AR_FOR_TARGET) $(AR_FLAGS) $(RTSDIR)/libgmem$(arext) \
- $(RTSDIR)/memtrack.o
@@ -349,47 +338,49 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
+ $(build_dir)memtrack.o
+ $(RANLIB_FOR_TARGET) $(build_dir)libgmem$(arext)
endif
+- $(CHMOD) a-wx $(RTSDIR)/*.ali
- touch ../stamp-gnatlib-$(RTSDIR)
# Warning: this target assumes that LIBRARY_VERSION has been set correctly.
--gnatlib-shared-default: ../stamp-gnatlib1-$(RTSDIR)
+-gnatlib-shared-default:
- $(MAKE) -C $(RTSDIR) \
+%/$(libgnat) %/$(libgnat-sjlj): build_dir = $(dir $@)
+%/$(libgnat) %/$(libgnat-sjlj): libgnarl = $(notdir $(subst libgnat,libgnarl,$@))
-+%/$(libgnat) %/$(libgnat-sjlj): libgnala = $(notdir $(subst libgnat,libgnala,$@))
+%/$(libgnat) %/$(libgnat-sjlj): % %/s-oscons.ads
+ $(MAKE) -C $(build_dir) \
CC="`echo \"$(GCC_FOR_TARGET)\" \
- | sed -e 's,^\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
+ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
- CFLAGS="$(GNATLIBCFLAGS_FOR_C)" \
+@@ -2515,7 +2545,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../../,'`" \
+ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
ADA_INCLUDES="" \
-@@ -2415,160 +2446,56 @@
+@@ -2525,176 +2555,46 @@
srcdir=$(fsrcdir) \
-f ../Makefile \
$(GNATRTL_OBJS)
- $(RM) $(RTSDIR)/libgna*$(soext) $(RTSDIR)/libgna*$(soext).1
-- cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
+- 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) \
- $(TARGET_LIBGCC2_CFLAGS) \
+ $(PICFLAG_FOR_TARGET) \
- -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
+ -o $(notdir $@).1 \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
- g-trasym.o convert_addresses.o \
- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
+ $(SO_OPTS)$(notdir $@).1 \
$(MISCLIB) -lm
-- cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
+- 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) \
- $(TARGET_LIBGCC2_CFLAGS) \
+ $(PICFLAG_FOR_TARGET) \
- -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \
+ -o $(libgnarl).1 \
$(GNATRTL_TASKING_OBJS) \
@@ -404,7 +395,8 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
-# 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)
+
-gnatlib-shared-dual:
- $(MAKE) $(FLAGS_TO_PASS) \
- GNATLIBFLAGS="$(GNATLIBFLAGS)" \
@@ -421,19 +413,21 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
- MULTISUBDIR="$(MULTISUBDIR)" \
- THREAD_KIND="$(THREAD_KIND)" \
- gnatlib-shared-default
--
++gnatlib-shared-dual: gnatlib-static-zcx gnatlib-static-sjlj gnatlib-shared-zcx
+
-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) $(TARGET_LIBGCC2_CFLAGS)" \
+- GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
- MULTISUBDIR="$(MULTISUBDIR)" \
- THREAD_KIND="$(THREAD_KIND)" \
@@ -446,23 +440,21 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
-gnatlib-shared-win32:
- $(MAKE) $(FLAGS_TO_PASS) \
- GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-- GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \
-- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
+- 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); ../../xgcc -B../../ -shared -shared-libgcc \
-- $(TARGET_LIBGCC2_CFLAGS) \
+- 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); ../../xgcc -B../../ -shared -shared-libgcc \
-+ cd $(build_dir); $(LN_S) $(libgnarl).1 $(libgnarl)
-+# TODO: enable building the shared libgnala
-+ifeq (libgnala-shared-enabled,yes)
-+ cd $(build_dir); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
- $(TARGET_LIBGCC2_CFLAGS) \
+- 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) \
@@ -471,19 +463,21 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
-gnatlib-shared-darwin:
- $(MAKE) $(FLAGS_TO_PASS) \
- GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-- GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \
-- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \
+- 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); ../../xgcc -B../../ -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \
+- 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) -lm
-- cd $(RTSDIR); ../../xgcc -B../../ -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \
+- $(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) \
@@ -495,12 +489,7 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
- libgnarl$(soext)
- cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
- cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
-+ -o $(libgnala).1 \
-+ $(GNATRTL_LINEARALGEBRA_OBJS) \
-+ $(SO_OPTS)$(libgnala).1
-+ cd $(build_dir); $(LN_S) $(libgnala).1 $(libgnala)
-+endif
-
+-
-gnatlib-shared-vms:
- $(MAKE) $(FLAGS_TO_PASS) \
- GNATLIBFLAGS="$(GNATLIBFLAGS)" \
@@ -529,8 +518,7 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
- --for-linker=/noinform \
- --for-linker=SYMVEC_$$$$.opt \
- --for-linker=gsmatch=equal,$(GSMATCH_VERSION)
-+gnatlib-shared-dual: gnatlib-static-zcx gnatlib-static-sjlj gnatlib-shared-zcx
-
+-
-gnatlib-shared:
+gnatlib-shared-zcx: rts = $(subst gnatlib,rts,$@)
+gnatlib-shared-zcx: gnatlib-sources-zcx/a-except.ads
@@ -539,21 +527,31 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
+ $(MV) $(rts)/s.ads $(rts)/system.ads; \
+ fi
$(MAKE) $(FLAGS_TO_PASS) \
-+ EH_MECHANISM="-gcc" \
++ EH_MECHANISM="-gcc" \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
- TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
+ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
- $(GNATLIB_SHARED)
-+ $(rts)/$(libgnat)
++ $(rts)/$(libgnat)
+-# 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:
- $(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
-- $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.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 \
@@ -563,17 +561,17 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
$(MAKE) $(FLAGS_TO_PASS) \
EH_MECHANISM="" \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-@@ -2576,13 +2503,15 @@
- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
+@@ -2703,13 +2603,15 @@
+ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
-- TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib
-+ TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
-+ $(rts)/libgnat$(arext)
+- 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)
+- 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,$@)
@@ -585,18 +583,14 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
$(MAKE) $(FLAGS_TO_PASS) \
EH_MECHANISM="-gcc" \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-@@ -2590,7 +2519,8 @@
- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
+@@ -2718,10 +2620,15 @@
+ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
-- TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib
-+ TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
+- PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
++ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
+ $(rts)/libgnat$(arext)
- # .s files for cross-building
- gnat-cross: force
-@@ -2598,6 +2528,10 @@
-
ADA_INCLUDE_DIR = $(libsubdir)/adainclude
ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
+ADA_NATIVE_INCLUDE_DIR = $(libsubdir)/rts-native/adainclude
@@ -604,13 +598,13 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
+ADA_SJLJ_INCLUDE_DIR = $(libsubdir)/rts-sjlj/adainclude
+ADA_SJLJ_RTL_OBJ_DIR = $(libsubdir)/rts-sjlj/adalib
- # force no sibling call optimization on s-traceb.o so the number of stack
- # frames to be skipped when computing a call chain is not modified by
+ # Special flags
+
Index: b/src/gnattools/Makefile.in
===================================================================
--- a/src/gnattools/Makefile.in
+++ b/src/gnattools/Makefile.in
-@@ -35,12 +35,13 @@
+@@ -36,15 +36,16 @@
LN_S=@LN_S@
target_noncanonical=@target_noncanonical@
@@ -621,12 +615,16 @@ Index: b/src/gnattools/Makefile.in
+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/'))
--ADA_LIBS := -L../gcc/ada/rts -lgnat-$(LIB_VERSION)
-+ADA_LIBS := -L$(RTS) -lgnat-$(LIB_VERSION)
- ADA_LIBS += -L../libgnatvsn -lgnatvsn
- ADA_LIBS += -L../libgnatprj -lgnatprj
+-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
-@@ -110,6 +111,7 @@
+@@ -118,6 +119,7 @@
.PHONY: gnattools gnattools-native gnattools-cross regnattools
gnattools: @default_gnattools_target@
@@ -634,10 +632,10 @@ Index: b/src/gnattools/Makefile.in
BODIES := $(foreach f,$(OBJECTS),$(wildcard $(patsubst %.o,@srcdir@/../gcc/ada/%.adb,$(f))))
SPECS := $(foreach f,$(OBJECTS),$(wildcard $(patsubst %.o,@srcdir@/../gcc/ada/%.ads,$(f))))
-@@ -120,9 +122,12 @@
- for file in $(BODIES) $(SPECS); do \
- $(LN_S) -f $$file .; \
- done
+@@ -133,9 +135,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)
@@ -648,24 +646,15 @@ Index: b/src/gnattools/Makefile.in
gnattools-native: ../libgnatvsn/libgnatvsn.so
gnattools-native: stamp-gnattools-sources
gnattools-native: $(TOOLS)
-@@ -138,7 +143,7 @@
+@@ -151,7 +156,7 @@
$(GCC) -o $@ $^ \
- ../libgnatprj/libgnatprj.a \
- ../libgnatvsn/libgnatvsn.a \
-- ../gcc/ada/rts/libgnat.a \
-+ ../gcc/ada/rts-static-zcx/libgnat.a \
- ../libiberty/libiberty.a
+ ../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
-@@ -156,7 +161,7 @@
- $(GCC) -o $@ $(ADA_CFLAGS) $^ \
- ../libgnatprj/libgnatprj.a \
- ../libgnatvsn/libgnatvsn.a \
-- ../gcc/ada/rts/libgnat.a \
-+ ../gcc/ada/rts-static-zcx/libgnat.a \
- ../libiberty/libiberty.a
-
- gnatmake: $(GNATMAKE_OBJS) b_gnatm.o
+ $(GCC) -o $@ $^ $(SHARED_ADA_LIBS) $(STATIC_GCC_LIBS)
Index: b/src/libgnatprj/Makefile.in
===================================================================
--- a/src/libgnatprj/Makefile.in
@@ -716,7 +705,7 @@ 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
-@@ -70,7 +70,8 @@
+@@ -85,7 +85,8 @@
"ADA_FOR_TARGET=$(ADA_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
@@ -724,5 +713,5 @@ Index: b/src/gcc/ada/gcc-interface/Make-lang.in
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "GCC_FOR_TARGET=$(GCC_FOR_TARGET)"
- # Say how to compile Ada programs.
- .SUFFIXES: .ada .adb .ads
+ # List of Ada tools to build and install
+ ADA_TOOLS=gnatbind gnatchop gnat gnatkr gnatlink gnatls gnatmake \