Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 229909 - net-www/gnash-0.8.3 compilation fails: undefined reference to `boost::thread::start_thread()'
Summary: net-www/gnash-0.8.3 compilation fails: undefined reference to `boost::thread:...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Peter Alfredsen (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-28 15:54 UTC by BedOS_Gui
Modified: 2008-06-28 23:17 UTC (History)
1 user (show)

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


Attachments
emerge log (net-www:gnash-0.8.3:20080628-154614.log,534.17 KB, text/plain)
2008-06-28 15:54 UTC, BedOS_Gui
Details
emerge --info (emerge--info,10.62 KB, text/plain)
2008-06-28 15:55 UTC, BedOS_Gui
Details
boostfiles (boostfiles,280.56 KB, text/plain)
2008-06-28 16:33 UTC, BedOS_Gui
Details

Note You need to log in before you can comment on or make changes to this bug.
Description BedOS_Gui 2008-06-28 15:54:31 UTC
gnash-0.8.3 compilation fails on my box with :

libtool: link: x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -pthread -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -fvisibility-inlines-hidden -Wl,--as-needed -Wl,--as-needed -o .libs/soldumper soldumper.o  -L/usr/lib -L/usr/lib64 ../server/.libs/libgnashserver.so -L/lib /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libmedia/.libs/libgnashmedia.so /usr/lib64/libfontconfig.so /usr/lib64/libfreetype.so /usr/lib64/libexpat.so ../libamf/.libs/libgnashamf.so ../libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libamf/.libs/libgnashamf.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libbase/.libs/libgnashbase.so ../libbase/.libs/libgnashbase.so ../libmedia/.libs/libgnashmedia.so /usr/lib64/libjpeg.so /usr/lib64/libcurl.so /usr/lib64/libidn.so /usr/lib64/libssh2.so -lssl -lcrypto /usr/lib64/libgnutls.so /usr/lib64/libtasn1.so /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so /usr/lib64/libltdl.so -lboost_thread-mt-d -lboost_date_time-mt-d /usr/lib64/libgstbase-0.10.so /usr/lib64/libgstpbutils-0.10.so /usr/lib64/libgstreamer-0.10.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libgthread-2.0.so -lpthread /usr/lib64/libxml2.so -lz /usr/lib64/libglib-2.0.so -lc -lrt /usr/lib64/libXi.so /usr/lib64/libXext.so /usr/lib64/libX11.so /usr/lib64/libxcb-xlib.so /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libXdmcp.so -lm -ldl -pthread -Wl,-rpath -Wl,/usr/lib64/gnash
libtool: link: x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -pthread -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -fvisibility-inlines-hidden -Wl,--as-needed -Wl,--as-needed -o .libs/dumpshm dumpshm.o  -L/usr/lib -L/usr/lib64 ../server/.libs/libgnashserver.so -L/lib /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libmedia/.libs/libgnashmedia.so /usr/lib64/libfontconfig.so /usr/lib64/libfreetype.so /usr/lib64/libexpat.so ../libamf/.libs/libgnashamf.so ../libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libamf/.libs/libgnashamf.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libbase/.libs/libgnashbase.so ../libbase/.libs/libgnashbase.so ../libmedia/.libs/libgnashmedia.so /usr/lib64/libjpeg.so /usr/lib64/libcurl.so /usr/lib64/libidn.so /usr/lib64/libssh2.so -lssl -lcrypto /usr/lib64/libgnutls.so /usr/lib64/libtasn1.so /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so /usr/lib64/libltdl.so -lboost_thread-mt-d -lboost_date_time-mt-d /usr/lib64/libgstbase-0.10.so /usr/lib64/libgstpbutils-0.10.so /usr/lib64/libgstreamer-0.10.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libgthread-2.0.so -lpthread /usr/lib64/libxml2.so -lz /usr/lib64/libglib-2.0.so -lc -lrt /usr/lib64/libXi.so /usr/lib64/libXext.so /usr/lib64/libX11.so /usr/lib64/libxcb-xlib.so /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libXdmcp.so -lm -ldl -pthread -Wl,-rpath -Wl,/usr/lib64/gnash
/var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libbase/.libs/libgnashbase.so: undefined reference to `boost::thread::start_thread()'
collect2: ld returned 1 exit status
make[2]: *** [soldumper] Erreur 1
make[2]: *** Attente des tâches non terminées....
/var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libbase/.libs/libgnashbase.so: undefined reference to `boost::thread::start_thread()'
collect2: ld returned 1 exit status
make[2]: *** [dumpshm] Erreur 1
libtool: link: x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -pthread -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -fvisibility-inlines-hidden -Wl,--as-needed -Wl,--as-needed -o .libs/gprocessor gprocessor-processor.o -Wl,--export-dynamic  -L/usr/lib -L/usr/lib64 ../server/.libs/libgnashserver.so -L/lib /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libmedia/.libs/libgnashmedia.so /usr/lib64/libfontconfig.so /usr/lib64/libfreetype.so /usr/lib64/libexpat.so ../libamf/.libs/libgnashamf.so ../libnet/.libs/libgnashnet.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libamf/.libs/libgnashamf.so /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/libbase/.libs/libgnashbase.so ../libbase/.libs/libgnashbase.so ../libmedia/.libs/libgnashmedia.so /usr/lib64/libjpeg.so /usr/lib64/libcurl.so /usr/lib64/libidn.so /usr/lib64/libssh2.so -lssl -lcrypto /usr/lib64/libgnutls.so /usr/lib64/libtasn1.so /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so /usr/lib64/libltdl.so -lboost_thread-mt-d -lboost_date_time-mt-d /usr/lib64/libgstbase-0.10.so /usr/lib64/libgstpbutils-0.10.so /usr/lib64/libgstreamer-0.10.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libgthread-2.0.so -lpthread /usr/lib64/libxml2.so -lz /usr/lib64/libglib-2.0.so -lc -lrt /usr/lib64/libXi.so /usr/lib64/libXext.so /usr/lib64/libX11.so /usr/lib64/libxcb-xlib.so /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libXdmcp.so -lm -ldl -pthread -Wl,-rpath -Wl,/usr/lib64/gnash
../server/.libs/libgnashserver.so: undefined reference to `boost::thread::start_thread()'
../server/.libs/libgnashserver.so: undefined reference to `boost::this_thread::get_id()'
../server/.libs/libgnashserver.so: undefined reference to `boost::thread::get_id() const'
../server/.libs/libgnashserver.so: undefined reference to `boost::detail::get_current_thread_data()'
collect2: ld returned 1 exit status
make[2]: *** [gprocessor] Erreur 1
make[2]: quittant le répertoire « /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3/utilities »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /var/tmp/portage/net-www/gnash-0.8.3/work/gnash-0.8.3 »
make: *** [all] Erreur 2
 * 
 * ERROR: net-www/gnash-0.8.3 failed.

I have rebuild boost but it gave no improvement.

I attach the full compilation log and my emerge --info.

Reproducible: Always
Comment 1 BedOS_Gui 2008-06-28 15:54:53 UTC
Created attachment 158759 [details]
emerge log
Comment 2 BedOS_Gui 2008-06-28 15:55:08 UTC
Created attachment 158761 [details]
emerge --info
Comment 3 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 16:11:09 UTC
This bug should only concern compilation failures that contain "undefined reference to `boost::thread::start_thread()'", no cluttering it with unrelated errors this time.
Comment 4 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 16:23:00 UTC
Please attach the file boostfiles, which you'll create by doing:
equery files boost > boostfiles
Comment 5 Rafał Mużyło 2008-06-28 16:23:46 UTC
This looks like a typical --as-needed bug.
Most probably, the only fix, that's necessary is adding the required boost
libs to the list of libs, that libgnashbase is built with.
I could probably give you the exact automake file, but currently
gnash sources don't seem browseable online (at least only link I see, is 
the non-working bazaar one).
Comment 6 Rafał Mużyło 2008-06-28 16:26:35 UTC
It's probably only a matter of moving the var with boost libs
from soldumper_LDADD to libgnashbase_LIBADD.
Comment 7 Rafał Mużyło 2008-06-28 16:32:27 UTC
Of course, if I'm right, upstream should get those fixes.
Comment 8 BedOS_Gui 2008-06-28 16:33:17 UTC
Created attachment 158765 [details]
boostfiles
Comment 9 Rafał Mużyło 2008-06-28 17:03:29 UTC
Now, that I dug deeper,
it seems that upsteam is actually OK.
But for some reason, gnash tries to link with libraries that don't seem to exist
on your system (boost_thread-mt-d boost_date_time-mt-d),
instead of those you actually have (boost_thread-mt boost_date_time-mt).
Comment 10 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 20:01:42 UTC
(In reply to comment #8)
> Created an attachment (id=158765) [edit]
> boostfiles
> 

Ok, I'm looking at the code and the only thing I can think of is that perhaps a broken symlink is amongst the output of "ls -la /usr/lib64/libboost_thread*"
Could you post the output of that command?
Comment 11 BedOS_Gui 2008-06-28 20:53:20 UTC
> Ok, I'm looking at the code and the only thing I can think of is that perhaps a
> broken symlink is amongst the output of "ls -la /usr/lib64/libboost_thread*"
> Could you post the output of that command?
> 

ls -la /usr/lib64/libboost_thread*
lrwxrwxrwx 1 root root     20 juin 28 17:38 /usr/lib64/libboost_thread.a -> libboost_thread-mt.a
-rw-r--r-- 1 root root 304924 juin 28 17:36 /usr/lib64/libboost_thread-mt.a
-rwxr-xr-x 1 root root 106016 avril 26 10:02 /usr/lib64/libboost_thread-mt-d.so
-rw-r--r-- 1 root root 304924 juin 28 17:36 /usr/lib64/libboost_thread-mt-s.a
-rwxr-xr-x 1 root root 136112 juin 28 17:36 /usr/lib64/libboost_thread-mt.so
lrwxrwxrwx 1 root root     21 juin 28 17:38 /usr/lib64/libboost_thread.so -> libboost_thread-mt.so
Comment 12 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 21:16:15 UTC
This seems weird. You didn't try to compile boost yourself, did you?
We can find out which package owns this with this command:
equery belongs /usr/lib64/libboost_thread-mt-d.so
Please post the output.
Comment 13 BedOS_Gui 2008-06-28 21:19:12 UTC
(In reply to comment #12)
> This seems weird. You didn't try to compile boost yourself, did you?
> We can find out which package owns this with this command:
> equery belongs /usr/lib64/libboost_thread-mt-d.so
> Please post the output.
> 
equery belongs /usr/lib64/libboost_thread-mt-d.so
[ Searching for file(s) /usr/lib64/libboost_thread-mt-d.so in *... ]
no result !
Comment 14 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 21:29:49 UTC
If you didn't try to compile boost yourself, I don't know how you got that file there, but I know how to solve your problem:
rm -f /usr/lib64/libboost_*mt-d*
then remember to run
revdep-rebuild -i -- -a
to rebuild anything that may have linked against the broken libs.

Please tell me how things go.
Comment 15 BedOS_Gui 2008-06-28 22:22:24 UTC
(In reply to comment #14)
> If you didn't try to compile boost yourself, I don't know how you got that file
> there, but I know how to solve your problem:
> rm -f /usr/lib64/libboost_*mt-d*
> then remember to run
> revdep-rebuild -i -- -a
> to rebuild anything that may have linked against the broken libs.
> 
> Please tell me how things go.
> 
The compilation worked fine after deleting /usr/lib64/libboost_*mt-d*

Many thanks for your help Peter, I never had compiled boost myself, at any time with portage, so perhaps was an old lib remaining after upgrading the package.
Comment 16 BedOS_Gui 2008-06-28 22:28:33 UTC
When running reconcilio I notice this warning after upgrading to gnash-0.8.3 :

The following broken files are not owned by any installed package:
    /usr/lib64/gnash/libgnashbackend-0.8.1.so (requires libavformat.so.51)
    /usr/lib64/gnash/libgnashbase-0.8.1.so (requires libavformat.so.51)
    /usr/lib64/gnash/libgnashserver-0.8.1.so (requires libavformat.so.51)

wich seems to telle that the upgrade lets some olds libs in system.
Comment 17 BedOS_Gui 2008-06-28 22:33:03 UTC
(In reply to comment #16)
> When running reconcilio I notice this warning after upgrading to gnash-0.8.3 :
> 
> The following broken files are not owned by any installed package:
>     /usr/lib64/gnash/libgnashbackend-0.8.1.so (requires libavformat.so.51)
>     /usr/lib64/gnash/libgnashbase-0.8.1.so (requires libavformat.so.51)
>     /usr/lib64/gnash/libgnashserver-0.8.1.so (requires libavformat.so.51)
> 
> wich seems to telle that the upgrade lets some olds libs in system.
> 
and so on for :

The following broken files are not owned by any installed package:
    /usr/bin/gparser (requires libgnashbase-0.8.1.so libgnashserver-0.8.1.so)
    /usr/lib64/gnash/libgnashamf-0.8.1.so (requires libgnashbase-0.8.1.so)
    /usr/lib64/gnash/libgnashgeo-0.8.1.so (requires libgnashbase-0.8.1.so)

after deleting libs above
Comment 18 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 22:49:40 UTC
It almost sounds like something touched a lot of your files at one point. What's the output of:
ls -la /usr/lib64/gnash/libgnashamf-0.8.1.so
?
If it's somewhere on 26th of April, I'd say that's the most likely explanation.
Comment 19 BedOS_Gui 2008-06-28 23:06:45 UTC
(In reply to comment #18)
> It almost sounds like something touched a lot of your files at one point.
> What's the output of:
> ls -la /usr/lib64/gnash/libgnashamf-0.8.1.so
> ?
> If it's somewhere on 26th of April, I'd say that's the most likely explanation.
> 
Sorry Peter I have deleted the orphaned libs :-)
Comment 20 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-28 23:17:42 UTC
(In reply to comment #19)
> (In reply to comment #18)
> > It almost sounds like something touched a lot of your files at one point.
> > What's the output of:
> > ls -la /usr/lib64/gnash/libgnashamf-0.8.1.so
> > ?
> > If it's somewhere on 26th of April, I'd say that's the most likely explanation.
> > 
> Sorry Peter I have deleted the orphaned libs :-)
> 

That's fine. We got to the bottom of this, for which I'm glad. We can consider this bug resolved, I think.