52 Commits

Author SHA1 Message Date
obrien
fe8d76fb16 We need to build ``.depend'' early in the "build-tools" for the GCC
"build-tools".  If we do not do this, the "depend" stage of
"buildworld" will build ``.depend'' and it will record the wrong
library and header dependencies (DESTDIR=${WORLDTMP}).  Even worse,
the "all" stage may clobber build-architecture-format build tools
built in the "build-tools" stage with target-architecture-format ones.

Submitted by:	ru
2001-09-27 17:14:33 +00:00
obrien
00ce34cb25 Include `dbxelf.h' via tm.h (the approved FSF/GNU way) vs. in our MI header. 2001-03-02 03:00:41 +00:00
obrien
f7e4c19113 tm.h should include the platform specific ELF header if it exists. 2000-12-03 00:11:19 +00:00
obrien
13cef0c010 Clean up the FreeBSD configuration files -- includes removing the usage
of svr4.h on the i386, and moving all the shared arch neutral bits into
the FreeBSD general config header.
2000-03-23 10:18:26 +00:00
obrien
99f643a265 "Rev.1.45 of cc_tools/Makefile was a wrong fix for a problem introduced
in rev.1.44 (the egcs to gcc switch).  The problem is that print-rtl.o
is now needed to build some tools, but it wasn't added to the list of
objects which are specially handled because they are prerequisites for
tools."

Submitted by:	bde
2000-01-29 12:38:21 +00:00
obrien
66353a5438 Simply cc_tools/Makefile by moving the parser generation to the respective
backends.
2000-01-24 09:17:09 +00:00
obrien
803231fc90 I *hate* using "i" in variables, looks too much like "1" or "l". 2000-01-23 22:46:00 +00:00
obrien
4e5bce5012 Build genrtl.h before print-rtl.o.
Submitted by:	John Hay <jhay@mikom.csir.co.za> (basic idea, changed by me)
1999-11-17 15:50:45 +00:00
obrien
f62e7fc20c Cut over the system compiler from from EGCS 1.1.2 to GCC 2.95.2. 1999-11-15 04:16:19 +00:00
obrien
64fbe577c7 Purely cosmetic changes to lineup targets. 1999-11-15 00:29:00 +00:00
obrien
972baf2ed0 `make' will fail if hash.h exists for some reason and gxx-hash needs to be
rebuilt.  Fix this.

