Skip to content

Doesn't compile on Alpine Linux. #22

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

Open
nerap528 opened this issue May 9, 2024 · 1 comment
Open

Doesn't compile on Alpine Linux. #22

nerap528 opened this issue May 9, 2024 · 1 comment

Comments

@nerap528
Copy link

nerap528 commented May 9, 2024

I'm using Alpine Linux as my daily driver.
There is an error when when compiling this project.

Here is the shell output:

~/Git/libmixed $ mkdir build
~/Git/libmixed $ cd build/
~/Git/libmixed/build $ cmake ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMake Warning (dev) at CMakeLists.txt:19 (exec_program):
  Policy CMP0153 is not set: The exec_program command should not be called.
  Run "cmake --help-policy CMP0153" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Use execute_process() instead.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building 2.0.g1b08989
-- Enabling SSE
-- Enabling dynamically linked plugins
-- Found mpg123: /usr/include
-- Found out123: /usr/include
-- Found Curses: /usr/lib/libcurses.so
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Cannot build documentation
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/user/Git/libmixed/build
~/Git/libmixed/build $ make
[  1%] Building C object CMakeFiles/samplerate.dir/libsamplerate/samplerate.c.o
[  3%] Building C object CMakeFiles/samplerate.dir/libsamplerate/src_linear.c.o
[  4%] Building C object CMakeFiles/samplerate.dir/libsamplerate/src_sinc.c.o
[  6%] Building C object CMakeFiles/samplerate.dir/libsamplerate/src_zoh.c.o
[  6%] Built target samplerate
[  8%] Building C object CMakeFiles/spiralfft.dir/spiralfft/sse/spiral_fft_float.c.o
[  9%] Building C object CMakeFiles/spiralfft.dir/spiralfft/sse/spiral_private.c.o
[  9%] Built target spiralfft
[ 11%] Building C object CMakeFiles/mixed.dir/src/biquad.c.o
/home/user/Git/libmixed/src/biquad.c:8:16: error: the call requires 'ifunc', which is not supported by this target
    8 | VECTORIZE void biquad_process(struct mixed_buffer *input, struct mixed_buffer *output, struct biquad_data *state){
      |                ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/mixed.dir/build.make:76: CMakeFiles/mixed.dir/src/biquad.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:158: CMakeFiles/mixed.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
~/Git/libmixed/build $

After deleting the directiory, changing /usr/bin/cc to clang and running cmake again, the compilation goes further, but eventually fails with following output:

[ 52%] Building C object CMakeFiles/mixed.dir/src/segments/pitch.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 54%] Building C object CMakeFiles/mixed.dir/src/segments/plane_mixer.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 55%] Building C object CMakeFiles/mixed.dir/src/segments/quantize.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 57%] Building C object CMakeFiles/mixed.dir/src/segments/queue.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 59%] Building C object CMakeFiles/mixed.dir/src/segments/repeat.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 60%] Building C object CMakeFiles/mixed.dir/src/segments/space_mixer.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 62%] Building C object CMakeFiles/mixed.dir/src/segments/speed_change.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 63%] Building C object CMakeFiles/mixed.dir/src/segments/volume_control.c.o
cc: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[ 63%] Built target mixed
[ 63%] Built target samplerate
[ 63%] Built target spiralfft
[ 65%] Linking C shared library libmixed.so
[ 67%] Linking C static library libmixed.a
`.text.calculate_volumes' referenced in section `.text' of CMakeFiles/mixed.dir/src/segments/space_mixer.c.o: defined in discarded section `.text.calculate_volumes[calculate_volumes]' of CMakeFiles/mixed.dir/src/segments/space_mixer.c.o
`.text.calculate_pitch_shift' referenced in section `.text' of CMakeFiles/mixed.dir/src/segments/space_mixer.c.o: defined in discarded section `.text.calculate_pitch_shift[calculate_pitch_shift]' of CMakeFiles/mixed.dir/src/segments/space_mixer.c.o
/usr/bin/ld: libmixed.so.2.0-g1b08989: no symbol version section for versioned symbol `memset@GLIBC_2.2.5'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CMakeFiles/mixed_shared.dir/build.make:159: libmixed.so.2.0-g1b08989] Error 1
make[1]: *** [CMakeFiles/Makefile2:214: CMakeFiles/mixed_shared.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 67%] Built target mixed_static
make: *** [Makefile:136: all] Error 2

P.S. With Trial theres finally a portable game engine. As far as I can tell, it works perfectly on Alpine Linux.

@Shinmera
Copy link
Member

Shinmera commented May 9, 2024

Well as the output shows it tries to statically link glibc, which won't work for musl.

I personally don't care about musl, so you or someone else will have to submit an appropriate patch for the build.

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

2 participants