missing symbol INT123_dct36_sse_wrap when configured with --with-cpu=sse_alone
Brought to you by:
sobukus
The issue shows itself best if you add -Wl,--no-undefined
to LDFLAGS:
../src/libmpg123/layer3.c: In function ‘III_hybrid’:
../src/libmpg123/layer3.c:1716: warning: implicit declaration of function ‘INT123_dct36_sse_wrap’
src/libmpg123/.libs/libmpg123_la-layer3.o: In function `INT123_do_layer3':
layer3.c:(.text+0x6d80): undefined reference to `INT123_dct36_sse_wrap'
layer3.c:(.text+0x6dbd): undefined reference to `INT123_dct36_sse_wrap'
layer3.c:(.text+0x6e05): undefined reference to `INT123_dct36_sse_wrap'
layer3.c:(.text+0x6e40): undefined reference to `INT123_dct36_sse_wrap'
layer3.c:(.text+0x7366): undefined reference to `INT123_dct36_sse_wrap'
src/libmpg123/.libs/libmpg123_la-layer3.o:layer3.c:(.text+0x739f): more undefined references to `INT123_dct36_sse_wrap' follow
collect2: ld returned 1 exit status
make: *** [src/libmpg123/libmpg123.la] Error 1
make: *** Waiting for unfinished jobs....
This seems to be because of r5396, and there is an OPT_MULTI confusion: OPT_MULTI is not defined in this build, but OPT_THE_DCT36 and thus DCT36_WRAP are only defined if OPT_MULTI is defined.
Yes, I reverted that change. The indirect branch on aarch64 is the bogus thing here. No OPT_THE_DCT36 and thus no wrappers for single optimizations.
(sorry)
OK, this can be closed.