re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386...
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 7 Jul 2011 09:24:16 +0000 (09:24 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 7 Jul 2011 09:24:16 +0000 (09:24 +0000)
gcc:
PR target/39150
* configure.ac (gcc_cv_as_hidden): Also accept
x86_64-*-solaris2.1[0-9]*.
(gcc_cv_as_cfi_directive): Likewise.
(gcc_cv_as_comdat_group_group): Likewise.
(set_have_as_tls): Likewise.
* configure: Regenerate.
* config.gcc (i[34567]86-*-solaris2*): Also handle
x86_64-*-solaris2.1[0-9]*.
* config.host (i[34567]86-*-solaris2*): Likewise.
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
* config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
[USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
(TARGET_LD_EMULATION): Use it.
* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
(SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
* config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
(ASM_CPU64_DEFAULT_SPEC): Define.
(ASM_CPU_SPEC): Use %(asm_cpu_default).
(ASM_SPEC): Redefine.
(DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
* config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
* doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*):
Document.
(Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
configuration.
(Specific, x86_64-*-solaris2.1[0-9]*): Document.

gcc/ada:
PR target/39150
* gcc-interface/Makefile.in: Handle x86_64-solaris2.

libgcc:
PR target/39150
* config.host (*-*-solaris2*): Handle x86_64-*-solaris2.1[0-9]*
like i?86-*-solaris2.1[0-9]*.
(i[34567]86-*-solaris2*): Also handle x86_64-*-solaris2.1[0-9]*.
* configure.ac (i?86-*-solaris2*): Likewise.
* configure: Regenerate.

gcc/testsuite:
PR target/39150
* gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*.

toplevel:
PR target/39150
* configure.ac (i[3456789]86-*-solaris2*): Also accept
x86_64-*-solaris2.1[0-9]*.
* configure: Regenerate.

boehm-gc:
PR target/39150
* configure.ac (i?86-*-solaris2.[89]): Also accept
x86_64-*-solaris2.1?.
* configure: Regenerate.

gnattools:
PR target/39150
* configure.ac (*86-*-solaris2*): Also accept
x86_64-*-solaris2.1[0-9]*.
* configure: Regenerate.

libcpp:
PR target/39150
* configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
like i[34567]86-*-solaris2.1[0-9]*.
* configure: Regenerate.

libgo:
PR target/39150
* config/libtool.m4: Handle x86_64-*-solaris2.1[0-9]* like
i?86-*-solaris*.
* configure: Regenerate.

libjava:
PR target/39150
* configure.host (x86_64-*): Add -Usun to libgcj_flags.
(x86_64-*-solaris2.1[0-9]*): New case.
(i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*.

From-SVN: r175958

35 files changed:
ChangeLog
boehm-gc/ChangeLog
boehm-gc/configure
boehm-gc/configure.ac
configure
configure.ac
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/Makefile.in
gcc/config.gcc
gcc/config.host
gcc/config/host-solaris.c
gcc/config/i386/sol2-bi.h
gcc/config/i386/sol2.h
gcc/config/sol2-bi.h
gcc/config/sparc/sol2.h
gcc/configure
gcc/configure.ac
gcc/doc/install.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.misc-tests/linkage.exp
gnattools/ChangeLog
gnattools/configure
gnattools/configure.ac
libcpp/ChangeLog
libcpp/configure
libcpp/configure.ac
libgcc/ChangeLog
libgcc/config.host
libgcc/configure
libgcc/configure.ac
libgo/config/libtool.m4
libgo/configure
libjava/ChangeLog
libjava/configure.host

index 77ce407ab7599fa04c6a85c5a077b9238d2437eb..ec1b42bd20b90f56c81d2bef27aaac864adde619 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.ac (i[3456789]86-*-solaris2*): Also accept
+       x86_64-*-solaris2.1[0-9]*.
+       * configure: Regenerate.
+
 2011-06-29  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * MAINTAINERS (RTL optimizers): Add self.
index d08acc014e05b9b2e0e32f27516928e686596c5f..34e3882e50601bf17a62f1faf90a8c333e8eac2e 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.ac (i?86-*-solaris2.[89]): Also accept
+       x86_64-*-solaris2.1?.
+       * configure: Regenerate.
+
 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        PR libgcj/49451
index 7defe3842c7e77a740fe2a7557adf9a017788211..66bb3e7f06a99cef8deb44693c20d49e89439835 100755 (executable)
@@ -15163,7 +15163,7 @@ $as_echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library suppor
  alpha*-*-linux*)
     machdep="alpha_mach_dep.lo"
     ;;
- i?86-*-solaris2.[89] | i?86-*-solaris2.1?)
+ i?86-*-solaris2.[89] | i?86-*-solaris2.1? | x86_64-*-solaris2.1?)
 
 $as_echo "#define SOLARIS25_PROC_VDB_BUG_FIXED 1" >>confdefs.h
 
index 1f7fb25c0e5da177ac71cadd4fc13225d9d58bca..799959a0e0f00638d59b40d8ce285f0bf2c619f5 100644 (file)
@@ -400,7 +400,7 @@ case "$host" in
  alpha*-*-linux*)
     machdep="alpha_mach_dep.lo"
     ;;
- i?86-*-solaris2.[[89]] | i?86-*-solaris2.1?)
+ i?86-*-solaris2.[[89]] | i?86-*-solaris2.1? | x86_64-*-solaris2.1?)
     AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED,1,[PROC_VDB in Solaris 2.5 gives wrong values for dirty bits])
     ;;
  mipstx39-*-elf*)
