Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 332683 - media-gfx/povray-3.7.0_beta35 fails to properly detect dev-libs/boost
Summary: media-gfx/povray-3.7.0_beta35 fails to properly detect dev-libs/boost
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Joe Peterson (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-13 23:45 UTC by Yörn Jünger
Modified: 2011-09-30 20:58 UTC (History)
3 users (show)

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


Attachments
povray-3.7.0_beta38 buld.log (build.log,191.63 KB, text/plain)
2010-08-20 13:23 UTC, Yörn Jünger
Details
emerge --info (emerge.info,4.62 KB, text/plain)
2010-08-31 15:37 UTC, Yörn Jünger
Details
diff taken from local overlay (povray-3.7.0_beta38.ebuild.diff,454 bytes, patch)
2010-10-30 15:35 UTC, Yörn Jünger
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yörn Jünger 2010-08-13 23:45:48 UTC
I tried to emerge the new povray beta without any success. It crashes due to an undefined reference to a boost method. Switching to boost-1.35.0-r5 let it crash, too.

Reproducible: Always

Steps to Reproduce:
1. add ~x86 keyword for media-gfx/povray
2. emerge =media-gfx/povray-3.7.0_beta35


Actual Results:  
Complilation did not finish.

Expected Results:  
Povray compiles fine.

# equery list boost
[ Searching for package 'boost' in all categories among: ]
 * installed packages
[I--] [  ] app-admin/eselect-boost-0.3 (0)
[I--] [  ] dev-libs/boost-1.35.0-r5 (0)
[I--] [  ] dev-libs/boost-1.41.0-r3 (1.41)
[I--] [  ] dev-util/boost-build-1.35.0-r2 (0)
[I--] [  ] dev-util/boost-build-1.41.0 (1.41)


i686-pc-linux-gnu-g++  -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -O3 -ffast-math -malign-double -march=native -march=core2 -mfpmath=sse -O2 -pipe -msse -msse2 -mssse3 -mmmx -DPOVLIBDIR=\"/usr/share/povray\" -DPOVCONFDIR=\"/etc/povray\" -pthread  -Lyes -Wl,-O1 -Wl,--as-needed -L/usr/lib  -L/usr/lib -o povray disp_sdl.o disp_text.o ../vfe/libvfe.a ../source/backend/libbackend.a ../source/frontend/libfrontend.a ../source/base/libbase.a ../source/libpovray.a -lSDL -lSDL -lpthread -lXpm  -lSM -lICE -lX11  -lIlmImf -pthread -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread   -lIlmThread -ltiff -ljpeg -lpng -lz -lrt -lm -lboost_thread-1_35  -pthread 
../vfe/libvfe.a(vfesession.o): In function `vfe::vfeSession::WorkerThread()':
vfesession.cpp:(.text+0x1843): undefined reference to `boost::this_thread::yield()'
../source/backend/libbackend.a(povray.o): In function `povray_terminate()':
povray.cpp:(.text+0x51): undefined reference to `boost::this_thread::yield()'
../source/backend/libbackend.a(povray.o): In function `(anonymous namespace)::MainThreadFunction()':
povray.cpp:(.text+0x166): undefined reference to `boost::this_thread::yield()'
../source/backend/libbackend.a(povray.o): In function `povray_init(void**)':
povray.cpp:(.text+0xb31): undefined reference to `boost::this_thread::yield()'
../source/backend/libbackend.a(scene.o): In function `pov::Scene::ParserControlThread()':
scene.cpp:(.text+0xa4): undefined reference to `boost::this_thread::yield()'
../source/backend/libbackend.a(view.o):view.cpp:(.text+0x374): more undefined references to `boost::this_thread::yield()' follow
collect2: ld returned 1 exit status
make[2]: *** [povray] Error 1
make[2]: Leaving directory `/var/tmp/portage/media-gfx/povray-3.7.0_beta35/work/povray-3.7.0.beta.35a/unix'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/media-gfx/povray-3.7.0_beta35/work/povray-3.7.0.beta.35a'
make: *** [all] Error 2
 * ERROR: media-gfx/povray-3.7.0_beta35 failed:
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  48:  Called src_compile
 *   environment, line 3453:  Called die
 * The specific snippet of code:
 *       emake || die
 * 
 * If you need support, post the output of 'emerge --info =media-gfx/povray-3.7.0_beta35',
 * the complete build log and the output of 'emerge -pqv =media-gfx/povray-3.7.0_beta35'.
 * The complete build log is located at '/var/tmp/portage/media-gfx/povray-3.7.0_beta35/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-gfx/povray-3.7.0_beta35/temp/environment'.
 * S: '/var/tmp/portage/media-gfx/povray-3.7.0_beta35/work/povray-3.7.0.beta.35a'
Comment 1 Ivan Iraci 2010-08-16 08:50:03 UTC
Same here.
Comment 2 Yörn Jünger 2010-08-16 18:04:56 UTC
media-gfx/povray-3.7.0_beta38 fails with the same error also.
BTW:
# emerge -v povray

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] media-gfx/povray-3.7.0_beta38 [3.6.1-r4] USE="X tiff -debug% -mkl% -openexr% (-svga%)" 0 kB

and:

# equery uses boost
[ Searching for packages matching boost... ]
[ Colour Code : set unset ]
[ Legend : Left column  (U) - USE flags from make.conf              ]
[        : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for dev-libs/boost-1.35.0-r5 ]
 U I
 - - doc     : Adds extra documentation (API, Javadoc, etc)
 - + eselect : Run "eselect boost update" even if version is already selected
 - - expat   : Enable the use of dev-libs/expat for XML parsing
 - - icu     : Enable ICU (Internationalization Components for Unicode) support, using dev-libs/icu
 - - mpi     : Adds MPI (Message Passing Interface) layer to the apps that support it
 + + python  : Adds support/bindings for the Python language
 - - test    : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
 - - tools   : Build and install the boost tools (bcp, quickbook, inspect, wave)
[ Found these USE variables for dev-libs/boost-1.41.0-r3 ]
 U I
 - - debug   : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml
 - - doc     : Adds extra documentation (API, Javadoc, etc)
 - + eselect : Run "eselect boost update" even if version is already selected
 - - expat   : Enable the use of dev-libs/expat for XML parsing
 - - icu     : Enable ICU (Internationalization Components for Unicode) support, using dev-libs/icu
 - - mpi     : Adds MPI (Message Passing Interface) layer to the apps that support it
 + + python  : Adds support/bindings for the Python language
 - - test    : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
 - - tools   : Build and install the boost tools (bcp, quickbook, inspect, wave)
