diff options
author | Laurent GUERBY <laurent@guerby.net> | 2008-09-21 11:45:23 +0000 |
---|---|---|
committer | Laurent Guerby <guerby@gcc.gnu.org> | 2008-09-21 11:45:23 +0000 |
commit | 7193e639277dc5eaf892bfa397a9608a2d24ed5e (patch) | |
tree | 6f1af2bb95b0dba92fa9fef1cff2bfb7e4406de2 /gcc/ada | |
parent | aa4652fac00c70ea32498ba2d1fb939e9fc0e274 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/Makefile.in | 35 |
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 |