Skip to main content

MUSL FAQ

symbol not founddesc
posix_fallocate6464位文件偏移版本的 posix_fallocate,musl 使用统一实现
fcntl6464位文件偏移版本的 fcntl,musl 使用统一实现
__sched_cpufreeglibc 内部函数,释放 CPU 集合内存
__getpagesizeglibc 内部函数,获取内存页大小
malloc_trimglibc 扩展,释放堆顶部未使用内存给系统
__cxa_thread_atexit_implC++ ABI 内部函数,线程退出时析构函数支持
__sched_cpuallocglibc 内部函数,分配 CPU 集合内存
dlvsymglibc 扩展,按版本查找动态库符号
  • libjvm.so

malloc

DNS

  • 目前已经支持 DNS over TCP,大部分 DNS 问题已经解决
  • musl libc 1.2.4 - tcp dns - 解决 udp dns 不能返回太多解析的问题

resolv 不支持 dns over tcp/edns, 因此一次 resolve 最多返回 一个包,512 bytes,有时候解析会因此出现问题。

# 监控 DNS 请求
tcpdump -ni eth0 port 53

# 完整查询内容例如 |03|www|07|example|03|com
# 使用 match-set 禁用 AAAA
iptables -N AAAA
# iptables -I FORWARD 1 -p udp -s 192.168.0.0/16 --dport 53 -j AAAA
iptables -I OUTPUT 1 -p udp --dport 53 -j AAAA
# drop 会导致超时 - 最好是返回 NXDATA 或者 NXDOMAIN
iptables -A AAAA -m string --algo bm --from 40 --hex-string '|001c|' -j DROP

pthread_attr_setaffinity_np

pthread_rwlockattr_setkind_np

gcompat

  • 解决一部分兼容问题
apk add gcompat
export LD_PRELOAD=/lib/libgcompat.so.0

symbols

# 基础
apk add libstdc++ libgcc