Commit Graph

332 Commits

Author SHA1 Message Date
obrien
803231fc90 I *hate* using "i" in variables, looks too much like "1" or "l". 2000-01-23 22:46:00 +00:00
obrien
8144b5842a This patch solves the a cross-build problem where proj.c is both used by a
build-tools target and by the actual target.  In a cross-building situation
proj.o is both a native object and a cross-object (i.e., for the target
arch) and thus doesn't work.  Creating seperate opjects from the same
source file solves this...

This patch may also fix the following issue:

> it looks like -DNOCLEAN doesn't work too well.
> cd /usr/src/gnu/usr.bin/cc/f771; make build-tools
> make: don't know how to make /usr/obj/usr/src/i386/usr/include/stdarg.h. Stop

	This seems caused by wrong dependency information.  Dependency
	information shouldn't be created for build-tools sources.

Submitted by:	marcel
2000-01-14 09:28:25 +00:00
obrien
8c318abb02 Make mktemp.c a "normal" C implimentation when building this library. 2000-01-13 04:55:41 +00:00
obrien
882cc3f153 Drop the use of Bison for Byacc now that we don't need to depend on the
--broken-undeftoken-init Bison 1.25 bug.
2000-01-11 10:37:38 +00:00
obrien
b17f749ed0 Turn on a new /usr/bin/cpp that is a true binary rather than a shell script
wrapper.  /usr/bin/cpp knows about all the GCC predefined symbols and has
the functionality of the previous EGCS 1.1.2 /usr/libexec/cpp.
2000-01-04 03:48:08 +00:00
obrien
424e26f8b3 Didn't get these PREFIX specifiers removed with Makefile.inc rev 1.48.
Submitted by:	marcel
2000-01-02 22:57:34 +00:00
obrien
c34ec3d7da Allow the specification of a prefix for gcc to find all the various bits.
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.

Submitted by:	marcel (in a different format and reworked by me)
1999-12-29 14:42:46 +00:00
obrien
f6e9d3853b Fix cut-n-paste braino. 1999-12-22 05:34:56 +00:00
obrien
8ed9d0ffe7 Reduce the FreeBSD custom hacks to gcc.c by using the GCC provided methods
of changing the search dirs.  This also removes an used search dir,
removes unneeded redundancy, and a bugus dir we enherited on the i386
by baseing off of svr4.h.

We went from:
	install: /usr/libexec/(null)
	programs: /usr/libexec/<OBJFORMAT>/:/usr/libexec/:/usr/bin/:/usr/libexec/
	libraries: /usr/libdata/gcc/:/usr/libexec/:/usr/ccs/lib/:/usr/lib/

to:
	install: /usr/libexec/(null)
	programs: /usr/libexec/<OBJFORMAT>/:/usr/libexec/
	libraries: /usr/libexec/:/usr/lib/
1999-12-22 05:00:28 +00:00
obrien
710e9c2403 Another style nit. 1999-12-22 02:16:21 +00:00
obrien
fe78d9d4b4 * Support a non-default sized `long' data type. This allows one to easily
build the compiler with a 64-bit longs on the i386.
* Comment an important dependancy.
* Fix some style nits

Submitted by:	bde
1999-12-22 02:03:28 +00:00
obrien
e54126e848 * Remove debugging cruft that accidently got committed.
* Support mixed OBJDIR handling such .a's are properly found with a mix of
  obj subdirs both w/in and outside the source tree works.  Requested by BDE.
1999-12-22 01:56:57 +00:00
obrien
21ba2a28bd Add libcc_fbsd.a that contains libc and libiberty routines needed in
bootstraping on FreeBSD specifically.

3.2 upgrade path tested by:	marcel
1999-12-19 20:22:42 +00:00
obrien
3fcb837fdb Revert rev 1.8.
NOT Approved by:	obrien
1999-12-08 16:00:08 +00:00
marcel
4c9e0c201c Maintain compatibility with FreeBSD versions that don't have mkstemps 1999-12-08 13:53:16 +00:00
marcel
66f5fff52e remove cc1obj from the original SUBDIR list since it's made optional
in the previous commit resulting.

Forgotten by: obrien
1999-11-28 12:30:20 +00:00
obrien
93b81d3874 Make ObjC bits optional. NO_OBJC ==> don't need `em. 1999-11-27 21:52:55 +00:00
obrien
ff47533fdb mkstemps() has been brought into 3-STABLE, so this isn't needed here
anymore as building -CURRENT sources on 3-STABLE was the reason for the
previous revision adding this.

