Commit Graph

41 Commits

Author SHA1 Message Date
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
billf
c9ad0075c9 Make usage() reflect reality (add the -aout and -elf options).
OK'd by:	bde
1999-04-21 20:06:42 +00:00
jdp
7aadfa5c68 Add a new library function getobjformat(). It checks all the
standard places ("/etc/objformat", ${OBJFORMAT}, argv) for an
indication of the user's preferred object file format.  This
consolidates some code that was starting to be duplicated in more
and more places.

Use the new function in ldconfig.

Note: I don't think that gcc should use getobjformat(), even though
it could.  The compiler should limit itself to functions that are
widespread, to ease porting and cross-compilation.
1998-09-09 01:21:25 +00:00
jdp
705eaef8b8 Fix calls to mmap. It returns void *, and on failure it returns
MAP_FAILED.

Don't try to extend the mapping in place if it is too short.
There's no guarantee it will be possible.  Remap the file instead.

Put in a few style fixes.

Submitted by:	Bruce Evans <bde>
1998-09-06 20:43:25 +00:00
jdp
a1a2d181d2 For a.out mode, ignore shared libraries that don't have at least 2
version numbers.
1998-09-05 16:20:15 +00:00
jdp
6c76bd6d54 Implement ldconfig functionality for ELF. The hints are stored in
a different file than the a.out hints, namely, "/var/run/ld-elf.so.hints".
These hints consist only of the directory search path.  There is
no hash table as in the a.out hints, because ELF doesn't have to
search for the file with the highest minor version number.  (It
doesn't have minor version numbers at all.)

A single run of ldconfig updates either the a.out hints or the ELF
hints, but not both.  The set of hints to process is selected in
the usual way, via /etc/objformat, or ${OBJFORMAT}, or the "-aout"
or "-elf" command line option.  The rationale is that you probably
want to search different directories for ELF than for a.out.

"ldconfig -r" is faked up to produce output like we are used to,
except that for ELF there are no minor version numbers.  This should
enable "ldconfig -r" to be used for checking LIB_DEPENDS in ports
even for ELF.

I implemented the ELF functionality in a new source file, with an
eye toward eliminating the a.out code entirely at some point in
the future.
1998-09-05 03:31:00 +00:00
bde
b7b0859c3f Fixed printf format errors. 1998-08-02 16:06:35 +00:00
charnier
2cac39e5e4 Add rcsid. remove unused #includes. Getopt returns -1 not EOF. Add usage().
Cosmetics in err(3) string.
1998-07-06 07:02:26 +00:00
bde
c3dde99296 Fixed printf format errors. 1998-06-28 19:36:49 +00:00
peter
5523252adc Force -DFREEBSD_AOUT incase ldconfig is being compiled under elf.
Without this, <link.h> defines stuff for elf linking which is not
what ldconfig needs.
1998-06-12 10:43:18 +00:00
peter
a8b0f853fa Build ldconfig in /sbin environment directly, rather than under the gnu ld
directory.  The rcs files were repository copied.
1998-06-01 13:58:19 +00:00
sos
bc60c8025e ELF preparation step 2:
Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.

This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.

We are getting close to an ELF make world, but I'll let this
all settle for a week or two...
1998-05-26 20:12:56 +00:00
alex
47c4182543 Removed /etc/ld.so.conf reference from FILES section (people get
confused when they can't find it), but leave the reference to it
as being a standard filename (which doesn't imply that it exists).

Discussed with:	jkh
1998-01-01 02:31:47 +00:00
peter
0c770f97ec Add -R (rescan or refresh) option to rescan and rebuild the hints
file based on the previous list of directories stored there which
should overcome a weakness of the '-m' switch which can only add
libs.  This is an ideal way of updating the hints list after adding
or removing a shlib since it will remove entries that are gone and
doesn't need to have all the directories spelled out each time.
(eg: rm -f /usr/lib/libtcl75*; ldconfig -R)  This only works for
version 2 hints files (which we've been generating for a year or
so) which store the path.
1997-08-22 04:42:12 +00:00
jkh
9ede654e00 Allow ldconfig to accept files (containing directory paths) as well as
directory paths.
Reviewed by:	jkh & jdp
Submitted by:	Hans Zuidam <hans@brandinnovators.com>
1997-07-11 14:45:41 +00:00
bde
cac50f2497 Configure static linkage in the normal way (default to -static using
NOSHARED?= yes).
1997-06-29 21:40:54 +00:00
peter
245ba20d12 Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
jdp
0118326e5f Document that "ldconfig -m" rescans all directories previously
entered into the hints file, in addition to the directories named
on the command line.

2.2 Candidate.
1996-11-09 20:26:19 +00:00
jdp
81bba450d5 Fixed a bug in the handling of the directories in the search path
that is stored in the hints file.  If that search path contained
a non-existent directory (one, say, that had been removed), and
"ldconfig -m /a/perfectly/good/directory" was run, ldconfig returned
an error status without printing an error message.  This caused
some confusing bombs when installing ports, in particular.

I changed it so that non-existent directories from the stored search
path are silently ignored.  Only non-existent directories named
explicitly on the command line are treated as errors.  Also, a
diagnostic is printed if and only if an error status is returned.

In an unrelated fix, ldconfig now silently ignores any directories
named on the command line when the "-r" option is given.  Formerly,
these directories incorrectly made their way into the "search
directories" line of the listing.  It really should be an error to
specify directories together with "-r", but I don't have time to
fix the manual page in that way right now.

2.2 Candidate.
1996-11-08 02:12:40 +00:00
jdp
e11a58ddc6 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
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
jkh
730964efd2 General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
mpp
3c57dc7753 Correct some man page xrefs, and some other minor changes to bring some
man pages up to mdoc guidelines and fix some minor formatting glitches.
Also fixed a number of man pages to not abuse the .Xr macro to
display functions and path names and a lot of other junk.
1996-04-08 04:18:31 +00:00
pst
eafacc8e84 Bring in some of Paul K's fixes for ldconfig from NetBSD-current.
This solves the problem of being unable to use shared libraries with dots
in their names before the ".so.<version>" code.

This should be brought into -stable.

There are more changes from Paul that look like they should be included,
but they change the format of the hints file, so I'm not going to bring them
in now (but we should in the future).

Obtained from: pk@netbsd.org
1996-02-26 02:22:33 +00:00
joerg
61bcf2851a Reset the umask before creating the output file; otherwise running
ldconfig as root with a restrictive umask yielded ld.so.hints
unreadable by the world (and thus useless).
1995-08-16 06:31:50 +00:00
asami
62d154d210 Add an "-m" flag to merge instead of replace the entries. We can
now safely add a line like

ldconfig -m ${PREFIX}/lib

in ports' Makefiles and packing lists without throwing away some
directories the user may have added.

Submitted by:   Mostly by Paul Kranenburg <pk@cs.few.eur.nl>
1995-06-24 10:08:44 +00:00
joerg
0cd8c74ee0 Make ldconfig and ld.so not hashing the shared lib minor number. This
misfeature caused troubles when a program attempted to access a shlib
where one with a higher minor number has been hashed.  Ldconfig does
only include the highest-numbered shlib anyway, so this is in no way a
limitation of generality.

Caution: after installing the new programs, your /var/run/ld.so.hints
needs to be rebuiult; run ldconfig again as it's done from /etc/rc.
1995-01-12 19:12:29 +00:00
nate
7f56eb7b93 Updated to recent version of Paul K.'s shlib code. This code has better
warning handling and allows for link-time warnings with a modified
version of gas.

Note: Not all of the newer bits were updated such as some of the non-x86
machine-dependant code is relevant to FreeBSD right now.

Obtained from: NetBSD
1994-12-23 22:31:35 +00:00
rich
c2b2b84657 Changes from Paul Kranenburg which bring us into sync with his sources:
handling of errors through the standard err() and warn()
 more fixes for Geoff Rehmet's NULL pointer bug.
 fixes NULL pointer bugs when linking mono and nested X servers.
 supports a `-nostdlib' option.
 accept object files without a symbol table
 don't attempt dynamic linking when `-A' is given

a few variable names have chaged (desc -> fd), and the formatting has
changed which should make it much easier to track his sources.

I tested 'make world' for /usr/src and X twice with these changes.
1994-06-15 22:41:19 +00:00
ats
dee20cb856 Add the -r and -s flags to the Usage string. 1994-06-05 19:04:11 +00:00
ats
a0baf1752c Better link ldconfig static instead dynamic. 1994-04-13 20:49:42 +00:00
ats
a44d417a90 Add that /usr/X386/lib is also in the default path for ldconfig. Bug found
by Satoshi Asami ( asami@cs.berkeley.edu ). Fixed also a minor typo
problem.
1994-04-05 08:24:19 +00:00
jkh
477937c24f This is Paul K's latest set of ld changes. A commit was necessary at this
late stage due to the fact that link.h was copyright Sun Microsystems.

This version of ld sync's us up with NetBSD's ld and supports compatablily
with NetBSD's -[zZ] flags (which we had reversed).  Compiling with this
new ld will give you RRS warnings for libraries which do not contain .type
infomation - these wsarnings are harmless and will go away as soon as you
recompile your libraries (cd /usr/src; make libraries).
1994-02-13 20:43:13 +00:00
nate
32c86468ca Changed NetBSD -> FreeBSD 1994-02-11 12:12:51 +00:00
nate
e0628cc99d Fixed Makefile per bug report from Julian Stacey. There was an extra DESTDIR
in front of BINDIR definition.
1993-12-16 21:51:27 +00:00
jkh
90b65690ec Many recent fixes from Paul K, add support for chaining of shared lib deps. 1993-11-30 20:47:54 +00:00
paul
4d78d6f7a6 Cahnged ldconfig.0 to ldconfig.8 for our man system. 1993-11-09 20:39:46 +00:00
paul
62cf7a7029 Updated to newest ld from pk.
lib.c:
Pull in archives containing definitions needed by shared objects.
warnings.c:
Less spurious "undefined symbol" msgs for shared library defined
symbols.
ld.c:
Do a better job of recognising data in text segments, eg. `const char []'.
shlib.c,ld/rtld/{Makefile rtld.c}
Use strsep() in stead of strtok() and restore colons in eg. env. vars.
1993-11-09 04:19:36 +00:00
paul
0ec4b5ba38 Changed ldconfig.0 to ldconfig.8 for our man setup. 1993-11-06 23:15:53 +00:00
paul
66fdbc00cf Imported NetBSD's ld for shared libs. 1993-11-03 23:41:59 +00:00