diff options
author | Jason Thorpe <thorpej@wasabisystems.com> | 2002-11-26 00:05:07 +0000 |
---|---|---|
committer | Jason Thorpe <thorpej@gcc.gnu.org> | 2002-11-26 00:05:07 +0000 |
commit | a4967b8db12d7f2d9b0d80830507f806c4c36e5b (patch) | |
tree | 66344fe13c49f92ccfb74c0b6a88293f1092c73d /gcc | |
parent | c4f6640537ff392ad466a83796e68fb79b512bee (diff) | |
download | gcc-a4967b8db12d7f2d9b0d80830507f806c4c36e5b.zip gcc-a4967b8db12d7f2d9b0d80830507f806c4c36e5b.tar.gz gcc-a4967b8db12d7f2d9b0d80830507f806c4c36e5b.tar.bz2 |
config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with "netbsd.h netbsd-elf.h" in tm_file.
* config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with
"netbsd.h netbsd-elf.h" in tm_file. Set tmake_file to
"${tmake_file} rs6000/t-netbsd".
* config/rs6000/netbsd.h: Rewrite.
* config/rs6000/t-netbsd: New file.
From-SVN: r59479
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config.gcc | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/netbsd.h | 77 | ||||
-rw-r--r-- | gcc/config/rs6000/t-netbsd | 42 |
4 files changed, 94 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ed24bbd..c0eea41 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-11-25 Jason Thorpe <thorpej@wasabisystems.com> + + * config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with + "netbsd.h netbsd-elf.h" in tm_file. Set tmake_file to + "${tmake_file} rs6000/t-netbsd". + * config/rs6000/netbsd.h: Rewrite. + * config/rs6000/t-netbsd: New file. + 2002-11-25 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300.md (an anonymous pattern): Relax the diff --git a/gcc/config.gcc b/gcc/config.gcc index 902f0a2..0fe9fa7 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2001,8 +2001,8 @@ powerpc-*-sysv*) tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" ;; powerpc-*-netbsd*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" - tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" + tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" + tmake_file="${tmake_file} rs6000/t-netbsd" ;; powerpc-*-chorusos*) xm_defines=POSIX diff --git a/gcc/config/rs6000/netbsd.h b/gcc/config/rs6000/netbsd.h index d41e576..6791a4d 100644 --- a/gcc/config/rs6000/netbsd.h +++ b/gcc/config/rs6000/netbsd.h @@ -1,6 +1,7 @@ /* Definitions of target machine for GNU compiler, for PowerPC NetBSD systems. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. + Contributed by Wasabi Systems, Inc. This file is part of GNU CC. @@ -19,48 +20,54 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Under NetBSD, the normal location of the various *crt*.o files is - the /usr/lib directory [from config/netbsd.h]. */ +#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */ +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + NETBSD_OS_CPP_BUILTINS_ELF(); \ + builtin_define ("__powerpc__"); \ + builtin_assert ("cpu=powerpc"); \ + builtin_assert ("machine=powerpc"); \ + } \ + while (0) -#undef STANDARD_STARTFILE_PREFIX -#define STANDARD_STARTFILE_PREFIX "/usr/lib/" +/* Make GCC agree with <machine/ansi.h>. */ -/* FIXME: Should this macro be treated the same as for the other - spec's? */ -/* NOTE: -dc and -dp are equivalent yet NetBSD's CC passes both both! - NetBSD's CC also passes -O1 but we can skip that. NetBSD explictly - sets ``-e _start'', since LD knows this, skip it. */ +#undef SIZE_TYPE +#define SIZE_TYPE "unsigned int" -#undef LINK_SHLIB_SPEC -#define LINK_SHLIB_SPEC "\ -%{shared:-shared} \ -%{!shared: %{static:-dc -dp -static}} \ -%{!shared: %{!static:-dc -dp}} \ -" +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "int" -/* Override the defaults. */ -#undef LIB_DEFAULT_SPEC -#define LIB_DEFAULT_SPEC "%(lib_netbsd)" +/* Undo the spec mess from sysv4.h, and just define the specs + the way NetBSD systems actually expect. */ -#undef STARTFILE_DEFAULT_SPEC -#define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)" +#undef CPP_SPEC +#define CPP_SPEC NETBSD_CPP_SPEC -#undef ENDFILE_DEFAULT_SPEC -#define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)" +#undef LINK_SPEC +#define LINK_SPEC \ + "%{!msdata=none:%{G*}} %{msdata=none:-G0} \ + %(netbsd_link_spec)" -#undef LINK_START_DEFAULT_SPEC -#define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)" +#define NETBSD_ENTRY_POINT "_start" -#undef LINK_OS_DEFAULT_SPEC -#define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)" +#undef STARTFILE_SPEC +#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC -#undef CPP_OS_DEFAULT_SPEC -#define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)" +#undef ENDFILE_SPEC +#define ENDFILE_SPEC \ + "crtsavres%O%s %(netbsd_endfile_spec)" -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)"); +#undef LIB_SPEC +#define LIB_SPEC NETBSD_LIB_SPEC + +#undef SUBTARGET_EXTRA_SPECS +#define SUBTARGET_EXTRA_SPECS \ + { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \ + { "netbsd_entry_point", NETBSD_ENTRY_POINT }, \ + { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC }, -/* Use STABS debugging information by default. DWARF2 makes a mess of - the 1.5.2 linker. */ -#undef PREFERRED_DEBUGGING_TYPE -#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (NetBSD/powerpc ELF)"); diff --git a/gcc/config/rs6000/t-netbsd b/gcc/config/rs6000/t-netbsd new file mode 100644 index 0000000..0cb08e7 --- /dev/null +++ b/gcc/config/rs6000/t-netbsd @@ -0,0 +1,42 @@ +# Support for NetBSD PowerPC ELF targets (SVR4 ABI). + +LIB2FUNCS_EXTRA = tramp.S + +tramp.S: $(srcdir)/config/rs6000/tramp.asm + cat $(srcdir)/config/rs6000/tramp.asm > tramp.S + +crtsavres.S: $(srcdir)/config/rs6000/crtsavres.asm + cat $(srcdir)/config/rs6000/crtsavres.asm >crtsavres.S + +EXTRA_PARTS += crtsavres$(objext) + +# It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata. +CRTSTUFF_T_CFLAGS += -msdata=none +CRTSTUFF_T_CFLAGS_S += -msdata=none + +# Switch synonyms +MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \ + msoft-float=mcpu?403 \ + msoft-float=mcpu?405 \ + msoft-float=mcpu?ec603e \ + msoft-float=mcpu?801 \ + msoft-float=mcpu?821 \ + msoft-float=mcpu?823 \ + msoft-float=mcpu?860 + +MULTILIB_OPTIONS = msoft-float +MULTILIB_DIRNAMES = soft-float +MULTILIB_EXTRA_OPTS = fPIC mstrict-align +MULTILIB_EXCEPTIONS = + +MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} + +LIBGCC = stmp-multilib +INSTALL_LIBGCC = install-multilib +EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \ + crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext) \ + crtsavres$(objext) + +$(T)crtsavres$(objext): crtsavres.S + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ + -c crtsavres.S -o $(T)crtsavres$(objext) |