The Persistence of Vision Raytracer (POV-Ray).
This is the Bug Tracking System for the POV-Ray project. Before opening a new task, please read How to make a Bug Report
Please do not issue bugs reports against versions earlier than 3.6.
FS#34 - configure: error: Could not link against boost_thread-boost_thread !
Opened by David Ronis (ronis) - Tuesday, 09 June 2009, 17:47 GMT
Last edited by Nicolas Calimet (calimet) - Tuesday, 16 June 2009, 20:32 GMT
|
DetailsI’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 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. |
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