POV-Ray

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.

Tasklist

FS#34 - configure: error: Could not link against boost_thread-boost_thread !

Attached to Project: POV-Ray
Opened by David Ronis (ronis) - Tuesday, 09 June 2009, 17:47 GMT
Last edited by Christoph Lipka (clipka) - Sunday, 29 August 2010, 20:06 GMT
Task Type Possible Bug
Category Source code → Configure/Build
Status Closed
Assigned To Nicolas Calimet (calimet)
Operating System Linux
Severity Critical
Priority Normal
Reported Version 3.70 beta 32
Due in Version 3.70 beta 33
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

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.

This task depends upon

Closed by  Christoph Lipka (clipka)
Sunday, 29 August 2010, 20:06 GMT
Reason for closing:  Fixed
Additional comments about closing:  No further feedback since ages, so presuming problem solved.
Comment by Nicolas Calimet (calimet) - Thursday, 11 June 2009, 00:05 GMT

Please attach the config.log file.

Comment by David Ronis (ronis) - Thursday, 11 June 2009, 00:33 GMT

The file is attached.

Comment by Nicolas Calimet (calimet) - Monday, 15 June 2009, 20:43 GMT

Please try the attached configure file in place of that coming with beta.32.

Comment by David Ronis (ronis) - Monday, 15 June 2009, 21:01 GMT

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

Comment by David Ronis (ronis) - Monday, 15 June 2009, 21:12 GMT

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

Comment by Nicolas Calimet (calimet) - Monday, 15 June 2009, 21:51 GMT

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.

Comment by David Ronis (ronis) - Monday, 15 June 2009, 22:49 GMT

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

Comment by Nicolas Calimet (calimet) - Tuesday, 16 June 2009, 08:50 GMT

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.

Comment by David Ronis (ronis) - Tuesday, 16 June 2009, 16:54 GMT

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?

Comment by David Ronis (ronis) - Tuesday, 16 June 2009, 17:01 GMT

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.

Comment by Nicolas Calimet (calimet) - Tuesday, 16 June 2009, 20:31 GMT

Use the expiry extension feature for now.

Comment by David Ronis (ronis) - Tuesday, 16 June 2009, 21:45 GMT

That did it. Again, thanks for your help.

Comment by Grimbert Jérôme (Le_Forgeron) - Tuesday, 22 September 2009, 07:09 GMT

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

Comment by Christoph Lipka (clipka) - Saturday, 19 June 2010, 12:34 GMT

Any news on this issue? Can we call this case closed?

Comment by Grimbert Jérôme (Le_Forgeron) - Sunday, 04 July 2010, 17:01 GMT

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.

Loading...