head	1.8;
access;
symbols
	RELEASE_7_1_0:1.7
	RELEASE_6_4_0:1.7
	RELEASE_5_EOL:1.7
	RELEASE_7_0_0:1.7
	RELEASE_6_3_0:1.7
	PRE_XORG_7:1.7
	RELEASE_4_EOL:1.7
	RELEASE_6_2_0:1.7
	RELEASE_6_1_0:1.7
	RELEASE_5_5_0:1.7
	RELEASE_6_0_0:1.7
	RELEASE_5_4_0:1.7
	RELEASE_4_11_0:1.7
	RELEASE_5_3_0:1.7
	RELEASE_4_10_0:1.7
	RELEASE_5_2_1:1.7
	RELEASE_5_2_0:1.7
	RELEASE_4_9_0:1.7
	RELEASE_5_1_0:1.7
	RELEASE_4_8_0:1.6
	RELEASE_5_0_0:1.6
	RELEASE_4_7_0:1.6
	RELEASE_4_6_2:1.6
	RELEASE_4_6_1:1.6
	RELEASE_4_6_0:1.6
	RELEASE_5_0_DP1:1.6
	RELEASE_4_5_0:1.6
	RELEASE_4_4_0:1.6
	RELEASE_4_3_0:1.6
	RELEASE_4_2_0:1.6
	RELEASE_4_1_1:1.6
	RELEASE_4_1_0:1.6
	RELEASE_3_5_0:1.6
	RELEASE_4_0_0:1.6
	RELEASE_3_4_0:1.6
	RELEASE_3_3_0:1.6
	RELEASE_3_2_0:1.6
	RELEASE_3_1_0:1.5
	RELEASE_2_2_8:1.3
	RELEASE_3_0_0:1.3
	RELEASE_2_2_7:1.3
	gcc_2_8_1:1.2
	RELEASE_2_2_6:1.1;
locks; strict;
comment	@# @;


1.8
date	2009.01.24.12.17.08;	author gerald;	state dead;
branches;
next	1.7;

1.7
date	2003.04.28.15.37.22;	author obrien;	state Exp;
branches;
next	1.6;

1.6
date	99.03.22.02.02.13;	author obrien;	state Exp;
branches;
next	1.5;

1.5
date	99.02.09.18.25.43;	author obrien;	state Exp;
branches;
next	1.4;

1.4
date	99.01.12.10.15.14;	author obrien;	state Exp;
branches;
next	1.3;

1.3
date	98.06.30.21.10.27;	author jdp;	state Exp;
branches;
next	1.2;

1.2
date	98.04.12.13.29.02;	author obrien;	state Exp;
branches;
next	1.1;

1.1
date	98.03.11.11.49.14;	author obrien;	state Exp;
branches;
next	;


desc
@@


1.8
log
@Remove lang/gcc28 (GCC 2.8) which has been DEPRECATED for more than
3 years and does not build anywhere.

No objections:	mjl@@luckie.org.nz (maintainer), pav
@
text
@--- config/i386/freebsd.h.orig	Fri Dec  5 04:15:34 1997
+++ config/i386/freebsd.h	Sun Apr 27 15:12:42 2003
@@@@ -26,8 +26,18 @@@@
 
 /* The svr4 ABI for the i386 says that records and unions are returned
    in memory.  */
+/* On FreeBSD, we do not. */
 #undef DEFAULT_PCC_STRUCT_RETURN
-#define DEFAULT_PCC_STRUCT_RETURN 1
+#define DEFAULT_PCC_STRUCT_RETURN 0
+
+/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
+   libraries compiled with the native cc, so undef it. */
+#undef NO_DOLLAR_IN_LABEL
+
+/* FreeBSD using ELF does not support DWARF2 unwinding mechanisms.
+   Thus, need the equivalent of "-fsjlj-exceptions" (use setjmp/longjmp
+   for exceptions).  */
+#define DWARF2_UNWIND_INFO 0
 
 /* This is how to output an element of a case-vector that is relative.
    This is only used for PIC code.  See comments by the `casesi' insn in
@@@@ -140,7 +150,7 @@@@
 #define WCHAR_TYPE_SIZE BITS_PER_WORD
     
 #undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__=2 -Asystem(FreeBSD)"
+#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__=3 -Asystem(FreeBSD) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
 
 #undef CPP_SPEC
 #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
@@@@ -176,7 +186,7 @@@@
    done.  */
 
 #undef	LINK_SPEC
