Commit Graph

845 Commits

Author SHA1 Message Date
peter
90009f2575 Initial attempt at a bmakefile for genclass. 1996-10-03 23:00:09 +00:00
peter
084126c610 Ugly hack alert!
libg++'s exception code causes gcc to generate (ahem!) non-conventional
assembler code in -fpic mode that gas and ld choke on.  Basically, gas
and ld require than symbols referenced in the GOT (global offset table)
are actually global (as the name implies).  It attempted to work around
it before, but didn't quite go far enough to prevent a core dump in ld.
This hack causes GOT referenced symbols to be forced global.  This
probably breaks the __EXCEPTION_TABLE__ stuff in pic mode, but heck, it
wasn't even possible to compile with a shared library before at all.

I'm not 100% sure what the bug is.  There's two possibilities:
1: gcc/cp/exception.c has to be fixed to stop doing GOT references to
   local symbols, or
2: as/ld/symorder/ld.so etc need to be taught about how to keep local
   symbols around so that they can be dealt with in GOT references.

John Polstra's elfkit stuff seems to deal with this fine though, which is
why I think it's a "missing feature" in our hacked gas and ld..
1996-10-03 08:07:38 +00:00
nate
6a6edabfc3 There's no need to 'unsetenv()' unsafe environment variables explicitly
since rt_readenv() already takes care of not setting unsafe variables.
This was part of the changes I submitted to Peter and John during the
review which must have gotten missed.
1996-10-01 16:09:18 +00:00
peter
9c042c8f51 Sigh, oh well, here's my obligigatory "oops" commit. I don't quite know
how I managed to get this out of sync, but I did.  I guess that's what I
get for directly committing from different machines that I was testing on.

Pointed out by: Paul Traina <pst@freebsd.org>
1996-10-01 11:54:38 +00:00
peter
f24d68a73a Resync the libgcc functions list with the 2.7.2.1 tree. We were building
a (now) defunct routine that no longer exists (causing an empty .o file),
and were missing some others.  Some of the ones we were missing are no-ops
on the i386, so there are now 4 empty .o files.

(It seems that libc/quad has got some defunct functions now)
1996-10-01 03:47:36 +00:00
peter
69ea9ac338 Don't build config/i386/i386.o in the src/contrib/gcc tree..... :-] 1996-10-01 03:44:29 +00:00
peter
519e9b0911 Incorporate John Polstra's sods.c display of the details about the
dynamic linking information in the executable.  It's quite extensive.
It's connected to ldd's (new) -v option.
1996-10-01 02:16:16 +00:00
peter
7523d23ee7 Update to handle new version ld.so.hints and info in executable for
configurable fallback search paths, as well as new crt interface version.

Also:
 - even faster getenv(), get all environment variable settings in a single
   pass.
 - ldd printf-like format specifications
 - minor code cleanups, one vsprintf -> vsnprintf (harmless)

The library search sequence is a little more complete now. Before,
it'd search $LD_LIBRARY_PATH (by opendir/readdir/closedir), then read
the hints file, then read /usr/lib (again by scanning thr directory).  It
would then fail if there was no "found" library.

Now, it does LD_LIBRARY_PATH and the hints file the same, but then uses
a longer fallback path.  The -R path is fetched from the executable if
specified at build time, the ldconfig path is appended, and /usr/lib is
appended to that. Duplicates are suppressed.  This means that simply
placing a new library in /usr/local/lib will work (the same as it did in
/usr/lib) without needing ldconfig -m.  It will find it quicker if the
ldconfig is run though.

Similar changes have been made to the NetBSD ld.so, but ours is rather
different now due to John Polstra's speedups and fixes from a while back.

The ldd printf-like format support came direct from NetBSD.

Reviewed by: nate, jdp
1996-10-01 01:52:03 +00:00
peter
7ad318175d Support for specifying printf-like output specs to control the ldd output
as present in the new rtld version.

Obtained from: NetBSD
Reviewed by: nate, jdp
1996-10-01 01:34:32 +00:00
peter
23b0588846 Updates to deal with ld.so.hints version 2. It now deals with the
ldconfig path (from NetBSD).  I added code to make sure there were no
duplicates in the path when multiple ldconfig -m's were used.

Reviewed by: nate, jdp
Obtained from: NetBSD (partly)
1996-10-01 01:31:51 +00:00
peter
180a0b4f4a Update the backends to go with the top-level ld changes. The non-i386
changes are for completeness, I don't think they work.  There are changes
to deal with the new include files.

Obtained from: NetBSD (mostly)
1996-10-01 01:28:10 +00:00
peter
84a69ec571 Support for .weak (in addition to the N_INDR stab) for gcc/g++. Also deal
with the -R option and store the path in the dynamic header when specified.
The $LD_RUN_PATH environment variable is not checked yet.

While here, split up the code a bit more to enable more selective replacing
of GPL'ed components that are linked with ld.so with others.

Obtained from: NetBSD (mostly, the breakup is my fault)
1996-10-01 01:22:51 +00:00
peter
b3c93bb2d8 Mostly resync our gas with the NetBSD version to obtain support for
.weak as gcc and g++ would like to use.

This includes changes to other architectures mostly for completeness,
I don't expect cross-assemblink would work but I could be wrong.

Obtained from: NetBSD
1996-10-01 00:13:54 +00:00
wosch
1b3dbceedf xVERSIONx -> 3.2; close PR 1404 1996-09-28 18:31:30 +00:00
wosch
75b1ede7c4 grep -q pattern file
search 'pattern' in whole file 'file', from top to bottom.  This is
not necessary; if grep found 'pattern' it can stop further searching
in file 'file'.

Example:

