aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMichael Pratt <mcpratt@pm.me>2023-05-27 17:11:47 -0400
committerPetr Štetiar <ynezz@true.cz>2023-06-12 22:10:22 +0200
commit43b92ff6ce203dee5049c3ad4f28c95a69dd0694 (patch)
tree3986a4eb729733fac46880a60912deaed49b8aea /include
parentc7bd7a9c5143f25dc6137439794fdf075c6cc424 (diff)
downloadupstream-43b92ff6ce203dee5049c3ad4f28c95a69dd0694.tar.gz
upstream-43b92ff6ce203dee5049c3ad4f28c95a69dd0694.tar.bz2
upstream-43b92ff6ce203dee5049c3ad4f28c95a69dd0694.zip
prereq-build: do not replace binaries with symlinks
Some programs, like bash and patch, are checked by prereq stage and have a symlink installed, but then is later built from source. Now that the prereq-build checks are not successful just by finding the file alone, it is possible for a new symlink to overwrite the installed binary. If a normal file is found in staging_dir/host/bin, let the check look for the associated stampfile, and if found, skip creation of a symlink and exit successfully. Suggested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 729909c07fae4201591e51895833112cb88485e1)
Diffstat (limited to 'include')
-rw-r--r--include/prereq.mk4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/prereq.mk b/include/prereq.mk
index 45c84e984c..ada11a8701 100644
--- a/include/prereq.mk
+++ b/include/prereq.mk
@@ -110,6 +110,10 @@ define SetupHostCommand
*" -> $$$$$$$$bin"*) \
[ -x "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0 \
;; \
+ "-"*) \
+ find "$(STAGING_DIR_HOST)/stamp" | grep $(strip $(1)) && \
+ [ -x "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0 \
+ ;; \
esac; \
ln -sf "$$$$$$$$bin" "$(STAGING_DIR_HOST)/bin/$(strip $(1))"; \
exit 0; \