aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorLaurent GUERBY <laurent@guerby.net>2008-09-21 11:45:23 +0000
committerLaurent Guerby <guerby@gcc.gnu.org>2008-09-21 11:45:23 +0000
commit7193e639277dc5eaf892bfa397a9608a2d24ed5e (patch)
tree6f1af2bb95b0dba92fa9fef1cff2bfb7e4406de2 /gcc/ada
parentaa4652fac00c70ea32498ba2d1fb939e9fc0e274 (diff)
downloadgcc-7193e639277dc5eaf892bfa397a9608a2d24ed5e.zip
gcc-7193e639277dc5eaf892bfa397a9608a2d24ed5e.tar.gz
gcc-7193e639277dc5eaf892bfa397a9608a2d24ed5e.tar.bz2
re PR ada/5911 (Support for multilib in Ada)
2008-09-21 Laurent Guerby <laurent@guerby.net> PR ada/5911 * gcc-interface/Makefile.in: Add multilib handling for x86_64 and sparc. * system-linux-sparcv9.ads: New file. 2008-09-21 Laurent Guerby <laurent@guerby.net> Paolo Bonzini <bonzini@gnu.org> PR ada/5911 * Makefile.in (all, install, mostlyclean, clean, distclean): Add multilib handling. * configure.ac: Add multilib handling. * configure: Regenerate. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r140525
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/Makefile.in35
2 files changed, 41 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index f7dfb86..fe89a54 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2008-09-21 Laurent Guerby <laurent@guerby.net>
+
+ PR ada/5911
+ * gcc-interface/Makefile.in: Add multilib handling for x86_64
+ and sparc.
+ * system-linux-sparcv9.ads: New file.
+
2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
* exp_dbug.ads: Document new convention for the XVZ variable.
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index ccd20bd..59803ca 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -316,6 +316,18 @@ else
osys:=$(word 3,$(targ))
endif
+# Make arch match the current multilib so that the RTS selection code
+# picks up the right files. For a given target this must be coherent
+# with MULTILIB_DIRNAMES defined in gcc/config/target/t-*.
+
+ifeq ($(strip $(filter-out %x86_64, $(arch))),)
+ ifeq ($(strip $(MULTISUBDIR)),/32)
+ arch:=i686
+ endif
+endif
+
+# ???: handle more multilib targets
+
# LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
# The members of each pair must be separated by a '<' and no whitespace.
# Each pair must be separated by some amount of whitespace from the following
@@ -1467,7 +1479,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),)
endif
ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
- LIBGNAT_TARGET_PAIRS = \
+ LIBGNAT_TARGET_PAIRS_32 = \
a-intnam.ads<a-intnam-linux.ads \
s-inmaop.adb<s-inmaop-posix.adb \
s-intman.adb<s-intman-posix.adb \
@@ -1482,6 +1494,27 @@ ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
system.ads<system-linux-sparc.ads
+ LIBGNAT_TARGET_PAIRS_64 = \
+ a-intnam.ads<a-intnam-linux.ads \
+ s-inmaop.adb<s-inmaop-posix.adb \
+ s-intman.adb<s-intman-posix.adb \
+ s-linux.ads<s-linux.ads \
+ s-osinte.adb<s-osinte-posix.adb \
+ s-osinte.ads<s-osinte-linux.ads \
+ s-osprim.adb<s-osprim-posix.adb \
+ s-taprop.adb<s-taprop-linux.adb \
+ s-tasinf.ads<s-tasinf-linux.ads \
+ s-tasinf.adb<s-tasinf-linux.adb \
+ s-taspri.ads<s-taspri-posix-noaltstack.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ system.ads<system-linux-sparcv9.ads
+
+ ifeq ($(strip $(MULTISUBDIR)),/64)
+ LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)
+ else
+ LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_32)
+ endif
+
TOOLS_TARGET_PAIRS = \
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-gnu.adb