Summary: | net-misc/rygel-0.34.0 and media-libs/libmediaart-1.9.4: ../../src/librygel-server/.libs/librygel-server-2.6.so: undefined reference to `media_art_plugin_init' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Martin von Gagern <Martin.vGagern> |
Component: | Current packages | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugzilla.gnome.org/show_bug.cgi?id=790657 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build log
libmediaart build log Patch libmediaart adding #include "extractgeneric.h" to extractqt.cpp |
Created attachment 505068 [details]
libmediaart build log
My libmediaart is configured USE="qt5 -gtk -vala". The extract implementation thus comes from extractqt.cpp which does not include extractgeneric.h and thus does not have the _LIBMEDIAART_EXTERN macro in front of the function declaration. This makes the whole symbol non-external, and via the -fvisibility=hidden linker flag hidden. objdump -t does show the symbol in the build directory, but the stripped version in the install directory no longer has it.
Created attachment 505236 [details, diff]
Patch libmediaart adding #include "extractgeneric.h" to extractqt.cpp
With this patch in place, the symbol becomes public, and rygel can link. I placed this in /etc/portage/patches/media-libs/libmediaart-1.9.4/ to let user patches pick it up.
|
Created attachment 505064 [details] build log rygel fails to update for me: ../../src/librygel-server/.libs/librygel-server-2.6.so: undefined reference to `media_art_plugin_init' It does have a point: $ grep plugin_init /usr/include/libmediaart-2.0/libmediaart/*.h /usr/include/libmediaart-2.0/libmediaart/extractgeneric.h:void media_art_plugin_init (gint max_width); $ objdump -T /usr/lib64/libmediaart-2.0.so.0 | grep plugin # shows nothing So apparently there is some method declared in a header but not defined in the libmediaart library.