1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00
Commit Graph

290 Commits

Author SHA1 Message Date
David E. O'Brien
3a81009a05 Add Alpha and proper x86 support to GCC 2.95.2.
[ Functionally speaking, this covers revs 1.{2,3} ]
1999-11-01 18:53:45 +00:00
David E. O'Brien
60766cff6e Merge our -fformat-extensions and printf0() into GCC 2.95.2. 1999-11-01 18:41:09 +00:00
David E. O'Brien
d14ec649a5 Virgin import of the GCC 2.95.2 compilers 1999-11-01 08:28:22 +00:00
David E. O'Brien
79fe5b7c35 This commit was generated by cvs2svn to compensate for changes in r52750,
which included commits to RCS files with non-trunk default branches.
1999-11-01 08:28:22 +00:00
David E. O'Brien
77ba2fa135 Use the stock file for now. 1999-10-27 09:45:47 +00:00
David E. O'Brien
7870ac45b1 s brings rev 1.2 (document printf0()) into GCC 2.95.1. 1999-10-27 09:41:10 +00:00
David E. O'Brien
022c4aa3c3 This brings rev 1.2 (reality check and document profiling extensions)
into GCC 2.95.1.
1999-10-27 09:37:24 +00:00
David E. O'Brien
038686ab78 This adds rev 1.2 (-fformat-extensions) to GCC 2.95.1. 1999-10-27 09:31:52 +00:00
David E. O'Brien
b59570183a Use the stock file. 1999-10-27 09:23:37 +00:00
David E. O'Brien
aa3dc39c46 Use the stock file now. 1999-10-26 09:17:58 +00:00
David E. O'Brien
844fd17cbc Merge the FREEBSD_NATIVE and ELF/a.out support into GCC 2.95.1. 1999-10-26 09:13:47 +00:00
David E. O'Brien
d135dab220 Fix conflicts. 1999-10-26 08:57:00 +00:00
David E. O'Brien
b2d5bd75c2 Merge rev 1.2 (a.out support) into GCC 2.95.1. 1999-10-26 08:53:03 +00:00
David E. O'Brien
cd6526700d Merge our changes - this brings rev 1.2 (fix stabs ordering for a.out)
into GCC 2.95.1.
1999-10-26 08:47:58 +00:00
David E. O'Brien
c4fdf639ae Merge our changes - this brings rev 1.2 (-fformat-extensions)
into GCC 2.95.1.
1999-10-26 08:45:23 +00:00
David E. O'Brien
d9996e3a9a Merge our changes - this brings revs 1.{2,3} minus rev 1.4 into GCC 2.95.1. 1999-10-26 08:41:38 +00:00
David E. O'Brien
4c47b7c8d4 Fix conflicts. (dist src now contains our rev 1.1->1.2 changes) 1999-10-26 08:38:21 +00:00
David E. O'Brien
fd61cf3070 Add Alpha and proper x86 support to GCC 2.95.1.
[ Functionally speaking, this covers revs 1.{2,3} ]
1999-10-16 08:44:43 +00:00
David E. O'Brien
c6975f0768 Merge rev 1.2 (FreeBSD native support -- do not search the multitude of
extended include file paths that do not exist) into GCC 2.95.1.
1999-10-16 08:39:06 +00:00
David E. O'Brien
75b9cba00e Go back to stock file -- our mods are OBE. 1999-10-16 08:34:33 +00:00
David E. O'Brien
a659e1e661 Merge our -fformat-extensions and printf0() into GCC 2.95.1. 1999-10-16 08:28:26 +00:00
David E. O'Brien
c3c9b2d1d1 Stick with the stock version of this. 1999-10-16 08:21:54 +00:00
David E. O'Brien
0efb1a6924 Use this stock version of this. 1999-10-16 08:13:35 +00:00
David E. O'Brien
3fa6aa223c Use the stock file here. I cannot determine if our previous (rev 1.2)
changes for ObjC are still appropriate.
1999-10-16 08:12:02 +00:00
David E. O'Brien
098b3e11ec Use stock file here. 1999-10-16 08:10:36 +00:00
David E. O'Brien
e5dfdb494d Bring our profiling tweaks from rev 1.2 into GCC 2.95.1. 1999-10-16 08:08:21 +00:00
David E. O'Brien
bceb635162 Merge BDE's printf format error fixes into GCC 2.95.1. 1999-10-16 07:57:37 +00:00
David E. O'Brien
5270ed0d16 Use the stock file here. 1999-10-16 07:56:14 +00:00
David E. O'Brien
923ab67efc Use the stock GCC 2.95.1 file here. Our previous (rev 1.2) changes are OBE. 1999-10-16 07:53:19 +00:00
David E. O'Brien
eead50688d Merge rev 1.2 into GCC 2.95.1. 1999-10-16 07:35:28 +00:00
David E. O'Brien
b39cebb8f3 Fix conflicts. 1999-10-16 07:12:34 +00:00
David E. O'Brien
f32ac804b1 Virgin import of the GCC 2.95.1 compilers 1999-10-16 07:10:09 +00:00
David E. O'Brien
05da15fdb4 This commit was generated by cvs2svn to compensate for changes in r52287,
which included commits to RCS files with non-trunk default branches.
1999-10-16 07:10:09 +00:00
David E. O'Brien
f2c57ef828 Virgin import of the GCC 2.95.1 compilers 1999-10-16 06:09:09 +00:00
David E. O'Brien
3bae6d51b0 This commit was generated by cvs2svn to compensate for changes in r52284,
which included commits to RCS files with non-trunk default branches.
1999-10-16 06:09:09 +00:00
David E. O'Brien
f269f9df8d Grrrrr. Put the $FreeBSD$ in a Bad Place. 1999-10-15 21:49:40 +00:00
David E. O'Brien
b7da6f22c3 Register the fact we want expand_main_function() to invoke __main. 1999-10-15 20:56:19 +00:00
David E. O'Brien
46e3c32617 Merge rev 1.2 (a.out support) into EGCS 1.1.2. 1999-10-15 20:48:35 +00:00
David E. O'Brien
68883b2d58 Return these files back to their stock versions.
These files aren't used in either building GCC or with a GCC installation
in the "FreeBSD native" case.
1999-10-13 15:55:31 +00:00
David E. O'Brien
b50366c383 Virgin import of EGCS 1.1.2 1999-10-12 00:47:56 +00:00
David E. O'Brien
f04184a54b This commit was generated by cvs2svn to compensate for changes in r52143,
which included commits to RCS files with non-trunk default branches.
1999-10-12 00:47:56 +00:00
David E. O'Brien
44d23c83a9 Remove a useless blank line, I accidently added. 1999-10-12 00:35:49 +00:00
David E. O'Brien
ba505f0644 Move RCS tag to our normal place. 1999-10-10 22:43:12 +00:00
David E. O'Brien
1baaa64720 Style cleanups:
* be consistant on protecting "#define FOO"s with "#undef FOO".
* be consistant that macro params are upper case, and commas are followed
  by a space in the macro definition
