Date: Sat, 15 Jan 2022 09:45:43 +0000 From: bugzilla-noreply@freebsd.org To: multimedia@FreeBSD.org Subject: [Bug 257696] audio/openal-soft: Fails to link with JACK enabled: ERROR: ld-elf.so.1: /usr/local/lib/libopenal.so.1: Undefined symbol "jack_error_callback" Message-ID: <bug-257696-12827-FFA66bo2Nh@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-257696-12827@https.bugs.freebsd.org/bugzilla/> References: <bug-257696-12827@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D257696 Sean Champ <lab+bsd@thinkum.space> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lab+bsd@thinkum.space --- Comment #8 from Sean Champ <lab+bsd@thinkum.space> --- I've seen this error also, compiling multimedia/ffmpeg with jack enabled, w= ith clang 13 in FreeBSD 12.3-STABLE. An excerpt of the build log for multimedia/ffmpeg=20 ~~~~ /usr/local/libexec/ccache/clang -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -lm -Wl,-rpath,/> /usr/local/libexec/ccache/clang -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -lm -Wl,-rpath,/> ld: error: /usr/local/lib/libopenal.so: undefined reference to jack_error_callback [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocat= ion) gmake[2]: *** [Makefile:124: ffplay_g] Error 1 gmake[2]: *** Waiting for unfinished jobs.... ld: error: /usr/local/lib/libopenal.so: undefined reference to jack_error_callback [--no-allow-shlib-undefined] clang: error: linker command failed with exit code 1 (use -v to see invocat= ion) gmake[2]: *** [Makefile:124: ffmpeg_g] Error 1 gmake[2]: Leaving directory '/wrkdirs/usr/ports/multimedia/ffmpeg/work/ffmpeg-4.4.1' =3D=3D=3D> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=3Dyes and rebuild before reporting the failure = to the maintainer. *** Error code 1 Stop. make[1]: stopped in /usr/ports/multimedia/ffmpeg ~~~~ -ljack does show up in the compiler call, so there went my first guess ... After the tip about possible side effects with weak pointers here, then loo= king at the work src file for jack work/jack2-eaedec353489f26617221d66f80fd2503953c663/common/jack/weakmacros.h ~~~~ #ifndef JACK_WEAK_EXPORT #ifdef __GNUC__ /* JACK_WEAK_EXPORT needs to be a macro which expands into a compiler directive. If non-null, the directive must tell the compiler to arrange for weak linkage of the symbol it used with. For this to work full may require linker arguments in the client as well. */ #ifdef _WIN32 /* Not working with __declspec(dllexport) so normal linking Linking with JackWeakAPI.cpp will be the preferred way. */ #define JACK_WEAK_EXPORT #else #define JACK_WEAK_EXPORT __attribute__((WEAK_ATTRIBUTE)) #endif ~~~~ Maybe JACK_WEAK_EXPORT is not being defined when the build is produced with clang? As a workaround, I'll try building Jack with GCC, the openal-soft and ffmpeg after. Hopefully it may clear up then --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-257696-12827-FFA66bo2Nh>