OSDN Git Service

* config.gcc (arm*-*-linux*): Remove redundant extra_parts and
authordrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Oct 2005 01:04:31 +0000 (01:04 +0000)
committerdrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Oct 2005 01:04:31 +0000 (01:04 +0000)
gnu_ld assignments.
* config/arm/t-linux-eabi (LIB1ASMFUNCS)
(EXTRA_MULTILIB_PARTS): Define.
* config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
* config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.

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

gcc/ChangeLog
gcc/config.gcc
gcc/config/arm/linux-elf.h
gcc/config/arm/t-linux-eabi
gcc/config/arm/uclinux-elf.h

index 31163ac..1e0034b 100644 (file)
@@ -1,3 +1,16 @@
+2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
+       gnu_ld assignments.
+       * config/arm/t-linux-eabi (LIB1ASMFUNCS)
+       (EXTRA_MULTILIB_PARTS): Define.
+       * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
+       (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
+       (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
+       * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
+       (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
+       (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
+
 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR tree-optimization/24226
index 4634517..9acca82 100644 (file)
@@ -673,8 +673,6 @@ arm*-*-netbsd*)
 arm*-*-linux*)                 # ARM GNU/Linux with ELF
        tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
        tmake_file="${tmake_file} t-linux arm/t-arm"
-       extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-       gnu_ld=yes
        case ${target} in
        arm*-*-linux-gnueabi)
            tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
index 5429a13..15354e5 100644 (file)
@@ -28,9 +28,6 @@
 #undef  TARGET_VERSION
 #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
 
-/* Do not assume anything about header files.  */
-#define NO_IMPLICIT_EXTERN_C
-
 #undef  TARGET_DEFAULT_FLOAT_ABI
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
 
 #define MULTILIB_DEFAULTS \
        { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
 
-/* The GNU C++ standard library requires that these macros be defined.  */
-#undef CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
 /* Now we define the strings used to build the spec file.  */
 #undef  LIB_SPEC
 #define LIB_SPEC \
 
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 
-/* 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
-#define STARTFILE_SPEC \
-  "%{!shared: \
-     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-                      %{!p:%{profile:gcrt1.o%s} \
-                        %{!profile:crt1.o%s}}}} \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
-/* 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
-   object constructed before entering `main', followed by a normal
-   GNU/Linux "finalizer" file, `crtn.o'.  */
-
-#undef  ENDFILE_SPEC
-#define ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
 
 #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
 
 /* The GNU/Linux profiler needs a frame pointer.  */
 #define SUBTARGET_FRAME_POINTER_REQUIRED current_function_profile
-
-#undef  CC1_SPEC
-#define CC1_SPEC "%{profile:-p}"
-
-#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
index 7cfee90..5e8d94d 100644 (file)
@@ -5,3 +5,10 @@ TARGET_LIBGCC2_CFLAGS = -fPIC
 # CLEAR_INSN_CACHE in linux-gas.h does not work in Thumb mode.
 MULTILIB_OPTIONS       =
 MULTILIB_DIRNAMES      =
+
+# Use a version of div0 which raises SIGFPE.
+LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx
+
+# Multilib the standard Linux files.  Don't include crti.o or crtn.o,
+# which are provided by glibc.
+EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
index 645243e..9f112cd 100644 (file)
 
 #undef  TARGET_DEFAULT
 #define TARGET_DEFAULT (MASK_SINGLE_PIC_BASE)
+
+/* NOTE: The remaining definitions in this file are needed because uclinux
+   does not use config/linux.h.  */
+
+/* Do not assume anything about header files.  */
+#define NO_IMPLICIT_EXTERN_C
+
+/* The GNU C++ standard library requires that these macros be defined.  */
+#undef CPLUSPLUS_CPP_SPEC
+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
+
+/* 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
+#define STARTFILE_SPEC \
+  "%{!shared: \
+     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
+                      %{!p:%{profile:gcrt1.o%s} \
+                        %{!profile:crt1.o%s}}}} \
+   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+/* 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
+   object constructed before entering `main', followed by a normal
+   GNU/Linux "finalizer" file, `crtn.o'.  */
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC \
+  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+
+#undef  CC1_SPEC
+#define CC1_SPEC "%{profile:-p}"
+
+#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