* protect macro param expansion by ()'s
* break long lines
* line continuations chars to consistant column
* remove trailing spaces
1999-10-10 22:33:40 +00:00
David E. O'Brien
ac27a30c83 Remove things common to all FreeBSD platforms. They will now live in a
FreeBSD wide config file.

This includes "WORD_SWITCH_TAKES_ARG" & "SWITCH_TAKES_ARG".  Platforms
such as FreeBSD/MIPS will need to override these two defintions, but it
can #undef them and define them approapiately.
1999-10-10 22:17:24 +00:00
David E. O'Brien
bdc228c639 Virgin import of EGCS 1.1.2 1999-10-03 09:19:40 +00:00
David E. O'Brien
72a8915368 This commit was generated by cvs2svn to compensate for changes in r51899,
which included commits to RCS files with non-trunk default branches.
1999-10-03 09:19:40 +00:00
David E. O'Brien
dc76ff5a60 Virgin import of EGCS 1.1.2 1999-10-02 21:54:32 +00:00
David E. O'Brien
360a324402 This commit was generated by cvs2svn to compensate for changes in r51885,
which included commits to RCS files with non-trunk default branches.
1999-10-02 21:54:32 +00:00
David E. O'Brien
929da3a6b2 * We have /var/tmp, not /usr/tmp. So use that where EGCS used the latter.
*  In the absence of the env vars TMPDIR, TMP, TEMP (which override this
   ordering), attempt to create temperary files in /tmp, P_tmpdir (/var/tmp),
   /usr/tmp, and .  until successful.
