freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
authorMarc Espie <espie@cvs.openbsd.org>
Thu, 3 Jun 1999 23:19:02 +0000 (23:19 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 3 Jun 1999 23:19:02 +0000 (17:19 -0600)
        * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
        (STARTFILE_SPEC):  Define, override the svr4.h version.
        (ENDFILE_SPEC):  Likewise.

From-SVN: r27340

gcc/ChangeLog
gcc/config/i386/freebsd-elf.h

index 2bc8284162b19f2b9051addfab605c6b5c8e8f9e..97e0c9d204a0258287a66d3160b02b5682fb1dcf 100644 (file)
@@ -1,3 +1,9 @@
+Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
+
+       * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
+       (STARTFILE_SPEC):  Define, override the svr4.h version.
+       (ENDFILE_SPEC):  Likewise.
+
 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
 
        * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
index 5668d3ef0ca1a9044c8990849fb174d96af23059..c74ae992efc0278688df05f56ac12f42cf35a7f5 100644 (file)
@@ -180,12 +180,37 @@ Boston, MA 02111-1307, USA.  */
    -z* options (for the linker) (comming from svr4).
    We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
 
+#undef SWITCH_TAKES_ARG
 #define SWITCH_TAKES_ARG(CHAR) \
   (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
    || (CHAR) == 'h' \
    || (CHAR) == 'z' \
    || (CHAR) == 'R')
 
+/* Provide a STARTFILE_SPEC appropriate for FreeBSD.  Here we add
+   the magical crtbegin.o file (see crtstuff.c) which provides part 
+       of the support for getting C++ file-scope static object constructed 
+       before entering `main'. */
+   
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+  "%{!shared: \
+     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
+                      %{!p:%{profile:gcrt1.o%s} \
+                        %{!profile:crt1.o%s}}}} \
+   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+/* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
+   the magical crtend.o file (see crtstuff.c) which provides part of 
+       the support for getting C++ file-scope static object constructed 
+       before entering `main', followed by a normal "finalizer" file, 
+       `crtn.o'.  */
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC \
+  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+
+
 #undef LIB_SPEC
 #if 1
 /* We no longer link with libc_p.a or libg.a by default. If you