Note that since the GCC Project moved mkstemp.c from GCC's world to
libiberty, we no longer support building -CURRENT sources on non-FreeBSD
boxes unless that box has a very simular libc mix as FreeBSD.
1999-11-20 00:32:05 +00:00
obrien
a0fd1a8f5c Remove the `sysctl' get osversion hack. There are issues with cross-hosting
builds, Also, `sysctl' is not a build-tool and I'd rather not make it one.
3-STABLE has been updated to deal with the main reason this came in.
1999-11-20 00:28:03 +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
6f0a47ff70 Allow sub-Makefile's to determine the version of the OS we are make'ing on. 1999-11-17 07:42:40 +00:00
obrien
3374c1fa22 Add `mkstemp.c' to the mix if we are building on something older than
__FreeBSD_version < 400004.

This allows -STABLE to build -CURRENT sources.

[mkstemps() was added to -current just before the version bump to 400004
(a matter of hours in this case), so the test is as exact as possible.]

Submitted by:	marcel
1999-11-17 07:39:51 +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
e0f64d6da8 Cosmetic removeal of a trailing white space. 1999-11-15 00:25:01 +00:00
obrien
7620194553 Our capibilities updated for GCC 2.95.2. 1999-11-06 05:57:53 +00:00
obrien
7e7f6fec00 Minor cosmetic changes in an attempt to improve consistancy. 1999-11-04 04:46:04 +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
obrien
1dc4a82010 Move -I of cc_tool/ before the GCCDIR ones.
When I imported EGCS into contrib/egcs/ I failed to prune out
egcs/gcc/cp/hash.h which is generated from gxx.gperf.  Thus `cc1plus' wasn't
using the hash.h we generated by cc/cc_tools/Makefile, but rather the one in
egcs/gcc/cp/.

