bun icon indicating copy to clipboard operation
bun copied to clipboard

Musl LibC Support

Open theoparis opened this issue 3 years ago • 12 comments

What is the problem this feature will solve?

It will allow bun to be used in linux distributions such as Alpine Linux or BunOS. This could also potentially solve #255.

What is the feature you are proposing to solve the problem?

I have already attempted to implement this by creating a patched dockerfile, build.zig and makefile for building bun under alpine linux. However, it is missing proper FFI support, which seems to be an issue with the internals of bun (as FFI and static linking seems to work with deno).

What alternatives have you considered?

No response

theoparis avatar Jul 29 '22 21:07 theoparis

Found this closed issue that suggests JavaScript Core may run on musl https://bugs.webkit.org/show_bug.cgi?id=187485

benatkin avatar Nov 15 '22 01:11 benatkin

I'm also using Alpine Linux and being unable to run bun.

brynne8 avatar Sep 10 '23 07:09 brynne8

Please add a :+1: to the first post instead of adding "me too" comments :pray:

dargmuesli avatar Sep 10 '23 08:09 dargmuesli

WebKit is shipped on some musl Linux distros, which implies support for JavaScriptCore.

notramo avatar Sep 27 '23 19:09 notramo

Easy to compile against musl libc. I need motivation to write a "normal" patch, but its possible. This requires: add musl flag to tcc build in Makefile -fPIC in build.zig turn off checking GLIBC version in build.zig turn off force GLIBC in workaround-missing-symbols.cpp rebuild JSCore

If you are trying to build using only clang, some additional patches are required.

Tested and works well for musl+clang image

Nyaa97 avatar Oct 31 '23 16:10 Nyaa97

Why was the above comment marked as "off topic"? It is showing a temporary solution to the issue and it would help contribute torwards a permanent fix in the future.

theoparis avatar Oct 31 '23 21:10 theoparis

Easy to compile against musl libc. I need motivation to write a "normal" patch, but its possible. This requires: add musl flag to tcc build in Makefile -fPIC in build.zig turn off checking GLIBC version in build.zig turn off force GLIBC in workaround-missing-symbols.cpp rebuild JSCore

If you are trying to build using only clang, some additional patches are required.

Tested and works well for musl+clang image

Great. Could you please upload the binary so that I can temporarily use?

brynne8 avatar Nov 01 '23 00:11 brynne8

It would be nice if you could send the patches as well.

theoparis avatar Nov 01 '23 00:11 theoparis

I need motivation to write a "normal" patch

@Nyaa97 Would it not have been faster to type git diff and paste the result here instead of typing out all the steps?

That aside, do you still have your working code that you could share here?

Pyroglyph avatar Jan 22 '24 00:01 Pyroglyph