Commit a4967b8d by Jason Thorpe Committed by Jason Thorpe

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
parent c4f66405
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
......
......@@ -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
......
/* 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)");
# 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)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment