Skip to content
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 the musl libc. #1239

Closed
wants to merge 4 commits into from

Conversation

vimproved
Copy link

JUCE currently uses multiple glibc-specific features when JUCE_LINUX is defined. Instead, this pull request adds two new macros in juce_TargetPlatform.h: JUCE_GLIBC and JUCE_MUSL. JUCE_GLIBC is defined if the system is using glibc (detected through the GLIBC macro which should be defined on all glibc systems), and JUCE_MUSL is defined otherwise. This pull request also conditions the usage of execinfo.h (only available on glibc), the usage of the stat64 interface (being removed in the next release of musl, currently only available when _LARGEFILE64_SOURCE is defined), and the usage of _NL_ADDRESS_LANG_AB and _NL_ADDRESS_COUNTRY_AB2 (locales are not supported by musl) behind JUCE_GLIBC instead of JUCE_LINUX.

Musl 1.2.4 made the LFS64 interfaces only available when
_LARGEFILE64_SOURCE is defined, and they will be removed altogether in
Musl 1.2.5.
vimproved added a commit to vimproved/Carla that referenced this pull request Sep 5, 2023
vimproved added a commit to vimproved/Carla that referenced this pull request Sep 5, 2023
baconpaul pushed a commit to surge-synthesizer/JUCE that referenced this pull request Jun 28, 2024
…libc (#6)

This commit squashes the four GLIBC/MUSL commits from juce-framework#1239 into our branch as a single commit (retaining a single commit to make future rebasing easier etc). Those commits were:

* SystemStats: Only use locales on glibc

* Linux: Add JUCE_GLIBC and JUCE_MUSL macros

* SystemStats: Do not use execinfo.h on JUCE_MUSL

* Native: Only use stat64 on glibc and iOS

Musl 1.2.4 made the LFS64 interfaces only available when
_LARGEFILE64_SOURCE is defined, and they will be removed altogether in
Musl 1.2.5.

---------

Co-authored-by: Violet Purcell <[email protected]>
baconpaul added a commit to surge-synthesizer/JUCE that referenced this pull request Jul 10, 2024
…libc (#6)

This commit squashes the four GLIBC/MUSL commits from juce-framework#1239 into our branch as a single commit (retaining a single commit to make future rebasing easier etc). Those commits were:

* SystemStats: Only use locales on glibc

* Linux: Add JUCE_GLIBC and JUCE_MUSL macros

* SystemStats: Do not use execinfo.h on JUCE_MUSL

* Native: Only use stat64 on glibc and iOS

Musl 1.2.4 made the LFS64 interfaces only available when
_LARGEFILE64_SOURCE is defined, and they will be removed altogether in
Musl 1.2.5.

---------

Co-authored-by: Violet Purcell <[email protected]>

Rebase to 7.0.12 by baconpaul
@vimproved vimproved closed this Sep 3, 2024
@vimproved vimproved deleted the musl branch September 3, 2024 19:31
baconpaul added a commit to surge-synthesizer/JUCE that referenced this pull request Sep 27, 2024
…libc (#6)

This commit squashes the four GLIBC/MUSL commits from juce-framework#1239 into our branch as a single commit (retaining a single commit to make future rebasing easier etc). Those commits were:

* SystemStats: Only use locales on glibc

* Linux: Add JUCE_GLIBC and JUCE_MUSL macros

* SystemStats: Do not use execinfo.h on JUCE_MUSL

* Native: Only use stat64 on glibc and iOS

Musl 1.2.4 made the LFS64 interfaces only available when
_LARGEFILE64_SOURCE is defined, and they will be removed altogether in
Musl 1.2.5.

---------

Co-authored-by: Violet Purcell <[email protected]>

Rebase to 7.0.12 by baconpaul
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant