OSDN Git Service

gcc/
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 May 2008 11:25:04 +0000 (11:25 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 May 2008 11:25:04 +0000 (11:25 +0000)
* config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
(sparc*-*-linux*): Use linux.h in tm_file.
(sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
compiler defaulting to 32-bit.
(sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
no longer needed.
* config/sparc/linux.h: Remove definitions now obtained
properly from linux.h
* config/sparc/linux64.h: Likewise.
(ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
don't want this setting for 32-bit builds in a biarch compiler.
* doc/install.texi: Add sparc-linux to list of targets
supporting --enable-targets=all.

libcpp/

* configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134929 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config.gcc
gcc/config/sparc/linux.h
gcc/config/sparc/linux64.h
gcc/doc/install.texi
libcpp/configure
libcpp/configure.ac

index 3519986..c1da450 100644 (file)
@@ -1,3 +1,19 @@
+2008-05-04  David S. Miller  <davem@davemloft.net>
+
+       * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
+       (sparc*-*-linux*): Use linux.h in tm_file.
+       (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
+       compiler defaulting to 32-bit.
+       (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
+       no longer needed.
+       * config/sparc/linux.h: Remove definitions now obtained
+       properly from linux.h
+       * config/sparc/linux64.h: Likewise.
+       (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
+       don't want this setting for 32-bit builds in a biarch compiler.
+       * doc/install.texi: Add sparc-linux to list of targets
+       supporting --enable-targets=all.
+
 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
 
        * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
index 00cd60c..04b46c3 100644 (file)
@@ -358,12 +358,9 @@ rs6000*-*-*)
 score*-*-*)
        cpu_type=score
        ;;
-sparc64*-*-*)
-       cpu_type=sparc
-       need_64bit_hwint=yes
-       ;;
 sparc*-*-*)
        cpu_type=sparc
+       need_64bit_hwint=yes
        ;;
 spu*-*-*)
        cpu_type=spu
@@ -2357,9 +2354,15 @@ sparc-*-elf*)
        use_fixproto=yes
        ;;
 sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
-       tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
+       tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
+       if test x$enable_targets = xall; then
+               tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
+               tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm"
+       else
+               tm_file="${tm_file} sparc/linux.h"
+               tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
+       fi
        ;;
 sparc-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
@@ -2396,7 +2399,6 @@ sparc64-*-solaris2* | sparcv9-*-solaris2*)
          "":yes:* | yes:yes:* ) thread_file=posix ;;
          "":*:yes | yes:*:yes ) thread_file=solaris ;;
        esac
-       need_64bit_hwint=yes
        ;;
 sparc-*-solaris2*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
@@ -2437,7 +2439,6 @@ sparc-*-solaris2*)
                fi
                tm_file="${tm_file} tm-dwarf2.h"
                tmake_file="$tmake_file sparc/t-sol2-64"
-               need_64bit_hwint=yes
                test x$with_cpu != x || with_cpu=v9
                ;;
        esac
@@ -2488,10 +2489,9 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
                x) with_cpu=ultrasparc ;;
                *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
        esac
-       need_64bit_hwint=yes
        ;;
 sparc64-*-linux*)              # 64-bit SPARC's running GNU/Linux
-       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
+       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
        tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
        ;;
index bd3b1f5..67b6412 100644 (file)
@@ -22,39 +22,12 @@ along with GCC; see the file COPYING3.  If not see
 #define TARGET_OS_CPP_BUILTINS()               \
   do                                           \
     {                                          \
-      builtin_define_std ("unix");             \
-      builtin_define_std ("linux");            \
-      builtin_define ("__gnu_linux__");                \
-      builtin_assert ("system=linux");         \
-      builtin_assert ("system=unix");          \
-      builtin_assert ("system=posix");         \
+      LINUX_TARGET_OS_CPP_BUILTINS();          \
       if (TARGET_LONG_DOUBLE_128)              \
        builtin_define ("__LONG_DOUBLE_128__"); \
     }                                          \
   while (0)
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
-#undef MD_EXEC_PREFIX
-#undef MD_STARTFILE_PREFIX
-
-/* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
-   the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
-   provides part of the support for getting C++ file-scope static
-   object constructed before entering `main'.  */
-   
-#undef  STARTFILE_SPEC
-#if defined HAVE_LD_PIE
-#define STARTFILE_SPEC \
-  "%{!shared: %{pg|p:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
-   crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-#else
-#define STARTFILE_SPEC \
-  "%{!shared: %{pg|p:gcrt1.o%s;:crt1.o%s}}\
-   crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-#endif
-
 /* Provide a ENDFILE_SPEC appropriate for GNU/Linux.  Here we tack on
    the GNU/Linux magical crtend.o file (see crtstuff.c) which
    provides part of the support for getting C++ file-scope static
@@ -63,8 +36,8 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC \
-  "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
-   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s\
+   %{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
 
 /* This is for -profile to use -lc_p instead of -lc.  */
 #undef CC1_SPEC
@@ -75,10 +48,6 @@ along with GCC; see the file COPYING3.  If not see
 %{mv8:-mcpu=v8} %{msupersparc:-mcpu=supersparc} \
 "
 
-/* The GNU C++ standard library requires that these macros be defined.  */
-#undef CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
 #undef TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with ELF)");
 
@@ -98,12 +67,6 @@ along with GCC; see the file COPYING3.  If not see
 #define CPP_SUBTARGET_SPEC \
 "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
 
-#undef LIB_SPEC
-#define LIB_SPEC \
-  "%{pthread:-lpthread} \
-   %{shared:-lc} \
-   %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}"
-
 /* Provide a LINK_SPEC appropriate for GNU/Linux.  Here we provide support
    for the special GCC options -static and -shared, which allow us to
    link things in one of these three modes by applying the appropriate
@@ -121,15 +84,6 @@ along with GCC; see the file COPYING3.  If not see
 /* If ELF is the default format, we should not use /lib/elf.  */
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-#if UCLIBC_DEFAULT
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-#else
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
-#endif
-#define LINUX_DYNAMIC_LINKER \
-  CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-
 
 #undef  LINK_SPEC
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
@@ -191,10 +145,6 @@ do {                                                                       \
 
 #undef DITF_CONVERSION_LIBFUNCS
 #define DITF_CONVERSION_LIBFUNCS 1
-
-#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-#endif
 \f
 #ifdef HAVE_AS_TLS
 #undef TARGET_SUN_TLS
@@ -203,31 +153,10 @@ do {                                                                      \
 #define TARGET_GNU_TLS 1
 #endif
 \f
-/* Don't be different from other Linux platforms in this regard.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 /* We use GNU ld so undefine this so that attribute((init_priority)) works.  */
 #undef CTORS_SECTION_ASM_OP
 #undef DTORS_SECTION_ASM_OP
 
-/* Determine whether the entire c99 runtime is present in the
-   runtime library.  */
-#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
-
-/* Whether we have sincos that follows the GNU extension.  */
-#define TARGET_HAS_SINCOS (OPTION_GLIBC)
-
-#define TARGET_POSIX_IO
-
-#undef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC \
-  "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-
-/* Use --as-needed -lgcc_s for eh support.  */
-#ifdef HAVE_LD_AS_NEEDED
-#define USE_LD_AS_NEEDED 1
-#endif
-
 #define MD_UNWIND_SUPPORT "config/sparc/linux-unwind.h"
 
 /* Linux currently uses RMO in uniprocessor mode, which is equivalent to
index b205552..f8c87b9 100644 (file)
@@ -19,27 +19,18 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-#define TARGET_OS_CPP_BUILTINS()                       \
-  do                                                   \
-    {                                                  \
-      builtin_define_std ("unix");                     \
-      builtin_define_std ("linux");                    \
-      builtin_define ("_LONGLONG");                    \
-      builtin_define ("__gnu_linux__");                        \
-      builtin_assert ("system=linux");                 \
-      builtin_assert ("system=unix");                  \
-      builtin_assert ("system=posix");                 \
-      if (TARGET_ARCH32 && TARGET_LONG_DOUBLE_128)     \
-       builtin_define ("__LONG_DOUBLE_128__");         \
-    }                                                  \
+#define TARGET_OS_CPP_BUILTINS()               \
+  do                                           \
+    {                                          \
+      LINUX_TARGET_OS_CPP_BUILTINS();          \
+      if (TARGET_ARCH64)                       \
+        builtin_define ("_LONGLONG");          \
+      if (TARGET_ARCH32                                \
+          && TARGET_LONG_DOUBLE_128)           \
+       builtin_define ("__LONG_DOUBLE_128__"); \
+    }                                          \
   while (0)
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
-#undef MD_EXEC_PREFIX
-#undef MD_STARTFILE_PREFIX
-
 #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
     || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
     || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3 \
@@ -54,25 +45,10 @@ along with GCC; see the file COPYING3.  If not see
    + MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
 #endif
 
-#undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-Av9a"
-
-/* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
-   the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
-   provides part of the support for getting C++ file-scope static
-   object constructed before entering `main'.  */
-   
-#undef  STARTFILE_SPEC
-
-#ifdef HAVE_LD_PIE
-#define STARTFILE_SPEC \
-  "%{!shared:%{pg|p:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
-   crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbeginS.o%s}"
-#else
-#define STARTFILE_SPEC \
-  "%{!shared:%{pg|p:gcrt1.o%s;:crt1.o%s}}\
-   crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbeginS.o%s}"
-#endif
+/* This must be v9a not just v9 because by default we enable
+   -mvis.  */
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC "-Av9a"
 
 /* Provide a ENDFILE_SPEC appropriate for GNU/Linux.  Here we tack on
    the GNU/Linux magical crtend.o file (see crtstuff.c) which
@@ -80,16 +56,11 @@ along with GCC; see the file COPYING3.  If not see
    object constructed before entering `main', followed by a normal
    GNU/Linux "finalizer" file, `crtn.o'.  */
 
-#undef  ENDFILE_SPEC
-
+#undef ENDFILE_SPEC
 #define ENDFILE_SPEC \
   "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s\
    %{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
 
-/* The GNU C++ standard library requires that these macros be defined.  */
-#undef CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
 #undef TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (sparc64 GNU/Linux with ELF)");
 
@@ -122,12 +93,6 @@ along with GCC; see the file COPYING3.  If not see
 %{pthread:-D_REENTRANT} \
 "
 
-#undef LIB_SPEC
-#define LIB_SPEC \
-  "%{pthread:-lpthread} \
-   %{shared:-lc} \
-   %{!shared: %{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}"
-
 /* Provide a LINK_SPEC appropriate for GNU/Linux.  Here we provide support
    for the special GCC options -static and -shared, which allow us to
    link things in one of these three modes by applying the appropriate
@@ -146,17 +111,6 @@ along with GCC; see the file COPYING3.  If not see
 
 #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
 #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
-#if UCLIBC_DEFAULT
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-#else
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
-#endif
-#define LINUX_DYNAMIC_LINKER32 \
-  CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
-#define LINUX_DYNAMIC_LINKER64 \
-  CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
 
 #ifdef SPARC_BI_ARCH
 
@@ -203,7 +157,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef CC1_SPEC
 #if DEFAULT_ARCH32_P
-#define CC1_SPEC "\
+#define CC1_SPEC "%{profile:-p} \
 %{sun4:} %{target:} \
 %{mcypress:-mcpu=cypress} \
 %{msparclite:-mcpu=sparclite} %{mf930:-mcpu=f930} %{mf934:-mcpu=f934} \
@@ -214,7 +168,7 @@ along with GCC; see the file COPYING3.  If not see
   %{!mno-vis:%{!mcpu=v9:-mvis}}} \
 "
 #else
-#define CC1_SPEC "\
+#define CC1_SPEC "%{profile:-p} \
 %{sun4:} %{target:} \
 %{mcypress:-mcpu=cypress} \
 %{msparclite:-mcpu=sparclite} %{mf930:-mcpu=f930} %{mf934:-mcpu=f934} \
@@ -324,10 +278,6 @@ do {                                                                       \
 
 #undef DITF_CONVERSION_LIBFUNCS
 #define DITF_CONVERSION_LIBFUNCS 1
-
-#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-#endif
 \f
 #ifdef HAVE_AS_TLS
 #undef TARGET_SUN_TLS
@@ -336,31 +286,10 @@ do {                                                                      \
 #define TARGET_GNU_TLS 1
 #endif
 \f
-/* Don't be different from other Linux platforms in this regard.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 /* We use GNU ld so undefine this so that attribute((init_priority)) works.  */
 #undef CTORS_SECTION_ASM_OP
 #undef DTORS_SECTION_ASM_OP
 
-/* Determine whether the entire c99 runtime is present in the
-   runtime library.  */
-#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
-
-/* Whether we have sincos that follows the GNU extension.  */
-#define TARGET_HAS_SINCOS (OPTION_GLIBC)
-
-#define TARGET_POSIX_IO
-
-#undef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC \
-  "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-
-/* Use --as-needed -lgcc_s for eh support.  */
-#ifdef HAVE_LD_AS_NEEDED
-#define USE_LD_AS_NEEDED 1
-#endif
-
 #define MD_UNWIND_SUPPORT "config/sparc/linux-unwind.h"
 
 /* Linux currently uses RMO in uniprocessor mode, which is equivalent to
index 027b169..0391ec8 100644 (file)
@@ -1201,7 +1201,8 @@ powerpc-linux for powerpc64-linux, only generates 32-bit code.  This
 option enables the 32-bit target to be a bi-arch compiler, which is
 useful when you want a bi-arch compiler that defaults to 32-bit, and
 you are building a bi-arch or multi-arch binutils in a combined tree.
-Currently, this option only affects powerpc-linux and x86-linux.
+Currently, this option only affects sparc-linux, powerpc-linux and
+x86-linux.
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
index 0f43267..6f58772 100755 (executable)
@@ -8329,9 +8329,7 @@ case $target in
        powerpc*-*-* | \
        rs6000*-*-* | \
        s390*-*-* | \
-       sparc64*-*-* | ultrasparc-*-freebsd* | \
-       sparcv9-*-solaris2* | \
-       sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9]* | \
+       sparc*-*-* | \
        spu-*-* | \
        sh[123456789lbe]*-*-* | sh-*-*)
                need_64bit_hwint=yes ;;
index b92f390..8813674 100644 (file)
@@ -126,9 +126,7 @@ case $target in
        powerpc*-*-* | \
        rs6000*-*-* | \
        s390*-*-* | \
-       sparc64*-*-* | ultrasparc-*-freebsd* | \
-       sparcv9-*-solaris2* | \
-       sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9]* | \
+       sparc*-*-* | \
        spu-*-* | \
        sh[123456789lbe]*-*-* | sh-*-*)
                need_64bit_hwint=yes ;;