Summary: | media-plugins/live: breaks with forced --as-needed | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Component: | Current packages | Assignee: | Gentoo Media-video project <media-video> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | binki, esigra, mjo |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://www.gentoo.org/proj/en/qa/asneeded.xml | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 129413 | ||
Attachments: | Build log |
Description
Diego Elio Pettenò (RETIRED)
![]() Created attachment 172576 [details]
Build log
not much to be done here imho: live produces only static libs normally, so people are expected to link to all libs; the shared libs is a gentoo invention I know, I think I wrote most of it, I'll see to get it fixed too, but I had to open the bug or otherwise I would have forgotten about it. The current stable media-plugins/live-2017.01.26 works, even with the modified GCC profile described in the blog post. Resolved? Or somebody want to double-check? still an issue i think: $ gcc foo.c -lBasicUsageEnvironment /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `HashTable::Iterator::~Iterator()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `HashTable::Iterator::Iterator()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `strDup(char const*)' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `TaskScheduler::rescheduleDelayedTask(void*&, long, void (*)(void*), void*)' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `UsageEnvironment::~UsageEnvironment()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `HashTable::HashTable()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `typeinfo for HashTable::Iterator' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `TaskScheduler::internalError()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `TaskScheduler::~TaskScheduler()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `typeinfo for TaskScheduler' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `HashTable::~HashTable()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `UsageEnvironment::internalError()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `typeinfo for HashTable' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `TaskScheduler::TaskScheduler()' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `UsageEnvironment::UsageEnvironment(TaskScheduler&)' /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/libBasicUsageEnvironment.so: undefined reference to `typeinfo for UsageEnvironment' (In reply to Alexis Ballier from comment #5) > still an issue i think: > > $ gcc foo.c -lBasicUsageEnvironment Crap, I didn't realize that the build log was for a package that *depends on* media-plugins/live. Thanks for checking. It looks like BasicUsageEnvironment needs to be linked against the regular UsageEnvironment. A few small changes make that work. In config.gentoo-so-r1: -LINK_OPTS = -L. +LINK_OPTS = -L. -L../UsageEnvironment And in BasicUsageEnvironment/Makefile.tail: +LIBS = -lUsageEnvironment + libBasicUsageEnvironment.$(LIB_SUFFIX): $(OBJS) $(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \ - $(OBJS) + $(OBJS) $(LIBS) Maybe something else breaks after that, but "ldd libBasicUsageEnvironment.so" shows that it's linked against "libUsageEnvironment.so" at least. (In reply to Michael Orlitzky from comment #6) > (In reply to Alexis Ballier from comment #5) > > still an issue i think: > > > > $ gcc foo.c -lBasicUsageEnvironment > > Crap, I didn't realize that the build log was for a package that *depends > on* media-plugins/live. Thanks for checking. > > It looks like BasicUsageEnvironment needs to be linked against the regular > UsageEnvironment. A few small changes make that work. > > In config.gentoo-so-r1: > > -LINK_OPTS = -L. > +LINK_OPTS = -L. -L../UsageEnvironment > > > And in BasicUsageEnvironment/Makefile.tail: > > +LIBS = -lUsageEnvironment > + > libBasicUsageEnvironment.$(LIB_SUFFIX): $(OBJS) > $(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \ > - $(OBJS) > + $(OBJS) $(LIBS) > > Maybe something else breaks after that, but "ldd > libBasicUsageEnvironment.so" shows that it's linked against > "libUsageEnvironment.so" at least. yes something like that would work it's been years but if I remember correctly it was not that easy since libs had circular deps Still an issue with media-plugins/live-2021.08.24... |