summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libexec/rtld-elf/Makefile12
1 files changed, 12 insertions, 0 deletions
diff --git a/libexec/rtld-elf/Makefile b/libexec/rtld-elf/Makefile
index db8955e..e3750cc 100644
--- a/libexec/rtld-elf/Makefile
+++ b/libexec/rtld-elf/Makefile
@@ -42,3 +42,15 @@ dyn_hack.so:
.PATH: ${.CURDIR}/${MACHINE_ARCH}
.include <bsd.prog.mk>
+
+# Keep the previous version of the dynamic linker for recovery
+# purposes. This must come after the include of <bsd.prog.mk> so that
+# BINDIR is set for the exists(...) constructs.
+beforeinstall:
+.if exists(${DESTDIR}${BINDIR}/${PROG})
+ -chflags noschg ${DESTDIR}${BINDIR}/${PROG}
+.if exists(${DESTDIR}${BINDIR}/${PROG}.old)
+ -chflags noschg ${DESTDIR}${BINDIR}/${PROG}.old
+.endif
+ cp -p ${DESTDIR}${BINDIR}/${PROG} ${DESTDIR}${BINDIR}/${PROG}.old
+.endif
OpenPOWER on IntegriCloud