When I imported contrib/gcc/ I did prune gcc/cp/hash.h.  Unfortunately the
GCC maintainers weren't smart on their file nameing and there is also a
egcs/gcc/hash.h (name overloading does NOT work as well on the filesystem
as in C++...).  Due to the -I ordering we are were then picking up gcc/hash.h
when compiling `cc1plus'.
1999-10-12 20:22:38 +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
e873ea78b5 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
obrien
8470008abd Use Bison with "--broken-undeftoken-init". 1999-08-14 22:44:36 +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
bde
f0457b9b57 Forgotten in previous log message:
PR:		misc/12920
1999-08-08 07:31:47 +00:00
bde
a4f669aaaf Install c++filt in /usr/libexec/${OBJFORMAT}. The version that
was installed in /usr/bin normally got clobbered when objformat
was installed.  Indirection through objformat is correct although
underscore handling is the only thing that differs for aout and
elf -- going through objformat is the easiest way to set c++filt's
underscore handling flag correctly.
1999-08-08 07:30:02 +00:00
obrien
3766f18249 Only use Bison to generate cc1plus's parse code. 1999-08-01 15:44:51 +00:00
obrien
f979029f4c Go back to using Bison for now, due to `make world' breakage.
BTW, if our src/contrib/bison is upgraded from 1.25 to the current 1.27
offering, the build breaks exactly the same way....
1999-07-29 09:49:29 +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
bde
1f3f20e6c0 Don't override the (correct) default for BINDIR. 1999-07-04 15:51:39 +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
d2b4c4a138 use `target' macro crafted in parent Makefile rather than making our own
Submitted by:	Warner Losh
1999-04-25 17:23:28 +00:00
obrien
d0bc3cab3a Hookup FORTRAN info docs.
Submitted by:	Mark Murry
1999-04-25 17:09:48 +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
obrien
025141faad Move HAVE_CONFIG_H define to global cc/ Makefile so all can share the benifits. 1999-04-18 09:42:56 +00:00
obrien
97db6d0b10 *** empty log message *** 1999-04-18 09:41:49 +00:00
obrien
7a7b31aa6c Use inherited BINDIR defintion. 1999-04-18 09:39:38 +00:00
obrien
c00cfee64b Include the parent Makefile.inc so we get a proper BINDIR definition.
As explained by:	bde
1999-04-18 09:36:11 +00:00
obrien
b89c50491d Hookup the new FORTRAN compiler. Define `NO_FORTRAN' to not compile it. 1999-04-18 09:34:01 +00:00
obrien
f5af675abe Add the EGCS g77 FORTRAN compiler. 1999-04-18 09:33:25 +00:00
obrien
5a2a7a621f Minimum change to convert from home-grown f77 to EGCS's g77.
(Pre-bdelinted)
1999-04-18 09:22:56 +00:00
obrien
d26d808af6 Make room for g77. 1999-04-18 09:17:31 +00:00
markm
3f5095a2fa As the INFO stuff un doc/ works, we may as well build/install it.
OK'ed by:	obrien
1999-04-13 17:56:28 +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
217c68f1e1 Clean up some stuff that's no longer used. 1999-04-08 15:43:36 +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
obrien
4413bdb033 Use Haifa scheduler on the Alpha. 1999-04-06 20:08:01 +00:00
peter
cc69e950c0 Fix type mismatch.. 1999-04-05 10:18:50 +00:00
obrien
eae521d2fd Correct contents for the EGCS compiler documentation.
Currently it is unbuildable, but an info-aware developer should be able to get
this working w/o too much trouble.
1999-04-05 07:10:13 +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
imp
e346b32961 Remove mkstemp.c from build. This is now in libc.
Tested by: make buildworld
1999-04-04 20:29:43 +00:00
obrien
dd605303bb didn't get latest version:
Don't conditionalize -I${.CURDIR}/../cc_tools
1999-04-04 17:11:00 +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
obrien
3ab362d927 `make world' works fine -- no reason to revert the move to gnu/lib/ 1999-04-02 17:35:14 +00:00
obrien
c901bebef2 Hookup libgcc at gnu/lib instead of gnu/usr.bin/cc
(libgcc was repository copied for me by Peter)
1999-03-31 06:30:40 +00:00
peter
a8b74b8641 Remove BINFORMAT/a.out/elf default hackery, it's elf by default internally
and doesn't need to use this.
1999-01-16 13:22:35 +00:00
jdp
ffcc901f03 Switch to using ".So" as the extension for PIC object files rather
than ".so".  The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.
1999-01-09 21:51:00 +00:00
imp
de27adfbe9 Another instance where we default to elf only on alpha, but should
default to aout only on i386.
1998-10-26 18:27:32 +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
peter
518d6b5e04 Replace use of non-standard ld -O with a ld -o / mv combination as used
elsewhere in the tree.  Binutils doesn't support the -O hack^H^H^H^H
extension.  (actually, it ignores it for option compatability with some
other OS).
1998-10-06 11:28:29 +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
phk
2e8d660a6e During compilation of a Fortran program f2c/f77 will spew the
name of entry points, functions, subroutines, and program to
stderr error.  The enclosed patches do 3 things:

     (1) Silenced the output to stderr.
     (2) Added a -v option to f2c and f77.  This will turn on a verbose
         mode, and dumps quite a bit of stuff to stderr.
     (3) Updated the f2c man page.

PR:		7369
Submitted by:	Steven G. Kargl <kargl@troutmask.apl.washington.edu>
1998-07-24 07:13:57 +00:00
bde
fd69522643 Use a different hack for building libgcc2: `XCC= ${CC}' instead of
`XCC= <relative cc> -B<path to relative cc1> ...'.  This is equivalent
when cc and cc1, etc. have just been bootstrapped by `make world'.
The relative versions normally won't work if the target system is
not binary compatible.  Bootstrapping different versions of gcc
without going through `make world' is slightly more broken than
before.

Uniformized macro names (P1OBJS -> LIB1POBJS, etc.).

Don't give full paths to sources.
1998-07-08 00:45:50 +00:00
bde
39ff18089a Use the installed versions of cc, cc1 and cpp for building underscore.
They have been bootstrapped by `make world' since long before the
hacks here were cloned from ../libgcc/Makefile.  The versions just
built in "../*" normally won't work if the target system is not binary
compatible.

