Commit Graph

1208 Commits

Author SHA1 Message Date
John Polstra
e5bbb2e4b5 Add the search directories from the hints file only the first time it is
opened.  After that, the directories are already present, and there is
no point in adding them again.  This doesn't fix any bugs; it's just for
efficiency.
1996-10-10 23:16:50 +00:00
John Polstra
7c6da7dcef Add a new option "-f hints_file" to specify an alternate file instead of
"/var/run/ld.so.hints".

Delete an incorrect statement about LD_LIBRARY_PATH from the manual
page.
1996-10-10 23:14:23 +00:00
John Polstra
9151bb8d2d Fix a bug that caused a segmentation violation if dlsym() was called
with its first argument equal to NULL.
1996-10-10 04:10:32 +00:00
Peter Wemm
210d012784 Use ${INSTALL} -C instead of -c. I did it with -C originally, but during
testing I changed it to -c to check for missed files by looking at time
stamps in /usr/include/g++.

Submitted by: "Philippe Charnier" <charnier@xp11.frmug.org>
1996-10-07 23:38:08 +00:00
Wolfram Schneider
e83201b43a delete doubled words, e.g.: "the the" -> "the" 1996-10-05 22:27:30 +00:00
Peter Wemm
74a20d397d Oops, an editing error at one point meant I had missed the osfcn.h header
(it was directly underneath where bool.h used to be in the list, I think
 I must have not been paying attention and deleted a word from the wrong
 line.  The machine that I was testing on still had an (old?) osfcn.h file)

Pointed out by: Andreas Klemm <andreas@klemm.gtn.com>
1996-10-04 15:11:42 +00:00
Jordan K. Hubbard
3cd2d3f69a "CONTINUE" was just too long. Make it a nice "OK" now. 1996-10-04 13:06:48 +00:00
Peter Wemm
cb03015500 To the Attic we go.. 1996-10-04 09:02:59 +00:00
Peter Wemm
5908a75555 Add genclass to the subdir list 1996-10-04 08:45:34 +00:00
Peter Wemm
e27edaff41 Add libstdc++ to the SUBDIR list 1996-10-04 08:44:26 +00:00
Peter Wemm
73456abd78 Update to use the contrib/libg++ version, now that my (slow) 486 has
finished a 'make world'.
1996-10-04 08:43:37 +00:00
Peter Wemm
3c4c579d13 Initial attempt at a bmakefile for genclass. 1996-10-03 23:00:09 +00:00
Peter Wemm
99dd87778d Initial shot at a bmakefile for libstdc++ 1996-10-03 22:52:23 +00:00
Peter Wemm
e8d53f09e3 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 Williams
9ac501e21b 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 Wemm
3e17261bac 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 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
Peter Wemm
9731d13765 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 Wemm
5584286a91 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 Wemm
d138df6140 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 Wemm
80c714994d 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 Wemm
b186571cf6 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 Wemm
d0a184df5d 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 Wemm
75f88ba495 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
Wolfram Schneider
0dde7f4fca xVERSIONx -> 3.2; close PR 1404 1996-09-28 18:31:30 +00:00
Wolfram Schneider
d7c71d3534 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
Wolfram Schneider
8a9374d25b test 37: [b-a] is a syntax error and exit with status 2 1996-09-27 19:40:39 +00:00
Wolfram Schneider
412467fa26 grep(1) should not parse manpages as arguments.
Now `apropos -xfer' works.
1996-09-27 17:36:50 +00:00
Wolfram Schneider
633b3caa8f 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
Bruce Evans
4523edce8b 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
Bruce Evans
0c8ea4d48c Eliminated includes of the "temporary" backwards compatibility header
<sys/dir.h> in applications.  Maintained existing (inadequate) ifdefs
for dir.h vs dirent.h in libdialog, amd and rarpd, but didn't add any
new ones.
1996-09-24 08:08:11 +00:00
Wolfram Schneider
e0e5145ce6 add missing comma(s) in .Xr macros 1996-09-23 22:24:39 +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
Paul Traina
79b3126fb3 Fix up some compilation warnings. 1996-09-22 00:55:46 +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
Bruce Evans
7dbead4e23 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
Andrey A. Chernov
b32992bc3f Replace GNU-made __P definition by standard from sys/cdefs.h 1996-09-20 14:33:48 +00:00
Peter Wemm
f19798ebd2 Add libobjc, the Objective-C runtime library. 1996-09-19 16:19:49 +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
Paul Traina
cfa804d6ba Grab h2ph from /usr/bin, not /usr/local/bin! 1996-09-17 01:14:18 +00:00
Wolfram Schneider
fe0614bf6e 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
Wolfram Schneider
728999c8b2 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
Bruce Evans
87d0dcafca 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
John Fieber
29c8b5b52b Add missing tmac.lj4 (for PCL driver) 1996-09-11 22:16:59 +00:00
Peter Wemm
aaa315477e add bison, gperf 1996-09-10 14:04:37 +00:00
Peter Wemm
4a82da6962 add bmakefiles 1996-09-10 14:03:12 +00:00
Peter Wemm
78c10f4a0d Add bmakefiles to compile bison. 1996-09-10 13:23:46 +00:00