$ time ./grep-old -q Adam /usr/share/dict/*
        1.93 real         1.05 user         0.85 sys
$ time ./grep-new -q Adam /usr/share/dict/*
        0.14 real         0.06 user         0.06 sys
1996-09-27 19:44:46 +00:00
wosch
5b3a6e6fa1 test 37: [b-a] is a syntax error and exit with status 2 1996-09-27 19:40:39 +00:00
wosch
6d1aa03c4c grep(1) should not parse manpages as arguments.
Now `apropos -xfer' works.
1996-09-27 17:36:50 +00:00
wosch
e5c1c9b037 Reverts exit status for man -k' and man -f'.
Man(1) now return 0 if apropos/whatis return 0, otherwise 1.
1996-09-27 17:34:57 +00:00
bde
86c863abe8 Really eliminated includes of the "temporary" backwards compatibility
header <sys/dir.h> in applications.  My previous sweep didn't find the
places that included it without needing it.
1996-09-24 08:43:04 +00:00
wosch
89dea7c61d add missing comma(s) in .Xr macros 1996-09-23 22:24:39 +00:00
bde
0f0cfd5fc9 cpp was named ccp. 1996-09-23 16:12:38 +00:00
peter
58119af893 Crude hack to work around cpp.1 doing a .so man1/cccp.1
Pointed out by: Warner Losh <imp@village.org>, PR#1667
1996-09-23 04:14:30 +00:00
pst
69c1743fff Fix up some compilation warnings. 1996-09-22 00:55:46 +00:00
jkh
21cce4367c Nuke a trailing .endif which survived Peter's last edits. 1996-09-21 17:49:45 +00:00
peter
e18a0a6953 Remove the partial support for a shared -lcc_int, since it's been unusable
for a fair while.  cc1, cc1plus etc have been linked static for some time.
1996-09-21 14:27:38 +00:00
bde
6b0658e42a Fixed bogus obj target (found by objwarn check).
Removed unnecessary clean and cleandir targets.  The defaults are
adequate and we never bothered overriding the default for all,
depend, lint or tags.,
1996-09-20 18:04:26 +00:00
ache
ee80f48141 Replace GNU-made __P definition by standard from sys/cdefs.h 1996-09-20 14:33:48 +00:00
peter
091fc15006 Man the lifeboats! Tie down the hatches! Red alert! Activate gcc-2.7.2.1!
(the old cc has been tagged with "gcc_2_6_3_final" so we have a reference
 point in case of unforseen disasters...)

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

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

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

This version of gcc makes a **LOT** more warnings on our kernel.
1996-09-19 15:53:53 +00:00
pst
9c17158b2b Grab h2ph from /usr/bin, not /usr/local/bin! 1996-09-17 01:14:18 +00:00
wosch
7393f67a3a Set enviroment variable PAGER=pager if using option `man -P pager'
This inherit variable PAGER for childs like whatis(1), e.g.
`man -P less -k man' should now work like expected.  Close PR#1068
1996-09-16 22:52:02 +00:00
wosch
e394564f76 Cleanup exit status; 2: syntax error, 0: keyword matched,
$exit_nomatch: no keyword matched. Default value for variable
exit_nomatch is 0 because `man -k' don't like exit status != 0

Detected by: "Stephen J. Roznowski" <sjr@zombie.ncsc.mil>
1996-09-14 23:20:33 +00:00
bde
318d275f52 Use `install -C' instead of lots of shell commands to install ld.so
as atomically as possible.

(Immutable targets can't be renamed without opening a window when
neither the source nor the target is immutable.  Perhaps there
should be a rename_immutable syscall to do this if unsetting the
immutable flags would work.)
1996-09-12 03:42:54 +00:00
jfieber
7c3ec65d08 Add missing tmac.lj4 (for PCL driver) 1996-09-11 22:16:59 +00:00
peter
6880e6f5ca add bison, gperf 1996-09-10 14:04:37 +00:00
peter
386d81bc82 add bmakefiles 1996-09-10 14:03:12 +00:00
peter
b40a8eb87a Add bmakefiles to compile bison. 1996-09-10 13:23:46 +00:00
phk
4485fb3705 DISTDIR is a reserved variable for make release
s/DISTDIR/DIST_DIR/g
1996-09-09 18:05:29 +00:00
pst
8a74fcec83 long live groff 1996-09-08 01:30:16 +00:00
pst
feea886ab3 ...long live groff 1996-09-08 01:27:58 +00:00
pst
cc80b2b6b6 Initial revision 1996-09-08 01:21:19 +00:00
pst
e9f0e5e59a Groff is dead... 1996-09-08 01:09:04 +00:00
pst
0d8a61c2c4 Add Russian language / koi8-r font support.
Original author: ache
1996-09-08 00:28:32 +00:00
pst
129fbb1250 Add psroff command 1996-09-08 00:26:24 +00:00
bde
11546f4616 Fixed DPADD. 1996-09-05 17:16:10 +00:00
peter
1709bebc56 forgot to reconnect easy-import to the Makefile 1996-09-05 08:43:50 +00:00
wosch
ab0ebe585d [HISTORY] command appeared in Version 1 AT&T UNIX
Obtained from: A Quarter Century of UNIX, Peter H. Salus, page 41
1996-08-29 18:06:19 +00:00
wosch
174e4e5199 add Version 1 AT&T UNIX to .At macro 1996-08-28 22:37:00 +00:00
bde
e4af5b3a59 Don't install zgrep twice. 1996-08-28 15:45:32 +00:00
wosch
0210175107 sync copyright with /usr/share/examples/etc/bsd-style-copyright 1996-08-27 20:04:45 +00:00
peter
bf3127c24b Ack! Don't install cvs.info.gz etc in /usr/bin... 1996-08-21 00:57:26 +00:00