index eac5bc7a5825db8158a74269b3ad26e855d82b6f..f4bb255560956e23a9de81fa7d24dddba025529c 100755 (executable)
--- a/configure
+++ b/configure
@@ -3477,7 +3477,7 @@ case "${target}" in
   i[3456789]86-*-sco*)
     noconfigdirs="$noconfigdirs gprof target-libgloss"
     ;;
-  i[3456789]86-*-solaris2*)
+  i[3456789]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
   i[3456789]86-*-sysv4*)
index b88a8212a39fdefbe458ef4ec0685ef16598115d..31a5bdf67bdc2271b66ba60d41e3714b01955e9e 100644 (file)
@@ -923,7 +923,7 @@ case "${target}" in
   i[[3456789]]86-*-sco*)
     noconfigdirs="$noconfigdirs gprof target-libgloss"
     ;;
-  i[[3456789]]86-*-solaris2*)
+  i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
   i[[3456789]]86-*-sysv4*)
index ad790d3844d0e5b62fcdf8cdadc3b2ba1f5aca4a..b44a29fe614cd487cc7e93883e3884446d895145 100644 (file)
@@ -1,3 +1,33 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.ac (gcc_cv_as_hidden): Also accept
+       x86_64-*-solaris2.1[0-9]*.
+       (gcc_cv_as_cfi_directive): Likewise.
+       (gcc_cv_as_comdat_group_group): Likewise.
+       (set_have_as_tls): Likewise.
+       * configure: Regenerate.
+       * config.gcc (i[34567]86-*-solaris2*): Also handle
+       x86_64-*-solaris2.1[0-9]*.
+       * config.host (i[34567]86-*-solaris2*): Likewise.
+       * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
+       * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
+       [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
+       (TARGET_LD_EMULATION): Use it.
+       * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
+       (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
+       * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
+       (ASM_CPU64_DEFAULT_SPEC): Define.
+       (ASM_CPU_SPEC): Use %(asm_cpu_default).
+       (ASM_SPEC): Redefine.
+       (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
+       * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
+       * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*):
+       Document.
+       (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
+       configuration.
+       (Specific, x86_64-*-solaris2.1[0-9]*): Document.
+
 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/sol2.h (ASM_SPEC): Split into ...
index 66bc3e031d3fc5b65423a80372a125d832764fcf..686aad137fd49333b36d7e494008e134f419a65d 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * gcc-interface/Makefile.in: Handle x86_64-solaris2.
+
 2011-07-06  Richard Guenther  <rguenther@suse.de>
 
        * gcc-interface/misc.c (gnat_init):
index 7feb6d27b81cd8abff7c77bcb3d60c17e68cc94a..0b5c8795a7aaf0cb7b855845d9e86e8085695fba 100644 (file)
@@ -1011,8 +1011,8 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(targ))),)
   endif
 endif
 
-ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
-  LIBGNAT_TARGET_PAIRS = \
+ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS_COMMON = \
   a-numaux.adb<a-numaux-x86.adb \
   a-numaux.ads<a-numaux-x86.ads \
   a-intnam.ads<a-intnam-solaris.ads \
@@ -1028,13 +1028,29 @@ ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
   s-tpopsp.adb<s-tpopsp-solaris.adb \
   g-soliop.ads<g-soliop-solaris.ads
 
-  ifeq ($(strip $(MULTISUBDIR)),/amd64)
-    LIBGNAT_TARGET_PAIRS += \
-    system.ads<system-solaris-x86_64.ads
+  LIBGNAT_TARGET_PAIRS_32 = \
+  g-bytswa.adb<g-bytswa-x86.adb \
+  system.ads<system-solaris-x86.ads
+
+  LIBGNAT_TARGET_PAIRS_64 = \
+  system.ads<system-solaris-x86_64.ads
+
+  ifeq ($(strip $(filter-out %86 solaris2%,$(arch) $(osys))),)
+    ifeq ($(strip $(MULTISUBDIR)),/amd64)
+      LIBGNAT_TARGET_PAIRS = \
+      $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
+    else
+      LIBGNAT_TARGET_PAIRS = \
+      $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
+    endif
   else
-    LIBGNAT_TARGET_PAIRS += \
-    g-bytswa.adb<g-bytswa-x86.adb \
-    system.ads<system-solaris-x86.ads
+    ifeq ($(strip $(MULTISUBDIR)),/32)
+      LIBGNAT_TARGET_PAIRS = \
+      $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_32)
+    else
+      LIBGNAT_TARGET_PAIRS = \
+      $(LIBGNAT_TARGET_PAIRS_COMMON) $(LIBGNAT_TARGET_PAIRS_64)
+    endif
   endif
 
   TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
index c77f40b01990ba4d5a8070d3d3bbec2ef646ecf5..d73cb459bb01826f6e9ea6fc06eb131303383430 100644 (file)
@@ -1369,7 +1369,7 @@ i[34567]86-*-rtems*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
        tmake_file="${tmake_file} i386/t-rtems t-rtems"
        ;;
-i[34567]86-*-solaris2*)
+i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
        tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file}"
        # Set default arch_32 to pentium4, tune_32 to generic like the other
        # i386 targets, although config.guess defaults to i386-pc-solaris2*.
@@ -3529,7 +3529,7 @@ case ${target} in
          i[34567]86-*-gnu*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
                ;;
-       i[34567]86-*-solaris2*)
+       i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
        i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
index a2bde4434c59e110d77e5a810d060d1f0bcf5ae4..d55447cb80cfc18db9487bbb5e4300edefe19e91 100644 (file)
@@ -197,7 +197,7 @@ case ${host} in
   i370-*-opened* | i370-*-mvs* ) # IBM 360/370/390 Architecture
     host_xm_defines='FATAL_EXIT_CODE=12'
     ;;
-  i[34567]86-*-solaris2*)
+  i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
     out_host_hook_obj=host-solaris.o
     host_xmake_file="${host_xmake_file} x-solaris"
     ;;
index 12eab3c61b8dd39a909d5e2a75a69b003e618c93..15f1d782e95ad0417f10b8822813df3634da10c9 100644 (file)
@@ -73,7 +73,7 @@ mmap_fixed (void *addr, size_t len, int prot, int flags, int fd, off_t off)
 #elif defined(__sparc__)
 # define TRY_EMPTY_VM_SPACE    0x80000000
 #elif defined(__x86_64__)
-# define TRY_EMPTY_VM_SPACE    0x8000000000000000
+# define TRY_EMPTY_VM_SPACE    0x80000000000
 #elif defined(__i386__)
 # define TRY_EMPTY_VM_SPACE    0xB0000000
 #else
