-
-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for musl-based Linux (e.g. Alpine) #1729
Comments
@ehudkaldor - at the moment, I don't think it is possible. Last time I tried to compile Pony on Alpine, there were definitely a few things that were broken that need to be fixed. I don't know that it's ever successfully been compiled with musl. If someone wants to step up and work on resolving the issues, this ticket can be a place to track that effort. |
dipinhora
added a commit
to dipinhora/ponyc
that referenced
this issue
Apr 18, 2017
Changes related to getting pony compiling and running on Alpine Linux Edge. * Define `_GNU_SOURCE` so musl glibc compatibility is enabled. * Makefile changes to detect Alpine Linux and link in `libexecinfo` * Changes to stop using glibc specific `__GNUC_PREREQ` macro * Changes to genexe linking to link in `libexecinfo` if on Alpine or FreeBSD (this is likely also needed but untested) * Changes to move Linux cpu affinity setting outside of thread creation function and into same set affinity function as for other platforms. This also includes enabling asio thread affinity setting for non-linux platforms. * Rename `SCHED_BATCH` to `PONY_SCHED_BATCH` to avoid conflict with musl. * Set `this_scheduler` thread-local variable to `NULL` on `ponyint_sched_init` to avoid segfault in running codegen test suite. Resolves ponylang#1729
dipinhora
added a commit
to dipinhora/ponyc
that referenced
this issue
Apr 19, 2017
Changes related to getting pony compiling and running on Alpine Linux Edge. * Define `_GNU_SOURCE` so musl glibc compatibility is enabled. * Makefile changes to detect Alpine Linux and link in `libexecinfo`. * Makefile changes to define PONY_NO_ASSERT for libponyrt-pic. * Changes to stop using glibc specific `__GNUC_PREREQ` macro. * Changes to move Linux cpu affinity setting outside of thread creation function and into same set affinity function as for other platforms. This also includes enabling asio thread affinity setting for non-linux platforms. * Rename `SCHED_BATCH` to `PONY_SCHED_BATCH` to avoid conflict with musl. * Set `this_scheduler` thread-local variable to `NULL` on `ponyint_sched_init` to avoid segfault in running codegen test suite. * Change `#if` for `pony_assert` to be `||` instead of `&&` to ensure `libponyrt` never has assertions enabled. Resolves ponylang#1729
dipinhora
added a commit
to dipinhora/ponyc
that referenced
this issue
Apr 19, 2017
Changes related to getting pony compiling and running on Alpine Linux Edge. * Define `_GNU_SOURCE` so musl glibc compatibility is enabled. * Makefile changes to detect Alpine Linux and link in `libexecinfo`. * Makefile changes to define PONY_NO_ASSERT for libponyrt-pic. * Changes to stop using glibc specific `__GNUC_PREREQ` macro. * Changes to move Linux cpu affinity setting outside of thread creation function and into same set affinity function as for other platforms. This also includes enabling asio thread affinity setting for non-linux platforms. * Rename `SCHED_BATCH` to `PONY_SCHED_BATCH` to avoid conflict with musl. * Set `this_scheduler` thread-local variable to `NULL` on `ponyint_sched_init` to avoid segfault in running codegen test suite. * Change `#if` for `pony_assert` to use normal `assert` for builds that define `PONY_NO_ASSERT` (`libponyrt` and `libponyrt-pic` only as of this commit) instead of the custom `pony_assert_fail` that prints backtraces. Resolves ponylang#1729
dipinhora
added a commit
to dipinhora/ponyc
that referenced
this issue
Jul 20, 2017
Changes related to getting pony compiling and running on Alpine Linux Edge. * Define `_GNU_SOURCE` so musl glibc compatibility is enabled. * Makefile changes to detect Alpine Linux and link in `libexecinfo`. * Makefile changes to define PONY_NO_ASSERT for libponyrt-pic. * Changes to stop using glibc specific `__GNUC_PREREQ` macro. * Changes to move Linux cpu affinity setting outside of thread creation function and into same set affinity function as for other platforms. This also includes enabling asio thread affinity setting for non-linux platforms. * Rename `SCHED_BATCH` to `PONY_SCHED_BATCH` to avoid conflict with musl. * Set `this_scheduler` thread-local variable to `NULL` on `ponyint_sched_init` to avoid segfault in running codegen test suite. * Change `#if` for `pony_assert` to use normal `assert` for builds that define `PONY_NO_ASSERT` (`libponyrt` and `libponyrt-pic` only as of this commit) instead of the custom `pony_assert_fail` that prints backtraces. Resolves ponylang#1729
SeanTAllen
pushed a commit
that referenced
this issue
Jul 20, 2017
Changes related to getting pony compiling and running on Alpine Linux Edge. * Define `_GNU_SOURCE` so musl glibc compatibility is enabled. * Makefile changes to detect Alpine Linux and link in `libexecinfo`. * Makefile changes to define PONY_NO_ASSERT for libponyrt-pic. * Changes to stop using glibc specific `__GNUC_PREREQ` macro. * Changes to move Linux cpu affinity setting outside of thread creation function and into same set affinity function as for other platforms. This also includes enabling asio thread affinity setting for non-linux platforms. * Rename `SCHED_BATCH` to `PONY_SCHED_BATCH` to avoid conflict with musl. * Set `this_scheduler` thread-local variable to `NULL` on `ponyint_sched_init` to avoid segfault in running codegen test suite. * Change `#if` for `pony_assert` to use normal `assert` for builds that define `PONY_NO_ASSERT` (`libponyrt` and `libponyrt-pic` only as of this commit) instead of the custom `pony_assert_fail` that prints backtraces. Resolves #1729
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm trying compile Pony on Alpine Linux (MUSL based) and failing. is there any guidance on how to do that?
The text was updated successfully, but these errors were encountered: