Commit Graph

1619 Commits

Author SHA1 Message Date
John Polstra
261e267ac2 Fix the assembler so that it produces object files with the correct
magic number byte ordering for FreeBSD.  This makes "file" describe
our object files as "FreeBSD/i386 object" instead of as NetBSD
object files.  In case this seems drastic and risky, Bruce points
out that the "ld -r -x" step that is done on every object file when
building libraries fixes the byte ordering in the same way.  I have
been running with this patch for over a month and have seen no
problems.
1998-04-10 01:20:40 +00:00
John Polstra
b317bce843 Fix a bug which clobbered linker set symbols that had forward references.
With -O3, egcs generates such forward references.

PR:		gnu/6055
Reviewed by:	jdp
Submitted by:	Dmitrij Tejblum <tejblum@arc.hq.cti.ru> in slightly different form
1998-04-07 17:10:01 +00:00
Philippe Charnier
a88c04c647 Use .An/.Aq. 1998-04-01 06:29:16 +00:00
Philippe Charnier
54425adcfb .Use .An. 1998-04-01 06:26:40 +00:00
Philippe Charnier
cc3e67c760 Use .An/.Aq. 1998-04-01 06:22:28 +00:00
Philippe Charnier
69c4ee1e17 Use .An/.Aq.PR: 1998-03-31 06:52:28 +00:00
John Polstra
98ad0dae72 Give up on a.out support in binutils. It has too many problems to
be worth much effort.  Install all i386 binutils programs in
"/usr/libexec/elf".  Disable a.out support in libbfd.  It's too
dangerous to leave it in.  Some of the utilities think they can
handle a.out, but they generate bad object files.
1998-03-30 02:21:27 +00:00
John Polstra
dc84a8ccd6 Add c++filt. 1998-03-30 02:19:09 +00:00
John Polstra
c1e07c867e Add support for the AT&T style "fildll" and "fistpll" mnemonics.
These are equivalent to "fildq" and "fistpq" respectively.  This
fixes the bad floating point object code that resulted after recent
changes in the compiler.

Test driven by:	"Mike Burgett" <mburgett@awen.com>,
		Amancio Hasty <hasty@rah.star-gate.com>
1998-03-29 01:38:39 +00:00
Eivind Eklund
77b1218492 Activate CVS regression test. 1998-03-28 19:06:21 +00:00
Dima Ruban
0fcadac763 Don't build sperl if you don't want to. 1998-03-26 06:06:22 +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
Bruce Evans
71d8a2d21a Generate files at build time, not at install time. This should be the
last fix of this type.  Installing from a read-only object tree should
work now.

Install files using a single install command where this is easy; don't
use shell loops.

Don't use MANDEPEND to complicate things.
1998-03-21 12:12:55 +00:00
Bruce Evans
1bcade7428 Don't use beforedepend to complicate and break things. The usual
fix of putting generated source files in SRCS breaks many special
cases (many dependencies had to be incomplete for ${.ALLSRC}
not to give .h files that would break compiling with c++ -c).
Reduce these special cases to the general case so that SRCS works
normally and bsd.lib.mk handles most of the complications.  Now
we only have to duplicate rules from bsd.lib.mk to add special
CFLAGS in some cases.
1998-03-20 15:10:59 +00:00
Bruce Evans
267af6a411 Don't use beforedepend to complicate and break things. Just put
generated source files in SRCS.
1998-03-20 12:13:10 +00:00
Bruce Evans
e52ff61466 Put generated source files in SRCS. This fixes races generating
the source files.  E.g., the stale version of locate.cc in the
source directory was sometimes used.  We didn't even use beforedepend.

Added temporary files to CLEANFILES.

Fixed some style bugs.
1998-03-20 12:05:50 +00:00
Bruce Evans
71ab679790 Don't use beforedepend to complicate and break things. Just put
generated source files in SRCS.

Don't use MANDEPEND to complicate things.  Just put the generated
man page in CLEANFILES.

Partly fixed yacc header brokenness, as in ../eqn/Makefile.

Added temporary files to CLEANFILES.

Fixed some style bugs.
1998-03-20 12:04:59 +00:00
Bruce Evans
33c198cc5f Don't use beforedepend to complicate and break things. Just put
generated source files in SRCS.

Don't use MANDEPEND to complicate things.  Just set MAN1 and put
generated man pages in CLEANFILES.

Added temporary files to CLEANFILES.

Partly fixed a potentially fatal bug involving the yacc header.
We generate eqn.cc (even if there is a version of it in the source
directory older than eqn.y) and a matching eqn.tab.h, but only use
the possibly-non-matching eqn.tab.h in the source directory.  This
works because Cygnus's yacc happened to generate a y.tab.h identical
to the current generated one.  The correct version will be used
when the wrong version is deleted from the source tree.  Kludge to
get the header generated early enough.  Yacc headers are mishandled
everywhere they are renamed (and used).

Generate neqn at build time, not at install time.

