Experimental musl Port for FreeBSD

ShengYi Hung <[email protected]> Sun, 26 Jul 2026 01:31:05 +0800
Newsgroups gmane.os.freebsd.devel.hackers
Message-ID <[email protected]>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------g834WYZFOUmHKE2UhEw0dMBN
Content-Type: multipart/mixed; boundary="------------XMcsP2EQB3xELzoRoFj9lHja";
 protected-headers="v1"; hp="clear"
Message-ID: <[email protected]>
Date: Sun, 26 Jul 2026 01:31:05 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: [email protected]
From: ShengYi Hung <[email protected]>
Subject: Experimental musl Port for FreeBSD
Autocrypt: [email protected]; keydata=
 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

--------------XMcsP2EQB3xELzoRoFj9lHja
Content-Type: multipart/mixed; boundary="------------veqERTXhnulijY8f0Ht57bLb"

--------------veqERTXhnulijY8f0Ht57bLb
Content-Type: multipart/alternative;
 boundary="------------OL7KeaJc9ATJAQzprn2bESQR"

--------------OL7KeaJc9ATJAQzprn2bESQR
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGkgYWxsIEZyZWVCU0QgaGFja2VycywNCg0KU2luY2UgQ2xhdWRlIHJlc2V0IG15IHRva2Vu
IHF1b3RhIGxhc3Qgd2VlayBhbmQgSSBjb3VsZG4ndCB1c2UgYWxsIG9mIA0KaXQsIEkgZGVj
aWRlZCB0byBzcGVuZCBzb21lIHRpbWUgb24gYW4gaW50ZXJlc3Rpbmcgc2lkZSBwcm9qZWN0
OiBwb3J0aW5nIA0KbXVzbCB0byBGcmVlQlNELg0KDQpUaGUgcmVwb3NpdG9yeSBpcyBhdmFp
bGFibGUgaGVyZToNCmh0dHBzOi8vZ2l0aHViLmNvbS9hb2tibGFzdC9tdXNsLWZyZWVic2QN
Cg0KQXQgdGhlIG1vbWVudCBpdCBvbmx5IHN1cHBvcnRzIHg4Nl82NCwgYW5kIGFib3V0IDk2
JSBvZiB0aGUgbXVzbCBsaWJjIA0KdGVzdCBzdWl0ZSBwYXNzZXMuIFRoaXMgaW5jbHVkZXMg
c3VwcG9ydCBmb3IgdGhlIHRocmVhZCBsaWJyYXJ5LCANClRMUyzCoGdldGF1eHZhbCwgYW5k
IGRsb3Blbi4NCg0KVGhpcyBpcyBub3QgaW50ZW5kZWQgZm9yIHVwc3RyZWFtLiBUaGUgaW1w
bGVtZW50YXRpb24gaXMgZmFpcmx5IGhhY2t5LCANCmFuZCBtdXNsIHVwc3RyZWFtIGRvZXMg
bm90IGFjY2VwdCBBSS1nZW5lcmF0ZWQgY29kZS4gSXQgaXMgc2ltcGx5IGFuIA0KZXhwZXJp
bWVudGFsIHNpZGUgcHJvamVjdCwgYnV0IEkgdGhpbmsgaXQgaXMgc3RpbGwgaW50ZXJlc3Rp
bmcgdG8gaGF2ZSBhIA0Kd29ya2luZyBtdXNsIHBvcnQgb24gRnJlZUJTRCBmb3IgZXhwZXJp
bWVudGF0aW9uLg0KDQpUbyBidWlsZCBtdXNsLCBydW46DQoNCnwuL2NvbmZpZ3VyZSBcIEND
PWNsYW5nIFwgQVI9bGx2bS1hciBcIFJBTkxJQj1sbHZtLXJhbmxpYiBcIA0KLS10YXJnZXQ9
eDg2XzY0LXBvcnRibGQtZnJlZWJzZDE2LjAgXCAtLXByZWZpeD17eW91ciBpbnN0YWxsIHBy
ZWZpeH0gXCANCi0tc3lzbGliZGlyPXt5b3VyIGluc3RhbGwgcHJlZml4fS9zeXNsaWIgfA0K
DQpGb3IgZXhhbXBsZSwgSSB1c2UgfC9vcHQvbXVzbHwgYXMgdGhlIGluc3RhbGxhdGlvbiBw
cmVmaXguDQoNCkkgYWxzbyB3cm90ZSBhIGNvbXBpbGVyIHdyYXBwZXIgdGhhdCBtYWtlcyBp
dCBlYXNpZXIgdG8gYnVpbGQgcHJvZ3JhbXMgDQphZ2FpbnN0IG11c2w6DQpodHRwczovL2dp
c3QuZ2l0aHViLmNvbS9hb2tibGFzdC9jZDdkMWY0MzM5NjA0ZTY1MTQ5MmU4YmY0OWUzZDAy
OA0KDQpJdCBjdXJyZW50bHkgdXNlcyBtdXNsJ3MgQ1JUIHRvZ2V0aGVyIHdpdGggdGhlIHN5
c3RlbS1wcm92aWRlZCANCmNvbXBpbGVyLXJ0LiBOb3RlIHRoYXQgbGlicHRocmVhZCwgbGli
bSwgbGliZGwsIGFuZCBzZXZlcmFsIG90aGVyIEMgDQpsaWJyYXJpZXMgYXJlIG9ubHkgc3R1
YiBsaWJyYXJpZXMgaW4gbXVzbCBhbmQgdGhlIHJlYWwgaW1wbGVtZW50YXRpb25zIA0KYXJl
IGluc2lkZSBsaWJjIGl0c2VsZiwgc28geW91IGRvIG5vdCBuZWVkIHRvIHBhc3MgYWRkaXRp
b25hbCBsaW5rZXIgDQpmbGFncyBmb3IgdGhlbS4NCg0KRmVlZGJhY2sgYW5kIHRlc3Rpbmcg
YXJlIHdlbGNvbWUuDQoNCg==
--------------OL7KeaJc9ATJAQzprn2bESQR
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF=
-8">
  </head>
  <body>
    <p>Hi all FreeBSD hackers,</p>
    <p>Since Claude reset my token quota last week and I couldn't use
      all of it, I decided to spend some time on an interesting side
      project: porting musl to FreeBSD.</p>
    <p>The repository is available here:<br>
      <a href=3D"https://github.com/aokblast/musl-freebsd"
        class=3D"moz-txt-link-freetext">https://github.com/aokblast/musl-=
