git: fe945fa9c91d - stable/14 - bsd.progs.mk: Create directories first

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Wed, 10 Jul 2024 14:48:37 UTC
The branch stable/14 has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=fe945fa9c91d12b678e88bb8fd019e60d149bb17

commit fe945fa9c91d12b678e88bb8fd019e60d149bb17
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2024-07-08 16:30:28 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2024-07-10 14:47:52 +0000

    bsd.progs.mk: Create directories first
    
    Order installdirs before the $p.install targets; this is necessary
    when a user of <bsd.progs.mk> also creates the directory into which
    the binaries are installed.
    
    In particular, without this patch running `make installworld -jN` can
    break when installing tests since the /usr/tests/foo/bar directories
    are created during installworld; this has been causing the stable/14
    weekly snapshot builds to intermittently fail for months.
    
    MFC after:      5 minutes
    Sponsored by:   Amazon
    Differential Revision:  https://reviews.freebsd.org/D45923
    
    (cherry picked from commit 187d696a0aa0fba9e9a7b6b20c72799cf8a2e0cf)
---
 share/mk/bsd.progs.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/share/mk/bsd.progs.mk b/share/mk/bsd.progs.mk
index 946c44f76570..5881570762bf 100644
--- a/share/mk/bsd.progs.mk
+++ b/share/mk/bsd.progs.mk
@@ -154,6 +154,7 @@ $p.$t: .PHONY .MAKE ${_PROGS_COMMON_OBJS}
 	    NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS=t \
 	    ${_PROG_MK.${t}} PROG=$p ${x.$p} ${@:E})
 .endfor
+.ORDER installdirs $p.install
 .endfor
 
 # Depend main pseudo targets on all PROG.pseudo targets too.