Fixed some style bugs.
1998-03-20 12:03:53 +00:00
Bruce Evans
c0a15f333f Removed bogus -I path. The correct path is in all subdir Makefiles
where it matters.
1998-03-20 11:08:52 +00:00
Bruce Evans
3f9af06bf9 Removed vestiges of use of beforedepend target. 1998-03-19 15:21:19 +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
Tim Vanderhoek
de4372cc90 This is uulog.1, not uuname.1.
PR:		docs/5980
1998-03-16 15:07:50 +00:00
John Polstra
09ce8fd795 Make the binutils strip ELF-only for now. It isn't quite right for a.out. 1998-03-15 02:08:04 +00:00
John Polstra
66f259f3f5 Disable support for the a.out-i386-bsd target. Everything it can do
seems to be supported in the a.out-i386-freebsd target.  When both
are present, there are sometimes complaints of "ambiguous file
format."
1998-03-14 01:40:31 +00:00
John Birrell
eb61a18ee7 Add binutils if BINFORMAT is elf. This is needed for alpha, and it
works on i386, but is still disabled until you set BINFORMAT.
1998-03-13 19:34:40 +00:00
Bruce Evans
c9cbce0fdb Put sources in SRCS and don't depend on them in beforedepend. IIRC,
this is to fix `make -j50' where `make -j18' worked.  The race may
just have been more likely to be lost for -j50.
1998-03-12 13:03:06 +00:00
John Birrell
db7662af72 Configure alpha to disassemble both alpha and i386 opcodes. 1998-03-12 13:02:46 +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
John Birrell
38bc294e8d Configure bfd for elf64, elf32, and aout. Yes alpha can handle i386
formats. No i386 can't handle alpha formats. 8-)
1998-03-12 12:29:20 +00:00
John Birrell
ab9475bf88 Define the target type for alpha. 1998-03-12 08:00:03 +00:00
John Birrell
9fa2607935 Add the alpha makefile.
Move tc-i386.c from Makefile to Makefile.i386 'cause alpha doesn't
like trying to swallow it. Indigestion, I think.
1998-03-12 06:51:48 +00:00
John Birrell
ec14ed6ee5 Change the include path for bfd.h to libbfd/${MACHINE_ARCH} since
I moved the location of that architecture specific file.
1998-03-12 05:59:22 +00:00
John Birrell
06e95425f7 This file was generated on i386, so it has been moved to the i386
sub-directory. It differs from the alpha version.
1998-03-12 05:31:34 +00:00
John Birrell
823093fcc3 This file was generated on i386 by the update.sh script in
src/gnu/usr.bin/binutils.
1998-03-12 05:29:44 +00:00
John Birrell
8e6a3bf016 These files were generated on alpha by the update.sh script in
src/gnu/usr.bin/binutils.
1998-03-12 05:26:30 +00:00
John Polstra
f07eaee2fc Replace empty install targets with definitions of INTERNALLIB and
INTERNALSTATICLIB to suppress installation of internal libraries.
1998-03-12 05:14:19 +00:00
John Birrell
e6956da5e0 Change script to get the machine type from `uname -m' and make
the binutils headers for (machine)-unknown-freebsdelf.

Also copy the bfd.h header to an architecture specific directory
because there are two fundamental lines that differ (32-bit vs 64-bit)
between i386 and alpha.

The config.h for libbinutils generates the same on alpha as i386,
so I didn't change that (though I was tempted!).
1998-03-12 04:54:42 +00:00
John Polstra
ab5ad3a4b5 Restructure the binutils hierarchy somewhat in order to better
support building it for variant architectures.  It was already
becoming clear that the former structure was too rigid and didn't
scale well.

The usual sort of makefile magic arranges to .include an architecture
specific makefile "Makefile.${MACHINE_ARCH}" in each directory
where it exists.  Also, sources will be found in each subdirectory
"${MACHINE_ARCH}" that exists.  This is all taken care of automatically
by the top level "Makefile.inc0".

This all seems to work right for the i386 now.  I have also converted
those alpha pieces already present to the new schema as best I
could.

Also: change the BINDIR on the i386 to /usr/libexec/elf for "ar"
and "ranlib".  They are not object format independent enough to
put into /usr/bin.
1998-03-12 02:55:43 +00:00
Guido van Rooij
8cdf602055 mktemp -> mkstemp as pointed out on bugtraq
Obtained from: Theo de Raadt
1998-03-10 19:43:27 +00:00
Peter Wemm
0016b0f705 indicate ability to support the PerservePermissions stuff 1998-03-10 14:12:09 +00:00
Peter Wemm
7c4194d8b5 add new file (hardlink.c) into sources 1998-03-10 14:00:59 +00:00
Jordan K. Hubbard
c944287a6e Eliminate duplicated lines.
PR:		5956
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.j>
1998-03-09 11:13:17 +00:00
John Birrell
49ee5e93ce We want ld in /usr/bin, not some weird and wonderful hiding place
that might be inspired by some creation from Intel. Doh.
1998-03-09 06:07:27 +00:00
John Birrell
25c5530515 Import of alpha specific bits to configure binutils for FreeBSD/Alpha.
Other changes that affect the i386-elf work are on hold to avoid
stuffing up other work in progress.
1998-03-09 00:33:28 +00:00
Peter Wemm
aac18d035f Use cc -E rather than cpp when looking for __ELF__ 1998-03-08 17:25:10 +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
a4f46b7116 Set LIB_PATH explicitly otherwise genscripts makes (incorrect) references
all over the place.
1998-03-08 08:08:39 +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
Wolfram Schneider
32dcb97f3e Delete cc(1) debug option, typo from last commit.
Pointed out by: Søren Schmidt
1998-03-07 16:13:57 +00:00