freebsd</a></p>
    <p>At the moment it only supports x86_64, and about 96% of the musl
      libc test suite passes. This includes support for the thread
      library, TLS,=C2=A0getauxval, and dlopen.</p>
    <p>This is not intended for upstream. The implementation is fairly
      hacky, and musl upstream does not accept AI-generated code. It is
      simply an experimental side project, but I think it is still
      interesting to have a working musl port on FreeBSD for
      experimentation.</p>
    <p>To build musl, run:</p>
    <pre><code class=3D"language-sh">./configure \
    CC=3Dclang \
    AR=3Dllvm-ar \
    RANLIB=3Dllvm-ranlib \
    --target=3Dx86_64-portbld-freebsd16.0 \
    --prefix=3D{your install prefix} \
    --syslibdir=3D{your install prefix}/syslib
</code></pre>
    <p>For example, I use <code>/opt/musl</code> as the installation
      prefix.</p>
    <p>I also wrote a compiler wrapper that makes it easier to build
      programs against musl:<br>
      <a
href=3D"https://gist.github.com/aokblast/cd7d1f4339604e651492e8bf49e3d028=
"
        class=3D"moz-txt-link-freetext">https://gist.github.com/aokblast/=
cd7d1f4339604e651492e8bf49e3d028</a></p>
    <p>It currently uses musl's CRT together with the system-provided
      compiler-rt. Note that libpthread, libm, libdl, and several other
      C libraries are only stub libraries in musl and the real
      implementations are inside libc itself, so you do not need to pass
      additional linker flags for them.</p>
    <p>Feedback and testing are welcome.</p>
  </body>