1999-10-02 21:50:07 +00:00
David E. O'Brien
261b37fb6c Virgin import of EGCS 1.1.2 1999-10-02 01:46:57 +00:00
David E. O'Brien
8167cb1aef This commit was generated by cvs2svn to compensate for changes in r51848,
which included commits to RCS files with non-trunk default branches.
1999-10-02 01:46:57 +00:00
David E. O'Brien
b6f18be149 Bring BDE's printf format error fixes into EGCS. 1999-09-19 11:00:01 +00:00
David E. O'Brien
989e177ec2 Bring our profiling tweaks into EGCS 1.1.2. 1999-09-19 10:43:38 +00:00
David E. O'Brien
db102939b7 "COMMENT_BEGIN" is no longer used. 1999-09-19 10:32:18 +00:00
David E. O'Brien
8d5d8faf3b Support linking against libgcc_r.
Submitted by:	Luoqi Chen <luoqi@chen.ml.org>
1999-09-19 10:31:14 +00:00
David E. O'Brien
844dfb548c This should get us the same functionality we had with GCC 2.7.2.1.
*  Support for our dual ELF/a.out building ability
*  Our custom ASM_* definitions
*  Our custom debugger and profiling related definitions
*  Our custom STARTFILE/ENDFILE specs

*  The stock EGCS 1.1.2 freebsd-elf.h file depended on
   egcs-1.1.2/gcc/config/linux.h, which included "svr4.h".  We will
   include "svr4.h" via our "tm.h" definition.  So add the few bits
   from "linux.h" we actually needed.