index a988fa00b93b1fcdeee36db13803029afb40924b..04feeb907aebf0f3cd6a911b016891c493f43546 100644 (file)
@@ -31,13 +31,17 @@ along with GCC; see the file COPYING3.  If not see
 
 /* GNU as understands --32 and --64, but the native Solaris
    assembler requires -xarch=generic or -xarch=generic64 instead.  */
-#undef ASM_CPU_SPEC
 #ifdef USE_GAS
-#define ASM_CPU_SPEC "%{m32:--32} %{m64:--64}"
+#define ASM_CPU32_DEFAULT_SPEC "--32"
+#define ASM_CPU64_DEFAULT_SPEC "--64"
 #else
-#define ASM_CPU_SPEC "%{m32:-xarch=generic} %{m64:-xarch=generic64}"
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=generic"
+#define ASM_CPU64_DEFAULT_SPEC "-xarch=generic64"
 #endif
 
+#undef ASM_CPU_SPEC
+#define ASM_CPU_SPEC "%(asm_cpu_default)"
+
 /* Don't let i386/x86-64.h override i386/sol2.h version.  Still cannot use
    -K PIC with the Solaris 10+ assembler, it gives many warnings:
        Absolute relocation is used for symbol "<symbol>"  */
@@ -47,8 +51,7 @@ along with GCC; see the file COPYING3.  If not see
 /* We do not need to search a special directory for startup files.  */
 #undef MD_STARTFILE_PREFIX
 
-/* No 64-bit default configurations.  */
-#define DEFAULT_ARCH32_P 1
+#define DEFAULT_ARCH32_P !TARGET_64BIT_DEFAULT
 
 #define ARCH64_SUBDIR "amd64"
 
index 593e256c164d6eaab2857b52281505d671ea26b9..5b4e3d78f584c0a57b7dfc434e80101d811a5b33 100644 (file)
@@ -59,6 +59,8 @@ along with GCC; see the file COPYING3.  If not see
 #undef CPP_SPEC
 #define CPP_SPEC "%{,assembler-with-cpp:-P} %(cpp_subtarget)"
 
+#define ASM_CPU_DEFAULT_SPEC ""
+
 #define ASM_CPU_SPEC ""
  
 /* Don't include ASM_PIC_SPEC.  While the Solaris 8 and 9 assembler accepts
@@ -70,7 +72,8 @@ along with GCC; see the file COPYING3.  If not see
 
 #define SUBTARGET_CPU_EXTRA_SPECS \
   { "cpp_subtarget",    CPP_SUBTARGET_SPEC },          \
-  { "asm_cpu",          ASM_CPU_SPEC }
+  { "asm_cpu",          ASM_CPU_SPEC },                \
+  { "asm_cpu_default",  ASM_CPU_DEFAULT_SPEC },        \
 
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS \
index 371cdd6df41d5b340474451b7a592e6ac884fcab..5e41efd81d4cbf7d54466e15aa5165134ceefd22 100644 (file)
 #define DEF_ARCH64_SPEC(__str) "%{!m32:" __str "}"
 #endif
 
+#undef ASM_CPU_DEFAULT_SPEC
+#define ASM_CPU_DEFAULT_SPEC \
+(DEFAULT_ARCH32_P ? "\
+%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
+%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
+" : "\
+%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
+%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
+")
+
 /* This should be the same as LINK_ARCH32_SPEC_BASE, except with
    ARCH64_SUBDIR appended to the paths and /usr/ccs/lib is no longer
    necessary.  */
 #endif
 
 #ifdef USE_GLD
+#if DEFAULT_ARCH32_P
+#define ARCH_DEFAULT_EMULATION ARCH32_EMULATION
+#else
+#define ARCH_DEFAULT_EMULATION ARCH64_EMULATION
+#endif
 #define TARGET_LD_EMULATION "%{m32:-m " ARCH32_EMULATION "}" \
-                           "%{m64:-m " ARCH64_EMULATION "} "
+                           "%{m64:-m " ARCH64_EMULATION "}" \
+                           "%{!m32:%{!m64:-m " ARCH_DEFAULT_EMULATION "}} "
 #else
 #define TARGET_LD_EMULATION ""
 #endif
