libfyaml: fixing pflag mismatched intention

the assumption of the code is that if there are no lib flags set, then
just use the fallback of lpthread.

BUT! The way libSystem passes to it nothing because it's trying to
communicate that it's taking care of it using PTHREAD_CFLAGS. It leads
to this weird situation where both are passed!
This commit is contained in:
𝑷𝒉𝒊𝒍𝒐𝒄𝒂𝒍𝒚𝒔𝒕
2026-05-12 10:03:40 -04:00
parent 4cdf41c344
commit 1860b778a5
2 changed files with 16 additions and 0 deletions
+4
View File
@@ -34,6 +34,10 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://github.com/pantoniou/libfyaml/commit/9192deaac095f9881cc1e5756dede683f36b09d6.diff";
hash = "sha256-cNL9wQtxIRg/ShZLJP4qHYNFRrYo9kRG+/U+3FiUeaI=";
})
# On Darwin, AX_PTHREAD returns empty PTHREAD_LIBS with -pthread in PTHREAD_CFLAGS;
# don't force -lpthread when PTHREAD_CFLAGS already provides pthread support.
# Pending PR: https://github.com/pantoniou/libfyaml/pull/294
./pthread-darwin.patch
];
nativeBuildInputs = [
@@ -0,0 +1,12 @@
--- a/configure.ac
+++ b/configure.ac
@@ -99,6 +99,7 @@
AX_PTHREAD([], [AC_MSG_ERROR("Missing required pthread support")])
-# in some cases PTHREAD_LIBS is empty - force -lpthread */
-if test "x$PTHREAD_LIBS" = "x"; then
+# In some cases PTHREAD_LIBS is empty; force -lpthread only when PTHREAD_CFLAGS
+# also provides no pthread support (e.g. on Darwin, -pthread in CFLAGS suffices).
+if test "x$PTHREAD_LIBS" = "x" && test "x$PTHREAD_CFLAGS" = "x"; then
PTHREAD_LIBS="-lpthread"
fi