*  Using our current crtbegin.o/crtend.o we cannot support the DWARF2
   unwinding mechanisms.  In the future we will switch to the
   non-sjlj-exceptions type exception machanism.  However the `make world'
   bootstrap problems with the EGCS crtstuff.c must be overcome first.

*  Our a.out gas doesn't "know" to use NOP's for aligns while in the text
   section.  Thus the a.out alignment generation needed tweaking from
   what we did with GCC 2.7.2.  [from BDE]

*  The definition of SUPPORTS_ONE_ONLY prevents the compiler from trying
   to use "linkonce" sections for a.out.  The definition of
   NO_DBX_FUNCTION_END we had causes it to avoid .stabs symbols that the
   assembler cannot handle for a.out.  [from JDP]

*  The previous "EXCEPTION_SECTION_FUNCTION" is the wrong name for EGCS.
   It also needed tweaking for EGCS.  [from JDP]

Also bump __FreeBSD_cc_version to 400002 in case we need to know we are
using EGCS at some point.
1999-09-19 10:28:57 +00:00
David E. O'Brien
a49a6042f2 Use the stock EGCS version of this. 1999-09-19 09:09:21 +00:00
David E. O'Brien
f23c668cbe Document the new i386 family options.
Obtained from:	invoke.texi
1999-09-19 09:00:24 +00:00
David E. O'Brien
7c61b15b97 Document -Os optimization. Add to -O{0,2} documentation.
Obtained from:	invoke.texi
1999-09-19 08:58:44 +00:00
David E. O'Brien
95a61b537f Merge revs 1.2-1.11 (doc fixes and updates to reflect reality) into the
EGCS 1.1.2 manpage.
1999-09-19 08:56:04 +00:00
David E. O'Brien
dbf974584d Merge rev 1.2 docs fixes into EGCS 1.1.2's manpage. 1999-09-19 08:18:18 +00:00
David E. O'Brien
08d266f93c Fix conflicts. This has a small part of rev 1.2 in it. 1999-09-18 11:14:59 +00:00
David E. O'Brien
8e9098e1f3 Fix conflicts. This merges revs 1.{2,3} with EGCS 1.1.2. 1999-09-18 11:02:28 +00:00
Bruce Evans
e6413fc21c Merge from ../egcs/gcc/gcc.c rev.1.5:
Don't exclude directories that the linker is "known" to search (/lib
and /usr/lib) when deciding whether to pass certain paths to the
linker.  Under FreeBSD, the linker is actually known to never search
/lib and to only search /usr/lib in the elf case.  Not passing the
paths causes at best causes confusing differences for cross compiling.
This change is conditional on FREEBSD_NATIVE but should be absolute.
1999-09-13 15:50:16 +00:00
David E. O'Brien
6641a1b79d Use the stock EGCS 1.1.2 file here. Our previous changes are OBE.
(code change by rev 1.3 has been removed, and 1.2 is not needed since
contrib/gcc/cp/except.c is now the stock one)
1999-08-30 10:50:39 +00:00
David E. O'Brien
291e7c65a6 Use the stock EGCS 1.1.2 file here. I cannot determine if our previous
changes for ObjC are still appropriate.
1999-08-30 10:27:11 +00:00
David E. O'Brien
e5b502affd This brings rev 1.2 into EGCS 1.1.2. Also tweaks gleemed from EGCS
ChangeLog's.  Note that rev 1.3 changes (HOST_PTR_PRINTF) was not
brought into EGCS 1.1.2 as that is the default.
1999-08-30 10:12:33 +00:00
David E. O'Brien
7870fcbbe0 Fix conflicts. 1999-08-30 09:58:28 +00:00
David E. O'Brien
37f5c2fd7b Use the stock EGCS 1.1.2 file here. Our previous changes are OBE. 1999-08-30 09:54:31 +00:00
David E. O'Brien
a80c005075 This add Alpha and proper x86 support to EGCS 1.1.2. Functionally speaking,
this covers revs 1.{2,3}.
1999-08-30 08:41:19 +00:00
David E. O'Brien
698a4b1cdb This brings rev 1.2 (reality check and document profiling extensions)
into EGCS 1.1.2.
1999-08-30 07:51:44 +00:00
David E. O'Brien
562502babb This brings rev 1.2 (document printf0()) into EGCS 1.1.2. 1999-08-30 07:38:42 +00:00
David E. O'Brien
7214c26ced Fix conflicts. 1999-08-30 07:28:52 +00:00
David E. O'Brien
1ff1015930 Fix conflicts.
This adds rev 1.2 (-fformat-extensions) to EGCS 1.1.2.
1999-08-30 04:01:02 +00:00
David E. O'Brien
252b86ac0b Fix conflict. 1999-08-30 01:02:55 +00:00
David E. O'Brien
293515f678 Fix conflicts. 1999-08-30 00:01:36 +00:00
David E. O'Brien
e9a76e02f7 This brings rev 1.2 (FREEBSD_NATIVE) and rev 1.5 (mixed ELF/aout support)
into EGCS 1.1.2.
1999-08-29 23:53:46 +00:00
David E. O'Brien
b8871f91cb Correct vfork()/exit() to vfork()/_exit().
Also return "1" rather than "-1".  According to bde: -1 is unrepresentable.
Exit statuses must be >= 0 and <= 255, at least if chars are 8 bits and
shorts are 16 bits.  This seems to only be documented indirectly in exit.2
by referring to wait.2.  WEXITSTATUS() throws away all except the low 8 bits
of the status returned by _exit(), and the kernel actually only stores 8
bits of it (if chars are 8 bits, etc.), so wait() can't return any more bits.

Obtained from: rev 1.4 of contrib/gcc/gcc.c
1999-08-29 23:46:20 +00:00
David E. O'Brien
a462f21277 Fix conflicts.
This brings rev 1.2 (-fformat-extensions) into EGCS 1.1.2.
1999-08-28 11:46:53 +00:00
David E. O'Brien
d8f6a90a74 Fix conflicts.
This brings revs 1.{2,3} minus rev 1.4 into EGCS 1.1.2.
1999-08-28 11:27:19 +00:00
David E. O'Brien
c805b031d1 Fix conflicts. 1999-08-28 08:14:14 +00:00
David E. O'Brien
54e4f442da Fix conflicts. This brings rev 1.2 (fix stabs ordering for a.out) into
EGCS 1.1.2.
1999-08-28 07:19:03 +00:00
David E. O'Brien
e573f48e0e Fix conflicts. This brings in rev 1.2 (FreeBSD native support -- do not
search the multitude of extended include file paths that do not exist)
into EGCS 1.1.2.
1999-08-27 11:02:42 +00:00
David E. O'Brien
19d654ce6b Fix conflicts. This brings the "printf0" addition into EGCS 1.1.2. 1999-08-27 10:58:48 +00:00
David E. O'Brien
1428ce0f83 Don't accept %q length specifiers in the kernel (more precisely,
if compiling with -fformat-extensions). Gcc's format checker never
actually supported %q length specifiers.  It treats %q as an alias
for %ll, which is correct if quad_t is long long (e.g., on i386's)
and broken otherwise (e.g., on alphas).

quad_t's currently should be printed in the same way that they
already need to be printed to avoid compiler warnings on all
supported systems: cast them to a standard type that is at least
as large (long or long long) and use the length specifier for that
(%l or %ll).  This is problematic since long long isn't standard
yet.  C9x's intmax_t should be implemented soon.

Don't accept %L length specifiers in the kernel either.  The only
legitimate ones are for long doubles, but the kernel doesn't even
support plain doubles.  (gcc bogusly accepts %Ld as an alias for
%lld, and it sometimes prints "q" in error messages about "ll" and
"L" length specifiers, becauses it represents all these specifiers
as 'q'.)

Submitted by:	bde
1999-08-27 10:05:08 +00:00
David E. O'Brien
35edbffe27 Fixed kernel format checking:
- plain %r and %z were disallowed.  The hard NULs in the warnings were
  hopefully caused by disallowing of plain formats being nonsense.
- new formats for shortening to a byte were allowed, but even the libc
  printf doesn't support them.
- old %hr and %hz formats were allowed, but the kernel printf doesn't
  support them.  The kernel doesn't support %hd either, but this is
  harder to fix.

Submitted by:	bde
1999-08-27 10:02:56 +00:00
David E. O'Brien
1fc70153e9 Fix conflicts.
This brings revs 1.2 (-fformat-extensions) and 1.3 (printf0())
into EGCS 1.1.2.
1999-08-27 10:01:05 +00:00
David E. O'Brien
56c6bb4f57 Fix conflicts. 1999-08-27 09:36:15 +00:00
David E. O'Brien
2a266d02ba Virgin import of gcc from EGCS 1.1.2 1999-08-26 09:30:50 +00:00
David E. O'Brien
f1a94e6381 This commit was generated by cvs2svn to compensate for changes in r50397,
which included commits to RCS files with non-trunk default branches.
1999-08-26 09:30:50 +00:00
David E. O'Brien
2e3446e467 * Consistantly surround macro parameters with ()
* Consistantly put spaces after "," in macro param lists
* Consistantly align continuation characters.
* Don't need to supply all variations of __FOO__ in CPP_PREDEFINES,
  gcc will do that for us.
1999-08-20 09:01:55 +00:00
David E. O'Brien
1f2d1c0503 Move two of the DBX config directives to the common configuration header.
Also simply CPP_PREDEFINES a little.
1999-08-19 09:16:23 +00:00
David E. O'Brien
adba8d12f5 Move "WORD_SWITCH_TAKES_ARG" & "SWITCH_TAKES_ARG" to the general spec file
since their definitions were identical.  FreeBSD/MIPS will need to override
these two defintions, but it can #undef them and define them approapiately.
1999-08-15 22:02:50 +00:00
David E. O'Brien
c86942dc66 Move "LIBGCC_SPEC" to freebsd-native.h as it is not approapiate for
submitting to the GCC mainainers for folding into the stock GCC.
1999-08-15 21:59:46 +00:00
David E. O'Brien
3b82b5b7f7 Virgin import of GCC 2.7.2.3 1999-07-10 23:03:59 +00:00
David E. O'Brien
68bb3e165b This commit was generated by cvs2svn to compensate for changes in r48743,
which included commits to RCS files with non-trunk default branches.
1999-07-10 23:03:59 +00:00
David E. O'Brien
14ffedf1b0 * The OBSTACK_CHUNK_SIZE #define was in the "Code generation parameters"
section rather than the "Miscellaneous parameters" where it belongs.

* Clarify what we are locating using the -m rule.

Submitted by:	bde
1999-07-02 19:26:45 +00:00
David E. O'Brien
5bfda2db35 The GNU standard about putting 2 spaces after sentences in comments
was not consistantly followed.

Submitted by:	bde
1999-07-02 19:20:44 +00:00
David E. O'Brien
7675d60dff Define "OBSTACK_CHUNK_SIZE" as getpagesize().
Our malloc can allocte pagesized blocks efficiently and the EGCS default size
of 4072 bytes is not optimal.

Submitted by:	Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
1999-06-28 09:05:56 +00:00
Hidetoshi Shimokawa
766b710e3a Remove 'SET_ASM_OP' macro, which is unused now and rather harmful
for recent egcs.
1999-06-10 12:05:48 +00:00
John Polstra
d36a530801 Fix typo (#unset where #undef was meant). 1999-05-21 04:56:32 +00:00
David E. O'Brien
395b1ec416 Consistantly protect "#define FOO ..." with "#undef FOO". 1999-05-20 08:30:48 +00:00
David E. O'Brien
2898537149 Turn DEFAULT_VTABLE_THUNKS back on. It caused problems with undefined symbols
in libstdc++.

Until I have a chance to look at what that problem is and to carefully consider
the upgrade issues of turning it back on at a later date if we leave it turned
off for any extended peroid of time.
1999-04-30 19:12:51 +00:00
David E. O'Brien
e53bca4f44 Rather than hack config/freebsd.h to contain our hacks for a native compiler,
just include them in tm.h (as built from cc/cc_tools/Makefile).

This will reduce the diffs from the vendor sources.

Excellent idea by:	jdp
1999-04-28 18:48:08 +00:00
David E. O'Brien
3f1ea226c9 Simplify the definition of FBSD_SWITCH_TAKES_ARG, and make sure
SWITCH_TAKES_ARG isn't defined (which svr4.h does) when we assign our
definition to it.
1999-04-27 19:29:44 +00:00
David E. O'Brien
512a10fde7 Wait until EGCS 1.2 to use more efficient ``thunks'' to implement C++ vtables.
While I have yet to hear of any problems with us using thunks.  The EGCS
mailing list notes some have problems with it and not using them are a
safer default.  People wanting to use them, can set the appropiate
compiler flag.
1999-04-27 15:43:56 +00:00
David E. O'Brien
1030a4e631 Use new FBSD_SWITCH_TAKES_ARG' and FBSD_WORD_SWITCH_TAKES_ARG'. 1999-04-22 17:45:24 +00:00
David E. O'Brien
61d2d44398 Move SWITCH_TAKES_ARG' to FBSD_SWITCH_TAKES_ARG' and `WORD_SWITCH_TAKES_ARG'
to `FBSD_WORD_SWITCH_TAKES_ARG' which allows architectures to tweak these
values if needed.
1999-04-22 17:45:01 +00:00
David E. O'Brien
073f9b19ff Support linking against libgcc_r.
Submitted by:	Luoqi Chen <luoqi@chen.ml.org>
1999-04-14 00:25:45 +00:00
Bruce Evans
b3827ce345 Removed unconditional definitions of __ELF__. They were redundant for
elf and wrong for i386-aout.
1999-04-08 13:57:13 +00:00
David E. O'Brien
2f494cb24f Merge shared LIB_SPEC into share config header. 1999-04-08 07:49:24 +00:00
David E. O'Brien
44109b462f merge alpha/freebsd-elf.h into alpha/freebsd.h
Submitted by:	Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
1999-04-08 07:48:49 +00:00
David E. O'Brien
dd03234d28 Mispelled global option in usage. 1999-04-06 13:09:24 +00:00
David E. O'Brien
6c499bb15a Fix space padding that was causing a problem in creating the final
CPP_PREDEFINES.
1999-04-04 22:46:18 +00:00
David E. O'Brien
bf098f1e3f * Protect ourselves from any previously defined options.
* Turn on DEFAULT_VTABLE_THUNKS.  (it is the default anyway, I'm just being
  explicit about it, in case it causes us trouble it might be easier for
  someone to notice it this way)
1999-04-03 23:26:03 +00:00
David E. O'Brien
1eb80b4532 Bump __FreeBSD_cc_version to 400002 in case we need to know we are using
EGCS at some point.

Submitted by:	jdp
1999-04-03 02:18:13 +00:00
David E. O'Brien
3b7a861fcf Alpha architecture config files.
Obtained from:	adapted from Hidetoshi Shimokawa <simokawa@FreeBSD.ORG>'s
		alpha suppliment to the Egcs port.
1999-03-30 07:47:06 +00:00
cvs2svn
f5be10a3f2 This commit was manufactured by cvs2svn to create branch 'VENDOR-gcc'. 1999-03-30 07:36:37 +00:00
David E. O'Brien
32b91f49ab Base configuration file for all FreeBSD targets. 1999-03-30 07:36:36 +00:00
Poul-Henning Kamp
aca6858651 Remove the linker-set hack we used for BB profiling. 1999-03-21 12:28:14 +00:00
David E. O'Brien
992d0ff19f Update __FreeBSD__ and __FreeBSD_cc_version to be consistant with
__FreeBSD_version

Forgotten by: Eivind and Some anonymous release engineer
1999-01-22 11:09:00 +00:00
Peter Wemm
135b45b1ac a.out is default 1999-01-16 08:51:46 +00:00
Martin Cracauer
38db74296d Compile threaded proframs with -D_THREAD_SAFE, not -D_THREADSAFE 1998-12-15 16:43:14 +00:00
John Polstra
34ff484bfc Per request from ache, change the numbering scheme of __FreeBSD_cc_version.
Its form is now like __FreeBSD_version, with the FreeBSD revision in
the top digits.
1998-10-29 22:11:08 +00:00
John Polstra
98bf848b69 Add a new predefined preprocessor symbol "__FreeBSD_cc_version",
with a numeric value that describes the feature level of the
compiler.  This can be used to check for the presence/absence of
FreeBSD-specific compiler features.  The value is a decimal number
whose digits have the form VRRRRFF, where:

	V    = Compiler vendor.  0 (elided) means gcc.
	RRRR = Vendor's version number, e.g., 2721 for the current
	       gcc version (2.7.2.1).
	FF   = FreeBSD-specific revision level.  00 means the stock
	       compiler from the vendor.

The value of "__FreeBSD_cc_version" is hard-coded in
"src/contrib/gcc/config/i386/freebsd.h" and must be incremented
when new FreeBSD-specific compiler features are added.  I considered
simply picking up the value of FreeBSD_version from <osreldate.h>.
But that would break cross compiles of gcc.

PR:		Part of the fix for gnu/8452
Suggested by:	bde
1998-10-29 04:27:06 +00:00
Warner Losh
a556fde0bc Add alpha-*=freebsd* to configure 1998-09-09 17:07:36 +00:00
John Polstra
5584f22bb3 Make profiling work for ELF. gprof now autodetects the format of
the executable file, so it will work for both a.out and ELF format
files.  I have split the object format specific code into separate
source files.  It's cleaner than it was before, but it's still
pretty crufty.

Don't cheat on your make world for this update.  A lot of things
have to be rebuilt for it to work, including the compiler and all
of the profiled libraries.
1998-09-07 23:32:00 +00:00
John Birrell
8472e43276 Change /etc/objectformat to /etc/objformat. Last chance 'cause it's E-day.
Suggested by: jdp
1998-08-30 20:40:29 +00:00
Bruce Evans
0f79d73473 Support printf format checking of FreeBSD kernel formats %[Dbrz].
This is enabled by the undocumented option -fformat-extensions.
This option should be named better and/or give more control over
the extensions.

Fixed a message - don't warn about the field width when it's the
precision that has the wrong type.  Didn't fix excessive checking
for the precision relative to the type - ANSI requires both to be
ints, but gcc permits the field width to be either int or unsigned
int.
1998-08-24 06:33:52 +00:00
Bruce Evans
d983fa4305 Fixed printf format errors. gcc should have a macro HOST_PTR_PRINTF_TYPE
to go with its HOST_PTR_PRINTF[_FORMAT], since if %p is wrong for the
format then `void *' is probably wrong for the type.
1998-08-02 14:57:00 +00:00
John Polstra
3bc25faee6 Add support for a new archetype "printf0" for the "format" function
attribute.  It is like the existing "printf" archetype, except that
it doesn't complain if the format string is a null pointer.  See
the node "Function Attributes" in the GCC info pages if you don't
know what this is all about.

