openexr-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-user] OpenEXR 1.6.1 build problem (Linux): "configure: erro


From: Frank Thommen
Subject: Re: [Openexr-user] OpenEXR 1.6.1 build problem (Linux): "configure: error: Could not compile IlmBase test program"
Date: Wed, 02 Sep 2009 18:28:24 +0200
User-agent: Thunderbird 2.0.0.22 (Macintosh/20090605)

Hi Ger,

sorry for not keeping up, I was busy with other projects...


Ger Hobbelt wrote:
hmmmm... haven't built EXR on Linux for a long time myself - let's see...

when you run the ./configure for IlmBase, it reports back what's
seeing and going to use. A part of output concerns threading; here's
the snippet from my 64-bit Ubuntu dev box; the point is that there
should be at least one 'yes' in this section ;-)

---snip---
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
---snip---


In my ./configure ouput for ilmbase (1.0.1) I have exactly the same lines as you listed above.



I'm curious what your platform is saying there; before we dive any
deeper this 'detection code' in the configure script should give us an
idea where to poke next.

After some additional searching I found this page: http://www.mail-archive.com/address@hidden/msg00690.html (I hadn't searched in the devel list previously). It describes exactly my problem and after adding '-lrt -fPIC' to gcc and g++, openexr compiled and built w/o error messages.



I have no software development knowledge and therefore these error messages
are somehow cryptic to me.  But I see, that libIlmThread.so does not refer
(link?) to pthread.so at all:

You're doing fine for a non-dev. Keep it up ;-)

openexr-1.6 > ldd ../../lib/libIlmThread.so
       libIex.so.6 => /usr/struct/pack/openexr-1.6/lib/libIex.so.6
(0x00002ae626943000)
       libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002ae626b60000)
       libm.so.6 => /lib64/libm.so.6 (0x00002ae626e80000)
       libc.so.6 => /lib64/libc.so.6 (0x00002ae627104000)
       libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002ae62745a000)
       /lib64/ld-linux-x86-64.so.2 (0x00000031e8c00000)
openexr-1.6 >


Could that be the problem and is there a way to fix it?

That's the issue; the tough question is two-part: (1) where did the
process screw up exactly --> (2) once we know the 'where' in more
detail, what can we do to kick it into cooperating.


... oh dang. dang. dang. I forgot. Had this issue already /several/
times in a row with other folks on Linux (it's due to the Linux
package installer systems being geared a bit too much to 'using' IMO;
creating a bit of a bother when 'users' take the obvious step thinking
"heck, what's so hard in typing './configure' and 'make install'
anyway?" And then they get a nasty surprise they should _not_ have
got. I got a few nasty surprises myself when I returned to this
platform after several years. But I digress.)

The thing to check:

your system has a 'package installer' of some sort where you select
the 'packages' you want installed on your system, e.g. 'pthreads',
'gcc compiler', 'open office', etc.etc.
Now here's the nasty bit: I bet myself a bottle of good single malt
you've got 'pthreads' or 'libpthreads' or whatever they'll call it in
your package manager (e.g. on Ubuntu: System>Administration>Synaptic
Package Manager) checked as 'already installed' in that manager
(that's why you could find that libpthreads.so loadable library) but
you (and this is my bet) do /not/ have the 'libpthreads-dev' package
installed /as well/ (should be called the same with ' dev' or '-dev'
something appended to the name). Maybe it even comes with a
description where it says that the 'dev' package will install the
'header files'. Tick that one and install, because /that's/ what
./configure is looking for too: to build a piece of software which
depends on a library of any sort, in Linux nowadays you need both the
'libraryXYZ' _plus_ the 'libraryXYZ-dev' packages installed or you get
a situation very much like this one: everything looks good, meanwhile
nothing builds, linker errors galore and you're left pulling your
hair.

If that 'pthreads-dev' package was not yet installed, and now that it
is, rerun all ./configure scripts (IlmBase, OpenEXR, etc.) and 'make',
'make check' and 'make install' commands like you did before, so that
the newfound pthreads 'header files' can be detected by the configure
scripts and alter the OpenEXR build instructions accordingly.


... do I win my bet or did I loose? ;-)


I'm sorry, but you lost the bet :-)). In CentOS, libpthread comes with the glibc and glibc-devel packages, but the glibc-headers with all headerfiles was also installed. So I think it was really the missing options and the old/not updated autoconf script that comes with OpenEXR. Don't be sad, there will other bets to win in the future :-).

For the single malt: An old Cragganmore would be perfect. Yummy!


Thanks a lot for your help. Now I'll go on and try to solve the Blender build error messages :-(

    frank




reply via email to

[Prev in Thread] Current Thread [Next in Thread]