【问题标题】:Can musl libc be built on OS X?可以在 OS X 上构建 musl libc 吗?
【发布时间】:2026-01-22 16:45:01
【问题描述】:

我正在尝试在运行 OS X 10.11.5 的机器上构建 musl-libc。不幸的是,我在运行make 时收到以下错误:

clang: warning: optimization flag '-fexcess-precision=standard' is not supported
clang: warning: optimization flag '-frounding-math' is not supported
<inline asm>:6:1: error: unknown directive
.weak _DYNAMIC 
^
<inline asm>:7:1: error: unknown directive
.hidden _DYNAMIC 
^
2 errors generated.
make: *** [obj/crt/Scrt1.o] Error 1

我使用的是 Clang 7.3.0 (703-0-31),我使用的是从 git://git.musl-libc.org/musl 的 musl 存储库中提取的源代码。

【问题讨论】:

  • 您是否尝试将 musl 用作本机 OS X 库?这将比仅仅编译它需要更多的工作。
  • clang-1200.0.32.2 有同样的问题
  • @Olsonist 查看 user5555713 的答案 — musl 依赖于 macOS 不支持的一些指令,以及其他 可能 以不同名称支持但可能没有相同行为的指令.我从来没有跟进过 musl 邮件列表,但如果你正在追求这个,那将是一个从开发问题开始的好地方!

标签: macos building musl


【解决方案1】:

这些是 OS X 汇编程序错误,这意味着它与 GNU 的不同之处在于它理解目标文件中特殊的弱符号和隐藏符号定义的方式。

虽然.weak 指令是possibly supported by Apple as as .weak_definition,但.hidden 是特定于ELF 的(OS X 使用Mach-O 二进制文件格式)。

【讨论】:

  • 我了解最初的问题,但感谢您尝试寻找替代说明;我仍然想知道是否没有可以在 OS X 上构建的已修改版本的库。
  • 加入并询问 musl 邮件列表,上次我听说 FreeBSD 和 Win32 至少有两个分支。还有正在进行的准系统硬件移植。
最近更新 更多