This change will allow us to add format string checking for the
err(3) family of functions.
1998-07-15 04:22:45 +00:00
Bruce Evans
c15a5b80be Fixed printf format errors. 1998-06-30 19:53:09 +00:00
John Birrell
6e2f2fe480 Add LIB_SPEC (same as on i386) so that gcc knows about libc_r. 1998-06-08 10:58:36 +00:00
Peter Wemm
4af3a821f1 -pg was causing a link with -lc_r... :-]
Submitted by:  Dmitry Khrustalev <dima@xyzzy.machaon.ru>
PR: 6287
1998-04-13 14:12:34 +00:00
John Birrell
2161ed1f46 Document the FreeBSD specific options from LIB_SPEC. 1998-04-10 09:19:11 +00:00
John Birrell
6db4691d19 Ouch, my local cvs walloped the version I thought I was committing.
Here is what I intended.
1998-03-14 03:02:19 +00:00
John Birrell
1de944af88 On i386, freebsd.h and freebsd-elf.h have been merged to combine
aout and elf support. freebsd-elf.h died as a result, so the BINFORMAT
test for elf in src/gnu/usr.bin/cc/cc_tool/Makefile will need to
use freebsd.h, not freebsd-elf.h. That means that alpha will have to
go the same way. The new alpha/freebsd.h has the alpha/freebsd-elf.h
definitions merged in.
1998-03-13 21:12:12 +00:00
John Birrell
0f471b05f9 Nuke crti.o from the STARTFILE_SPEC again. No asm code is needed on alpha.
Add the define that lets gas know how to ".set" and enable pragmas
so that #pragma weak will work.
1998-03-11 20:56:24 +00:00
John Birrell
37aebf7ed2 Change the LINK_SPEC to specify the same runtime loader as used on
i386-elf because that is what will be used for FreeBSD/Alpha.

