The Persistence of Vision Raytracer (POV-Ray).
This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.
Opened by David Ronis - 2009-06-09
Last edited by Christoph Lipka - 2010-08-29
FS#34 - configure: error: Could not link against boost_thread-boost_thread !
I’ve been trying to upgrade povray 3.6.1 to 3.7-beta-32. I’ve configured with no additional arguments, and the configure dies with:
checking whether to build the boost thread library from sources... no
checking for boostlib >= 1.35... yes
checking whether the Boost::Thread library is available... yes
checking for exit in -lboost_thread... no
checking for exit in -lboost_thread-boost_thread... no
configure: error: Could not link against boost_thread-boost_thread !
I figured that the problem was with my boost installation (1.35) and upgraded boost to 1.39; the problem remains. I tried to see if exit was defined in libboost_thread and/or libboost_thread-boost_thread and it isn’t. Just to be sure that my currrent setup works for the released version, I rebuilt/reninstalled 3.6.1, which went without problem.
I’m on a slackware-12.2 box, using gcc-4.4.0.
Sunday, 29 August 2010, 20:06 GMT
Reason for closing: Fixed
Additional comments about closing:
No further feedback since ages, so
presuming problem solved.
Please attach the config.log file.
The file is attached.
Please try the attached configure file in place of that coming with beta.32.
The new configure still dies:
checking for boostlib >= 1.36... yes
checking whether the Boost::Thread library is available... yes
checking for exit in -lboost_thread-gcc44-mt-1_39... yes
checking whether the boost thread library is usable... no
configure: error: in `/home/ronis/povray-3.7.0.beta.32':
configure: error: cannot link with the boost thread library
See `config.log' for more details.
ls -l prefix/libboost_thread* shows:
ls -l /usr/local/lib/libboost_thread-gcc44-mt*
-rw-r–r– 1 root root 132210 2009-06-09 13:24 /usr/local/lib/libboost_thread-gcc44-mt-1_39.a
lrwxrwxrwx 1 root root 39 2009-06-09 13:24 /usr/local/lib/libboost_thread-gcc44-mt-1_39.so → libboost_thread-gcc44-mt-1_39.so.1.39.0*
-rwxr-xr-x 1 root root 77812 2009-06-09 13:24 /usr/local/lib/libboost_thread-gcc44-mt-1_39.so.1.39.0*
lrwxrwxrwx 1 root root 31 2009-06-09 13:24 /usr/local/lib/libboost_thread-gcc44-mt.a → libboost_thread-gcc44-mt-1_39.a
lrwxrwxrwx 1 root root 39 2009-06-09 13:24 /usr/local/lib/libboost_thread-gcc44-mt.so → libboost_thread-gcc44-mt-1_39.so.1.39.0*
So the library is there.
I've attached config.log
I manually copied the conftest to a file and ran the g++ command as indicated in the log.
/usr/bin/g++ -o conftest -march=pentium4 -msse2 -mfpmath=sse -O3 -ffast-math -funroll-loops -fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -pthread -pthread -I/usr/local/include -L/usr/local/lib boost.cc -lboost_thread-gcc44-mt-1_39 -pthread
{ronispc:158} echo $?
0
It still died when I ran it (same error message). It turns out that I'd forgotten to run ldconfig after upgrading boost. When I do configure finishes without complaint. The build dies either as:
make
make all-recursive
make[1]: Entering directory `/home/ronis/povray-3.7.0.beta.32'
Making all in libraries
make[2]: Entering directory `/home/ronis/povray-3.7.0.beta.32/libraries'
make[2]: * No rule to make target `all'. Stop.
make[2]: Leaving directory `/home/ronis/povray-3.7.0.beta.32/libraries'
make[1]: * [all-recursive] Error 1
make[1]: Leaving directory `/home/ronis/povray-3.7.0.beta.32'
make: *** [all] Error 2
config.log: yes it was clear that you had a run-time check problem that you solved running ldconfig.
For the last make problem: this is expected as some changes have been made in the Makefile.am templates (basically the libraries/ folder is gone in the next beta).
Try to edit the povray-3.7.0.beta.32/Makefile.in (or Makefile.am if you can run the bootstrap script) to remove all references to "libraries", and configure && make again.
Ok, removing the library references in Makefile.in and rerunning configure gets me much farther. The build still dies though with:
unix/unixconsole.cpp: In function 'void PrintVersion()':
unix/unixconsole.cpp:318: error: 'BUILTIN_SVGA_DISPLAY' was not declared in this scope
make[2]: *** [unixconsole.o] Error 1
Well, support for the SVGA lib is also dropped in the next beta. You can safely remove all references to it as well.
I'll be sending you a test version of beta.33 by mail in case you keep hitting this kind of non-issues.
OK, I deleted the reference to BUILTIN_SVGA_DISPLAY in unixconsole.cpp and can compile further. Now it dies with:
/usr/bin/g++ -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -s -O3 -ffast-math -malign-double -march=native -march=pentium4 -msse2 -mfpmath=sse -O3 -ffast-math -funroll-loops -fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -pthread -L/usr/local/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 @LIBBOOST_THREAD@ -lSDL -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lXpm -lSM -lICE -lX11 -lIlmImf -L/usr/local/lib -lIlmImf -lImath -lHalf -lIex -lz -lIlmThread -ltiff -ljpeg -lpng12 -lz -lrt -lm -lboost_thread-gcc44-mt-1_39 -pthread
g++: @LIBBOOST_THREAD@: No such file or directory
@LIBBOST_THREAD@ should be replaced by the actual -lxxx library directive, no?
I manually put in the boost library into unix/Makefile and removed @LIBBOOST_THREAD@. Everything compiles now. Whew!
However, make check gives:
./unix/povray +i./scenes/advanced/biscuit.pov -f +d +p +v +w320 +h240 +a0.3 +L./include
povray: this pre-release version of POV-Ray for Unix has expired
make: *** [check] Error 1
Sheesh, I finished compling a minute ago. :)
Thanks for your help.
Use the expiry extension feature for now.
That did it. Again, thanks for your help.
Beware: current (beta 34) configure checks "checking for boostlib >= 1.36"
Despite the words on the beta page about 1.37 (which should be ok)
Please update configure to check > 1.36, or >= 1.37
Any news on this issue? Can we call this case closed?
I compiled & installed 3.7beta38 with boost 1.40 without any issue (new system, fresh from ubuntu) related to thread library (no special handling, a real pleasure).
I would agree on a close on timeout.