I'm reporting this bug because the package in summary breaks when forcing --as-needed on through spec files (check out http://blog.flameeyes.eu/2008/11/14/problems-and-mitigation-strategies-for-as-needed for details). Check the attached build log. Thanks, Diego
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