Skip to content

3.2.0 Fails to build on Alpine Linux #29

Description

@fazalmajid
g++ -g -O2 -fno-exceptions -fno-rtti -O2 -I/usr/local/include -I/usr/local/ssl/include -UHAVE_SIMD -c -o simd-checksum-x86_64.o ./simd-checksum-x86_64.cpp
./simd-checksum-x86_64.cpp: In function 'uint32_t get_checksum1_cpp(char*, int32_t)':
./simd-checksum-x86_64.cpp:88:52: error: multiversioning needs ifunc which is not supported on this target
   88 | __attribute__ ((target("default"))) MVSTATIC int32 get_checksum1_avx2_6(schar* buf, int32 len, int32 i, uint32* ps1, uint32* ps2) { return i; }
      |                                                    ^~~~~~~~~~~~~~~~~~~~
./simd-checksum-x86_64.cpp:474:1: error: use of multiversioned function without a default
  474 | }
      | ^
./simd-checksum-x86_64.cpp:89:52: error: multiversioning needs ifunc which is not supported on this target
   89 | __attribute__ ((target("default"))) MVSTATIC int32 get_checksum1_ssse3_32(schar* buf, int32 len, int32 i, uint32* ps1, uint32* ps2) { return i; }
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~
./simd-checksum-x86_64.cpp:474:1: error: use of multiversioned function without a default
  474 | }
      | ^
gmake: *** [Makefile:135: simd-checksum-x86_64.o] Error 1

I'm guessing that's because ifunc is a glibc feature, which would not work on a Linux that uses non-GNU libc like Alpine with musl libc.

The same error occurs on SmartOS.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions