Commit Graph

1164 Commits

Author SHA1 Message Date
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
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
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
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
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
Bruce Evans
15d0bb0b98 Use foo/bar.a' instead of -Lfoo -lbar' for linking to static internal
libraries so that `ld -f' in can create correct dependencies for
yet-to-be-built libraries.

Get the default BINDIR correctly (by including ../Makefile.inc recursively.
1998-03-07 09:46:17 +00:00
Bruce Evans
6dd8984675 Use foo/bar.a' instead of -Lfoo -lbar' for linking to static internal
libraries, so that `ld -f' in can create correct dependencies for
yet-to-be-built libraries.
1998-03-07 08:55:00 +00:00
Guido van Rooij
52ed3a5d65 Open temporary files with O_EXCL.
Obtained from:bugtraq
1998-03-06 19:00:26 +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
Bruce Evans
dab4b2f347 Fixed `make -jN' for large N. Just put the generated headers in
${SRCS} instead of giving inadequate explicit dependencies.  There
is still a problem after `make depend; make clean'.  Then `make'
barely works, and `make -jN' is confused by absolute paths in
.depend.
1998-03-06 13:13:15 +00:00
John Polstra
b6e7a280a9 Fix the broken installation of strip. It tried to use the installed
strip program (via "install") to strip itself.  But the program
wasn't executable because "install" hadn't made it so yet.  I
borrowed the method used for the old strip to get around this.
1998-03-06 00:28:04 +00:00
John Polstra
2e280533a1 Add bmakefiles for building binutils from the contrib tree.
This finishes up the binutils import.  But I am leaving it disabled
in "src/gnu/usr.bin/Makefile" for now.  It is not used by anything
yet, so I'll take this opportunity to run one more round of tests
before enabling it.
1998-03-01 23:41:17 +00:00
Steve Price
ad42b1082d Build perl header files for machine/* too.
PR:		672
Submitted by:	Jun Kuriyama <kuriyama@opt.phys.waseda.ac.jp>
1998-02-21 04:06:24 +00:00
Jordan K. Hubbard
fd8d085898 Correct spammage from MACHINE_ARCH commit - you don't want to
*replace* the SUBDIR list in that case, you want to augment it.
Also move a stray .endif to its proper location.  Heh, no wonder my
release builds were falling over! ;)
1998-02-20 16:14:37 +00:00
Bruce Evans
e5eb0d8db1 Don't create an unused obj directory. 1998-02-20 11:18:57 +00:00
John Birrell
d975ec253b No binutils yet 8-(, and a few programs that need porting to alpha.
Make them i386 specific for now.
1998-02-19 09:34:59 +00:00
Steve Price
98add50f23 The ' character is treated differently as the first character of a line.
PR:		5754
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1998-02-15 17:03:58 +00:00