diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-01-19 01:20:23 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2005-01-19 01:20:23 +0000 |
commit | db4cf57080844dda35463e2d62e079280f25a06d (patch) | |
tree | 6fc434422f3b3cbe86869ddbcb3b2294be6fd75a | |
parent | 6be852e59f49dede0ff039f79564d2d1923be65f (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.csl | 28 | ||||
-rw-r--r-- | gcc/config.gcc | 9 | ||||
-rw-r--r-- | gcc/config/i386/linux.h | 4 | ||||
-rw-r--r-- | gcc/config/mips/linux.h | 5 | ||||
-rw-r--r-- | gcc/config/mips/t-wrs-linux | 26 | ||||
-rw-r--r-- | gcc/config/mips/wrs-linux.h | 28 | ||||
-rw-r--r-- | gcc/config/rs6000/linux.h | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 10 | ||||
-rw-r--r-- | gcc/gcc.c | 6 |
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; } |