[Bug 274111] audio/pulseaudio: fix build with lld 17

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 26 Sep 2023 18:59:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274111

            Bug ID: 274111
           Summary: audio/pulseaudio: fix build with lld 17
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: desktop@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: desktop@FreeBSD.org
             Flags: maintainer-feedback?(desktop@FreeBSD.org)

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.

-- 
You are receiving this mail because:
You are the assignee for the bug.