When installing the dynamic linker, save the previous version in

"ld-elf.so.1.old".  The dynamic linker is a critical component of
the system, and it is difficult to recover if it is damaged and
there isn't a working backup available.  For instance, parts of
the toolchain such as the assembler are dynamically linked, making
it impossible to build a new dynamic linker if the installed one
doesn't work.
This commit is contained in:
jdp 2000-07-08 03:27:54 +00:00
parent 92dfcced5b
commit aa26657bfb

View File

@ -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