Don't use OBJS to defeat `make depend'; just put generated sources in
SRCS.

Added temporary files to CLEANFILES.
1998-07-08 00:14:15 +00:00
bde
6983ae1644 Added a `build-tools' target for internal tools. 1998-07-07 01:51:18 +00:00
bde
0d10950020 Simplified using new yacc rules. This is cosmetic - the old rules worked
with `make -jN' because they did the right things to generate cexp.h
without clobbering cexp.c, and there were no missing dependencies on
cexp.h because cexp.h isn't actually used.

Fixed style bugs.
1998-05-04 16:58:50 +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
eb2023510e Support building of libgcc.a without building all of gcc. This is
useful for bootstrapping.  Compatible versions of gcc and cc1 should
should be installed before using this feature.
1998-03-23 12:23:13 +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
obrien
0860d00e59 I goofed on the `LINKS' syntax.
Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1998-03-18 12:28:09 +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
obrien
28359c5db0 add CC' as a link to c++' for compatablity with SGI. 1998-03-08 12:27:04 +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
jb
309ec7a4ef Replace i386 references with ${MACHINE} to make this makefile almost
machine independent, with the only dependency being the binary format
to build. We only expect to build ELF on alpha although we'll need
ECOFF compatibility with Digital Unix.
1998-01-11 04:10:26 +00:00
bde
67fdac0638 <bsd.prog.mk> has included ../Makefile.inc for a long time, and there
are no complications involving .PATH or dependencies, so don't include
it here.
1997-12-17 19:57:35 +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
pst
1b991716a4 NOSHARED takes a yes/YES no/NO value, not "true, false, hey mon!".
NOPIC is used to not generate a shared library, not NOSHARED.
Make NOSHARED advisory where appropriate.
Remove bogus NOSHARED (kbdio).
1997-06-29 06:03:42 +00:00
jdp
a310835bda Change a "=" to "?=" to make it easier to override the binary format
from the environment.
1997-03-28 04:45:30 +00:00
peter
245ba20d12 Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00
jkh
acb5565ffe Remove incorrect use of double-negative since it means the same thing
to make but perhaps not to the human reading it.
1997-01-21 18:16:02 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
wosch
71f5160702 Sort cross references. 1997-01-13 00:25:51 +00:00
jmacd
76a0431f96 Add the missing annotations. 1997-01-11 02:59:52 +00:00
peter
9aec27bf17 Build/install c++filt from g++, we already have all the sources and
it's and useful. (Ever tried to read 'nm' and 'ldd -v' output on a c++
object or library? :-) This filter decodes the mangled symbol names.)

Requested by: Chuck Robey <chuckr@glue.umd.edu>
1996-10-13 17:37:03 +00:00
peter
f24d68a73a Resync the libgcc functions list with the 2.7.2.1 tree. We were building
a (now) defunct routine that no longer exists (causing an empty .o file),
and were missing some others.  Some of the ones we were missing are no-ops
on the i386, so there are now 4 empty .o files.

(It seems that libc/quad has got some defunct functions now)
1996-10-01 03:47:36 +00:00
peter
69ea9ac338 Don't build config/i386/i386.o in the src/contrib/gcc tree..... :-] 1996-10-01 03:44:29 +00:00
bde
0f0cfd5fc9 cpp was named ccp. 1996-09-23 16:12:38 +00:00
peter
58119af893 Crude hack to work around cpp.1 doing a .so man1/cccp.1
Pointed out by: Warner Losh <imp@village.org>, PR#1667
1996-09-23 04:14:30 +00:00
jkh
21cce4367c Nuke a trailing .endif which survived Peter's last edits. 1996-09-21 17:49:45 +00:00
peter
e18a0a6953 Remove the partial support for a shared -lcc_int, since it's been unusable
for a fair while.  cc1, cc1plus etc have been linked static for some time.
1996-09-21 14:27:38 +00:00
peter
091fc15006 Man the lifeboats! Tie down the hatches! Red alert! Activate gcc-2.7.2.1!
(the old cc has been tagged with "gcc_2_6_3_final" so we have a reference
 point in case of unforseen disasters...)

This has the objc backend active, and I think I've managed to get the
f77 f2c support through in one piece, but I don't know fortran to test it.

A 'make world' change and libobjc commit will follow.

If you normally do 'make -DNOCLEAN world', do not do so this time, I know
it can fail with groff.

This version of gcc makes a **LOT** more warnings on our kernel.
1996-09-19 15:53:53 +00:00
jkh
730964efd2 General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
jkh
8eb37231d4 Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src.  This is the final version of the
patches, incorporating the feedback I've received from -current.
1996-06-24 04:26:21 +00:00
phk
228b60073e Make rules reentrant. 1996-05-28 00:34:38 +00:00
wosch
9f795376b3 `mv'' -> `mv -f''
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root
1996-05-07 23:19:49 +00:00
joerg
d210241fb1 f2c's -krd does not work with f77 wrapper
Closes PR # gnu/1101

Submitted by:	kargl@troutmask.apl.washington.edu (Steven G. Kargl)
1996-03-27 07:46:04 +00:00
mpp
279ebaafa0 Add some missing MLINKS, correct some cross references, correct some
file locations and some minor formatting/style problems.
1996-02-09 16:20:10 +00:00
graichen
11666fb7b7 Reviewed by: jmz (Jean-Marc Zucconi)
added a simple man-page for our f77 (f2c/gcc driver)
1996-01-16 10:21:45 +00:00
jkh
4a90ebf4b4 Work around optimizer strength reduction bug.
Submitted by:	Richard Henderson <richard@atheist.tamu.edu>
Obtained from:	bug-gcc@prep.ai.mit.edu
1996-01-04 04:44:47 +00:00
bde
8dd11ac8d7 Enabled my FUNCTION_PROFILER_EPILOGUE code and added option
-mprofiler-epilogue to support it and documented the option.

cc.1:
Listed all the machine-dependent options, even the temporary
debugging ones.

invoke.texi:
Fixed the sense of -mno-ieee-fp.
Sorted the machine-dependent options.
1995-12-26 01:34:39 +00:00
dg
6855a7ee1e When building -static, link with special scrt0.o instead of crt0.o. This
reduces the text size by about 1.5Kbytes.
1995-10-18 04:28:31 +00:00
wollman
37032df4d8 Make cc1plus smaller and faster as was done for cc1 by linking static. 1995-10-02 16:37:16 +00:00
dg
f1e6db2117 Build cc1 nonshared. This actually results in it consuming 40K *less* disk
space and improves compile times by a few percent.
1995-10-01 20:16:27 +00:00
phk
d6ac54a0db Stop using gnumalloc. 1995-09-22 14:14:32 +00:00
joerg
4d820dd715 Make only a -r' flag (as opposed to -r*') special within the
LINK_SPEC.  This solves a problem with the f77 frontend where
aproviding the -r8 option (use REAL*8) caused `cc' to ``forget'' to
pass the entry point to the linker.

