aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2017-06-05 05:17:39 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2017-06-05 05:17:39 +0000
commit1a9cc831ddd85067dd9258d57e039ff32dace829 (patch)
tree8626af02295109b4c2a5491e5447205b5b313c69 /Makefile
parentffe0978fbe999e7b1b535cc58ee87fe5cede2571 (diff)
downloadsrc-1a9cc831ddd85067dd9258d57e039ff32dace829.tar.gz
src-1a9cc831ddd85067dd9258d57e039ff32dace829.zip
META_MODE: Add framework to force rebuilding for major ABI changes.
Normally META_MODE ignores host files for "meta mode" decisions on whether a file should be rebuilt or not. This is because a simple installworld can update timestamps and cause the next build to rebuild all host tools, when the previous ones may not have any changes in the source tree. These tools are normally still ABI compatible. They are only rebuilt if NO_META_IGNORE_HOST is set from the workaround/hack in r301467. One of the major problems with this is when a host tool has objects spread across many revisions that have mixed-ABI. For example, if struct stat were to change on the host, some objects for a tool may have different ideas of that struct's definition. If just 1 source file were modified and rebuilt and linked into the tool, then that toll will have mixed-ABI objects and crash. This exact thing happened with the ino64 commit in r301467 followed by a trivial update to libbfd in r318750. The resulting binary would crash in buildworld. Sponsored by: Dell EMC Isilon
Notes
Notes: svn path=/head/; revision=319593
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index e5cfe7b3fb9e..603124a03ae0 100644
--- a/Makefile
+++ b/Makefile
@@ -127,7 +127,7 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
installworld kernel-toolchain libraries lint maninstall \
obj objlink rerelease showconfig tags toolchain update \
_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
- _build-tools _compiler-metadata _cross-tools _includes _libraries \
+ _build-tools _build-metadata _cross-tools _includes _libraries \
build32 distribute32 install32 buildsoft distributesoft installsoft \
builddtb xdev xdev-build xdev-install \
xdev-links native-xtools stageworld stagekernel stage-packages \