This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Support x86_64 multilib on Solaris/x86 (PR ada/37681)


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
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]