musl-obstack: fix build on darwin

This commit is contained in:
usertam 2025-05-17 00:19:48 +08:00
parent 7b7a9a6a14
commit dc44a14cd0
No known key found for this signature in database
GPG Key ID: 2D8760B0229E2560
2 changed files with 32 additions and 1 deletions

View File

@ -0,0 +1,27 @@
From 44679bc1a03302aa6b1eb19220d9723e9e0e4d3f Mon Sep 17 00:00:00 2001
From: usertam <code@usertam.dev>
Date: Fri, 16 May 2025 23:29:41 +0800
Subject: [PATCH] ignore obstack_free alias on darwin
clang will complain "error: aliases are not supported on darwin".
---
obstack.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/obstack.c b/obstack.c
index 1f2f4c7..b9be9dd 100644
--- a/obstack.c
+++ b/obstack.c
@@ -294,7 +294,9 @@ _obstack_free (struct obstack *h, void *obj)
abort ();
}
+#ifndef __APPLE__
extern __typeof(_obstack_free) obstack_free __attribute__((alias("_obstack_free")));
+#endif
_OBSTACK_SIZE_T
_obstack_memory_used (struct obstack *h)
--
2.48.1

View File

@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
sha256 = "sha256-oydS7FubUniMHAUWfg84OH9+CZ0JCrTXy7jzwOyJzC8=";
};
patches = lib.optionals stdenv.isDarwin [
./0001-ignore-obstack_free-alias-on-darwin.patch
];
nativeBuildInputs = [
autoreconfHook
pkg-config
@ -27,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://github.com/void-linux/musl-obstack";
description = "An extraction of the obstack functions and macros from GNU libiberty for use with musl-libc";
platforms = platforms.linux;
platforms = platforms.unix;
license = licenses.lgpl21Plus;
maintainers = [ maintainers.pjjw ];
};