commit: 7ab3273fa30a61b3c82cd3fa234f13a0f672cb98
parent 3804a0f18d4946de50a69be579dc77342749502d
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Tue, 21 Jan 2025 09:57:39 +0100
distfiles: bump pdpmake to 2.0.2
Diffstat:
4 files changed, 71 insertions(+), 3 deletions(-)
diff --git a/distfiles.SHA512SUM b/distfiles.SHA512SUM
@@ -36,7 +36,7 @@ c806f85682b45ce2fb81f832de364b03c9f36e93e02f9ed0abd492418bd4d4ec8054c6684da1cafe
3b2d0d4b96aa0181cd8552dfdb5d0f24ea26265a2aad463edc7102850aa4a91898bc7adeae15d852129f710eddeb280a0b770cff02c5af5b6c0082b6df250c58 distfiles/musl-libintl-1.2.5-r9.apk.x86_64
3be63637bc1689e56d2eac9fa646e8bd89b8c4ccd4ad028a61c7c5d5e9f3490d3c49657488d39a62451b23f0935b81c5ecd812c92cef9e160f7377f4bd4fc711 distfiles/nawk-20250116.tar.gz
934099408667070537c7e92eafd3a63956959a987f08f77f33968b6890142aa07381678381a5fc69033e3c279ca2603ad0507a6c34beba85d87ce38904acd090 distfiles/oksh-7.6.tar.gz
-b2ea989baed5e2328c6957b940744c82fa2d8bbf541418fcb6bd3fe49192242dc38ee9f2d20cc1b0e9de967c17a5f46d5c5e0a16701504d83f76a8b5586860df distfiles/pdpmake-2.0.1.tgz
+3923282ce3cdf7106b77f9af820c3eb49d05d3dbaf3018add5c0a65058e0c4b948abd47d9fc1cfd26859ebbfc273d9acbf79644cb378e063ec66e9d65f7cdadb distfiles/pdpmake-2.0.2.tgz
ae3d9d593e1645d65f9ab77aa828600c9af4bb30d0a073da7ae3dd805e65b87efaf6a0efb980f2d0168e475ae506eba194547d6479956dabb9d88293a9078a7f distfiles/pigz-2.8.tar.gz
0759e63b9bfdc1e0b2f95e4c5c7be24b4ffa22e06a08cfad7f8e8be9faf99c256b1cbc72159e4ec805791d6b507a80fc344d05d63a1d273c3285dac868bf6ca0 distfiles/pkgconf-pkgconf-2.3.0.tar.gz
b050d22a0446e3e2439f59762f3b40104bc1c8361c6ac17a410c0d13c06af497470d468ba50de97b50181a959ae3189b2dba089162dbade536803c8ff96b2d83 distfiles/sbase-b30fb568.tar.gz
diff --git a/fetch.sh b/fetch.sh
@@ -2,7 +2,7 @@
URLS="
https://hacktivis.me/releases/utils-std/utils-std-0.0.1.tar.gz
https://hacktivis.me/releases/utils-std/utils-std-0.0.1.tar.gz.sign
- https://frippery.org/make/pdpmake-2.0.1.tgz
+ https://frippery.org/make/pdpmake-2.0.2.tgz
https://gitlab.com/bzip2/bzip2/-/archive/bzip2-1.0.8/bzip2-bzip2-1.0.8.tar.gz
https://zlib.net/zlib-1.3.1.tar.gz
https://www.zlib.net/pigz/pigz-2.8.tar.gz
diff --git a/make-root.sh b/make-root.sh
@@ -7,7 +7,7 @@ tarballs="
oksh-7.6.tar.gz
yacc-oyacc-6.6.tar.gz
utils-std-0.0.1.tar.gz
- pdpmake-2.0.1.tgz
+ pdpmake-2.0.2.tgz
nawk-20250116.tar.gz
bzip2-bzip2-1.0.8.tar.gz
zlib-1.3.1.tar.gz
@@ -196,6 +196,8 @@ sed -i \
heirloom-devtools-*/mk.config \
|| die "Failed configuring heirloom-devtools"
+patch -p0 <"${WORKDIR}/pdpmake-2.0.2-fix_single_suffix.patch"
+
# pdpmake-1.4.3+ consider them invalid "macros"
sed -i \
-e '/^\.c\.o:/s/;/\n\t/' \
diff --git a/pdpmake-2.0.2-fix_single_suffix.patch b/pdpmake-2.0.2-fix_single_suffix.patch
@@ -0,0 +1,66 @@
+From 89025d0698f8b5a5dbb49670729151997350498c Mon Sep 17 00:00:00 2001
+From: Ron Yorston <rmy@pobox.com>
+Date: Mon, 20 Jan 2025 21:46:44 +0000
+Subject: [PATCH] Fix single-suffix inference rule regression
+
+Commit a64a52f (Extend inference rule search) added code to handle
+inference rules with arbitrary suffixes. Unfortunately it failed
+to check for a single-suffix rule in the case where no known suffix
+was found. Add the necessary code.
+
+(GitHub issue #72)
+---
+ rules.c | 19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/rules.c b/rules.c
+index 4e88191..964b69a 100644
+--- pdpmake-2.0.2/rules.c
++++ pdpmake-2.0.2/rules.c
+@@ -147,22 +147,34 @@ dyndep(struct name *np, struct rule *infrule, const char **ptsuff)
+ // targets of the form lib.a(member.o).
+ if (!posix && member == NULL) {
+ struct name *xp = newname(".SUFFIXES");
++ int found_suffix = FALSE;
++
+ for (struct rule *rp = xp->n_rule; rp; rp = rp->r_next) {
+ for (struct depend *dp = rp->r_dep; dp; dp = dp->d_next) {
+ tsuff = dp->d_name->n_name;
+ base = has_suffix(name, tsuff);
+ if (base) {
++ found_suffix = TRUE;
+ pp = dyndep0(base, tsuff, infrule);
+ free(base);
+ if (pp) {
+- if (ptsuff)
+- *ptsuff = tsuff;
+ goto done;
+ }
+ }
+ }
+ }
+
++ if (!found_suffix) {
++ // The name didn't have a known suffix. Try single-suffix rule.
++ tsuff = "";
++ pp = dyndep0(name, tsuff, infrule);
++ if (pp) {
++ done:
++ if (ptsuff) {
++ *ptsuff = tsuff;
++ }
++ }
++ }
+ } else
+ #endif
+ {
+@@ -173,9 +185,6 @@ dyndep(struct name *np, struct rule *infrule, const char **ptsuff)
+ pp = dyndep0(base, tsuff, infrule);
+ free((void *)tsuff);
+ }
+-#if ENABLE_FEATURE_MAKE_EXTENSIONS
+- done:
+-#endif
+ free(name);
+
+ return pp;