Change the STARTFILE_SPEC to match the non-aout version of i386 so
that the csu files can be built in exactly the same way as i386-elf.
This means that FreeBSD/Alpha departs from NetBSD/Alpha which uses
crt0 and crtbegin/crtend. Since i386-aout uses crt0, I guess it was
decided that i386-elf should use crt1. i386-elf also references
crti and with this change, so does FreeBAS/Alpha.

I think it is important for FreeBSD to have a consistent implementation
across architectures and since ELF is quite compatible (ignoring
differences in 32 and 64 bits), gcc might as well be configured the
same.

Another change is that the entry symbol is _start, not __start as
in NetBSD.
1998-03-10 06:47:14 +00:00
Peter Wemm
42fcd1ffa9 Both our a.out (hacked) gas and the binutils gas support .weak
Prompted by: bde
1998-03-09 04:47:58 +00:00
Peter Wemm
df320ec9d3 Only do a.out/elf switching on i386 family 1998-03-09 04:13:31 +00:00
Peter Wemm
3f39463468 Don't disable the use of $ in assembler labels.. It changes libstdc++
and libg++ so that they won't work with existing binaries (including
netscape!!).
1998-03-09 03:26:57 +00:00
Peter Wemm
b51cdb1e8b Spell -Bshareable correctly... :-] 1998-03-08 16:09:57 +00:00
Peter Wemm
a2034fc036 svr4.h defines ASM_IDENTIFY_GCC, but neglects to define
ASM_IDENTIFY_LANGUAGE.  Use the osfrose.h method, because gdb assumes
'C' by default, so there's no need to further clutter the symbol table.
1998-03-08 13:26:15 +00:00
Peter Wemm
9ed6fc5562 Cosmetic cleanup for a.out asm generation.. Don't put the end-of-file
markers that the stabs-in-elf system uses.
1998-03-08 12:47:45 +00:00
Peter Wemm
178576c62f Put the function stabs in traditional order on a.out, or gdb doesn't see
function local variables.
1998-03-08 11:54:04 +00:00
Peter Wemm
ebdff85b87 Add hooks for John Birrell's kernel thread support library.
Submitted by: John Birrell <jb@cimlogic.com.au>
1998-03-08 05:33:24 +00:00
Peter Wemm
9cb13c2344 First round of changes to support generation of assembler for the old
a.out gas and the binutils gas (elf or a.out) with a single compiler.

