OpenEXR 1.6.1 build problem (Linux): "configure: error: Could not compile IlmBase test program"

Frank Thommen <[email protected]> Sun, 30 Aug 2009 17:00:16 +0200
Newsgroups gmane.comp.video.openexr.user
Message-ID <[email protected]>
Hi,

I'm currently running into problems building OpenEXR 1.6.1 on CentOS 5.3 
(fully updated) on a x86_64 PC.  I'm installing OpenEXR as a 
prerequisite for Blender (http://www.blender.org).  The error appears 
during configure:

# ./configure --with-ilmbase-prefix=/usr/struct/pack/openexr-1.6 \
               --prefix=/usr/struct/pack/openexr-1.6 \
               LD_LIBRARY_PATH=/usr/struct/pack/openexr-1.6/
[...]
using ilmbase-prefix to set ILMBASE_CXXFLAGS, ILMBASE_LDFLAGS and 
ILMBASE_LIBS:
     ILMBASE_CXXFLAGS =  -I/usr/struct/pack/openexr-1.6/include/OpenEXR
     ILMBASE_LDFLAGS = -L/usr/struct/pack/openexr-1.6/lib -L/usr/lib64 
-L/usr/local/lib
     ILMBASE_LIBS = -lImath -lHalf -lIex -lIlmThread
checking for IlmBase... no
*** Could not run the IlmBase test program, checking why...
*** The IlmBase test program could be compiled, but could not be 
dynamically.
*** or statically linked.
***
*** Make sure the LDFLAGS points to the location of the IlmBase library.
*** (e.g. -L/usr/local/lib).
*** If the run-time linker is not finding IlmBase, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location  Also, make sure you have run ldconfig if that
*** is required on your system.
***
*** Flags used by the test:
***     cflags: -g -O2  -I/usr/struct/pack/openexr-1.6/include/OpenEXR
***     ldflags:  -L/usr/struct/pack/openexr-1.6/lib -L/usr/lib64 
-L/usr/local/lib
***
*** You can also run configure with --disable-ilmbasetest to skip this test.
configure: error: Could not compile IlmBase test program.
#

(the full output of configure can be seen at http://pastie.org/599517). 
ilmbase 1.0.1 is installed correctly (with /usr/struct/pack/openexr-1.6/ 
as prefix) and built w/o errors (including `make check`).

In config.log I find the following relevant entries:

[...]
configure:20450: checking for IlmBase
configure:20491: g++ -o conftest -g -O2 
-I/usr/struct/pack/openexr-1.6/include/OpenEXR 
-L/usr/struct/pack/openexr-1.6/lib -L/usr/lib64 -L/usr/local/lib 
conftest.cc  -lImath -lHalf -lIex -lIlmThread >&5
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_init'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_destroy'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`pthread_create'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_post'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_trywait'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_getvalue'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`sem_wait'
/usr/struct/pack/openexr-1.6/lib/libIlmThread.so: undefined reference to 
`pthread_join'
collect2: ld returned 1 exit status
[...]

The full config.log can be seen at http://pastie.org/599523.  I could 
not find any helfpul information on the web, but maybe someone of you 
has an idea, how this problem could be fixed or if there is a workaround.

Cheers & thanks

    frank