index 392b171be8d85e25c2200ec4000ecbdccfb94e94..6661c21945c4c37fd4a48c88099a245d80280502 100644 (file)
@@ -205,16 +205,6 @@ along with GCC; see the file COPYING3.  If not see
 %{!mcpu*:%(asm_cpu_default)} \
 "
 
-#undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC \
-(DEFAULT_ARCH32_P ? "\
-%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
-%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
-" : "\
-%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
-%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
-")
-
 #undef ASM_ARCH32_SPEC
 #define ASM_ARCH32_SPEC ""
 
index 68830c57dfbaee652bf3fdca7313bd81aa75b8db..3c717c086b7b010bfa5062a8030f3f61268aaf7d 100755 (executable)
@@ -21784,7 +21784,7 @@ foobar:' > conftest.s
 # Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
 # STV_HIDDEN, so disable .hidden support if so.
 case "${target}" in
-  i?86-*-solaris2*)
+  i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
     if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
       cat > conftest.s <<EOF
 .globl hidden
@@ -22099,7 +22099,7 @@ else
          gcc_cv_as_cfi_directive=no
        else
          case "$target" in
-           i?86-*-solaris2.1[0-9]*)
+           i?86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
              # On Solaris/x86, make sure that GCC and gas agree on using
              # read-only .eh_frame sections for 64-bit.
              if $gcc_cv_as --64 -o conftest.o conftest.s > /dev/null 2>&1 && \
@@ -22530,7 +22530,7 @@ $as_echo "$gcc_cv_as_comdat_group_percent" >&6; }
              foo:
             '
            ;;
-         i?86-*-solaris2*)
+         i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
           conftest_s='
                .group foo,.text%foo,#comdat
                .section .text%foo, "ax", @progbits
@@ -22760,12 +22760,16 @@ foo:  .long   25
        tls_first_major=2
        tls_first_minor=17
        ;;
-  i[34567]86-*-*)
+  i[34567]86-*-* | x86_64-*-solaris2.1[0-9]*)
     case "$target" in
       i[34567]86-*-solaris2.*)
        on_solaris=yes
        tga_func=___tls_get_addr
        ;;
+      x86_64-*-solaris2.1[0-9]*)
+       on_solaris=yes
+       tga_func=__tls_get_addr
+        ;;
       *)
        on_solaris=no
        ;;
index 02c6089e9e6fb12365658e277c81b5761bb3767c..f899991083dfe641dbea72517448badebe499d52 100644 (file)
@@ -2173,7 +2173,7 @@ foobar:],[
 # Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
 # STV_HIDDEN, so disable .hidden support if so.
 case "${target}" in
-  i?86-*-solaris2*)
+  i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
     if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
       cat > conftest.s <<EOF
 .globl hidden
@@ -2428,7 +2428,7 @@ gcc_GAS_CHECK_FEATURE([cfi directives], gcc_cv_as_cfi_directive,
          gcc_cv_as_cfi_directive=no
        else
          case "$target" in
-           i?86-*-solaris2.1[[0-9]]*)
+           i?86-*-solaris2.1[[0-9]]* | x86_64-*-solaris2.1[[0-9]]*)
              # On Solaris/x86, make sure that GCC and gas agree on using
              # read-only .eh_frame sections for 64-bit.
              if $gcc_cv_as --64 -o conftest.o conftest.s > /dev/null 2>&1 && \
@@ -2632,7 +2632,7 @@ else
              foo:
             '
            ;;
-         i?86-*-solaris2*)
+         i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
           conftest_s='
                .group foo,.text%foo,#comdat
                .section .text%foo, "ax", @progbits
@@ -2810,12 +2810,16 @@ foo:    .long   25
        tls_first_major=2
        tls_first_minor=17
        ;;
-  i[34567]86-*-*)
+  i[34567]86-*-* | x86_64-*-solaris2.1[0-9]*)
     case "$target" in
       i[34567]86-*-solaris2.*)
        on_solaris=yes
        tga_func=___tls_get_addr
        ;;