This uses other infrastructure not yet committed, in order to support
both a.out and elf it needs to be able to get to both a.out and elf
gas, ld, libs, crt* etc.  So for now, the support is pretty much dormant.

The new freebsd.h file is based on the old freebsd-elf.h file (which has a
long lineage, right back through linux and svr4 files).  The change is
pretty dramatic from a gcc internals standpoint as it overrides a lot of
definitions in order to generate different output based on target mode.
There is potential for screw-ups, so please be on the lookout - gcc's
configuration mechanism wasn't really meant for this kind of thing.
It's believed to compile world etc just fine under both a.out and elf, can
handle global constructors and destructors, handles the differences in
a.out and elf stabs, and what sections things like exceptions go in.

The initial idea came from i386/osfrose.h which is a dual rose/elf format
target.  These two are not as diverse as a.out and elf it would seem.

The cc front-end uses external configuration to determine default object
format (still being thrashed out, so read the source if you want to see
it so far), and has a '-aout' and '-elf' override command line switch.
There are some other internal switches that can be accessed, namely -maout,
-mno-aout, -munderscores and -mnounderscores.  The underscore and local
symbol prefixing rules are controllable seperately to the output format.
(ie: it's possible to generate a.out without the _ prefixes on symbols and
also to generate elf with the _ prefixes.  This isn't quite optimal, but
does seem to work pretty well, except the linkers don't always recognise
the local symbols without their normal names)

The default format is a.out (still), nobody should see any major changes.

With both elf and a.out tools and libraries installed:

[1:26pm]/tmp-223> cc -elf -o hello hello.c
peter@beast[1:27pm]/tmp-224> file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
[1:27pm]/tmp-225> ./hello
hello world!

[1:27pm]/tmp-226> cc -aout -o hello hello.c
[1:27pm]/tmp-227> file hello
hello: FreeBSD/i386 compact demand paged dynamically linked executable not stripped
1:27pm]/tmp-228> ./hello
hello world!

Since my co-conspirators put a lot of effort into this too, I'll add them
so they can share the blame^H^H^H^H^Hglory. :-)

Reviewed by: sos, jdp
1998-03-08 05:29:49 +00:00
John Birrell
2e56a2ce82 Upgrade the cpp pre-defines to include -Dunix. Turns out we need that
to compile m4.

And don't just define __FreeBSD__, but define it as -D__FreeBSD__=3
like on i386.
1998-01-12 02:53:28 +00:00