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----- 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 =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--