+      x86_64-*-solaris2.1[0-9]*)
+       on_solaris=yes
+       tga_func=__tls_get_addr
+        ;;
       *)
        on_solaris=no
        ;;
index 78a6ee83435d99f82cdf8914c57c0cb05ba90149..f93413fb7b8af96f96c1bac388de6cd9ed51b8e6 100644 (file)
@@ -2957,6 +2957,8 @@ information are.
 @item
 @uref{#alpha-dec-osf51,,alpha*-dec-osf5.1}
 @item
+@uref{#amd64-x-solaris210,,amd64-*-solaris2.10}
+@item
 @uref{#arm-x-elf,,arm-*-elf}
 @item
 @uref{#avr,,avr}
@@ -3057,6 +3059,8 @@ information are.
 @item
 @uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
 @item
+@uref{#x86-64-x-solaris210,,x86_64-*-solaris2.1[0-9]*}
+@item
 @uref{#xtensa-x-elf,,xtensa*-*-elf}
 @item
 @uref{#xtensa-x-linux,,xtensa*-*-linux*}
@@ -3154,6 +3158,13 @@ provide a fix shortly.
 
 @c FIXME: still applicable?
 
+@html
+<hr />
+@end html
+@heading @anchor{amd64-x-solaris210}amd64-*-solaris2.1[0-9]*
+
+This is a synonym for @samp{x86_64-*-solaris2.1[0-9]*}.
+
 @html
 <hr />
 @end html
@@ -3537,10 +3548,10 @@ you have the patch installed, you can configure GCC with an appropriate
 @end html
 @heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10
 Use this for Solaris 10 or later on x86 and x86-64 systems.  This
-configuration is supported by GCC 4.0 and later versions only.  Unlike
-@samp{sparcv9-sun-solaris2*}, there is no corresponding 64-bit
-configuration like @samp{amd64-*-solaris2*} or @samp{x86_64-*-solaris2*}.
-@c FIXME: will there ever be?
+configuration is supported by GCC 4.0 and later versions only.  Starting
+with GCC 4.7, there is also a 64-bit @samp{amd64-*-solaris2.1[0-9]*} or
+@samp{x86_64-*-solaris2.1[0-9]*} configuration that corresponds to
+@samp{sparcv9-sun-solaris2*}.
 
 It is recommended that you configure GCC to use the GNU assembler, in
 @file{/usr/sfw/bin/gas}.  The versions included in Solaris 10, from GNU
@@ -4397,6 +4408,22 @@ GCC supports the x86-64 architecture implemented by the AMD64 processor
 On GNU/Linux the default is a bi-arch compiler which is able to generate
 both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch).
 
+@html
+<hr />
+@end html
+@heading @anchor{x86-64-x-solaris2.10}x86_64-*-solaris2.1[0-9]*
+
+GCC also supports the x86-64 architecture implemented by the AMD64
+processor (@samp{amd64-*-*} is an alias for @samp{x86_64-*-*}) on
+Solaris 10 or later.  Unlike other systems, without special options a
+bi-arch compiler is built which generates 32-bit code by default, but
+can generate 64-bit x86-64 code with the @option{-m64} switch.  Since
+GCC 4.7, there is also configuration that defaults to 64-bit code, but
+can generate 32-bit code with @option{-m32}.  To configure and build
+this way, you have to provide all support libraries like @file{libgmp}
+as 64-bit code, configure with @option{--target=x86_64-pc-solaris2.1x}
+and @samp{CC=gcc -m64}.
+
 @html
 <hr />
 @end html
index f176a448cb50947ce19f36b54de8fd7b24ebe6c0..a1b8bb810b7d57308095a67a42c36277cd85ddd4 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*.
+
 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * gcc.target/powerpc/no-r11-1.c: New test for -mr11, -mno-r11.
index 954dc29a50e4d413590ab6ff5e5c40f6330f3b7a..f6702e4d024e03ff97ff661c5412092894aef4ae 100644 (file)
@@ -46,7 +46,8 @@ if { [isnative] && ![is_remote host] } then {
                set native_cflags "-xarch=v9"
            }
        }
-       if  [istarget "i?86*-*-solaris2*"] {
+       if  {[istarget "i?86*-*-solaris2*"]
+            || [istarget "x86_64-*-solaris2.1\[0-9\]*"]} {
            set file_string [exec file "linkage-x.o"]
            if [ string match "*64*" $file_string ] {
                set native_cflags "-xarch=amd64"
index 83f30164c063aa58188dd889db46d9db25fdd05a..9bcd621323020836016a7500b80afa558d26ee66 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.ac (*86-*-solaris2*): Also accept
+       x86_64-*-solaris2.1[0-9]*.
+       * configure: Regenerate.
+
 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        PR other/46202
index a85c044056ac8f7830963929b90f5d166fba1c66..8667058788f45541e242e4c84885bfb57c59395b 100755 (executable)
@@ -2041,7 +2041,7 @@ case "${target}" in
   sparc-sun-solaris*)
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
     ;;
-  *86-*-solaris2*)
+  *86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
     ;;
   *86-*-linux* \
index 712ed44063ed494c18949859aebc8395d6af0d9b..450cb72724305c7ef777ea8f73b4fcddf13f6bf6 100644 (file)
@@ -81,7 +81,7 @@ case "${target}" in
   sparc-sun-solaris*)
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
     ;;
-  *86-*-solaris2*)
+  *86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
     ;;
   *86-*-linux* \
index e36edfa981d12477122534b75680bcad78bcffab..6abcb25081c671c115e4c7bac966c5250ccbe651 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
+       like i[34567]86-*-solaris2.1[0-9]*.
+       * configure: Regenerate.
+
 2011-06-16  Jason Merrill  <jason@redhat.com>
 
        PR c++/45399
index 41677ce1f3c40af5d32c3b6f5f54ba444ae86676..d261f2a09f6632f20d62b021a7a43bb41281d41f 100755 (executable)
@@ -7095,7 +7095,7 @@ case $target in
        ia64-*-* | \
        hppa*64*-*-* | \
        i[34567]86-*-darwin* | \
-       i[34567]86-*-solaris2.1[0-9]* | \
+       i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]* | \
        i[34567]86-w64-mingw* | \
        mips*-*-* | \
        mmix-*-* | \
index 1c67eaf641cd28d86e5e1829f316604e71d1af58..ce8cae61bf01d4777b676f2b251cc4e61d80e54f 100644 (file)
@@ -145,7 +145,7 @@ case $target in
        ia64-*-* | \
        hppa*64*-*-* | \
        i[34567]86-*-darwin* | \
-       i[34567]86-*-solaris2.1[0-9]* | \
+       i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]* | \
        i[34567]86-w64-mingw* | \
        mips*-*-* | \
        mmix-*-* | \
index 4293729bba73c2825bdd4a10289b998ad8daf398..54b1f3d739305c41c6cdec107208b0c46d041ce3 100644 (file)
@@ -1,3 +1,12 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * config.host (*-*-solaris2*): Handle x86_64-*-solaris2.1[0-9]*
+       like i?86-*-solaris2.1[0-9]*.
+       (i[34567]86-*-solaris2*): Also handle x86_64-*-solaris2.1[0-9]*.
+       * configure.ac (i?86-*-solaris2*): Likewise.
+       * configure: Regenerate.
+
 2011-07-06  Thomas Schwinge  <thomas@schwinge.name>
 
        * config.host (i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu)
index c89155f33788ddedaddd35bc187f6331315becea..8faeee3ee01a0147b564c6d7f8094ebdfe21de3c 100644 (file)
@@ -188,7 +188,7 @@ case ${host} in
   tmake_file="$tmake_file $cpu_type/t-sol2"
   extra_parts="gmon.o crtbegin.o crtend.o"
   case ${host} in
-    i?86-*-solaris2.1[0-9]*)
+    i?86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
       # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
       # part of the base system.
       ;;
@@ -386,7 +386,7 @@ i[34567]86-*-rtems*)
        extra_parts="crtbegin.o crtend.o crti.o crtn.o"
        tmake_file="${tmake_file} t-crtin i386/t-softfp i386/t-crtstuff t-rtems"
        ;;
