summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <ac131313@redhat.com>2001-08-01 19:25:18 +0000
committerAndrew Cagney <cagney@gcc.gnu.org>2001-08-01 19:25:18 +0000
commitedf1b3f3179564a0db848df3691e1b805d87ebd2 (patch)
treec68b354c893c42ae0677cea5323bc79727e4e2b6
parentbda33a6e0fda1d512e237c306c60d9978e596e24 (diff)
downloadgcc-edf1b3f3179564a0db848df3691e1b805d87ebd2.tar.gz
config.gcc: Recognize powerpc-*-netbsd*.
* config.gcc: Recognize powerpc-*-netbsd*. * doc/install.texi (Host/target specific installation notes for GCC): Mention powerpc-*-netbsd*. * config/rs6000/netbsd.h: New file. (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine. (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine. (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine. (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine. (TARGET_VERSION): Redefine. * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize mcall-netbsd as a match for mcall-sysv. (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext). (ncrti.S, ncrtn.S): New targets. ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets. * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize "netbsd' as a V4 ABI. (ASM_SPEC): Check for -mcall-netbsd. (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto. (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto. (LIB_SPEC, ENDFILE_SPEC): Ditto. (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define. (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define. (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define. (SUBTARGET_EXTRA_SPECS): Add NetBSD specs. * doc/invoke.texi (Option Summary): Add -mcall-netbsd. (RS/6000 and PowerPC Options): Mention -mcall-netbsd. From-SVN: r44552
-rw-r--r--gcc/ChangeLog34
-rw-r--r--gcc/config.gcc6
-rw-r--r--gcc/config/rs6000/netbsd.h61
-rw-r--r--gcc/config/rs6000/sysv4.h63
-rw-r--r--gcc/config/rs6000/t-ppccomm25
-rw-r--r--gcc/doc/install.texi16
-rw-r--r--gcc/doc/invoke.texi7
7 files changed, 196 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c78ff25a9a5..46b07fe18c5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,37 @@
+2001-07-11 Andrew Cagney <ac131313@redhat.com>
+
+ * config.gcc: Recognize powerpc-*-netbsd*.
+
+ * doc/install.texi (Host/target specific installation notes for
+ GCC): Mention powerpc-*-netbsd*.
+
+ * config/rs6000/netbsd.h: New file.
+ (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
+ (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
+ (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
+ (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
+ (TARGET_VERSION): Redefine.
+
+ * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
+ mcall-netbsd as a match for mcall-sysv.
+ (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
+ (ncrti.S, ncrtn.S): New targets.
+ ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
+
+ * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
+ "netbsd' as a V4 ABI.
+ (ASM_SPEC): Check for -mcall-netbsd.
+ (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
+ (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
+ (LIB_SPEC, ENDFILE_SPEC): Ditto.
+ (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
+ (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
+ (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
+ (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
+
+ * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
+ (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
+
2001-08-01 Mark Kettenis <kettenis@gnu.org>
* unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
diff --git a/gcc/config.gcc b/gcc/config.gcc
index ae88835b77e..7f694894e0e 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2602,6 +2602,12 @@ powerpc-*-sysv*)
extra_headers=ppc-asm.h
tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
;;
+powerpc-*-netbsd*)
+ xm_defines=POSIX
+ tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/netbsd.h"
+ tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
+ extra_headers=ppc-asm.h
+ ;;
powerpc-*-chorusos*)
xm_defines=POSIX
tm_file="${tm_file} svr4.h rs6000/sysv4.h chorus.h"
diff --git a/gcc/config/rs6000/netbsd.h b/gcc/config/rs6000/netbsd.h
new file mode 100644
index 00000000000..9978db50231
--- /dev/null
+++ b/gcc/config/rs6000/netbsd.h
@@ -0,0 +1,61 @@
+/* Definitions of target machine for GNU compiler,
+ for PowerPC NetBSD systems.
+ Copyright 2001 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC 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.
+
+GNU CC 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 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 STANDARD_STARTFILE_PREFIX
+#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
+
+/* 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 LINK_SHLIB_SPEC
+#define LINK_SHLIB_SPEC "\
+%{shared:-shared} \
+%{!shared: %{static:-dc -dp -static}} \
+%{!shared: %{!static:-dc -dp}} \
+"
+
+/* Override the defaults. */
+#undef LIB_DEFAULT_SPEC
+#define LIB_DEFAULT_SPEC "%(lib_netbsd)"
+
+#undef STARTFILE_DEFAULT_SPEC
+#define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)"
+
+#undef ENDFILE_DEFAULT_SPEC
+#define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)"
+
+#undef LINK_START_DEFAULT_SPEC
+#define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)"
+
+#undef LINK_OS_DEFAULT_SPEC
+#define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)"
+
+#undef CPP_OS_DEFAULT_SPEC
+#define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)"
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)");
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index c8930c7e103..9871d20c1f6 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -275,6 +275,8 @@ do { \
rs6000_current_abi = ABI_AIX; \
else if (!strcmp (rs6000_abi_name, "linux")) \
rs6000_current_abi = ABI_V4; \
+ else if (!strcmp (rs6000_abi_name, "netbsd")) \
+ rs6000_current_abi = ABI_V4; \
else if (!strcmp (rs6000_abi_name, "solaris")) \
rs6000_current_abi = ABI_SOLARIS; \
else if (!strcmp (rs6000_abi_name, "i960-old")) \
@@ -1113,7 +1115,8 @@ do { \
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-solaris: -mlittle -msolaris} \
%{mcall-i960-old: -mlittle} \
- %{mcall-linux: -mbig} }}}}"
+ %{mcall-linux: -mbig} \
+ %{mcall-netbsd: -mbig} }}}}"
#define CC1_ENDIAN_BIG_SPEC ""
@@ -1135,9 +1138,10 @@ do { \
%{mcall-solaris: -mlittle %(cc1_endian_little) } \
%{mcall-i960-old: -mlittle %(cc1_endian_little) } \
%{mcall-linux: -mbig %(cc1_endian_big) } \
- %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-i960-old: %{!mcall-linux: \
+ %{mcall-netbsd: -mbig %(cc1_endian_big) } \
+ %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-i960-old: %{!mcall-linux: %{!mcall-netbsd: \
%(cc1_endian_default) \
- }}}} \
+ }}}}} \
}}}} \
%{mcall-solaris: -mregnames } \
%{mno-sdata: -msdata=none } \
@@ -1146,7 +1150,8 @@ do { \
%{mrelocatable: -meabi } \
%{mcall-solaris: -mno-eabi } \
%{mcall-i960-old: -meabi } \
- %{mcall-linux: -mno-eabi }}} \
+ %{mcall-linux: -mno-eabi } \
+ %{mcall-netbsd: -mno-eabi }}} \
%{msdata: -msdata=default} \
%{mno-sdata: -msdata=none} \
%{profile: -p}"
@@ -1175,8 +1180,9 @@ do { \
%{mmvme: %(link_start_mvme) } \
%{msim: %(link_start_sim) } \
%{mcall-linux: %(link_start_linux) } \
+%{mcall-netbsd: %(link_start_netbsd) } \
%{mcall-solaris: %(link_start_solaris) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_start_default) }}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_start_default) }}}}}}}"
#define LINK_START_DEFAULT_SPEC ""
@@ -1230,8 +1236,9 @@ do { \
%{mmvme: %(link_os_mvme) } \
%{msim: %(link_os_sim) } \
%{mcall-linux: %(link_os_linux) } \
+%{mcall-netbsd: %(link_os_netbsd) } \
%{mcall-solaris: %(link_os_solaris) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_os_default) }}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_os_default) }}}}}}}"
#define LINK_OS_DEFAULT_SPEC ""
@@ -1278,9 +1285,10 @@ do { \
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-solaris: %(cpp_endian_solaris) } \
%{mcall-linux: %(cpp_endian_big) } \
+ %{mcall-netbsd: %(cpp_endian_big) } \
%{mcall-i960-old: %(cpp_endian_little) } \
%{mcall-aixdesc: %(cpp_endian_big) } \
- %{!mcall-solaris: %{!mcall-linux: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}"
+ %{!mcall-solaris: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}"
#define CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)"
@@ -1292,8 +1300,9 @@ do { \
%{mmvme: %(cpp_os_mvme) } \
%{msim: %(cpp_os_sim) } \
%{mcall-linux: %(cpp_os_linux) } \
+%{mcall-netbsd: %(cpp_os_netbsd) } \
%{mcall-solaris: %(cpp_os_solaris) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(cpp_os_default) }}}}}}}"
#define CPP_OS_DEFAULT_SPEC ""
@@ -1305,8 +1314,9 @@ do { \
%{mmvme: %(startfile_mvme) } \
%{msim: %(startfile_sim) } \
%{mcall-linux: %(startfile_linux) } \
+%{mcall-netbsd: %(startfile_netbsd) } \
%{mcall-solaris: %(startfile_solaris) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(startfile_default) }}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(startfile_default) }}}}}}}"
#define STARTFILE_DEFAULT_SPEC ""
@@ -1318,8 +1328,9 @@ do { \
%{mmvme: %(lib_mvme) } \
%{msim: %(lib_sim) } \
%{mcall-linux: %(lib_linux) } \
+%{mcall-netbsd: %(lib_netbsd) } \
%{mcall-solaris: %(lib_solaris) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(lib_default) }}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(lib_default) }}}}}}}"
#define LIB_DEFAULT_SPEC ""
@@ -1331,9 +1342,10 @@ do { \
%{mmvme: %(endfile_mvme)} \
%{msim: %(endfile_sim)} \
%{mcall-linux: %(endfile_linux) } \
+%{mcall-netbsd: %(endfile_netbsd) } \
%{mcall-solaris: %(endfile_solaris)} \
%{mvxworks: %(endfile_vxworks) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}}"
#define ENDFILE_DEFAULT_SPEC ""
@@ -1429,6 +1441,29 @@ do { \
-Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
#endif
+/* NetBSD support. */
+#define LIB_NETBSD_SPEC "\
+%{profile:-lgmon -lc_p} %{!profile:-lc}"
+
+#define STARTFILE_NETBSD_SPEC "\
+ncrti.o%s crt0.o%s \
+%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+#define ENDFILE_NETBSD_SPEC "\
+%{!shared:crtend.o%s} %{shared:crtendS.o%s} \
+ncrtn.o%s"
+
+#define LINK_START_NETBSD_SPEC "\
+"
+
+#define LINK_OS_NETBSD_SPEC "\
+%{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
+
+#define CPP_OS_NETBSD_SPEC "\
+-D__powerpc__ -D__NetBSD__ -D__ELF__ -D__KPRINTF_ATTRIBUTE__"
+
/* Solaris support. */
/* For Solaris, Gcc automatically adds in one of the files
/usr/ccs/lib/values-Xc.o, /usr/ccs/lib/values-Xa.o, or
@@ -1524,6 +1559,7 @@ do { \
{ "lib_mvme", LIB_MVME_SPEC }, \
{ "lib_sim", LIB_SIM_SPEC }, \
{ "lib_linux", LIB_LINUX_SPEC }, \
+ { "lib_netbsd", LIB_NETBSD_SPEC }, \
{ "lib_solaris", LIB_SOLARIS_SPEC }, \
{ "lib_vxworks", LIB_VXWORKS_SPEC }, \
{ "lib_default", LIB_DEFAULT_SPEC }, \
@@ -1532,6 +1568,7 @@ do { \
{ "startfile_mvme", STARTFILE_MVME_SPEC }, \
{ "startfile_sim", STARTFILE_SIM_SPEC }, \
{ "startfile_linux", STARTFILE_LINUX_SPEC }, \
+ { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \
{ "startfile_solaris", STARTFILE_SOLARIS_SPEC }, \
{ "startfile_vxworks", STARTFILE_VXWORKS_SPEC }, \
{ "startfile_default", STARTFILE_DEFAULT_SPEC }, \
@@ -1540,6 +1577,7 @@ do { \
{ "endfile_mvme", ENDFILE_MVME_SPEC }, \
{ "endfile_sim", ENDFILE_SIM_SPEC }, \
{ "endfile_linux", ENDFILE_LINUX_SPEC }, \
+ { "endfile_netbsd", ENDFILE_NETBSD_SPEC }, \
{ "endfile_solaris", ENDFILE_SOLARIS_SPEC }, \
{ "endfile_vxworks", ENDFILE_VXWORKS_SPEC }, \
{ "endfile_default", ENDFILE_DEFAULT_SPEC }, \
@@ -1552,6 +1590,7 @@ do { \
{ "link_start_mvme", LINK_START_MVME_SPEC }, \
{ "link_start_sim", LINK_START_SIM_SPEC }, \
{ "link_start_linux", LINK_START_LINUX_SPEC }, \
+ { "link_start_netbsd", LINK_START_NETBSD_SPEC }, \
{ "link_start_solaris", LINK_START_SOLARIS_SPEC }, \
{ "link_start_vxworks", LINK_START_VXWORKS_SPEC }, \
{ "link_start_default", LINK_START_DEFAULT_SPEC }, \
@@ -1561,6 +1600,7 @@ do { \
{ "link_os_mvme", LINK_OS_MVME_SPEC }, \
{ "link_os_sim", LINK_OS_SIM_SPEC }, \
{ "link_os_linux", LINK_OS_LINUX_SPEC }, \
+ { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
{ "link_os_solaris", LINK_OS_SOLARIS_SPEC }, \
{ "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \
@@ -1577,6 +1617,7 @@ do { \
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
{ "cpp_os_sim", CPP_OS_SIM_SPEC }, \
{ "cpp_os_linux", CPP_OS_LINUX_SPEC }, \
+ { "cpp_os_netbsd", CPP_OS_NETBSD_SPEC }, \
{ "cpp_os_solaris", CPP_OS_SOLARIS_SPEC }, \
{ "cpp_os_vxworks", CPP_OS_VXWORKS_SPEC }, \
{ "cpp_os_default", CPP_OS_DEFAULT_SPEC },
diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm
index 73e0ff7e081..8b5e8cba142 100644
--- a/gcc/config/rs6000/t-ppccomm
+++ b/gcc/config/rs6000/t-ppccomm
@@ -33,16 +33,19 @@ MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \
msoft-float=mcpu?823 \
msoft-float=mcpu?860
MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian
-MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux
+MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
crtbeginS$(objext) crtendS$(objext) \
- ecrti$(objext) ecrtn$(objext) scrt0$(objext) scrti$(objext) scrtn$(objext)
+ ecrti$(objext) ecrtn$(objext) \
+ scrt0$(objext) scrti$(objext) scrtn$(objext) \
+ ncrti$(objext) ncrtn$(objext)
-# We build {e,s}crti.o, {e,s}crtn.o, and scrt0.o which serve to add begin and
-# end labels to all of the special sections used when we link using gcc.
+# We build {e,s}crti.o, {e,s}crtn.o, and {s,n}crt0.o which serve to
+# add begin and end labels to all of the special sections used when we
+# link using gcc.
# Assemble startup files.
ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm
@@ -51,6 +54,14 @@ ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm
ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm
cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S
+ncrti.S: $(srcdir)/config/rs6000/sol-ci.asm
+ sed -e 's/__init/_init/' -e 's/__fini/_fini/' \
+ $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S
+
+ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
+ sed -e 's/__init/_init/' -e 's/__fini/_fini/' \
+ $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S
+
scrti.S: $(srcdir)/config/rs6000/sol-ci.asm
cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S
@@ -67,6 +78,12 @@ $(T)ecrti$(objext): ecrti.S
$(T)ecrtn$(objext): ecrtn.S
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrtn.S -o $(T)ecrtn$(objext)
+$(T)ncrti$(objext): ncrti.S
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrti.S -o $(T)ncrti$(objext)
+
+$(T)ncrtn$(objext): ncrtn.S
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext)
+
$(T)scrti$(objext): scrti.S
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrti.S -o $(T)scrti$(objext)
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 1e61127af31..892ae0f7a10 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1359,6 +1359,8 @@ GNU Compiler Collection on your machine.
@item
@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
@item
+@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
+@item
@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
@item
@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
@@ -2869,6 +2871,15 @@ if you initially built it with gcc-2.7.2.x.
</p>
<hr>
@end html
+@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
+PowerPC system in big endian mode running NetBSD@. To build the
+documentation you will need Texinfo version 4.0 (NetBSD 1.5.1 included
+Texinfo version 3.12).
+
+@html
+</p>
+<hr>
+@end html
@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix
Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as
the default.
@@ -2972,6 +2983,11 @@ the @command{pkginfo} command. To add an optional package, use the
@command{pkgadd} command. For further details, see the Solaris
documentation.
+For Solaris 2.0 and 2.1, GCC needs six packages: @samp{SUNWarc},
+@samp{SUNWbtool}, @samp{SUNWesu}, @samp{SUNWhea}, @samp{SUNWlibm}, and
+@samp{SUNWtoo}.
+
+=======
On some versions of Solaris, trying to use the linker and other tools in
@file{/usr/ucb} to install GCC has been observed to cause trouble.
For example, the linker may hang indefinitely. The fix is to remove
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 4ac18346b69..d51e20105fb 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -435,7 +435,7 @@ in the following sections.
-mstrict-align -mno-strict-align -mrelocatable @gol
-mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol
-mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol
--mcall-aix -mcall-sysv -mprototype -mno-prototype @gol
+-mcall-aix -mcall-sysv -mcall-netbsd -mprototype -mno-prototype @gol
-msim -mmvme -mads -myellowknife -memb -msdata @gol
-msdata=@var{opt} -mvxworks -G @var{num}}
@@ -6853,6 +6853,11 @@ operating system.
On System V.4 and embedded PowerPC systems compile code for the
Linux-based GNU system.
+@item -mcall-netbsd
+@opindex mcall-netbsd
+On System V.4 and embedded PowerPC systems compile code for the
+NetBSD operating system.
+
@item -mprototype
@itemx -mno-prototype
@opindex mprototype