summaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2015-10-16 21:09:15 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2015-10-16 21:09:15 +0000
commit7e81b832a385b6b01fa86c0f3fb428b51822bf48 (patch)
tree984d2b74af690b9df62da3cdc0b24222aaf3cf82 /Makefile.inc1
parente07b2be5e959e5d6a761a7b99413d609fe14dfbd (diff)
downloadsrc-test2-7e81b832a385b6b01fa86c0f3fb428b51822bf48.tar.gz
src-test2-7e81b832a385b6b01fa86c0f3fb428b51822bf48.zip
Correct a bitrotted comment about installworld order requirements.
The case of make(1) using a new /bin/sh issue was fixed in r173219 when ITOOLS was introduced. There are still issues with mid-install errors leaving a system unusable that are currently non-trivial to solve. The safest ordering requires installing rtld, libc and libthr (in that order) before anything else. We don't do that now though. Much improvement is needed here still. Discussed with: kip and kan (rtld/library ordering) MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=289433
Diffstat (limited to 'Makefile.inc1')
-rw-r--r--Makefile.inc113
1 files changed, 8 insertions, 5 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 256a6f81a137..8b54edf4c457 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -50,11 +50,14 @@
.include <bsd.arch.inc.mk>
.include <bsd.compiler.mk>
-# We must do lib/ and libexec/ before bin/, because if installworld
-# installs a new /bin/sh, the 'make' command will *immediately*
-# use that new version. And the new (dynamically-linked) /bin/sh
-# will expect to find appropriate libraries in /lib and /libexec.
-#
+# We must do lib/ and libexec/ before bin/ in case of a mid-install error to
+# keep the users system reasonably usable. For static->dynamic root upgrades,
+# we don't want to install a dynamic binary without rtld and the needed
+# libraries. More commonly, for dynamic root, we don't want to install a
+# binary that requires a newer library version that hasn't been installed yet.
+# This ordering is not a guarantee though. The only guarantee of a working
+# system here would require fine-grained ordering of all components based
+# on their dependencies.
SRCDIR?= ${.CURDIR}
.if defined(SUBDIR_OVERRIDE)
SUBDIR= ${SUBDIR_OVERRIDE}