-i[34567]86-*-solaris2*)
+i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
        tmake_file="$tmake_file i386/t-crtfm"
        extra_parts="$extra_parts crtfastmath.o"
        md_unwind_header=i386/sol2-unwind.h
@@ -700,7 +700,7 @@ i[34567]86-*-darwin* | x86_64-*-darwin* | \
   i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
   i[34567]86-*-linux* | x86_64-*-linux* | \
   i[34567]86-*-gnu* | \
-  i[34567]86-*-solaris2* | \
+  i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]* | \
   i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
   i[34567]86-*-freebsd* | x86_64-*-freebsd*)
        if test "${host_address}" = 32; then
index 1351022494432d206b4a7999fedd699f418e3ee5..45fe914ddf9df5ce3038b5fab4fcd25264c3b75c 100644 (file)
@@ -3813,7 +3813,7 @@ esac
 # Link with -nostartfiles -nodefaultlibs since neither are present while
 # building libgcc.
 case ${host} in
-i?86-*-solaris2*)
+i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
   cat > conftest.s <<EOF
        .section        .eh_frame,"a",@unwind
        .zero   4
index 4f56c3b596f00cb6d876e92d9a72c7cbf457791d..20536c7152d19ca9cfec61b6d61f7a5c913b4d6b 100644 (file)
@@ -207,7 +207,7 @@ esac
 # Link with -nostartfiles -nodefaultlibs since neither are present while
 # building libgcc.
 case ${host} in
