diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2011-07-07 09:24:16 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2011-07-07 09:24:16 +0000 |
commit | fbdd5d87150536650a23886c85473b6cbf9857cf (patch) | |
tree | 956f88376a78ba7c74e120eba2dc7073144bc5ce /gcc | |
parent | fcf7471a39854c6bf17a6b59beca52cd56a03ce2 (diff) | |
download | gcc-fbdd5d87150536650a23886c85473b6cbf9857cf.zip gcc-fbdd5d87150536650a23886c85473b6cbf9857cf.tar.gz gcc-fbdd5d87150536650a23886c85473b6cbf9857cf.tar.bz2 |
re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386-solaris*).)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 30 | ||||
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/Makefile.in | 32 | ||||
-rw-r--r-- | gcc/config.gcc | 4 | ||||
-rw-r--r-- | gcc/config.host | 2 | ||||
-rw-r--r-- | gcc/config/host-solaris.c | 2 | ||||
-rw-r--r-- | gcc/config/i386/sol2-bi.h | 13 | ||||
-rw-r--r-- | gcc/config/i386/sol2.h | 5 | ||||
-rw-r--r-- | gcc/config/sol2-bi.h | 18 | ||||
-rw-r--r-- | gcc/config/sparc/sol2.h | 10 | ||||
-rwxr-xr-x | gcc/configure | 12 | ||||
-rw-r--r-- | gcc/configure.ac | 12 | ||||
-rw-r--r-- | gcc/doc/install.texi | 35 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.misc-tests/linkage.exp | 3 |
15 files changed, 146 insertions, 42 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad790d3..b44a29f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,35 @@ 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 ... (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 66bc3e0..686aad1 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -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): diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 7feb6d2..0b5c879 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -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 diff --git a/gcc/config.gcc b/gcc/config.gcc index c77f40b..d73cb45 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -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*) diff --git a/gcc/config.host b/gcc/config.host index a2bde44..d55447c 100644 --- a/gcc/config.host +++ b/gcc/config.host @@ -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" ;; diff --git a/gcc/config/host-solaris.c b/gcc/config/host-solaris.c index 12eab3c..15f1d78 100644 --- a/gcc/config/host-solaris.c +++ b/gcc/config/host-solaris.c @@ -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 diff --git a/gcc/config/i386/sol2-bi.h b/gcc/config/i386/sol2-bi.h index a988fa0..04feeb9 100644 --- a/gcc/config/i386/sol2-bi.h +++ b/gcc/config/i386/sol2-bi.h @@ -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" diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h index 593e256..5b4e3d7 100644 --- a/gcc/config/i386/sol2.h +++ b/gcc/config/i386/sol2.h @@ -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 \ diff --git a/gcc/config/sol2-bi.h b/gcc/config/sol2-bi.h index 371cdd6..5e41efd 100644 --- a/gcc/config/sol2-bi.h +++ b/gcc/config/sol2-bi.h @@ -56,6 +56,16 @@ #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. */ @@ -78,8 +88,14 @@ #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 diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index 392b171..6661c21 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -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 "" diff --git a/gcc/configure b/gcc/configure index 68830c5..3c717c0 100755 --- a/gcc/configure +++ b/gcc/configure @@ -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 ;; diff --git a/gcc/configure.ac b/gcc/configure.ac index 02c6089..f899991 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -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 ;; diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 78a6ee8..f93413f 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -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*} @@ -3157,6 +3161,13 @@ provide a fix shortly. @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 @heading @anchor{arm-x-elf}arm-*-elf ARM-family processors. Subtargets that use the ELF object format require GNU binutils 2.13 or newer. Such subtargets include: @@ -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 @@ -4400,6 +4411,22 @@ 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 @heading @anchor{xtensa-x-elf}xtensa*-*-elf This target is intended for embedded Xtensa systems using the diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f176a44..a1b8bb8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp index 954dc29..f6702e4 100644 --- a/gcc/testsuite/gcc.misc-tests/linkage.exp +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp @@ -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" |