Closes PR #gnu/644: f77 -r8

Reviewed by:	watanabe@komadori.earth.s.kobe-u.ac.jp (Takeshi WATANABE)
1995-08-04 17:11:32 +00:00
bde
6084d1328b Fix dependencies for gcc.info and reno.info. `make depend' doesn't handle
info files although texinfo supports @include.
1995-07-12 18:57:21 +00:00
rgrimes
2ad6f3dee6 Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
rgrimes
822ee59bc8 Make error message for no input files specified consistent across all
three compilers.

Submitted by:	Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
1995-05-17 01:03:56 +00:00
nate
a8fc310bb0 Gcc v2.6.3 currently has a problem with templates. Specifically, with
default switches, template functions get EXTERNAL linkage in each file
in which they occur, causing multiple definition errors during
linking.  The enclosed patch (from gnu.g++.bug) appears to solve the
problem (I enclose the accompanying message as well).

This patch fixes the multiply defined template functions bug
which was introduced in 2.6.1.

Submitted by:	"Justin T. Gibbs" <gibbs@estienne.cs.berkeley.edu>
Obtained from:  Jason Merrill at cygnus support on G++ mailing list
1995-03-17 21:24:25 +00:00
ache
89035f0233 Bump SHLIB_MAJOR to 263 to match ../Makefile.inc 1995-03-13 01:30:02 +00:00
phk
24967b010d Don't install shared libgcc, we can't do it this way.
I will uuencode and check in to a "compat20" area the 2.0-RELEASE version.
1995-03-12 20:17:07 +00:00
bde
abc6403b3f Remove the last vestige of COMMENT_BEGIN. 1995-03-12 11:47:20 +00:00
bde
5220512ff6 Undo most of the changes in the gcc-2.6.3 "upgrade"
- Don't define NO_IMPLICIT_EXTERN_C here.  It is already the default
  (defined in i386/bsd.h).
- Don't lose the fixed comment about FUNCTION_PROFILER.
- Don't lose the define of NO_PROFILE_DATA.

Replace the unused define of COMMENT_BEGIN by the less-unused define
of ASM_COMMENT_START.  COMMENT_BEGIN was only defined in i386-specific
files and was not used in any part of gcc-2.6.3.  ASM_COMMENT_START
is defined for several targets and is used for stuff that we don't
support (dwarf).
1995-03-12 11:45:12 +00:00
phk
eecc960e1b Remove a bunch of funtions that are in libc already.
Add back the shared libgcc, now that we don't use it to link against.
1995-03-12 09:37:26 +00:00
nate
bf749b932c Added support for #pragma weak.
Obtained from: NetBSD
1995-03-11 04:07:26 +00:00
nate
def41e081c Updated the sources to gcc 2.6.3 with FreeBSD changes already applied.
Note: This isn't the most correct way, but it works and it's fast.
1995-03-11 03:51:44 +00:00
dg
6dc300b0a4 Define LINK_LIBGCC_SPECIAL_1 so that gcc will build static with libgcc. 1995-03-10 19:39:32 +00:00
phk
f41b04b4ad Since we are in the gcc bashing mood anyway: Add two changes for
basic-block profiling:
1. use a .stabs(25) symbol to link all the data structures together with.
The regular method isn't safe for the kernel.
2. add a BB before the prologue and add a BB after the epilogue,  this
alows us to find the length of any counted BB.  This is a cheap and somewhat
reasonable measure of actual cost.
1995-03-10 08:24:09 +00:00
jkh
3d98a98dec We can't bail out on generating the pic archive yet.
Submitted by:	bde
1995-03-06 12:17:49 +00:00
phk
06a16dc6b1 Don't make the shared libgcc. I don't belive we need the libgcc_pic.a
anymore, so I killed that as well.
1995-03-06 08:04:05 +00:00
phk
0b1b77445c "Various very violent dissections
disables dysfunctional disinformed namei's,
needlessly negating namei cache."

These hacks cuts the number futile attempts made by cc and ccp to find
cross-compilers and other weird stuff.  A make of the BOOTFLP kernel
has 20% less namei calls now, that is from 30647 down to 24563 calls.
1995-03-05 20:34:41 +00:00
ache
16946f3787 Add doc subdir 1995-01-22 21:56:38 +00:00
ache
a45b3b018f Add missing infopages 1995-01-22 21:54:49 +00:00
ats
bc52f83749 Install also a gcc.1 manual page as a link from cc.1, as long as
we have the link cc to gcc.
1994-12-26 19:15:19 +00:00
ljo
0cbabcf40f Added NO_IMPLICIT_C as our header files in standard locations are either
already C++ safe, or C++ header files.
This fixes the problem with parse errors in header files when compiling C++
files.
Recompiling libg++ also solves the undefined synbols problem.
1994-11-16 14:02:42 +00:00
phk
0a7f3ebca3 Integrated GCC-2.6.1 -> GCC-2.6.2 changes.
Notice that the libgcc DOESN'T change number, because there are no
changes.

Also now the gnu2bmake stuff is synchronized again.

I commit this so that others can test too.

You might want to postpone any "make worlds" until tomorrow, to
avoid any problems I didn't see in the first pass.

Thanks to Bruce for rounding up our changes to gcc.
1994-11-15 04:52:19 +00:00
phk
233a47503d As pointed out by Paul Traina, we need the libs to be 261.0 not 26.1. 1994-11-07 04:40:26 +00:00
bde
d224d42672 Restore my fixes to 2.6.0. The changes should not affect anything except
profiling and wchar_t.  Profiled libraries will shrink.

tm.h:
Our wchar_t is int, not unsigned short.
Always link statically if profiling.
Define all the SPECs together.

final.c, tm.h:
Don't emit unused profiling code and data.

aux-output.c:
Always preserve the PIC register if profiling.

aux-output.c, tm.h:
Implement FUNCTION_PROFILER_EPILOGUE (currently not used).

New:
tm.h:
Set the target defaults in the correct way.
1994-11-06 21:32:11 +00:00
phk
7b1ac038f5 Explicitly tell cpp where to look for include files. 1994-11-04 21:40:39 +00:00
phk
cca540823a Bump the version-number of the "shared-gcc-internals" library. Will only
affect you if you decided to use that feature.
1994-11-03 20:37:05 +00:00
jkh
e5f35a5762 Remove obsolete __386BSD__ predefine. 1994-11-03 14:29:57 +00:00
phk
bbd23b334d ----------------------------------
GCC-2.6.1 COMES TO FREEBSD-current
----------------------------------
Everybody needs to 'make world'.

Oakland, Nov 2nd 1994.  In a surprise move this sunny afternoon, the release-
engineer for the slightly delayed FreeBSD-2.0, Poul-Henning Kamp (28),
decided to pull in the new version 2.6.1 of the GNU C-compiler.
The new version of the compiler was release today at noon, and hardly 9
hours later it was committed into the FreeBSD-current source-repository.
"It's is simply because we have had too much trouble with the version 2.6.0
of the compiler" Poul-Henning told the FreeBSD-Gazette, "we took a gamble
when we decided to use that as our compiler for the 2.0 release, but it
seems to pay of in the end now" he concludes.
The move has not been discussed on the "core" list at all, and will come as
a surprise for most Poul-Hennings peers.  "I have only discussed it with
Jordan [J. K. Hubbard, the FreeBSD's resident humourist], and we agreed that
we needed to do it, so ... I did it!".  After a breath he added with a grin:
"My email will probably get an all time 'disk-full' now!".
This will bring quite a flag-day to the FreeBSD developers, the patch-file
is almost 1.4 Megabyte, and they will have to run "make world" to get
entirely -current again.  "Too bad, but we just had to do this."  Was
the only comment from Poul-Henning to these problems.
When asked how this move would impact the 2.0 release-date, Poul-Hennings
face grew dark, he mumbled some very Danish words while he moved his fingers
in strange geometrical patterns.  Immediately something ecclipsed the Sun, a
minor tremor shook the buildings, and the temperature fell significantly.
We decided not to pursure the question.

-----------
JOB-SECTION
-----------
Are you a dedicated GCC-hacker ?
We BADLY need somebody to look at the 'freebsd' OS in gcc, sanitize it and
carry the patches back to the GNU people.  In particular, we need to get
out of the "i386-only" spot we are in now.  I have the stuff to take a
gnu-dist into bmake-form, and will do that part.

Please apply to phk@freebsd.org

No Novice Need Apply.
1994-11-03 06:52:42 +00:00
pst
304e7e53f1 Put a real man page in for cpp(1)... it needs to be converted to the mandoc
macros,  but it's good enough for now.
Obtained from: gcc 2.6.0 gnu distribution
1994-11-02 08:18:25 +00:00
jkh
db9cea6779 Link g++ -> c++, like I did with gcc -> cc. This is evil, but it's
now at least orthogonal evil.
1994-11-01 21:28:00 +00:00
jkh
e7aabafcd3 Add LINKS to get gcc back. 1994-11-01 20:51:29 +00:00
ljo
fff1957107 Added f77 program. This is a modified version of the c++ program.
All it does is add -lf2c and -lm.
1994-10-25 14:36:50 +00:00
ljo
ffac1f6768 Added FORTRAN rule. 1994-10-25 13:36:02 +00:00
dg
b882a12ed1 Changed NO_SHARED_LIBCC_INT to SHARED_LIBCC_INT and changed the logic
as appropriate. This makes gcc not built with a shared cc_int the
default.
1994-10-25 07:02:23 +00:00
bde
6cd258e721 Don't build profiled library. 1994-09-20 22:03:09 +00:00
wollman
a414f736a7 For Bruce: -DNO_SHARED_LIBCC_INT reverts back to static libcc_int.
This makes the back end run faster, but at the cost of speed.
1994-09-19 21:37:50 +00:00
wollman
ce10b298df Make GCC's back end be shared among all languages. cc, c++, and cpp now
no longer link against the whole library, since they don't require much
from it, but just compile the few small modules they actually need static.

This should save a measurable amount of space; compare:

-r-xr-xr-x  1 bin   bin   155648 Sep 18 18:00 cc1*
-r-xr-xr-x  1 root  bin  1048576 Sep 18 17:33 cc1.noshae*

Of course, the library takes up a bit of space, but when you add in the
savings from the C++ compiler, you more than make up the difference:

-r--r--r--  1 bin  bin  1157344 Sep 18 18:27 /usr/lib/libcc_int.so.26.0
-r-xr-xr-x  1 bin  bin  491520 Sep 18 18:27 /usr/libexec/cc1plus*
1994-09-18 22:35:55 +00:00
rgrimes
45a0fdee2d Add q modifier (for long longs) support to -Wformat.
Reviewed by:	bde
1994-09-18 21:25:02 +00:00
bde
874994c7cd Disable one of my extensions (function profiler epilogues) that
we're not ready for yet.  gcc and all profiled libraries will need
to be recompiled.  I suspect that the dependencies aren't complete
enough to do this automatically.
1994-09-02 20:39:41 +00:00
dg
1095f127fc Use gnumalloc to help reduce memory consumption. 1994-08-29 17:38:28 +00:00
bde
4b07d8e782 Add dependencies on libraries to DPADD. Someday this should be done
automagically.  -lfoo has to be right to work, but ${LIBFO0} is too
easy to forget or misspell; nothing checks it and it should be
different for shared libraries.
1994-08-28 18:49:06 +00:00
paul
8312f29778 Fixed up everything so that the version of gcc that we install from the
FreeBSD system sources installs itself as the standard cc and c++. I've
fixed c++ to call cc instead of gcc and removed all the symlinks
that get created to g** version of the binaries. This means that
you can install a second version of gcc that does use the g prefix
alongside the "system" version of gcc. The only conflict is libgcc
but since we install it as libcc.so.26 and nothing else is likely
to that should be ok.

Reviewed by:
Submitted by:
1994-08-23 17:18:58 +00:00
paul
8388777da0 Added -f to rm so install doesn't abort if the file doesn't exist.
Reviewed by:
Submitted by:
1994-08-20 06:28:37 +00:00
wollman
723735466d Define __FreeBSD__ to be 2. 1994-08-10 06:12:51 +00:00
phk
6512454642 This commit was generated by cvs2svn to compensate for changes in r1933,
which included commits to RCS files with non-trunk default branches.
1994-08-08 04:45:29 +00:00
phk
4c5e434fda This gcc-2.6.0 should work with 2.0 1994-08-08 04:45:29 +00:00
phk
5ba9f35203 Here comes the right import of gcc-2.6.0. 1994-08-02 20:15:59 +00:00
phk
4d3996ec21 This commit was generated by cvs2svn to compensate for changes in r1823,
which included commits to RCS files with non-trunk default branches.
1994-08-02 20:15:59 +00:00
phk
49d4be764f Here comes the right import of gcc-2.6.0. 1994-08-02 20:15:59 +00:00