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

Build failure on Alpine Linux #682

Open
catarial opened this issue Jun 30, 2024 · 2 comments
Open

Build failure on Alpine Linux #682

catarial opened this issue Jun 30, 2024 · 2 comments

Comments

@catarial
Copy link

Version

24.05

Plugin type

Native / JACK, AU, CLAP, LV2, VST2, VST3

OS

Alpine Linux 3.20 x86_64

DAW / Host (if applicable)

No response

Description

I removed calls to backtrace and backtrace_symbols so that it would compile since musl does not include execinfo.h. I assume this won't break functionality since those functions are just for debugging.

Then in the linking stage it fails to find roundevenf and some fts functions.

make -C Cardinal
make[2]: Entering directory '/mnt/data/src/Cardinal/src/Cardinal'
Creating CLAP plugin for Cardinal
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ../../plugins/plugins.a(LFO.cpp.o): in function `LFO::process(rack::engine::Module::ProcessArgs const&)':
LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x3ce): undefined reference to `roundevenf'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x3f2): undefined reference to `roundevenf'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x423): undefined reference to `roundevenf'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x455): undefined reference to `roundevenf'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x540): undefined reference to `roundevenf'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ../../plugins/plugins.a(LFO.cpp.o):LFO.cpp:(.text._ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE[_ZN3LFO7processERKN4rack6engine6Module11ProcessArgsE]+0x564): more undefined references to `roundevenf' follow
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ../../carla/build/modules/Release/ysfx.a(ysfx_utils_fts.cpp.o): in function `ysfx::visit_directories(char const*, bool (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*), void*) [clone .cold]':
ysfx_utils_fts.cpp:(.text.unlikely._ZN4ysfx17visit_directoriesEPKcPFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvESA_+0xc): undefined reference to `fts_close'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ../../carla/build/modules/Release/ysfx.a(ysfx_utils_fts.cpp.o): in function `ysfx::visit_directories(char const*, bool (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*), void*)':
ysfx_utils_fts.cpp:(.text._ZN4ysfx17visit_directoriesEPKcPFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvESA_+0x46): undefined reference to `fts_open'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ysfx_utils_fts.cpp:(.text._ZN4ysfx17visit_directoriesEPKcPFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvESA_+0x8b): undefined reference to `fts_read'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ysfx_utils_fts.cpp:(.text._ZN4ysfx17visit_directoriesEPKcPFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvESA_+0xa7): undefined reference to `fts_close'
/usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: ysfx_utils_fts.cpp:(.text._ZN4ysfx17visit_directoriesEPKcPFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvESA_+0x148): undefined reference to `fts_close'
collect2: error: ld returned 1 exit status
make[2]: *** [../../dpf/Makefile.plugins.mk:754: ../../bin/Cardinal.clap/Cardinal.clap] Error 1
make[2]: Leaving directory '/mnt/data/src/Cardinal/src/Cardinal'
make[1]: *** [Makefile:128: all] Error 2
make[1]: Leaving directory '/mnt/data/src/Cardinal/src'
make: *** [Makefile:137: cardinal] Error 2
@dromer
Copy link
Collaborator

dromer commented Nov 10, 2024

I see a patch for this kind of limitation in WebKit: https://github.com/WebKit/WebKit/pull/34972/files
(for roundevenf at least)

@falkTX
Copy link
Contributor

falkTX commented Nov 10, 2024

The original VCV Rack and modules do not support musl, so we are always going to have troubles with this.

Best course of action here is to first add some CI job that tests build under alpine, so we can catch any errors.
Then we start fixing things until the build succeeds.

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

No branches or pull requests

3 participants