Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
audio/pulseaudio: fix build with lld 17
Building audio/pulseaudio with lld 17 results in the following link errors: cc -o src/pulse/libpulse.so.0.24.2 src/pulse/libpulse.so.0.24.2.p/channelmap.c.o src/pulse/libpulse.so.0.24.2.p/context.c.o src/pulse/libpulse.so.0.24.2.p/direction.c.o src/pulse/libpulse.so.0.24.2.p/error.c.o src/pulse/libpulse.so.0.24.2.p/ext-device-manager.c.o src/pulse/libpulse.so.0.24.2.p/ext-device-restore.c.o src/pulse/libpulse.so.0.24.2.p/ext-stream-restore.c.o src/pulse/libpulse.so.0.24.2.p/format.c.o src/pulse/libpulse.so.0.24.2.p/introspect.c.o src/pulse/libpulse.so.0.24.2.p/mainloop-api.c.o src/pulse/libpulse.so.0.24.2.p/mainloop-signal.c.o src/pulse/libpulse.so.0.24.2.p/mainloop.c.o src/pulse/libpulse.so.0.24.2.p/operation.c.o src/pulse/libpulse.so.0.24.2.p/proplist.c.o src/pulse/libpulse.so.0.24.2.p/rtclock.c.o src/pulse/libpulse.so.0.24.2.p/sample.c.o src/pulse/libpulse.so.0.24.2.p/scache.c.o src/pulse/libpulse.so.0.24.2.p/stream.c.o src/pulse/libpulse.so.0.24.2.p/subscribe.c.o src/pulse/libpulse.so.0.24.2.p/thread-mainloop.c.o src/pulse/libpulse.so.0.24.2.p/timeval.c.o src/pulse/libpulse.so.0.24.2.p/utf8.c.o src/pulse/libpulse.so.0.24.2.p/util.c.o src/pulse/libpulse.so.0.24.2.p/volume.c.o src/pulse/libpulse.so.0.24.2.p/xmalloc.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--allow-shlib-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,libpulse.so.0 -fstack-protector-strong -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -DLIBICONV_PLUG -isystem /usr/local/include '-Wl,-rpath,$ORIGIN/..:/usr/local/lib' -Wl,-rpath-link,/wrkdirs/share/dim/ports/audio/pulseaudio/work/pulseaudio-16.1/_build/src -Wl,-rpath-link,/usr/local/lib src/libpulsecommon-16.1.so -Wl,-z,nodelete -Wl,-version-script=/wrkdirs/share/dim/ports/audio/pulseaudio/work/pulseaudio-16.1/src/pulse/map-file -lm -pthread /usr/local/lib/libdbus-1.so -ldl -lintl -Wl,--end-group ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_free' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_get_api' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_new' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_drain' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_flush' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_free' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_get_latency' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_new' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_read' failed: symbol not defined ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_write' failed: symbol not defined cc: error: linker command failed with exit code 1 (use -v to see invocation) This is because lld 17 defaults to errors when undefined symbols are referenced in linker version scripts. Since pulseaudio uses the same linker version script for both the regular libpulse.so, and the other variants, libpulse-mainloop-glib.so and libpulse-simple.so, some of the symbols are expected to be undefined, so suppress the errors by adding -Wl,--undefined-version to LDFLAGS. PR: 274111 Approved by: blanket (for desktop and kde) MFH: 2023Q4
- Loading branch information