Comment 3 Eray Aslan gentoo-dev 2010-08-19 19:19:07 UTC
Please attach the full build log.  Thank you.
Comment 4 Yörn Jünger 2010-08-20 13:23:20 UTC
Created attachment 243689 [details]
povray-3.7.0_beta38 buld.log
Comment 5 Joe Peterson (RETIRED) gentoo-dev 2010-08-26 14:24:30 UTC
This works for me with boost-1.42.0-r2.  Can you try this and report back?  I'll back a dependency on this version if this is the problem.
Comment 6 Yörn Jünger 2010-08-31 15:36:36 UTC
(In reply to comment #5)
> This works for me with boost-1.42.0-r2.  Can you try this and report back? 
> I'll back a dependency on this version if this is the problem.
> 

Nope, same result as described above. I tried to merge with the same USE-Flags. What did you do?
Comment 7 Yörn Jünger 2010-08-31 15:37:54 UTC
Created attachment 245497 [details]
emerge --info
Comment 8 Yörn Jünger 2010-08-31 23:13:38 UTC
Compiled fine from source with:
./configure COMPILED_BY="your name <email@address>" --with-boost=/usr/lib/boost-1_42 --with-boost-thread=boost_thread-mt

Maybe there is a problem with a multi-slot boost installation.
Comment 9 Yörn Jünger 2010-08-31 23:28:09 UTC
After purging dev-libs/boost-1.35.0-r5 and dev-libs/boost-1.42.0-r2 everything went fine using emerge. I suggest there is a problem with eselect-boost, because boost::thread was IMHO introduced with >=boost-1.39.
Comment 10 Joe Peterson (RETIRED) gentoo-dev 2010-10-20 20:26:22 UTC
Hi again.  If you believe this is still an eselect boost issue, could you open a bug against that that this bug depends on?  Then, perhaps, we can resolve it or at least find out if it is related.
Comment 11 Yörn Jünger 2010-10-29 22:11:56 UTC
Done.

http://bugs.gentoo.org/show_bug.cgi?id=343297
Comment 12 Joe Peterson (RETIRED) gentoo-dev 2010-10-29 22:27:00 UTC
Cool - thanks!  Can you set this bug to depend on that new one?  Or post here its bug number...
Comment 13 Sebastian Luther (few) 2010-10-30 04:39:53 UTC
As the build log shows, the build system tries to link against -lboost_thread-1_35. The ./configure output shows this too. It's up to the configure script to detect the latest boost version it can work with. It seems to get it right for the headers, but not for the lib.
Comment 14 Yörn Jünger 2010-10-30 05:16:25 UTC
So obviously! Do you think this is a upstream issue, also?
Comment 15 Sebastian Luther (few) 2010-10-30 06:07:15 UTC
Well, that's not easy to tell. Detecting boost is not as easy as it should be and boost supports quite some naming schemes for it's libs, which makes it easy to miss some cases. 

I took a look at the configure script and I think you should just tell it where boost is located on gentoo. The configure script has some switches for this. Take a look at dev-python/visual-5.3.2 ebuild. It shows how to get the needed paths, but don't use the append-*flags hack, but use the configure options.
Comment 16 Joe Peterson (RETIRED) gentoo-dev 2010-10-30 14:32:01 UTC
Yörn,

I'll be on travel next week, so I'll have little time to experiment with the configure script, but if you manage to figure out a patch that works, please post it, and that will help this bug get fixed faster.  :)
Comment 17 Yörn Jünger 2010-10-30 14:53:09 UTC
I'm just working on your dev-python/visual hint. See configure script on line
7349.
Comment 18 Yörn Jünger 2010-10-30 15:35:37 UTC
Created attachment 252585 [details, diff]
diff taken from local overlay

This works for me. Please check if this can be called a fix :)
Comment 19 Yörn Jünger 2010-10-30 15:37:06 UTC
(In reply to comment #17)
> I'm just working on your dev-python/visual hint. See configure script on line
> 7349.
> 

setting BOOST_ROOT in the ebuild didn't work.
Comment 20 Sebastian Luther (few) 2010-10-30 16:32:21 UTC
(In reply to comment #18)
> Created an attachment (id=252585) [details]
> diff taken from local overlay
> 
> This works for me. Please check if this can be called a fix :)
> 

I think it needs to be --with-boost=$BOOST_INC (not LIB) and you need to pass BOOST_LIB with another switch.

Comment 21 Yörn Jünger 2010-11-04 17:46:01 UTC
(In reply to comment #20)
> (In reply to comment #18)
> > Created an attachment (id=252585) [details] [details]
> > diff taken from local overlay
> > 
> > This works for me. Please check if this can be called a fix :)
> > 
> 
> I think it needs to be --with-boost=$BOOST_INC (not LIB) and you need to pass
> BOOST_LIB with another switch.
> 

As you see in comment #8, we have to give $BOOST_LIB.
Comment 22 Joe Peterson (RETIRED) gentoo-dev 2011-09-30 20:58:05 UTC
3.7.0_beta35 is no longer in the tree.