This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Support x86_64 multilib on Solaris/x86 (PR ada/37681)
- From: Rainer Orth <ro at techfak dot uni-bielefeld dot de>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 1 Oct 2008 19:06:10 +0200 (MEST)
- Subject: Re: PATCH: Support x86_64 multilib on Solaris/x86 (PR ada/37681)
- Newsgroups: gmane.comp.gcc.patches
- References: <18658.33680.683098.134112@manam.TechFak.Uni-Bielefeld.DE> <48E3308B.7000701@gnu.org>
Paolo Bonzini writes:
> > ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
> > - LIBGNAT_TARGET_PAIRS = \
> > + LIBGNAT_TARGET_PAIRS_32 = \
> > a-numaux.adb<a-numaux-x86.adb \
> > a-numaux.ads<a-numaux-x86.ads \
> > a-intnam.ads<a-intnam-solaris.ads \
> > @@ -828,6 +828,30 @@ ifeq ($(strip $(filter-out %86 solaris2%
> > g-soliop.ads<g-soliop-solaris.ads \
> > system.ads<system-solaris-x86.ads
> >
> > + LIBGNAT_TARGET_PAIRS_64 = \
> > + a-numaux.adb<a-numaux-x86.adb \
> > + a-numaux.ads<a-numaux-x86.ads \
>
> Can you do like http://permalink.gmane.org/gmane.comp.gcc.patches/172865
> and merge the common bits into a LIBGNAT_TARGET_PAIRS_COMMON variable?
I think it's even clearer to use the += idiom also found in
*86-wrs-vxworks.
This patch (yet untested) does this, uses g-bytswa-x86.adb only for x86 and
not x86_64, and simplifies sparc*-sun-solaris* along the same line.
system-solaris-x86_64.ads is unchanged, so I'm not sending it again.
Ok for mainline if it passes? SPARC testing will take some time since
I'll need to establish a baseline first and run both sparcv9-sun-solaris2
and sparc-sun-solaris2 tests since otherwise the 64-bit sparc portion won't
be exercised due to PR testsuite/37703.
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Wed Oct 1 19:03:53 2008 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR ada/37681
* system-solaris-x86_64.ads: New file.
* gcc-interface/Makefile.in (sparc*-sun-solaris*): Simplify.
(*86-solaris2*): Support x86_64 multilib.
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in (revision 140759)
+++ gcc/ada/gcc-interface/Makefile.in (working copy)
@@ -732,7 +732,7 @@ ifeq ($(strip $(filter-out mips% wrs vx%
endif
ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)
- LIBGNAT_TARGET_PAIRS_32 = \
+ LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-solaris.ads \
s-inmaop.adb<s-inmaop-posix.adb \
s-intman.adb<s-intman-solaris.adb \
@@ -744,35 +744,25 @@ ifeq ($(strip $(filter-out sparc% sun so
s-tasinf.ads<s-tasinf-solaris.ads \
s-taspri.ads<s-taspri-solaris.ads \
s-tpopsp.adb<s-tpopsp-solaris.adb \
- g-soliop.ads<g-soliop-solaris.ads \
+ g-soliop.ads<g-soliop-solaris.ads
+
+ LIBGNAT_TARGET_PAIRS_32 = \
system.ads<system-solaris-sparc.ads
LIBGNAT_TARGET_PAIRS_64 = \
- a-intnam.ads<a-intnam-solaris.ads \
- s-inmaop.adb<s-inmaop-posix.adb \
- s-intman.adb<s-intman-solaris.adb \
- s-osinte.adb<s-osinte-solaris.adb \
- s-osinte.ads<s-osinte-solaris.ads \
- s-osprim.adb<s-osprim-solaris.adb \
- s-taprop.adb<s-taprop-solaris.adb \
- s-tasinf.adb<s-tasinf-solaris.adb \
- s-tasinf.ads<s-tasinf-solaris.ads \
- s-taspri.ads<s-taspri-solaris.ads \
- s-tpopsp.adb<s-tpopsp-solaris.adb \
- g-soliop.ads<g-soliop-solaris.ads \
system.ads<system-solaris-sparcv9.ads
ifeq ($(strip $(filter-out sparc sun solaris%,$(targ))),)
ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
- LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)
+ LIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_64)
else
- LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_32)
+ LIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_32)
endif
else
ifeq ($(strip $(MULTISUBDIR)),/sparcv7)
- LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_32)
+ LIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_32)
else
- LIBGNAT_TARGET_PAIRS = $(LIBGNAT_TARGET_PAIRS_64)
+ LIBGNAT_TARGET_PAIRS += $(LIBGNAT_TARGET_PAIRS_64)
endif
endif
@@ -824,9 +814,16 @@ ifeq ($(strip $(filter-out %86 solaris2%
s-tasinf.ads<s-tasinf-solaris.ads \
s-taspri.ads<s-taspri-solaris.ads \
s-tpopsp.adb<s-tpopsp-solaris.adb \
- g-bytswa.adb<g-bytswa-x86.adb \
- g-soliop.ads<g-soliop-solaris.ads \
- system.ads<system-solaris-x86.ads
+ g-soliop.ads<g-soliop-solaris.ads
+
+ ifeq ($(strip $(MULTISUBDIR)),/amd64)
+ LIBGNAT_TARGET_PAIRS += \
+ system.ads<system-solaris-x86_64.ads
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ g-bytswa.adb<g-bytswa-x86.adb \
+ system.ads<system-solaris-x86.ads
+ endif
TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb