aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-01-19 01:20:23 +0000
committerMark Mitchell <mark@codesourcery.com>2005-01-19 01:20:23 +0000
commitdb4cf57080844dda35463e2d62e079280f25a06d (patch)
tree6fc434422f3b3cbe86869ddbcb3b2294be6fd75a
parent6be852e59f49dede0ff039f79564d2d1923be65f (diff)
Merge changes from csl-3_4-linux-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-3_4_3-linux-branch@93880 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.csl28
-rw-r--r--gcc/config.gcc9
-rw-r--r--gcc/config/i386/linux.h4
-rw-r--r--gcc/config/mips/linux.h5
-rw-r--r--gcc/config/mips/t-wrs-linux26
-rw-r--r--gcc/config/mips/wrs-linux.h28
-rw-r--r--gcc/config/rs6000/linux.h4
-rw-r--r--gcc/config/rs6000/rs6000.h10
-rw-r--r--gcc/gcc.c6
9 files changed, 109 insertions, 11 deletions
diff --git a/gcc/ChangeLog.csl b/gcc/ChangeLog.csl
new file mode 100644
index 00000000000..0ea2cef5ee7
--- /dev/null
+++ b/gcc/ChangeLog.csl
@@ -0,0 +1,28 @@
+2005-01-17 Mark Mitchell <mark@codesourcery.com>
+
+ * config/rs6000/rs6000.h (TARGET_SPE_ABI): Make it dynamic.
+ (TARGET_SPE): Likeiwse.
+ (TARGET_E500): Likewise.
+ (TARGET_ISEL): Likewise.
+ (TARGET_FPRS): Likewise.
+
+2005-01-16 Mark Mitchell <mark@codesourcery.com>
+
+ * config/gcc/config.gcc (mips-wrs-linux-gnu): New triplet.
+ * config/mips/wrs-linux.h: New file.
+ * config/mips/t-wrs-linux: New file.
+ * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define
+ only in libgcc and when inhibit_libc is not defined.
+ * gcc.c (init_spec): Handle SYSROOT_SUFFIX_LINK_SPEC.
+
+2004-12-20 Mark Mitchell <mark@codesourcery.com>
+
+ * config.gcc (powerpc-wrs-linux-gnu): Set target_cpu_default.
+ * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Do not define
+ when inhibit_libc is set.
+
+2004-11-19 Mark Mitchell <mark@codesourcery.com>
+
+ * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Do not define
+ when inhibit_libc is set.
+
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 96d0bef7886..0048e2996d1 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1593,6 +1593,12 @@ mips*-*-linux*) # Linux MIPS, either endian.
;;
esac
tmake_file="t-slibgcc-elf-ver t-linux"
+ case ${target} in
+ mips-wrs-linux-gnu)
+ tmake_file="$tmake_file mips/t-wrs-linux"
+ tm_file="$tm_file mips/wrs-linux.h"
+ ;;
+ esac
;;
mips*-*-openbsd*)
tm_defines="OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS"
@@ -1804,6 +1810,9 @@ powerpc-*-linux*spe*)
powerpc-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
+ case ${target} in
+ powerpc-wrs-linux-gnu) target_cpu_default="\\\"603\\\"";;
+ esac
;;
powerpc-*-gnu-gnualtivec*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
index e7d19ec181a..bf2bd90da1e 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -213,7 +213,9 @@ Boston, MA 02111-1307, USA. */
signal-turned-exceptions for them. There's also no configure-run for
the target, so we can't check on (e.g.) HAVE_SYS_UCONTEXT_H. Using the
target libc1 macro should be enough. */
-#if !(defined (USE_GNULIBC_1) || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0))
+#if !(defined (USE_GNULIBC_1) \
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0) \
+ || defined(inhibit_libc))
#include <signal.h>
#include <sys/ucontext.h>
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index eee298f8a73..e9dc94bfdec 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -200,8 +200,6 @@ typedef struct _sig_ucontext {
sigset_t uc_sigmask;
} _sig_ucontext_t;
-#endif /* IN_LIBGCC2 */
-
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
do { \
u_int32_t *pc_ = (u_int32_t *) (CONTEXT)->ra; \
@@ -253,4 +251,5 @@ typedef struct _sig_ucontext {
\
goto SUCCESS; \
} while (0)
-#endif
+#endif /* IN_LIBGCC2 */
+#endif /* inhibit_libc */
diff --git a/gcc/config/mips/t-wrs-linux b/gcc/config/mips/t-wrs-linux
new file mode 100644
index 00000000000..b9c4f5ed1d4
--- /dev/null
+++ b/gcc/config/mips/t-wrs-linux
@@ -0,0 +1,26 @@
+# Wind River GNU/Linux Configuration.
+# Copyright (C) 2005
+# Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING. If not, write to
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Build big-endian and little-endian support libraries.
+MULTILIB_OPTIONS = mel/meb
+# These files must be built for each multilib.
+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
diff --git a/gcc/config/mips/wrs-linux.h b/gcc/config/mips/wrs-linux.h
new file mode 100644
index 00000000000..d9126753bfc
--- /dev/null
+++ b/gcc/config/mips/wrs-linux.h
@@ -0,0 +1,28 @@
+/* Wind River GNU/Linux Configuration.
+ Copyright (C) 2005
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* Look for little-endian libraries in the "mel" subdirectory. */
+#undef SYSROOT_SUFFIX_SPEC
+#define SYSROOT_SUFFIX_SPEC \
+ "%{mel:/mel}"
+#undef SYSROOT_SUFFIX_LINK_SPEC
+#define SYSROOT_SUFFIX_LINK_SPEC \
+ "%{mel:--sysroot-suffix /mel} "
diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
index 750ba369d90..4c808663d81 100644
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -104,7 +104,7 @@
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
-#ifdef IN_LIBGCC2
+#if defined(IN_LIBGCC2) && !defined(inhibit_libc)
#include <signal.h>
/* During the 2.5 kernel series the kernel ucontext was changed, but
@@ -120,7 +120,6 @@ struct kernel_old_ucontext {
};
enum { SIGNAL_FRAMESIZE = 64 };
-#endif
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
do { \
@@ -187,3 +186,4 @@ enum { SIGNAL_FRAMESIZE = 64 };
(FS)->retaddr_column = CR0_REGNO; \
goto SUCCESS; \
} while (0)
+#endif
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 41cbda03a72..0604636e691 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -559,11 +559,11 @@ extern const char *rs6000_warn_altivec_long_switch;
#define TARGET_ALTIVEC_ABI rs6000_altivec_abi
#define TARGET_ALTIVEC_VRSAVE rs6000_altivec_vrsave
-#define TARGET_SPE_ABI 0
-#define TARGET_SPE 0
-#define TARGET_E500 0
-#define TARGET_ISEL 0
-#define TARGET_FPRS 1
+#define TARGET_SPE_ABI rs6000_spe_abi
+#define TARGET_SPE rs6000_spe
+#define TARGET_E500 (rs6000_cpu == PROCESSOR_PPC8540)
+#define TARGET_ISEL rs6000_isel
+#define TARGET_FPRS (!rs6000_float_gprs)
/* Sometimes certain combinations of command options do not make sense
on a particular target machine. You can define a macro
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a31ab18ba3c..35b5110d974 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1701,6 +1701,12 @@ init_spec (void)
obstack_grow0 (&obstack, link_spec, strlen (link_spec));
link_spec = obstack_finish (&obstack);
#endif
+#ifdef SYSROOT_SUFFIX_LINK_SPEC
+ obstack_grow (&obstack, SYSROOT_SUFFIX_LINK_SPEC,
+ sizeof (SYSROOT_SUFFIX_LINK_SPEC) - 1);
+ obstack_grow0 (&obstack, link_spec, strlen (link_spec));
+ link_spec = obstack_finish (&obstack);
+#endif
specs = sl;
}