summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-aout
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1996-01-11 03:45:55 +0000
committerjdp <jdp@FreeBSD.org>1996-01-11 03:45:55 +0000
commitd1b95a21ba50262abce9fc5b15224a418ea58c34 (patch)
tree72164745aae0a7fd3412f2ff61f535185cf69471 /libexec/rtld-aout
parentc8975f103d9378fd640ce21b5dea7f2205241ce1 (diff)
downloadFreeBSD-src-d1b95a21ba50262abce9fc5b15224a418ea58c34.zip
FreeBSD-src-d1b95a21ba50262abce9fc5b15224a418ea58c34.tar.gz
Install ld.so in a way that is safe even on a running system.
Diffstat (limited to 'libexec/rtld-aout')
-rw-r--r--libexec/rtld-aout/Makefile15
1 files changed, 13 insertions, 2 deletions
diff --git a/libexec/rtld-aout/Makefile b/libexec/rtld-aout/Makefile
index 74e3c31..d2e6785 100644
--- a/libexec/rtld-aout/Makefile
+++ b/libexec/rtld-aout/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.14 1995/03/04 17:46:23 nate Exp $
+# $Id: Makefile,v 1.15 1995/08/26 13:17:39 joerg Exp $
PROG= ld.so
SRCS= mdprologue.S rtld.c malloc.c shlib.c etc.c md.c
@@ -11,7 +11,6 @@ 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
MLINKS= rtld.1 ld.so.1
.PATH: $(LDDIR) $(LDDIR)/$(MACHINE)
@@ -19,4 +18,16 @@ MLINKS= rtld.1 ld.so.1
$(PROG): ${OBJS} ${DPADD}
$(LD) -o $(PROG) $(LDFLAGS) $(OBJS) $(LDADD)
+realinstall:
+ ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
+ ${INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}/${PROG}.new
+ test -f ${DESTDIR}${BINDIR}/${PROG}.old && \
+ chflags noschg ${DESTDIR}${BINDIR}/${PROG}.old || \
+ :
+ chflags noschg ${DESTDIR}${BINDIR}/${PROG}
+ ln -f ${DESTDIR}${BINDIR}/${PROG} ${DESTDIR}${BINDIR}/${PROG}.old
+ mv ${DESTDIR}${BINDIR}/${PROG}.new ${DESTDIR}${BINDIR}/${PROG}
+ chflags schg ${DESTDIR}${BINDIR}/${PROG}
+ rm ${DESTDIR}${BINDIR}/${PROG}.old
+
.include <bsd.prog.mk>
OpenPOWER on IntegriCloud