git: 86f04dd9a2c5 - main - audio/pulseaudio: fix build with lld 17
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 06 Oct 2023 17:51:01 UTC
The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=86f04dd9a2c58f159b050b6043b919da2d120e6f commit 86f04dd9a2c58f159b050b6043b919da2d120e6f Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-09-26 18:54:05 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-10-06 17:48:54 +0000 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/tim eval.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 --- audio/pulseaudio/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/audio/pulseaudio/Makefile b/audio/pulseaudio/Makefile index d1a5078aeaa3..f4060e63407e 100644 --- a/audio/pulseaudio/Makefile +++ b/audio/pulseaudio/Makefile @@ -29,6 +29,11 @@ USES= compiler:c11 cpe gettext-tools gmake gnome iconv localbase:ldflags \ USE_GNOME= glib20 USE_LDCONFIG= yes +# Some symbols in the linker version script map-file are only defined when +# building the mainloop-glib shared library. Suppress errors with lld >= 17 due +# to these undefined symbols. +LDFLAGS+= -Wl,--undefined-version + SHEBANG_FILES= shell-completion/bash/pactl \ src/utils/pa-info \ src/utils/qpaeq