Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 814140 - media-libs/gstreamer-1.18.4 fails building with "undefined symbol"
Summary: media-libs/gstreamer-1.18.4 fails building with "undefined symbol"
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: GStreamer package maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-20 23:32 UTC by piotr5
Modified: 2022-04-10 09:58 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gstreamer 1.20.1 arm64 build.log (gstreamer-1.20.1-arm64-fail.log,249.27 KB, text/plain)
2022-03-24 08:59 UTC, Kyle Elbert
Details

Note You need to log in before you can comment on or make changes to this bug.
Description piotr5 2021-09-20 23:32:05 UTC
/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspect8106njp3/GstBase-1.0: symbol lookup error: /var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspect8106njp3/GstBase-1.0: undefined symbol: gst_aggregator_start_time_selection_get_typePackage gstreamer-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gstreamer-1.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gstreamer-1.0', required by 'virtual:world', not found

uninstalling the package only resulted in that last 2 lines being added, so it's not a version mismatch. I also uninstalled plugins-bad which too seems to use the missing function-definition. I've masked off this version and it works.

Reproducible: Always
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-09-20 23:35:34 UTC
Please provide the full build.log and emerge --info, as the output here doesn't look right.
Comment 2 piotr5 2021-09-21 08:20:04 UTC
yes, sorry, I forgot a linebreak. not sure what my emerge --info would help, the verbose emerge just said

[ebuild  N     ] media-libs/gstreamer-1.18.4:1.0::gentoo  USE="caps introspection nls orc -test -unwind" ABI_X86="32 (64) (-x32)" 0 KiB

uname is

Linux-5.2.20-aufs-x86_64-AMD_A10-7890K_Radeon_R7,_12_Compute_Cores_4C+8G-with-glibc2.33

I searched and the missing symbol is not found in /usr/include, the compilation-output contains the symbol in 

work/gstreamer-1.18.4-abi_x86_64.amd64/libs/gst/base/libgstbase-1.0.so.0.1804.0
work/gstreamer-1.18.4-abi_x86_64.amd64/libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstaggregator.c.o
work/gstreamer-1.18.4-abi_x86_64.amd64/libs/gst/base/libgstbase-1.0.so.0.1804.0.p/libgstbase-1.0.so.0.1804.0.symbols
work/gstreamer-1.18.4-abi_x86_32.x86/libs/gst/base/libgstbase-1.0.so.0.1804.0
work/gstreamer-1.18.4-abi_x86_32.x86/libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstaggregator.c.o
work/gstreamer-1.18.4-abi_x86_32.x86/libs/gst/base/libgstbase-1.0.so.0.1804.0.p/libgstbase-1.0.so.0.1804.0.symbols

and it's in the sources 
work/gstreamer-1.18.4/libs/gst/base/gstaggregator.h
work/gstreamer-1.18.4/libs/gst/base/gstaggregator.c

in the log there's warnings for deprecated g_memdup in
libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstbitwriter.c.o
libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstbaseparse.c.o
libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstbytewriter.c.o
libs/gst/base/libgstbase-1.0.so.0.1804.0.p/gstbytereader.c.o

and finally the actual error is in executing the command starting with
[171/203] /usr/bin/g-ir-scanner --no-libtool --namespace=GstBase --nsversion=1.0 --warn-all --output libs/gst/base/GstBase-1.0.gir

i.e. the actual compilation works fine, the post-compilation things are allowed to assume that maybe you already did do the install hence the problem with pkg-config followed by
Command '['/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspect8106njp3/GstBase-1.0', '--introspect-dump=/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspect8106njp3/functions.txt,/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspect8106njp3/dump.xml']' returned non-zero exit status 127.

thinking it possible the error was caused by g-ir-scanner or rather dev-libs/gobject-introspection being last compiled before switching profile and thereby caused by some /lib vs /lib64 mess, I fixed that situation but still got the same error. or rather since I reinstalled the old version I get the thing without pkg-config problems:

/usr/x86_64-pc-linux-gnu/gcc-bin/10.3.0/../../../lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspectnai33g4t/GstBase-1.0.o:(.data.rel+0x18): undefined reference to `gst_aggregator_start_time_selection_get_type'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['x86_64-pc-linux-gnu-gcc', '-pthread', '-o', '/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspectnai33g4t/GstBase-1.0', '-O2', '-march=bdver3', '-mmmx', '-msse', '-msse2', '-msse3', '-mssse3', '-msse4a', '-mcx16', '-msahf', '-maes', '-mpclmul', '-mpopcnt', '-mabm', '-mlwp', '-mfma', '-mfma4', '-mxop', '-mbmi', '-mtbm', '-mavx', '-msse4.2', '-msse4.1', '-mlzcnt', '-mf16c', '-mfsgsbase', '-mprfchw', '-mfxsr', '-mxsave', '-mxsaveopt', '--param', 'l1-cache-size=16', '--param', 'l1-cache-line-size=64', '--param', 'l2-cache-size=2048', '-mtune=bdver3', '-fstack-protector-strong', '-fomit-frame-pointer', '-pipe', '/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/tmp-introspectnai33g4t/GstBase-1.0.o', '-L.', '-Wl,-rpath,.', '-Wl,--no-as-needed', '-L/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/gst', '-Wl,-rpath,/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/gst', '-L/usr/lib64', '-Wl,-rpath,/usr/lib64', '-L/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/libs/gst/base', '-Wl,-rpath,/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/libs/gst/base', '-L/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/gst', '-Wl,-rpath,/var/tmp/portage/media-libs/gstreamer-1.18.4/work/gstreamer-1.18.4-abi_x86_64.amd64/gst', '-L/usr/lib64', '-Wl,-rpath,/usr/lib64', '-lgstbase-1.0', '-lgstreamer-1.0', '-lgobject-2.0', '-lglib-2.0', '-lgmodule-2.0', '-lm', '-ldl', '-lgirepository-1.0', '-lgio-2.0', '-lgobject-2.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lglib-2.0', '-lglib-2.0', '-Wl,-O1', '-Wl,--as-needed']' returned non-zero exit status 1.

guess in future I'll need to compile media-libs/gstreamer with
USE=-introspection
before recompiling it normally?
Comment 3 Alex 2021-12-10 16:43:12 UTC
I want to confirm the bug, and quick fix, the build with
USE=-introspection emerge -1av --nodeps media-libs/gstreamer 
makes next normal build successful.
Both are compiled with FEATURES="distcc"
Comment 4 Kyle Elbert 2022-03-24 08:59:42 UTC
Created attachment 767691 [details]
gstreamer 1.20.1 arm64 build.log

still hitting this with 1.20.1 on arm64. Just as the last comment, its g-ir failing
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-26 22:40:36 UTC
Has anyone actually hit this without distcc?
Comment 6 microcai 2022-04-10 09:58:01 UTC
(In reply to Sam James from comment #5)
> Has anyone actually hit this without distcc?

hit, but with 1.20.1 version

linker error persist with every possible compiler/linker combinations.

after disable introspection, error gone.

so g-ir-scanner is really the faulty part.