</html>

--------------OL7KeaJc9ATJAQzprn2bESQR--

--------------veqERTXhnulijY8f0Ht57bLb
Content-Type: application/pgp-keys; name="OpenPGP_0x5F4ED7D812606C60.asc"
Content-Disposition: attachment; filename="OpenPGP_0x5F4ED7D812606C60.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGhkuaEBDAD0a1Cu+ntw+v0/ZZnqTewGcd335T5tfktBEt22FsaoBqca7TSp
/AvP/bWD3YtJFlxi7TJQbb2H+ylPzusPaN/R1Sj6wQsRD1Fj+1AjF9EOqxdohXm0
SoWs3sRRbMrMGp6qDTQQBMj3TEuSE26gLxmpadtiAsyNDcNCllMSXAZ7xlk+ra9x
/pAqOR0TZvObwY8VUncCy6UWUIGmsUF5B7oR2v7i9rFk/3ILkcoIC1k+OlhMbxBp
wPLA24Aj8sZX9dzFbwLn2wucqRUzE9IdzrwpQpRHxH0t849VBhLze+zP8s6IUtgK
aTUjClmCfZXVVBpFswXJmxgDRo51Ed+X94K2y6FSDRMxwiz18vnJNWlB+aHH5wTb
goTKU+zOckXODBowNEEmYpQNVNYJs1nP6tGRmN4YwW5hcNQYdUmFKR44uYdJomcq
xkzJjU4rv4NBOdzrQTw+h5gCUdQ5IvBBGTA1enEP1qMhCpwTOfMd53of17BC3CMF
NTu8rburHceMaU0AEQEAAc0jU2hlbmdZaSBIdW5nIDxhb2tibGFzdEBGcmVlQlNE
Lm9yZz7CwRcEEwEIAEEWIQSIP4S1lgaPs34UknRfTtfYEmBsYAUCaGS5oQIbAwUJ
BaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBfTtfYEmBsYJKeDAC/
aJjRjMM9k9n6uwUWHemoAUGjv5fxkIpHWYCltnZ9KMs+TZXLsUZrv9DxOV4E3ebE
n7iMJbOAvIjjVK//qexo6/er9EZow4e/EQJLIL/0xRDiF4Jg7l1jziAI26P6dyuM
NzeHddFg7ALVfE9wPCFqn3QGbHqDVjI/E9UcxXiwHktndAo1wJXdEq9F8Ufmtj1t
9NasTip8ofNgKfWCGhyyZI0kvhvob5darflQMO8YG61zmSteO5Es8i9sP+lOhwEg
sgHl0L/gQtMrOko9Td1iOSMuaP9t3rx7pOnYLdKt+xw8kWnBIW6GNEzp5QVJxmzr
4DiyvvuR4SxnYy2tZjzQV4W8njBvw8SmZs0oS40iP8XNAoc91xLBizDnLne3BDYO
MXgm4csmDnJBM8s7Gaoc+WMY+hDP9SKWSqhyJUg8tauVhmPP3sTEXJbHoD0TuXxO
SwG9nEdKoeWQCA0XMXQGfYWHKy1qz3spYCFgXHqmF+WBLljqLaeHQsHmvUhUIuTO
wM0EaGS5oQEMAMiauBmqNndH0AaX9cqOCf660X6fj7iidxwPY9pSUBOgZ3c13pRJ
LiR6xsYnOWm+Dgf2BbNOz5iEtwx3Msrjw70/LsTJ4FdByUXZPZwujaPZ2SfowLMX
XZbEJrPkJ2HeamaDw/Gf5O/paDtAS3i8sFkKiOHwBX4doaL5Rxy/oqSpYTYL8tBF
UWMHHk4ji12P6Pw1aW2H81XzKTae1Tga8ViuiWzqibbbk5ddHjr/L+6LfTDM00K7
WTZVBnW0qsMZJ9PQpt8636cuJx6D3ITXxtg4IzFNz7HOKbPQazSGhaqsbdxKmtwc
P2uZEycsX+hPhtoOS2FuF5nWIYRZSzWBxWiOopHdRLL4YfALMsGhFdnPH/J3G9gy
BroiCiq2moRl2OSgo9W6rMxLCm62657zsvCo8p/KxaGq/ynwCAoQ1wHQaVerJkGM
f0n5tLkbNm2SyAbRy3tA/EfbzT0Yufq5gu9zGN/Uxf5hgFO6UqDHrlPeSSz++6m/
OAj3yLIsl2GpDwARAQABwsD8BBgBCAAmFiEEiD+EtZYGj7N+FJJ0X07X2BJgbGAF
AmhkuaECGwwFCQWjmoAACgkQX07X2BJgbGAJswv/dODZRYTWb/Xx8Y/Ei1OXLZIo
NxoUHvBVEqO1xR/FJPwYM8TVcihvhCfM5lLhYdY1pkLjXdlGbTKZtvdHWHLvs62j
GVjUXij52z1jOurnX2u0x1vq1zpklWBx4VQhd3sVtcyLNdDYBFi3epVf1NEctToW
yfBys6ijtVkhjem3V/l0PI1WtkECzYfPTOA+guf4dmrGSHPOZpCyFwHPRcVI+4pu
va4s4tjCAYa5E56GkICUJLuT1x228iqr5OC8YA7FeOTN94L/GqII6joaX2HIrcpG
DybRIhGty+BqXvRIpjp0z5PdDeHiFQFTnBAEnjiATAMDKd7Sq8y7Pv8OD/ptOl7F
g5iexCGVoLc3idpo/5T5fEXEaEWcGF9HRUeRTrnqQ9yBnALsqoLLVfoueF5Cl7c3
p1pwbdR0iSK9p4x6BDcnrnIE52vRCtCdivyxTNa+zKdjlI6gn7oNsRmOnQbkEXML
9WZi4YnrnITSzpkpCzeQCDI0gqUdsxsbt4Vi73Oq
=3DVgUx
-----END PGP PUBLIC KEY BLOCK-----