-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+#define LINK_SPEC "%{shared:-shared} \
   %{!shared: \
     %{!ibcs: \
       %{!static: \
@


1.7
log
@Simpler version of the "make this work on 5-CURRENT again" fix.
In this version we simply use the default emulation rather than explicitly
setting it [wrong].
@
text
@@


1.6
log
@Make -fsjlj-exceptions the default (ie, no DWARF2_UNWIND_INFO) for the ELF
case too.

Submitted by:	terry (Thanks to Amancio for identification)
@
text
@d2 1
a2 1
+++ config/i386/freebsd.h	Sun Mar 21 17:59:06 1999
d32 9
@


1.5
log
@GNUHOST is now "i386-unknown-freebsd3" for ELF machines and
"i386-unknown-freebsdaout3" for a.out machines.
@
text
@d2 2
a3 2
+++ config/i386/freebsd.h	Mon Feb  8 12:03:09 1999
@@@@ -26,8 +26,13 @@@@
d15 5
d23 1
a23 1
@@@@ -140,7 +145,7 @@@@
@


1.4
log
@DEFAULT_PCC_STRUCT_RETURN should be "0" for the ELF case too.
@
text
@d1 3
a3 3
--- config/i386/freebsd-elf.h.orig	Fri Dec  5 04:15:34 1997
+++ config/i386/freebsd-elf.h	Tue Jan 12 02:13:15 1999
@@@@ -26,8 +26,9 @@@@
d11 4
d18 1
a18 1
@@@@ -140,7 +141,7 @@@@
@


1.3
log
@Fix this port so that it can find crt0.o in /usr/lib/aout on recent
-current systems.

Fix the definition of the preprocessor symbol __FreeBSD__.  It had
been defined as "2=3".

Implement support for weak symbols.  This solves the "___error"
undefined problem on -current systems.

Default to -fsjlj-exceptions even for C programs.  This is needed
because a few modules in libgcc are built with -fexceptions turned
on, and the default style of exception support causes croakage.

I tried a make buildworld on a recent -current system by adding the
following to /etc/make.conf:

CC=/usr/local/bin/gcc28 -B/usr/local/lib/gcc-lib/i386-unknown-freebsd3.0/2.8.1/
CXX=/usr/local/bin/g++28 -B/usr/local/lib/gcc-lib/i386-unknown-freebsd3.0/2.8.1/

It got pretty far along before dying.  The death occurred when building
our old native libstdc++, almost certainly because of header file
incompatibilities.

Another obstacle for make world is that this port doesn't currently
build a PIC version of libgcc (libgcc_pic.a).
@
text
@d2 13
a14 2
+++ config/i386/freebsd-elf.h	Sun Apr 12 06:23:12 1998
@@@@ -140,7 +140,7 @@@@
d19 1
a19 1
+#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__=2 -Asystem(FreeBSD) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
@


1.2
log
@Sync-up CPP predefines w/our stock compiler and EGCS.
1. we are not 386BSD
2. ELF shouldn't need "-fsjlj-exceptions"
@
text
@d8 1
a8 1
+#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(FreeBSD) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
@


1.1
log
@Define __FreeBSD__ to be the major version (rather than empty).

Add -fsjlj-exceptions as the default.
Requested by:	John Fiber
@
text
@d2 2
a3 2
+++ config/i386/freebsd-elf.h	Wed Mar 11 03:05:09 1998
@@@@ -140,10 +140,20 @@@@
d8 1
a8 1
+#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__ -Asystem(FreeBSD)"
a11 13
+
+
+/* need "-fsjlj-exceptions" (use setjmp/longjmp for exceptions) the default.
+   The standard exception implementation reliably
+   dumps core under FreeBSD.  Users can put "-fno-sjlj-exceptions" on
+   the command line if they really want to override the new default. */
+#ifdef CC1PLUS_SPEC
+#error "CC1PLUS_SPEC needs ``-fsjlj-exceptions'', but is already defined."
+#endif
+#define CC1PLUS_SPEC "-fsjlj-exceptions"
 
 #undef	LIB_SPEC
 #if 1
@