Submitted by:	bde
1999-10-30 08:08:29 +00:00
obrien
3d4895684d Add a comment explaing the linking and segrated the old and new cases a little. 1999-10-12 20:27:53 +00:00
obrien
bf70525792 Change the name of the file generaged from gxx.gperf from "hash.h" to
"gxx-hash.h" with hopes of getting Cygnus to do the same.  We create a link
to the old name for now.
1999-10-12 20:25:11 +00:00
peter
289c0d262f $Id$ -> $FreeBSD$ 1999-08-27 23:37:10 +00:00
peter
0b6fbc2a5b Make gcc work on the Alpha again. alpha/alpha.h is used instead of svr4.h 1999-08-19 21:19:36 +00:00
obrien
07419aec71 Rev 1.36 also includes functional chagnes I intended to commit seperately.
Configuration header inclusion has been moved around to reduce diffs from
the offical GCC distribution.  We now generate the same ``tm.h'' produced by
gcc's `configure' script [minus all the "#ifdef IN_GCC"'s].

Jeff Law of EGCS/Cygus says the new "approved" way of doing configure-related
includes is to list them all in ``tm.h'' rather than having the architure
config headers include large numbers of other configure headers.
1999-08-16 09:55:16 +00:00
obrien
b3af8b5f4b Purely cosmetic cleanups.
- Id tag layout wrong.
 - "FOO =" -> "FOO=".
 - 4 space indention on continuation lines rather than a <tab>

Basic idea checked by:	bde
1999-08-16 04:10:48 +00:00
obrien
033405c257 Rather than deleting the grammer files during building, move them out of the
way.  This way they are available for inspection when debugging problems.
1999-08-14 22:40:01 +00:00
obrien
ebe74fdfd5 Use Yacc rather than Bison. 1999-07-28 07:22:08 +00:00
obrien
a4b8ba086c The Unix way is arguments come before an input file name, not after. 1999-07-28 07:19:38 +00:00
obrien
522e272a7b 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
obrien
a099f8cc73 Sorry didn't get this in the last commit: MACHINE_ARCH changes courtesy
of Warner Losh <imp@village.org>.  (he's got plans for FreeBSD mips :-))
1999-04-22 20:12:21 +00:00
obrien
c506ddebe9 Use GNU_ARCH' in most places where MACHINE_ARCH' was used. Building for
mips has some particularlies.
1999-04-22 19:35:16 +00:00
obrien
6b5c8c5794 Have config/i386/freebsd.h directly include att.h. I have no idea why stock
EGCS doesn't just do this.  None of the rest of our other platforms will need
this file.
1999-04-22 00:20:36 +00:00
obrien
b710768bd3 Add FORTRAN support. 1999-04-18 09:44:36 +00:00
bde
33795a33e0 Cleaned up egcs changes (mainly to minimise diffs with the gcc version
and restore order to sorted lists).
1999-04-11 04:32:42 +00:00
bde
b4d0b18a23 Fixed unusable dependencies in `.depend'. The following comment in the
code still applies, but the code attached to it had rotted:

# ../Makefile.inc will put an absolute path to our objdir in CFLAGS.
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.

Many other makefiles seem to have the same bug (i.e., spelling "." as
"${.OBJDIR}" or as an even more complicated alias in -I directives).
1999-04-11 04:11:27 +00:00
bde
20977f06d8 Fixed world breakage. Fixed (?) building with -jN (N > 1).
The previous commit made things worse by breaking the -j0 case and
moving around the breakage for the -jN case.  The fix involves
restoring .ORDER statements that were deleted in the previous commit,
removing wrong special handling of tree-check.h, and rewriting the
generation of fudged dependencies based on an idea I got from the
previous commit (filter out problematic objects first).
1999-04-09 18:46:48 +00:00
obrien
2034f40c32 Another fix for -jN building -- the last fix didn't fix it for everybody.
Submitted by:	Luoqi Chen <luoqi@watermarkgroup.com>
1999-04-08 23:37:46 +00:00
peter
272c0ffe18 Clean up the multilib stuff so that it actually works..
cc -aout now works again.
1999-04-08 15:11:44 +00:00
obrien
5810f4ab82 Remove some of the dependencies. This removes the cycles I was getting on
`make -j 8' builds.
1999-04-08 12:26:07 +00:00
obrien
7b5f3ba39b Due to other explicit dependancies, don't treat tree-check.h as a SRCS. 1999-04-08 09:57:51 +00:00
obrien
36332ab857 Fix a circular dependancy. 1999-04-08 09:21:52 +00:00
obrien
760f9d518d alpha/freebsd-elf.h is being folded into alpha/freebsd.h
Submitted by:	Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
1999-04-08 07:38:51 +00:00
peter
cc69e950c0 Fix type mismatch.. 1999-04-05 10:18:50 +00:00
obrien
9c9c4fe46a Conditionalize one more i386'ism. 1999-04-04 20:47:33 +00:00
obrien
1a7add86bb Attempt at creating the right ``tm.h'' file for the Alpha. 1999-04-04 20:40:45 +00:00
obrien
582be693c1 Minimum set of changes to switch from Gcc 2.7.2 (in contrib/gcc) to Egcs 1.1.2
(in contrib/egcs)
1999-04-04 16:36:35 +00:00
bde
4bdfdd372a Split up rule for ${COMMONHDRS} so that `make -j N' doesn't create the
6 headers up to 6 times concurrently.  Debugged by Don Lewis
(Don.Lewis@tsc.tdk.com).

Fixed some disorder.
1998-10-16 16:53:15 +00:00
jb
2c3408bd6d Make the build tools static to avoid trying to use the shared loader
before it is installed.

This upsets Bruce because the host boostrap build forces tools to be
static anyway. He says I'm abusing NOTOOLS in src/Makefile by using
it to do a aout->elf transition build. One day I'll find a place to
install host tools like these to allow a true cross build.
1998-08-20 21:45:46 +00:00
bde
6983ae1644 Added a `build-tools' target for internal tools. 1998-07-07 01:51:18 +00:00
bde
6adf1d5926 Fixed missing dependencies. The critical missing one was of bi-lexer.o
on bi-parser.h.  Not having it sometimes (only with `make -j') triggered
a bug suite that led to ordinary cpp output being put in .depend files.
Various bugs (the main one only with `make -j') prevented timely detection
of failure to build and install gnu/usr.bin/cc.  Eventually the missing
${WORLDTMP}/usr/libexec/cpp caused ${WORLDTMP}/usr/bin/cpp to be invoked
by cc, and this version of cpp is not suitable for such invocation.
Ordinary cpp output was put in .depend files when cpp terminated options
processing before seeing the -M flag.

Cleaned up.
1998-04-23 16:30:51 +00:00
bde
4616b3ebef Honour -static in LDLAGS. ld without -Bstatic is happy to choose
static libraries if there are no shared libraries in the search path,
but gcc without -static blindly attempts to link crt0.o.
1998-03-23 11:50:38 +00:00
bde
4d0dfd9515 Fixed `make -jN depend' (N >= 2) by removing the beforedepend
target.  .ORDER doesn't work right, but is used for things related
to the depend target.  It "works" for the depend target by skipping
the build of .depend when N >= 2 and there is a non-default
beforedepend target with no rules.  Recent fixes made almost all
the beforedepend targets in the tree a no-op except for this bug.

Removed vestiges of elf and aout targets.
1998-03-12 12:52:24 +00:00
peter
c39aed21a8 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
bde
aa4b45b15e Fixed `make -jN' for large N. The usual method of pretending that all
objects depend on all generated headers doesn't work because it gives
cyclic dependencies.  Give enough dependencies explicitly.  We no
longer need to use .SINGLESHELL for `make depend'.  .SINGLESHELL was
more of a bottleneck than usual because `make depend' makes everything.

Fixed some spelling and English errors.
1998-03-06 13:34:36 +00:00
jb
b1946a8320 Change MACHINE -> MACHINE_ARCH so that the design make sense on those
machines where the processor chip determines the compiler, and where
multiple machines use the same architecture.
1998-01-25 09:49:00 +00:00
jb
936e6bae2f More i386 -> ${MACHINE} changes to make this Makefile machine
independent. It makes it look like you can get aout on alpha, but
that's just your imagination. The makefile above gives you no choice.
1998-01-11 04:13:25 +00:00
jkh
418d0a6a92 Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by:	<many different folks>
Submitted by:	Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>
1997-10-05 09:40:24 +00:00
peter
245ba20d12 Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00