Skip site navigation (1)Skip section navigation (2)
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>