-i?86-*-solaris2*)
+i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
   cat > conftest.s <<EOF
        .section        .eh_frame,"a",@unwind
        .zero   4
index a546739eb4edf7b2cf5939a6fa2f824acc932aeb..1a667d31a5a9e1ef1743a9b887cee0a0fb774cba 100644 (file)
@@ -1296,7 +1296,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris* | x86_64-*-solaris2.1[[0-9]]*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
index 4bf5a2e609694a517e0c8ba3e1e3343b8ad30115..607533d0e386a9e0350df6a92602bf8fa281a1e5 100755 (executable)
@@ -6422,7 +6422,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris* | x86_64-*-solaris2.1[0-9]*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
index dfaa803c0a116b0314a1dd08044568dc4abd7f05..cac38751080ffe23bbfc38e0b694624515d5a044 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR target/39150
+       * configure.host (x86_64-*): Add -Usun to libgcj_flags.
+       (x86_64-*-solaris2.1[0-9]*): New case.
+       (i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*.
+
 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        PR libgcj/49314
index fab8c603a81fb68a9923feaa29cb1727d7d36f8d..105785e5434f844a55e9db1ef069627c6e028506 100644 (file)
@@ -141,6 +141,9 @@ case "${host}" in
                libgcj_flags="${libgcj_flags} -ffloat-store" ;;
        esac
        libgcj_flags="${libgcj_flags} -fomit-frame-pointer"
+       # On Solaris we have defined 'sun' which later conflicts with 
+       # namespace usage. So to work this away we use the below undefine.
+       libgcj_flags="${libgcj_flags} -Usun"
        libgcj_cxxflags=
        libgcj_cflags=
        DIVIDESPEC=-fno-use-divide-subroutine
@@ -285,6 +288,10 @@ EOF
        sysdeps_dir=i386
        DIVIDESPEC=-f%{m32:no-}%{!m32:%{!m64:no-}}%{m64:}use-divide-subroutine
        ;;
+  x86_64-*-solaris2.1[0-9]* )
+       sysdeps_dir=i386
+       DIVIDESPEC=-f%{m32:no-}use-divide-subroutine
+       ;;
   mips-sgi-irix6* )
        can_unwind_signal=yes
        sysdeps_dir=mips
@@ -322,7 +329,7 @@ EOF
        DIVIDESPEC=-fuse-divide-subroutine
        CHECKREFSPEC=-fcheck-references
        ;;
-  i?86-*-solaris2*)
+  i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
        can_unwind_signal=yes
        ;;
   *-*-freebsd*)