config-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Use sparcv9-sun-solaris2.* with 64-bit compiler


From: Rainer Orth
Subject: Use sparcv9-sun-solaris2.* with 64-bit compiler
Date: Wed, 02 Jan 2019 12:49:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (usg-unix-v)

Before being sidetracked by the thread starting at

        http://lists.gnu.org/archive/html/config-patches/2018-12/msg00006.html

I intended to submit the following patch to bring Solaris/SPARC in line
with what is already done for Solaris/x86, i.e. return a 64-bit triplet
when a 64-bit compiler is in use.

This would have avoided the GCC issue tracked as

        PR target/88535
        sparcv9 gcc 7 causes comparison failure in sparc gcc 8 dwarf2out.o
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88535

in the first place and of course removes an unnecessary inconsistence
between Solaris/SPARC and x86.

With the Solaris/x86 issue now settled, here's the patch I meant to send
back then: when a 64-bit compiler (either by default, with cc
-xarch=v9/-m64 or gcc -m64) is used, return sparcv9-sun-solaris2.*
instead of sparc-sun-solaris2.*.

A couple of comments are in order:

* I decided to also cover tadpole: they produced an Ultrabook,
  essentially a portable Ultra 1/170E running Solaris 8 which benefits
  from this change should any of those still be around.

* __LP64__ is only defined since Studio 12.6 cc, so the comment still
  applies.

* I chose to use sparcv9 instead of sparc64; it's the canonical name for
  64-bit sparc on Solaris.  The same would apply for 64-bit Solaris/x86
  which should have been amd64-pc-solaris2.* in the first place, but
  given that the x86_64 form is already in use for a long time and the
  triplet is sometimes used as a directory name, such a change seems
  unnecessarily intrusive at this point.

I've tested the patch with

* Studio 11 (the oldest version I still have around) and Studio 12.6 (cc
  -xarch=v9, -m64 was only introduced in 12.1)

* GCC 3.4.6 and GCC 8.1.0

* Solaris 8 and Solaris 11.5 Beta

Everything behaved as expected.

One thing I'm uncertain about is the need for testcases corresponding to
this change?

Thanks.
        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-01-02  Rainer Orth  <address@hidden>

        * config.guess (sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*): Return
        sparcv9-sun-solaris2.* with 64-bit compiler.

diff --git a/config.guess b/config.guess
--- a/config.guess
+++ b/config.guess
@@ -385,7 +385,20 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAM
        echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+       set_cc_for_build
+       SUN_ARCH=sparc
+       # If there is a compiler, see if it is configured for 64-bit objects.
+       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+       # This test works for both compilers.
+       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+           if (echo '#ifdef __sparcv9'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               SUN_ARCH=sparcv9
+           fi
+       fi
+       echo "$SUN_ARCH"-sun-solaris2"`echo "$UNAME_RELEASE"|sed -e 
's/[^.]*//'`"
        exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
        echo i386-pc-auroraux"$UNAME_RELEASE"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]