mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-28 11:57:28 +00:00
5584286a91
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
29 lines
848 B
Makefile
29 lines
848 B
Makefile
# $Id: Makefile,v 1.20 1996/09/12 03:42:54 bde Exp $
|
|
|
|
PROG= ld.so
|
|
SRCS= mdprologue.S rtld.c malloc.c shlib.c md.c support.c sbrk.c
|
|
MAN1= rtld.1
|
|
LDDIR?= $(.CURDIR)/..
|
|
# As there is relocation going on behind GCC's back, don't cache function addresses.
|
|
PICFLAG=-fpic -fno-function-cse
|
|
CFLAGS+=-I$(LDDIR) -I$(.CURDIR) -I$(LDDIR)/$(MACHINE) $(PICFLAG) -DRTLD
|
|
LDFLAGS+=-Bshareable -Bsymbolic -assert nosymbolic
|
|
ASFLAGS+=-k
|
|
DPADD+= ${LIBC:S/c.a/c_pic.a/} ${LIBC:S/c.a/gcc_pic.a/}
|
|
LDADD+= -lc_pic -lgcc_pic
|
|
BINDIR= /usr/libexec
|
|
INSTALLFLAGS+= -fschg -C # -C to install as atomically as possible
|
|
MLINKS= rtld.1 ld.so.1
|
|
|
|
.PATH: $(LDDIR) $(LDDIR)/$(MACHINE)
|
|
|
|
.if defined(DESTDIR)
|
|
$(PROG):
|
|
$(LD) -o $(PROG) $(LDFLAGS) -nostdlib -L${DESTDIR}/usr/lib $(OBJS) $(LDADD)
|
|
.else
|
|
$(PROG):
|
|
$(LD) -o $(PROG) $(LDFLAGS) $(OBJS) $(LDADD)
|
|
.endif
|
|
|
|
.include <bsd.prog.mk>
|