Commit Graph

1830 Commits

Author SHA1 Message Date
jb
0955429cc8 Allow the makefile to choose the perl executable to run h2ph rather
than relying on the #!/usr/bin/perl in the first line of the script.
1998-05-12 23:02:14 +00:00
jb
857a750462 If perl exists in OBJDIR it has just been built; if it exists in
CURDIR it has been built without an obj directory; however if it is in
neither of those places, we expect it to be in DESTDIR.

Yes Bruce, I know this is broken because the host is not supposed to be
the same as the target, but we need to get the hosted build working
properly first before even attempting a cross compiled operating
system build. That will need to concept of TOOLSDIR or something that
can be mapped to DESTDIR in the case of a hosted build and set to the
installed tools in a cross compiled build. Later, later, later!
1998-05-12 22:51:34 +00:00
jb
d7b2905312 Change .if to .elif to prevent the current directory path search for a
perl executable from overriding the object directory path search where
perl is most likely to be. Most people haven't seen this because it
defaulted to /usr/bin/perl which might be OK as a fallback, but when
bootstrapping a new version (or the *first* version on alpha), we don't
really want to use /usr/bin/perl.
1998-05-12 22:32:03 +00:00
jb
ad6cba6f81 awk and groff (et al) now work on alpha as the result of library
fixes.
1998-05-12 21:07:45 +00:00
bde
400020b8c9 Don't attempt to read process context from the kernel when (the
kernel's) curproc is null.  This fixes endless recursion in
xfer_umem() for attempts to read from user addresses, in particular
for attempts to read %fs and %gs from the pcb for `info reg'.
1998-05-12 16:49:13 +00:00
jb
1538b84478 The yacc makefile changes don't seem to know when to generate the
header file and when not to, so for the time being make sure the
sucker gets generated up front.
1998-05-11 09:33:55 +00:00
jb
bd175fde7d Add CROSS_TARGETS to the list of GASES to build. We end up with a separate
gas for each target format. So for m68k targets that means several
gases. I wanted a m68k gas for VxWorks which uses aout in sun3 big
endian format, cross compiled on i386 under FreeBSD using libraries
supplied by DEC and intended by them for cross compilation on Alpha
under OSF/1. And it actually works!
1998-05-11 09:31:17 +00:00
jb
56f89354f8 Make a path absolute. 1998-05-11 09:26:39 +00:00
bde
16b46848f9 Simplified by using new yacc rules and by not generating y.tab.h. 1998-05-08 06:41:06 +00:00
jb
f692a926a1 Fix the path. 1998-05-05 12:33:21 +00:00
jb
4f6564ed3b Specify an absolute include path.
Backout the previous commit in favour of the Makefile.inc added to
the parent directory.
1998-05-05 10:32:47 +00:00
jb
9ba533fa7b One of those silently included files that just about guarantee that
nobody has any idea how something like BINDIR gets defined.
1998-05-05 10:27:39 +00:00
jb
2e38ab65f6 The BINDIR definition is an extra directory level away, so include it
explicitly.
1998-05-05 08:57:11 +00:00
jb
774841113f Oops, missed the common part of gas. 1998-05-05 08:53:27 +00:00
bde
cbedbdf5b1 Don't generate a2p.h or y.tab.h from a2p.y. Neither is actually used,
and building a2p.h clobbered the unrelated source file a2p.h if
${.OBJDIR} == ${.CURDIR}.
1998-05-05 05:25:21 +00:00
jb
9de382a93c Support cross architectures by using specific directories instead of
the ones that match the host.
1998-05-04 22:09:10 +00:00
jb
f20e90aa53 i386 gas config files. 1998-05-04 22:05:54 +00:00
jb
b041393c3a Alpha gas config files. 1998-05-04 22:04:55 +00:00
jb
4d69d5fc11 Support cross-architectures using sub-directories. 1998-05-04 22:03:00 +00:00
jb
6534f3e8d1 Add support for cross-architecture gases. Since the GNU code doesn't
support more than one architecture at a time, build as from the
default for the host and if CROSS_TOOLS defines other architectures,
build them as as_${arch}
1998-05-04 22:01:27 +00:00
jb
2f0e7b1aa7 BINDIR is now specified in a single place. There are no cross-architecture
issues with this utility.
1998-05-04 21:51:32 +00:00
jb
bbfea6ea50 Work out the list of emulations based on the cross-architectures
defined. The TARGET is now set from an included makefile.
1998-05-04 21:38:46 +00:00
jb
b589c58ec2 Add cross-architecture support. 1998-05-04 21:29:54 +00:00
jb
f0eb2d4948 BINDIR is now specified in a single place. There are no cross-architecture
issues with this utility.
1998-05-04 21:27:17 +00:00
jb
c61cc8dcc3 BIDIR is now specified in a single place. There are no cross-architecture
issues with this utility.
1998-05-04 21:23:23 +00:00
jb
eeded739d5 Evaluate the TARGET from the architecture. We'll assume that FREEBSD
is ELF from here on.
1998-05-04 21:21:17 +00:00
jb
a0c54981d6 Remote i386 cross-architecture support. It's now configurable, and off
by default.
1998-05-04 21:18:46 +00:00
jb
fafa18013b Add cross-architecture support. 1998-05-04 21:16:46 +00:00
jb
b509eaa65e Since the makefiles below binutils with the architecture extension
are now included according to the cross-architecture support required,
default the BINDIR for i386 to /usr/libexec/elf here instead of in
all the i386 specific makefiles. For all other architectures, BINDIR
is just /usr/bin.
1998-05-04 21:13:50 +00:00
jb
e23f821a54 Add makefile support for cross-architectures. Allow CROSS_TOOLS to
be defined (in /etc/make.conf, say) and set to the additional architectures
that need to be compiled in. So on alpha I set CROSS_TOOLS = i386.
On i386 you can't build alpha due to lack of 64-bit support on 32-bit
architectures, but that's a GNU problem.

This change relies on makefiles in the binutils sub-directories having
the extension defined in the CROSS_TOOLS, instead of those makefiles
being selected based on the host architecture.
1998-05-04 21:10:56 +00:00
bde
f701fbc7d5 Fixed races in `make -jN' using new yacc rules. 1998-05-04 20:09:06 +00:00
bde
2717dada3e Don't add y.tab.h to CLEANFILES, since this would now be done centrally
if y.tab.h were generated.  Don't generate y.tab.h, since it is not used.
1998-05-04 18:13:54 +00:00
bde
2fe6b18aba Simplified using new yacc rules. This is cosmetic - the old rules
worked because .ORDER prevented problems from concurrent generation
of multiple parsers (and their headers), and there were no missing
dependencies because the generated headers were not actually used.
1998-05-04 17:56:22 +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
48c3a2da34 Fixed races in `make -jN' using new yacc rules. This also fixes plain
`make' (without a previous `make depend').
1998-05-04 16:31:41 +00:00
bde
b822598019 Fixed races in `make -jN' using new yacc rules.
Fixed slightly wrong order of -I's in CFLAGS.

FIxed the usual style bugs in DPADD and LDADD.
1998-05-04 16:22:30 +00:00
bde
3c9c899a57 Symlink awk.y to awktab.y so that the default yacc rules apply, and use
the (new) default yacc rules.  This is cosmetic - the special rule was
good enough here because y.tab.h is not used.

Don't generate y.output.
1998-05-04 16:18:57 +00:00
wosch
8d4385c3bb Added a alpha category to the list. 1998-05-04 10:13:08 +00:00
ache
47edcaa2b6 Do not store the same config.h twice - use one from bc directory 1998-05-01 19:20:42 +00:00
ache
070655b3a3 Add missing -DHAVE_CONFIG_H 1998-05-01 19:13:41 +00:00
bde
786ba30d95 Inherit BINDIR properly. 1998-05-01 14:48:06 +00:00
bde
141ed304a3 Fixed apparent bitrot (=' changed to ?=') in the definition of BINDIR
in the previous commit.  Just don't define it here at all.  This works
now that the default is inherited properly.
1998-05-01 14:44:00 +00:00
bde
cf6a14c047 Removed self-inclusion-prevention ifdef. It is unnecessary now that
bsd.man.mk doesn't include ${.CURDIR}/../Makefile.inc.

Removed GDBDIR-redefinition-prevention ifdef.  It hasn't done anothing
for a long time, if ever.  The directory is defined to the same value in
each subdir and had the same value because all subdirs are at the same
level.  Keep defining it in the subdirs since that is more flexible and
no more verbose.

Prepare to inherit BINDIR by including ../Makefile.inc.
1998-05-01 14:37:36 +00:00
bde
45937f1696 Oops, This should have been committed with the Makefile change that
requires the new file.

Fixed stale near-copy of contrib/libreadline/doc/hsuser.texinfo.  Patch
it at build ntime, and only keep the patch for it here.

Don't keep a copy of contrib/gdb/gdb/doc/all-cfg.texi here.  Link to it
at build time.
1998-05-01 14:13:00 +00:00
bde
e04d2296e3 Fixed dependencies.
Fixed stale near-copy of contrib/libreadline/doc/hsuser.texinfo.  Patch
it at build ntime, and only keep the patch for it here.

Don't keep a copy of contrib/gdb/gdb/doc/all-cfg.texi here.  Link to it
at build time.
1998-05-01 14:08:30 +00:00
des
d63405a02b Don't delete man pages with colons in their name (e.g. Perl 5 manpages)
PR:		bin/5439
Submitted by:	Martin Kammerhofer dada@sbox.tu-graz.ac.at
1998-05-01 13:27:27 +00:00
bde
dec484575f Added missing -DHAVE_CONFIG_H to CFLAGS. It happens to be a no-op here
only because dc doesn't use anything in the gnu library that has a
significant dependency on config.h.

Simplified paths.
1998-05-01 12:01:57 +00:00
andreas
6359ad8504 Style:
$Id$ should be preceded by a tab
Don't include ../Makefile.inc when it is not used explicitly
Use the normal amount of horizontal and vertical whitspace (1 tab/none)
Don't override the (correct) default for MAN1
Use the correct order for -I paths
Use config.h generated by `configure', don't use a huge CFLAGS statement
Enable useage of libreadline in config.h, configure didn't enable it itself.
1998-05-01 10:01:02 +00:00
andreas
68804e6179 Style:
- Makefiles shouldn't have copyrights.
- $Id$ should be preceded by a tab.
- Don't include ../Makefile.inc when it is not used explicitly.
- Use the normal amount of horizontal and vertical whitspace (1 tab/none).
- Don't override the (correct) default for MAN1.
- Use the correct order for -I paths.
- Don't use += to initialize SUBDIR.
- use the config.h generated by `configure' and don't use a huge
  CFLAGS statement.
I think the other Makefiles under src/gnu needs some polishing as well ;-)
Thanks to Bruce, everythig looks smarter now.
Obtained from:	Bruce Evans <bde@zeta.org.au>
1998-05-01 09:51:31 +00:00
dfr
f28fdede6f Add ELF support. 1998-05-01 08:40:11 +00:00
ache
1caaf9212f Add libtermcap to DPADD too 1998-05-01 04:42:53 +00:00
scrappy
8b6dce2fd0 -ltermcap is required due to -lreadline else you get missing functions
like 'tputs()' et al...
1998-05-01 02:49:40 +00:00
ache
2a8286ffd1 Use generated bc.h 1998-04-30 15:59:49 +00:00
ache
ae8c3806c0 Turn on Readline support 1998-04-30 08:14:04 +00:00
dfr
9adf2e878f Add support for ELF shared libraries. Also use bfd from the binutils in that
case rather than gdb's own copy.
1998-04-30 08:03:50 +00:00
ache
42b079b4f3 fix make - use -I${.CURDIR} instead -I. 1998-04-30 07:52:05 +00:00
ache
ffa68fade6 Fix make - use -I${.CURDIR} instead of -I. 1998-04-30 07:50:49 +00:00
dfr
e2f2fa5616 This was broken for ELF builds. 1998-04-30 07:38:27 +00:00
andreas
71fc3af9ec update dc utility as well
after importing the new bc-1.0.4 sources,
which contain the latest DNU dc version
1998-04-29 22:15:05 +00:00
andreas
e2ae216f29 remove old bc-1.0.3 stuff
modify Makefile, to get bc-1.0.4 from src/contrib/bc
adjust config.h
PR:		closes 4183
1998-04-29 22:05:39 +00:00
ache
2786576745 Upgrade to 2.2 1998-04-28 07:16:24 +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
eivind
c0f2ae8cbd Add an ".ifmake regress" to avoid warning during 'make world'.
Noticed by:	bde
1998-04-19 14:27:45 +00:00
bde
9567a1f6a8 Never generate neqn at install time (the previous fix for this was
incomplete).
1998-04-19 13:25:54 +00:00
jdp
5baccad631 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
jdp
4bc4bc7c1a 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
charnier
afb3022281 Use .An/.Aq. 1998-04-01 06:29:16 +00:00
charnier
eac30b4854 .Use .An. 1998-04-01 06:26:40 +00:00
charnier
d95c7c44f8 Use .An/.Aq. 1998-04-01 06:22:28 +00:00
charnier
f30464b574 Use .An/.Aq.PR: 1998-03-31 06:52:28 +00:00
jdp
54a2e31324 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
jdp
a5bc2e4247 Add c++filt. 1998-03-30 02:19:09 +00:00
jdp
7684bad78b 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
75dd8b8606 Activate CVS regression test. 1998-03-28 19:06:21 +00:00
dima
821e00d70f Don't build sperl if you don't want to. 1998-03-26 06:06:22 +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
bde
b538635a3e 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
bde
fc45e76739 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
bde
5e529e9107 Don't use beforedepend to complicate and break things. Just put
generated source files in SRCS.
1998-03-20 12:13:10 +00:00
bde
629a9e58ee 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
bde
ed4eec9721 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
bde
c9fc11ea7e 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
bde
c917c1de6c Removed bogus -I path. The correct path is in all subdir Makefiles
where it matters.
1998-03-20 11:08:52 +00:00
bde
40275f52e3 Removed vestiges of use of beforedepend target. 1998-03-19 15:21:19 +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
hoek
85e61b777e This is uulog.1, not uuname.1.
PR:		docs/5980
1998-03-16 15:07:50 +00:00
jdp
0d73dae29d Make the binutils strip ELF-only for now. It isn't quite right for a.out. 1998-03-15 02:08:04 +00:00
jdp
613bd0f631 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
jb
47cf5137be 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
bde
e835626991 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
jb
a7597a1ee0 Configure alpha to disassemble both alpha and i386 opcodes. 1998-03-12 13:02:46 +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
jb
af72b85fc7 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
jb
c83138a04c Define the target type for alpha. 1998-03-12 08:00:03 +00:00
jb
50a0cca4ea 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
jb
63bcfddd22 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
jb
d6c56448df 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
jb
dd10d9a1f7 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
jb
54a813ea3c 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
jdp
864bd8ab6e Replace empty install targets with definitions of INTERNALLIB and
INTERNALSTATICLIB to suppress installation of internal libraries.
1998-03-12 05:14:19 +00:00
jb
97b7e0762f 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
jdp
0ba671bfd1 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
ff3d055846 mktemp -> mkstemp as pointed out on bugtraq
Obtained from: Theo de Raadt
1998-03-10 19:43:27 +00:00
peter
02240a39a9 indicate ability to support the PerservePermissions stuff 1998-03-10 14:12:09 +00:00
peter
739fe19eee add new file (hardlink.c) into sources 1998-03-10 14:00:59 +00:00
jkh
5565285884 Eliminate duplicated lines.
PR:		5956
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.j>
1998-03-09 11:13:17 +00:00
jb
2d7cccd9cf 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
jb
54b75d875f This commit was generated by cvs2svn to compensate for changes in r34336,
which included commits to RCS files with non-trunk default branches.
1998-03-09 00:33:28 +00:00
jb
78ec3b77f6 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
84b7fbfa29 Use cc -E rather than cpp when looking for __ELF__ 1998-03-08 17:25:10 +00:00
obrien
28359c5db0 add CC' as a link to c++' for compatablity with SGI. 1998-03-08 12:27:04 +00:00
peter
5c52714e90 Set LIB_PATH explicitly otherwise genscripts makes (incorrect) references
all over the place.
1998-03-08 08:08:39 +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
wosch
bc665bbb6c Delete cc(1) debug option, typo from last commit.
Pointed out by: Søren Schmidt
1998-03-07 16:13:57 +00:00
bde
adad8e3b30 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
bde
6682846885 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
7322781b50 Open temporary files with O_EXCL.
Obtained from:bugtraq
1998-03-06 19:00:26 +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
bde
2f4e4d8c6f 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
jdp
9fa81114e9 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
jdp
45fccb8325 This commit was generated by cvs2svn to compensate for changes in r33975,
which included commits to RCS files with non-trunk default branches.
1998-03-01 23:41:17 +00:00
jdp
8222bc81a2 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
bde
c6e6ad163c Don't add streambuf.cc to SRCS twice. 1998-02-25 01:23:28 +00:00
steve
8049881931 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
jkh
fba9e5d663 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
bde
3912a8fcc1 Don't create an unused obj directory. 1998-02-20 11:18:57 +00:00
jb
7d1df0f942 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
jb
728d7b8b1a Just one of these libs left to port to alpha. 1998-02-19 07:30:06 +00:00
steve
4b339db2da 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
bde
7fdb812e6b Fixed printing of %fs and %gs for live kernels.
Only print the current pcb on startup.  Printing it every time a utility
routine was called messed up the register dump for live kernels.
1998-02-13 02:45:26 +00:00
alex
7ad6c0f9ab catman(1) is now invoked by /etc/periodic/weekly/330.catman. 1998-02-07 05:17:47 +00:00
jdp
d5b09c81ec Implement dladdr. 1998-02-06 16:46:46 +00:00
danny
db4c5c65ab Submitted by: Alex Nash
Style nit - extraneous space.
1998-02-04 07:04:44 +00:00
steve
fc4ac04352 setpwent and endpwent have a return type of void, so change this
to work like newer versions of perl.

Reviewed by:	Bruce Evans
1998-02-01 22:04:49 +00:00
peter
a1c4205142 comment that pvcs_to_rcs is left out since it needs perl5 1998-01-26 04:33:03 +00:00
peter
8520bf47b3 Add libdiff 1998-01-26 04:21:52 +00:00
peter
32b0e7a8bd Build the internal libified diff 1998-01-26 04:14:21 +00:00
peter
0c99e26aab Update options.h as per configure generated version 1998-01-26 04:02:05 +00:00
peter
5386f45a6a Update config.h 1998-01-26 03:59:21 +00:00
jb
014c10f649 Make machine dependent asm code machine dependent. 8-) 1998-01-25 09:52:32 +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
109ee64102 Modify for MACHINE_ARCH support instead of assuming just x86.
Added alpha and m68k stuff.
1998-01-25 09:45:00 +00:00
ache
2d8b453009 Add PATCH_INDEX_FIRST environment variable to do the same as -I option 1998-01-22 07:44:04 +00:00
ache
cbe4653fb0 Update usage line with new option 1998-01-21 15:15:39 +00:00
ache
3fb81ed571 Add -I or --index-first option to take Index: precedence over context diff,
as it was in hacked FreeBSD version
1998-01-21 15:10:14 +00:00
ache
bcf27ec126 Resurrect patch 2.1 without FreeBSD Index: hack 1998-01-21 14:37:27 +00:00
bde
b0334344b1 Fixed accesses to addresses between VM_MAXUSER_ADDRESS (normally
0xefbfe000) and kernel_start (normally 0xf0100000).

Things are unnecessarily (?) difficult because procfs is used to
access user addresses in the live-kernel case although we must have
access to /dev/mem to work at all, and whatever works for the
dead-kernel case should work in all cases (modulo volatility of
live kernel variables).  We used the wrong range [0, kernel_start)
for user addresses.  Procfs should only work up to VM_MAXUSER_ADDRESS,
but it bogusly works for reads up to the address 2 pages higher
(the user area, including the kernel stack, is mapped to where the
user area used to be (WTUAUTB)).  Procfs can not work at all for
addresses between WTUAUTB and kernel_start.

Now we use procfs only to access addresses up to VM_MAXUSER_ADDRESS.
Higher addresses are translated normally using kvtophys(), so the
user ptd is used for addresses below the real kernel start (0xf0000000;
see INKERNEL()) and nothing is found WTUAUTB.

Strange accesses that cross the user-kernel boundary are now handled,
but such ranges are currently always errors because they necessarily
overlap the hole WTUAUTB.

Short reads are still not handled.
1998-01-19 15:27:56 +00:00
bde
314c0741a9 Removed `kstack' and associated mistranslations in kvtophys().
Correct translations would have been null.  However, kstack was
the top of the kernel stack instead of the base of the kernel stack
like it was when the kernel exported it, so the area above the
kernel stack was mistranslated and the kernel stack was not
translated.  This bug was depended on to compensate for the wrong
value of kstack - to read the pcb, instead of just using the address
of the pcb, we used the mistranslated address of kstack, which
happened to be the same (curpcb = kstack - 0x2000).

This area is simpler than it used to be now that the kernel stack
address is per-process.  The code still seems to be more complicated
than necessary - the `found_pcb == 0' case seems to be unused.
1998-01-19 14:27:41 +00:00
bde
938d820d5a Fixed endless loop for `p/x *(int *)0xf0000000'. kvm_uread() in
gdb was cloned from the buggy version of kvm_uread() in libkvm and
had the same bugs.  It looped endlessly on EOF and checked errno
without setting it in the lseek() error check.  The first bug caused
gdb to loop endlessly for reads from addresses between the end of
the user area and the start of the kernel text.  kvm_uread() should
not be used for addresses beyond the end of the user area, but is
due to bugs elsewhere.
1998-01-18 13:18:55 +00:00