--------------veqERTXhnulijY8f0Ht57bLb--

--------------XMcsP2EQB3xELzoRoFj9lHja--

--------------g834WYZFOUmHKE2UhEw0dMBN
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEiD+EtZYGj7N+FJJ0X07X2BJgbGAFAmpk8tkFAwAAAAAACgkQX07X2BJgbGCC
BwwA3Z9I6bEvPZLN+Rg+6ctLbyZEopiBLk0MaqZ0f5J96ChykBaDpQGxcsiw77aPzAo4sDyCV/3U
m1/huHjDfUZ0fdoV8LoDk6pm4MiZa5hD1tYcedUQjujFr4GSYf2wIbzlioFSfvyqIwFidB2T6Vx3
CoxDt1DPailBIg0R9c6uREcsXyJ7HVCdBd7Ntx/QcAFmbmKXQassc0fbhOY1o3v2vZSCdiEmAY1P
0LeggfqtYmLs4Gi5EF9x0PTqULfTSRkhhU/L+ypW646O3GK9sGKG7VS7SJfxDcrm8HwwKw4CKNE9
cXfM7Whp73fywkkMjZQpy8C7RlQD4h4tle/Nsmr3jBMK2BMXa61PI7ADafegtkD/8yNNv0nIPQeR
JhiahGTW9YcnUZmhIky8EXQaY3gSxIMMga8WeOhNP/ZnqIFErHzBxMrvUGJ2HowD3GLB9bX6BDAa
4BRDzwDoC25S8CvFPy2DBBGucOi/DBXjBewaxmDlxgBFJCTwzQ1nsDB+Ix3U
=P+Ex
-----END PGP SIGNATURE-----

--------------g834WYZFOUmHKE2UhEw0dMBN--