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
- Update xfce.mk to avid forcing too many dependencies on consumers
- Change dependency on garcon to reference libgarcon-1.so (main
library)
- Explicitly add USE_XFCE components to the ports actually needing
them.
- Cleanup dependencies, adding/removing missing/extra dependencies
- Change the referenced library in some LIB_DEPENDS to the actually
linked one (avoids false positives in poudriere Q/A tests)
- Bump PORTREVISION on all touched ports, even indirectly due to
the effect of removing forced dependencies on certain components
- Remove USES=fuse from gigolo. I could not find any kind f reference
to fuse in the code.
- xfce4-bsdcpufreq-plugin: Also remove empty comment at the top of
the Makefile
write_vorbis() must return an integer, but was returning &PL_sv_undef
in several places vs. zero in other error paths. Follow the original*
implementation and replace those with zeros as well.
To make hunting potential compiler-related bugs easier in the future,
respect ${CC} and mute one harmless but particularly annoying warning
which clutters the build log way more than does any good.
*) https://www.perlmonks.org/?node_id=200588
- BLKCNT_P2 and VERBOSE exposed compile knobs from
https://people.freebsd.org/~ariff/libasound/20090928_00-alsa-plugins-1.0.21.diff
- BUFSZ_P2 worked around crashes and high CPU usage in Firefox until
native OSS support phased out ALSA
- hselasky@ fixed many ALSA issues over the years
- users can still adjust compile knobs via make.conf(5) or Makefile.local
PR: 274047
Upstream changes:
* Added optimised code for ARM64, contributed by Nicolas Belin.
Edit the Makefile to disable SSE2 and enable NEON when
compiling for ARM64.
PR: 273978
Some symbols in the linker version script Versions.in are only defined when
--enable-alisp is used at configure time. Suppress errors with lld >= 17 due
to these undefined symbols.
PR: 273753
MFH: 2023Q3