Commit Graph

342 Commits

Author SHA1 Message Date
David E. O'Brien
c8a1d5ccc3 Scoot things over to the temporary *.295 source while I do major construction
on the mainline sources.
2000-06-04 06:56:23 +00:00
David E. O'Brien
8e5f64732b Move c-decl.c out of the common libcc_int.a into the binary Makefiles
where it is used.  c-decl has symbols that conflict with several of the
cc1plus sources.

GNU `ld' was changed in Dec 1999 to be more be compatable with the way that
other linkers work (specifically in the Solaris linker).  The 2.9.1 `ld',
did the Wrong Thing in that if a library contained a common symbol that
matched a definition of that symbol in another (already linked in object)
it would also be linked in, even if there was no other reason to do so.
This is wrong.  The library should only be linked in if it contains
non-common, non-weak symbols which are needed by previously linked in
objects.
2000-05-24 20:02:21 +00:00
Bruce Evans
b323234ba7 Don't forget to clean f77.1.
Don't use "+=" for variables that are only set once.
2000-05-15 14:21:38 +00:00
Steve Price
dc886d4d77 Enable Haifa on sparc64 as well. 2000-04-02 22:51:02 +00:00
David E. O'Brien
ac419355a1 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
David E. O'Brien
7dfa5832e9 Make the SUBDIR list more granular to assist in my GCC hacking. 2000-03-19 23:47:50 +00:00
David E. O'Brien
10f16f0fe2 Make the build-tools objects weirder named so one can tell there is
something special going on here.
2000-03-15 05:13:53 +00:00
David E. O'Brien
658cec5b94 Move some cflag contents down to where they are acutally used. 2000-03-13 09:12:36 +00:00
David E. O'Brien
aef79b9c89 "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
Jason Evans
9ac40dffaf Track internal(!) libc symbol naming change. 2000-01-28 08:49:23 +00:00
David E. O'Brien
9c8a631de5 Merge cc_drv into cc_int. Merge more shared files into cc_int. 2000-01-24 20:12:05 +00:00
David E. O'Brien
54e6aeb25d Simply cc_tools/Makefile by moving the parser generation to the respective
backends.
2000-01-24 09:17:09 +00:00
David E. O'Brien
01573adf71 Style change to better match src/lib/'s Makefiles. 2000-01-24 08:44:30 +00:00
David E. O'Brien
0eb6f1f6c1 I *hate* using "i" in variables, looks too much like "1" or "l". 2000-01-23 22:46:00 +00:00
David E. O'Brien
b243983f32 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
David E. O'Brien
f076712ac1 Make mktemp.c a "normal" C implimentation when building this library. 2000-01-13 04:55:41 +00:00
David E. O'Brien
a344203d03 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
David E. O'Brien
2d410dba14 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
David E. O'Brien
da5bfe2f43 Didn't get these PREFIX specifiers removed with Makefile.inc rev 1.48.
Submitted by:	marcel
2000-01-02 22:57:34 +00:00
David E. O'Brien
253745e1fc 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
David E. O'Brien
8496474adb Fix cut-n-paste braino. 1999-12-22 05:34:56 +00:00
David E. O'Brien
a3d6eca585 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
David E. O'Brien
636e7b0455 Another style nit. 1999-12-22 02:16:21 +00:00
David E. O'Brien
6a36d46ee4 * 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
David E. O'Brien
f4d206c621 * 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
David E. O'Brien
665fb296a7 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
David E. O'Brien
e775328ff6 Revert rev 1.8.
NOT Approved by:	obrien
1999-12-08 16:00:08 +00:00
Marcel Moolenaar
1bc51f6ae7 Maintain compatibility with FreeBSD versions that don't have mkstemps 1999-12-08 13:53:16 +00:00
Marcel Moolenaar
3792991203 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
David E. O'Brien
690d1b00ac Make ObjC bits optional. NO_OBJC ==> don't need `em. 1999-11-27 21:52:55 +00:00
David E. O'Brien
f2b766ceb4 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
David E. O'Brien
4f095fcfa7 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
David E. O'Brien
5918196236 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
David E. O'Brien
e91a7e08cf Allow sub-Makefile's to determine the version of the OS we are make'ing on. 1999-11-17 07:42:40 +00:00
David E. O'Brien
312af410fe 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
David E. O'Brien
eb33411e9b Cut over the system compiler from from EGCS 1.1.2 to GCC 2.95.2. 1999-11-15 04:16:19 +00:00
David E. O'Brien
07123604c5 Purely cosmetic changes to lineup targets. 1999-11-15 00:29:00 +00:00
David E. O'Brien
356f7b8cd1 Cosmetic removeal of a trailing white space. 1999-11-15 00:25:01 +00:00
David E. O'Brien
b7969a0a9b Our capibilities updated for GCC 2.95.2. 1999-11-06 05:57:53 +00:00
David E. O'Brien
da488b7086 Minor cosmetic changes in an attempt to improve consistancy. 1999-11-04 04:46:04 +00:00
David E. O'Brien
96ace1a290 `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
David E. O'Brien
831ac5c655 Add a comment explaing the linking and segrated the old and new cases a little. 1999-10-12 20:27:53 +00:00
David E. O'Brien
047419e54f 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
David E. O'Brien
d0248b64a3 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 Wemm
9b7a44a60e $Id$ -> $FreeBSD$ 1999-08-27 23:37:10 +00:00
Peter Wemm
d3c6699913 Make gcc work on the Alpha again. alpha/alpha.h is used instead of svr4.h 1999-08-19 21:19:36 +00:00
David E. O'Brien
5e796f18b4 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
David E. O'Brien
b08a091980 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
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
0931d97ff3 Use Bison with "--broken-undeftoken-init". 1999-08-14 22:44:36 +00:00
David E. O'Brien
440976accd 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
Bruce Evans
d04f1c6acc Forgotten in previous log message:
PR:		misc/12920
1999-08-08 07:31:47 +00:00
Bruce Evans
bb9ac9f631 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
David E. O'Brien
c4dfebb2a6 Only use Bison to generate cc1plus's parse code. 1999-08-01 15:44:51 +00:00
David E. O'Brien
33f62e7951 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
David E. O'Brien
62562698d8 Use Yacc rather than Bison. 1999-07-28 07:22:08 +00:00
David E. O'Brien
316dc6cb31 The Unix way is arguments come before an input file name, not after. 1999-07-28 07:19:38 +00:00
Bruce Evans
636c549064 Don't override the (correct) default for BINDIR. 1999-07-04 15:51:39 +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
fe35213c90 use `target' macro crafted in parent Makefile rather than making our own
Submitted by:	Warner Losh
1999-04-25 17:23:28 +00:00
David E. O'Brien
90a3081603 Hookup FORTRAN info docs.
Submitted by:	Mark Murry
1999-04-25 17:09:48 +00:00
David E. O'Brien
52ae8152fa 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
David E. O'Brien
a834cf28a5 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
David E. O'Brien
403563f5aa 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
David E. O'Brien
df35f426d2 Add FORTRAN support. 1999-04-18 09:44:36 +00:00
David E. O'Brien
b414fa0fb0 Move HAVE_CONFIG_H define to global cc/ Makefile so all can share the benifits. 1999-04-18 09:42:56 +00:00
David E. O'Brien
1e2318cd6a *** empty log message *** 1999-04-18 09:41:49 +00:00
David E. O'Brien
58485a8a93 Use inherited BINDIR defintion. 1999-04-18 09:39:38 +00:00
David E. O'Brien
0af4cf134e Include the parent Makefile.inc so we get a proper BINDIR definition.
As explained by:	bde
1999-04-18 09:36:11 +00:00
David E. O'Brien
6253064e3f Hookup the new FORTRAN compiler. Define `NO_FORTRAN' to not compile it. 1999-04-18 09:34:01 +00:00
David E. O'Brien
083f04bdd4 Add the EGCS g77 FORTRAN compiler. 1999-04-18 09:33:25 +00:00
David E. O'Brien
ec237986a1 Minimum change to convert from home-grown f77 to EGCS's g77.
(Pre-bdelinted)
1999-04-18 09:22:56 +00:00
David E. O'Brien
aff31301d4 Make room for g77. 1999-04-18 09:17:31 +00:00
Mark Murray
a4e77b9b5f 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
Bruce Evans
192e833d22 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
Bruce Evans
5c2d3329d8 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
Bruce Evans
c4980fa9d1 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
David E. O'Brien
c98a60baa7 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 Wemm
8961398416 Clean up some stuff that's no longer used. 1999-04-08 15:43:36 +00:00
Peter Wemm
982be68f85 Clean up the multilib stuff so that it actually works..
cc -aout now works again.
1999-04-08 15:11:44 +00:00
David E. O'Brien
48dd62ca93 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
David E. O'Brien
3cda6d944a Due to other explicit dependancies, don't treat tree-check.h as a SRCS. 1999-04-08 09:57:51 +00:00
David E. O'Brien
c7c0914a22 Fix a circular dependancy. 1999-04-08 09:21:52 +00:00
David E. O'Brien
ec7feef657 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
David E. O'Brien
94389b2723 Use Haifa scheduler on the Alpha. 1999-04-06 20:08:01 +00:00
Peter Wemm
bd694cebfc Fix type mismatch.. 1999-04-05 10:18:50 +00:00
David E. O'Brien
2549292b15 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
David E. O'Brien
3da8ad7260 Conditionalize one more i386'ism. 1999-04-04 20:47:33 +00:00
David E. O'Brien
962ae20e3c Attempt at creating the right ``tm.h'' file for the Alpha. 1999-04-04 20:40:45 +00:00
Warner Losh
ce34abc1f0 Remove mkstemp.c from build. This is now in libc.
Tested by: make buildworld
1999-04-04 20:29:43 +00:00
David E. O'Brien
07872b08c4 didn't get latest version:
Don't conditionalize -I${.CURDIR}/../cc_tools
1999-04-04 17:11:00 +00:00
David E. O'Brien
18ff6ae909 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
David E. O'Brien
4489a6d428 `make world' works fine -- no reason to revert the move to gnu/lib/ 1999-04-02 17:35:14 +00:00
David E. O'Brien
b3f059f4d5 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 Wemm
f6866643a6 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
John Polstra
f92bdbd010 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
Warner Losh
f377c8d851 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
Bruce Evans
19e595a57a 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 Wemm
6c1d8f3fd8 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
John Birrell
62d43a3bfc 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
Poul-Henning Kamp
24db6e216f 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
Bruce Evans
07b64a25d2 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
Bruce Evans
0cc5719c0a 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
Bruce Evans
6d31e616a0 Added a `build-tools' target for internal tools. 1998-07-07 01:51:18 +00:00
Bruce Evans
b03605afba 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
Bruce Evans
93dce16147 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
Bruce Evans
5317c2da24 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
Bruce Evans
c5badc84cd 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
David E. O'Brien
c868efd590 I goofed on the `LINKS' syntax.
Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1998-03-18 12:28:09 +00:00
Bruce Evans
3ac62e921a 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
David E. O'Brien
e36ad15261 add CC' as a link to c++' for compatablity with SGI. 1998-03-08 12:27:04 +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
Bruce Evans
6acbf22513 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
John Birrell
3b306d567c 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
John Birrell
a3f1de88b2 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
John Birrell
df13e7f694 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
Bruce Evans
cee45d9aa8 <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
Jordan K. Hubbard
97fe7f477f 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
Paul Traina
72b4ef7179 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
John Polstra
a6660d6035 Change a "=" to "?=" to make it easier to override the binary format
from the environment.
1997-03-28 04:45:30 +00:00
Peter Wemm
fce15c9ab3 Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00
Jordan K. Hubbard
211253fcfd 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
Jordan K. Hubbard
1130b656e5 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
Wolfram Schneider
af20215665 Sort cross references. 1997-01-13 00:25:51 +00:00
Joshua Peck Macdonald
dfc62077a2 Add the missing annotations. 1997-01-11 02:59:52 +00:00
Peter Wemm
4023b3033b 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 Wemm
090d47a84f 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 Wemm
a4136bfcfc Don't build config/i386/i386.o in the src/contrib/gcc tree..... :-] 1996-10-01 03:44:29 +00:00
Bruce Evans
08eb1b8719 cpp was named ccp. 1996-09-23 16:12:38 +00:00
Peter Wemm
6f78ed368c 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
Jordan K. Hubbard
926a83ef42 Nuke a trailing .endif which survived Peter's last edits. 1996-09-21 17:49:45 +00:00
Peter Wemm
8fb64f20b5 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 Wemm
a1b588fd3f 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
Jordan K. Hubbard
526195ad0d General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
Jordan K. Hubbard
cd9a2f5c28 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
Poul-Henning Kamp
4fbec7bfd1 Make rules reentrant. 1996-05-28 00:34:38 +00:00
Wolfram Schneider
9fb933075e `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 Wunsch
4e20deaab3 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
Mike Pritchard
6fad16fd59 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
Thomas Graichen
485a4a95e8 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
Jordan K. Hubbard
48551fe40b 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
Bruce Evans
1f4f6e61d4 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
David Greenman
694ae82790 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
Garrett Wollman
401a157932 Make cc1plus smaller and faster as was done for cc1 by linking static. 1995-10-02 16:37:16 +00:00
David Greenman
1661971e0f 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
Poul-Henning Kamp
0ad2ff70ee Stop using gnumalloc. 1995-09-22 14:14:32 +00:00
Joerg Wunsch
6aefd62078 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
Bruce Evans
460396d6ee 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
Rodney W. Grimes
4399be3cbd Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
Rodney W. Grimes
58d8a5e922 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 Williams
738ff67657 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
Andrey A. Chernov
4ad6de4413 Bump SHLIB_MAJOR to 263 to match ../Makefile.inc 1995-03-13 01:30:02 +00:00
Poul-Henning Kamp
0282d7a383 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
Bruce Evans
dad6f71aed Remove the last vestige of COMMENT_BEGIN. 1995-03-12 11:47:20 +00:00
Bruce Evans
60ae9f8840 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
Poul-Henning Kamp
fd6eef4fd9 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 Williams
c6bc11c2f6 Added support for #pragma weak.
Obtained from: NetBSD
1995-03-11 04:07:26 +00:00
Nate Williams
b18f8c1dda 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
David Greenman
c683527908 Define LINK_LIBGCC_SPECIAL_1 so that gcc will build static with libgcc. 1995-03-10 19:39:32 +00:00
Poul-Henning Kamp
93ccf2fa5e 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
Jordan K. Hubbard
fdf5c453e0 We can't bail out on generating the pic archive yet.
Submitted by:	bde
1995-03-06 12:17:49 +00:00
Poul-Henning Kamp
3d496ce9e4 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
Poul-Henning Kamp
fcb2469be6 "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
Andrey A. Chernov
95f51c5b57 Add doc subdir 1995-01-22 21:56:38 +00:00
Andrey A. Chernov
ae46450f21 Add missing infopages 1995-01-22 21:54:49 +00:00
Andreas Schulz
d5a22d48c4 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
L Jonas Olsson
0066ef2281 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
Poul-Henning Kamp
8ab1d79d16 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
Poul-Henning Kamp
b80d982b84 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
Bruce Evans
374047c149 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
Poul-Henning Kamp
bf859da2b2 Explicitly tell cpp where to look for include files. 1994-11-04 21:40:39 +00:00
Poul-Henning Kamp
84e25b852b 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
Jordan K. Hubbard
03076d6bbf Remove obsolete __386BSD__ predefine. 1994-11-03 14:29:57 +00:00
Poul-Henning Kamp
fe7dee4700 ----------------------------------
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
Paul Traina
e8aae93744 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
Jordan K. Hubbard
ad26d58d52 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
Jordan K. Hubbard
4d9190ae3a Add LINKS to get gcc back. 1994-11-01 20:51:29 +00:00
L Jonas Olsson
0abc0dba57 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
L Jonas Olsson
1f967df0a4 Added FORTRAN rule. 1994-10-25 13:36:02 +00:00
David Greenman
b2075ecc44 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
Bruce Evans
00f21b4680 Don't build profiled library. 1994-09-20 22:03:09 +00:00
Garrett Wollman
0385520e72 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
Garrett Wollman
b4aca961be 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
Rodney W. Grimes
a861b63c28 Add q modifier (for long longs) support to -Wformat.
Reviewed by:	bde
1994-09-18 21:25:02 +00:00
Bruce Evans
4c06fcce4e 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
David Greenman
6439f9e911 Use gnumalloc to help reduce memory consumption. 1994-08-29 17:38:28 +00:00
Bruce Evans
2577a8acef 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 Richards
6f1537dd90 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 Richards
c13a11ac11 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
Garrett Wollman
0a9783e5a2 Define __FreeBSD__ to be 2. 1994-08-10 06:12:51 +00:00
Poul-Henning Kamp
250fc6c839 This gcc-2.6.0 should work with 2.0 1994-08-08 04:45:29 +00:00
Poul-Henning Kamp
b75deec600 Here comes the right import of gcc-2.6.0. 1994-08-02 20:15:59 +00:00