Drew Hess | 2 Aug 23:13

OpenEXR 1.4.0 released


Hi all,

I'm happy to announce the release of OpenEXR 1.4.0.  This is the next
major production-ready release of OpenEXR and offers full
compatibility with our last production release, which was 1.2.2.  You
can download the source code here:

http://download.savannah.gnu.org/releases/openexr/openexr-1.4.0.tar.gz

When I'm back from SIGGRAPH next week, I'll upload pre-compiled
versions for Windows (for both Visual Studio 2003 and 2005) and for OS
X 10.4.

This version obsoletes version 1.3.x, which was the beta test version
for 1.4.0.  If you have been using 1.3.x, please upgrade to 1.4.0.
Please do not ship applications with 1.3.x, it had a few significant
bugs that are fixed in 1.4.0.

The major new feature in OpenEXR 1.4.0 is support for multithreaded
reading and writing of files.  Developers, please see the developer
documentation for information on how to enable threading support in
your application.

Here's a full list of changes in 1.4.0:

    - Multithread support for reading and writing an OpenEXR
      file.
    - Support for Intel-based OS X systems.
    - Support for Visual Studio 2005.
(Continue reading)

Barnaby Robson | 3 Aug 00:24

RE: OpenEXR 1.4.0 released

Hey OpenEXR coders,

Sorry if this is a really stupid question and feel free to quietly 
chuckle at me from your desk if it is .... 

In the docs it mentions setting the global thread count with setGlobalThreadCount()
and then sharing the threads between reading and writing files with 2 going
to each process. 

In one of my programs I read a file into a frame buffer in one big chunk if it is a
scanline file (or read all tiles in a loop if it is tiled).
I then process the pixel data by looping through scanlines to find the DOD and then
loop through the pixel data over a user specified tile size (unrelated to the EXR tile size 
to look for bad render buckets) and then I write out a new file. 

Am I likely to need to share threads between reading and writing in this case or not ?
In the code it seems like all the reading gets done before the writing but I am
wondering if there is some compiler magic that takes place that makes things all
happen concurrently.

Thanks ! 

Barnaby.

-----Original Message-----
From: openexr-devel-bounces+brobson=killerobot.com <at> nongnu.org
[mailto:openexr-devel-bounces+brobson=killerobot.com <at> nongnu.org]On
Behalf Of Drew Hess
Sent: Wednesday, August 02, 2006 2:14 PM
To: openexr-announce <at> nongnu.org; openexr-devel <at> nongnu.org
(Continue reading)

Barnaby Robson | 3 Aug 19:18

Typos found in 1.4.0 release

Hi
 
There are some typos ...
 
in the vc7 Iex project, ReleaseDLL configuration, Post-Build Event
..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexDebugDLL -i$(TargetDir)\..\lib\Iex_dll.lib
post-build
should be
..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexReleaseDLL -i$(TargetDir)\..\lib\Iex_dll.lib
post-build
in the vc7 Half project ReleaseDLL configuration, Post-Build Event 
 
..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfDebugDLL -i$(TargetDir)\..\lib\Half_dll.lib
post-build
should be..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfReleaseDLL -i$(TargetDir)\..\lib\Half_dll.lib
post-build
in the Imath project ReleaseDLL configuration, Post-Build Event
 
$(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathDebugDLL -i$(TargetDir)\..\lib\Imath_dll.lib
post-build
should be$(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathReleaseDLL -i$(TargetDir)\..\lib\Imath_dll.lib
post-build
in the IlmThread project, ReleaseDLL configuration, Post-Build Event
 
..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadDebugDLL -i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
post-build
should be
..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadReleaseDLL -i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
post-build

in the IlmImf project, ReleaseDLL configuration, Post-Build Event
 
..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfDebugDLL -i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
post-build
should be
..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfReleaseDLL -i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
post-build
Thanks for all your work ... everybody loves OpenEXR !
 
barnaby.

 
-------------------------
 Quidquid latine dictum sit, altum sonatur.
 
_______________________________________________
Openexr-devel mailing list
Openexr-devel <at> nongnu.org
http://lists.nongnu.org/mailman/listinfo/openexr-devel
Drew Hess | 3 Aug 21:08

Re: Typos found in 1.4.0 release


Cool, thanks.  I hate editing those files and it looks like you've
already made the fixes in your version of the .vcproj files; do you
mind sending me yours?

thanks
d

"Barnaby Robson" <brobson <at> killerobot.com> writes:

> Hi 
>  
> There are some typos ...
>  
> in the vc7 Iex project, ReleaseDLL configuration, Post-Build Event 
> ..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexDebugDLL -i$(TargetDir)\..\lib\Iex_dll.lib
> post-build
> should be 
> ..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexReleaseDLL -i$(TargetDir)\..\lib\Iex_dll.lib
> post-build
> in the vc7 Half project ReleaseDLL configuration, Post-Build Event 
>  
> ..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfDebugDLL -i$(TargetDir)\..\lib\Half_dll.lib
> post-build
> should be
> ..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfReleaseDLL -i$(TargetDir)\..\lib\Half_dll.lib
> post-build
> in the Imath project ReleaseDLL configuration, Post-Build Event 
>  
> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathDebugDLL -i$(TargetDir)\..\lib\Imath_dll.lib
> post-build
> should be
> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathReleaseDLL -i$(TargetDir)\..\lib\Imath_dll.lib
> post-build
>
> in the IlmThread project, ReleaseDLL configuration, Post-Build Event 
>  
> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadDebugDLL
-i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
> post-build
> should be
> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadReleaseDLL
-i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
> post-build
>
> in the IlmImf project, ReleaseDLL configuration, Post-Build Event
>  
> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfDebugDLL
-i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
> post-build
> should be
> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfReleaseDLL
-i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
> post-build
> Thanks for all your work ... everybody loves OpenEXR !
>  
> barnaby.
>
>
>  
> -------------------------
>  Quidquid latine dictum sit, altum sonatur. 
>  
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel <at> nongnu.org
> http://lists.nongnu.org/mailman/listinfo/openexr-devel
E. Scott Larsen | 3 Aug 21:25
Picon
Favicon

Re: Typos found in 1.4.0 release

One should be able to replace "Debug" and "Release" with 
$(ConfigurationName) in both --e.g. 
-l$(TargetDir)\..\lib\Iex$ConfigurationName)DLL  --, then it'll 
automatically set them correctly.

At least, that's what helps us around here.

//Scott

Drew Hess wrote:
> Cool, thanks.  I hate editing those files and it looks like you've
> already made the fixes in your version of the .vcproj files; do you
> mind sending me yours?
> 
> thanks
> d
> 
> 
> "Barnaby Robson" <brobson <at> killerobot.com> writes:
> 
>> Hi 
>>  
>> There are some typos ...
>>  
>> in the vc7 Iex project, ReleaseDLL configuration, Post-Build Event 
>> ..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexDebugDLL -i$(TargetDir)\..\lib\Iex_dll.lib
>> post-build
>> should be 
>> ..\bin\createDLL -n$(TargetDir)\Iex_dll.map -l$(TargetDir)\..\lib\IexReleaseDLL -i$(TargetDir)\..\lib\Iex_dll.lib
>> post-build
>> in the vc7 Half project ReleaseDLL configuration, Post-Build Event 
>>  
>> ..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfDebugDLL -i$(TargetDir)\..\lib\Half_dll.lib
>> post-build
>> should be
>> ..\bin\createDLL -n$(TargetDir)\Half_dll.map -l$(TargetDir)\..\lib\HalfReleaseDLL -i$(TargetDir)\..\lib\Half_dll.lib
>> post-build
>> in the Imath project ReleaseDLL configuration, Post-Build Event 
>>  
>> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathDebugDLL -i$(TargetDir)\..\lib\Imath_dll.lib
>> post-build
>> should be
>> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathReleaseDLL -i$(TargetDir)\..\lib\Imath_dll.lib
>> post-build
>>
>> in the IlmThread project, ReleaseDLL configuration, Post-Build Event 
>>  
>> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadDebugDLL
-i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
>> post-build
>> should be
>> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadReleaseDLL
-i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
>> post-build
>>
>> in the IlmImf project, ReleaseDLL configuration, Post-Build Event
>>  
>> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfDebugDLL
-i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
>> post-build
>> should be
>> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map
-l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfReleaseDLL
-i$(TargetDir)\..\lib\IlmImf_dll.lib -oilmthread_dll.lib;half_dll.lib;zlib1.lib
>> post-build
>> Thanks for all your work ... everybody loves OpenEXR !
>>  
>> barnaby.
>>
>>
>>  
>> -------------------------
>>  Quidquid latine dictum sit, altum sonatur. 
>>  
>> _______________________________________________
>> Openexr-devel mailing list
>> Openexr-devel <at> nongnu.org
>> http://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel <at> nongnu.org
> http://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
E. Scott Larsen | 3 Aug 21:30
Picon
Favicon

Re: Typos found in 1.4.0 release

made a typo myself - oops :)

E. Scott Larsen wrote:
> One should be able to replace "Debug" and "Release" with 
> $(ConfigurationName) in both --e.g. 
> -l$(TargetDir)\..\lib\Iex$ConfigurationName)DLL  --, then it'll 
> automatically set them correctly.
> 
> At least, that's what helps us around here.
> 
> //Scott
> 
> Drew Hess wrote:
>> Cool, thanks.  I hate editing those files and it looks like you've
>> already made the fixes in your version of the .vcproj files; do you
>> mind sending me yours?
>>
>> thanks
>> d
>>
>>
>> "Barnaby Robson" <brobson <at> killerobot.com> writes:
>>
>>> Hi  
>>> There are some typos ...
>>>  
>>> in the vc7 Iex project, ReleaseDLL configuration, Post-Build Event 
>>> ..\bin\createDLL -n$(TargetDir)\Iex_dll.map 
>>> -l$(TargetDir)\..\lib\IexDebugDLL -i$(TargetDir)\..\lib\Iex_dll.lib
>>> post-build
>>> should be ..\bin\createDLL -n$(TargetDir)\Iex_dll.map 
>>> -l$(TargetDir)\..\lib\IexReleaseDLL -i$(TargetDir)\..\lib\Iex_dll.lib
>>> post-build
>>> in the vc7 Half project ReleaseDLL configuration, Post-Build Event  
>>> ..\bin\createDLL -n$(TargetDir)\Half_dll.map 
>>> -l$(TargetDir)\..\lib\HalfDebugDLL -i$(TargetDir)\..\lib\Half_dll.lib
>>> post-build
>>> should be
>>> ..\bin\createDLL -n$(TargetDir)\Half_dll.map 
>>> -l$(TargetDir)\..\lib\HalfReleaseDLL -i$(TargetDir)\..\lib\Half_dll.lib
>>> post-build
>>> in the Imath project ReleaseDLL configuration, Post-Build Event  
>>> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathDebugDLL 
>>> -i$(TargetDir)\..\lib\Imath_dll.lib
>>> post-build
>>> should be
>>> $(TargetDir)\createDLL -n$(TargetDir)\Imath_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\ImathReleaseDLL 
>>> -i$(TargetDir)\..\lib\Imath_dll.lib
>>> post-build
>>>
>>> in the IlmThread project, ReleaseDLL configuration, Post-Build Event  
>>> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadDebugDLL 
>>> -i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
>>> post-build
>>> should be
>>> ..\bin\createDLL -n$(TargetDir)\IlmThread_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmThreadReleaseDLL 
>>> -i$(TargetDir)\..\lib\IlmThread_dll.lib -oIex_dll.lib
>>> post-build
>>>
>>> in the IlmImf project, ReleaseDLL configuration, Post-Build Event
>>>  
>>> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfDebugDLL 
>>> -i$(TargetDir)\..\lib\IlmImf_dll.lib 
>>> -oilmthread_dll.lib;half_dll.lib;zlib1.lib
>>> post-build
>>> should be
>>> ..\bin\createDLL -n$(TargetDir)\IlmImf_dll.map 
>>> -l$(TargetDir)\..\lib;$(TargetDir)\..\lib\IlmImfReleaseDLL 
>>> -i$(TargetDir)\..\lib\IlmImf_dll.lib 
>>> -oilmthread_dll.lib;half_dll.lib;zlib1.lib
>>> post-build
>>> Thanks for all your work ... everybody loves OpenEXR !
>>>  
>>> barnaby.
>>>
>>>
>>>  
>>> -------------------------
>>>  Quidquid latine dictum sit, altum sonatur.  
>>> _______________________________________________
>>> Openexr-devel mailing list
>>> Openexr-devel <at> nongnu.org
>>> http://lists.nongnu.org/mailman/listinfo/openexr-devel
>>
>>
>> _______________________________________________
>> Openexr-devel mailing list
>> Openexr-devel <at> nongnu.org
>> http://lists.nongnu.org/mailman/listinfo/openexr-devel
>>
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel <at> nongnu.org
> http://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
Florian Kainz | 4 Aug 23:58

Re: OpenEXR 1.4.0 released

Hi Barnaby,

I am not entirely sure if I understand your question; I hope my
answer doesn't miss the point of your mail...

setGlobalThreadCount() creates a global "thread pool".  When your
application calls readPixels(), writePixels(), readTiles() or
writeTiles(), the IlmImf library examines if your application's
request is large enough to be broken up into smaller chunks that
can be processed concurrently.  The library then grabs as many
threads as necessary from the thread pool and tells each thread
to process one or more of those chunks.

Your application performs three sequential steps: 1) read an image
from an input file, 2) process the pixels, 3) store the results in
an output file.

The IlmImf library will not magically overlap steps 1 and 3 so that
reading the input file and writing the output file happen concurrently.
However, the library will use its thread pool to accelerate steps
1 and 3.  (For tiled files you should replace the loop over the tiles
with a single call to the new readTiles() or writeTiles() function.)

Sharing threads between file input and file output is relevant only if
your application is multi-threaded.  For example, if your application
processes a long sequence of images, then it might have three threads:
one thread reads the input files, the second one does pixel processing
and the third one writes the output files.  In this case file reading
and writing do overlap.  Most of the time you will have two files open
at the same time: one for input and one for output.  You want to make
sure that the IlmImf library splits its thread pool evenly.  If you
set the global thread count to 4, then you should set numThreads to 2
for each of the files you open for reading and writing.

Florian

Barnaby Robson wrote:
> Hey OpenEXR coders,
> 
> Sorry if this is a really stupid question and feel free to quietly 
> chuckle at me from your desk if it is .... 
> 
> In the docs it mentions setting the global thread count with setGlobalThreadCount()
> and then sharing the threads between reading and writing files with 2 going
> to each process. 
> 
> In one of my programs I read a file into a frame buffer in one big chunk if it is a
> scanline file (or read all tiles in a loop if it is tiled).
> I then process the pixel data by looping through scanlines to find the DOD and then
> loop through the pixel data over a user specified tile size (unrelated to the EXR tile size 
> to look for bad render buckets) and then I write out a new file. 
> 
> Am I likely to need to share threads between reading and writing in this case or not ?
> In the code it seems like all the reading gets done before the writing but I am
> wondering if there is some compiler magic that takes place that makes things all
> happen concurrently.
> 
> Thanks ! 
> 
> Barnaby.
> 
> 
> -----Original Message-----
> From: openexr-devel-bounces+brobson=killerobot.com <at> nongnu.org
> [mailto:openexr-devel-bounces+brobson=killerobot.com <at> nongnu.org]On
> Behalf Of Drew Hess
> Sent: Wednesday, August 02, 2006 2:14 PM
> To: openexr-announce <at> nongnu.org; openexr-devel <at> nongnu.org
> Subject: [Openexr-devel] OpenEXR 1.4.0 released
> 
> 
> 
> Hi all,
> 
> I'm happy to announce the release of OpenEXR 1.4.0.  This is the next
> major production-ready release of OpenEXR and offers full
> compatibility with our last production release, which was 1.2.2.  You
> can download the source code here:
> 
> http://download.savannah.gnu.org/releases/openexr/openexr-1.4.0.tar.gz
> 
> When I'm back from SIGGRAPH next week, I'll upload pre-compiled
> versions for Windows (for both Visual Studio 2003 and 2005) and for OS
> X 10.4.
> 
> This version obsoletes version 1.3.x, which was the beta test version
> for 1.4.0.  If you have been using 1.3.x, please upgrade to 1.4.0.
> Please do not ship applications with 1.3.x, it had a few significant
> bugs that are fixed in 1.4.0.
> 
> The major new feature in OpenEXR 1.4.0 is support for multithreaded
> reading and writing of files.  Developers, please see the developer
> documentation for information on how to enable threading support in
> your application.
> 
> Here's a full list of changes in 1.4.0:
> 
>     - Multithread support for reading and writing an OpenEXR
>       file.
>     - Support for Intel-based OS X systems.
>     - Support for Visual Studio 2005.
>     - When compiling against OpenEXR headers, there's no longer any
>       need to define any PLATFORM_* or HAVE_* macros; OpenEXR now
>       supplies an OpenEXRConfig.h header file which is included by
>       the OpenEXR headers that need these special macros.  However,
>       on Windows platforms, when using OpenEXR DLLs, you must still
>       define the OPENEXR_DLL preprocessor directive in your project.
>     - New documentation for multithread support, plus some
>       updates and additions.
>     - Bug fixes releated to better handling of incomplete/damaged 
>       files.
>     - Numerous bug fixes and cleanups to the autoconf-based
>       build system.
>     - Removed support for the following configurations that were
>       previously supported.  Some of these configurations may happen
>       to continue to function, but we can't help you if they don't,
>       largely because we don't have any way to test OpenEXR on these
>       configurations.
>            - IRIX 
>            - OSF1
>            - SunOS
>            - OS X versions prior to 10.3.
>            - gcc on any platform prior to version 3.3
> 
> If you are using OpenEXR on one of the deprecated platforms listed
> above, let me know *privately* (don't bug the list members), and we'll
> see if we can work something out with you, if you're willing to do
> some testing (at least).  Of course, previous versions of OpenEXR will
> still work on these platforms, excepting any bugs that were fixed in
> 1.4.0.
> 
> thanks,
> d
> 
> 
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel <at> nongnu.org
> http://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel <at> nongnu.org
> http://lists.nongnu.org/mailman/listinfo/openexr-devel
> 
> 
Drew Hess | 9 Aug 07:20

Re: OpenEXR 1.3.2 released


Hi Kai-Uwe,

is this still failing for you with OpenEXR 1.4.0 ?

Kai-Uwe Behrmann <ku.b <at> gmx.de> writes:

> Drew,
>
> here the test:
>
> # pkg-config --cflags OpenEXR
> -pthread -I/opt/kai-uwe/include/openexr  
>
> # cat /opt/kai-uwe/lib/pkgconfig/OpenEXR.pc
> prefix=/opt/kai-uwe
> exec_prefix=${prefix}
> libdir=${exec_prefix}/lib
> includedir=${prefix}/include
> OpenEXR_includedir=${prefix}/include/openexr
>
> Name: OpenEXR
> Description: OpenEXR image library
> Version: 1.3.2
> Libs: -L${libdir} -lIlmImf -lImath -lHalf -lIex -lz 
> Cflags: -pthread -I${OpenEXR_includedir}
>
>
> kind regards
> Kai-Uwe Behrmann
>                                 + development for color management 
>                                 + imaging / panoramas
>                                 + email: ku.b <at> gmx.de
>                                 + http://www.behrmann.name
>
>
> Am 17.07.06, 12:18 -0700 schrieb Drew Hess:
>
>> Kai-Uwe Behrmann <ku.b <at> gmx.de> writes:
>> 
>> > Trying to build CinePaint fails with missed symbols, expectedly from 
>> > pthread.
>> >
>> > g++ -g -O2 -o .libs/openexr chroma_icc.o openexr.o -rdynamic  
>> > ../../lib/.libs/libcinepaint.so -L/opt/kai-uwe/lib -L/usr/X11R6/lib 
>> > /opt/kai-uwe/lib/libgtk.so /opt/kai-uwe/lib/libgdk.so -lgmodule -ldl -lXi 
>> > -lXext -lX11 -lm /opt/kai-uwe/lib/libIlmImf.so 
>> > /opt/kai-uwe/lib/libIlmThread.so /opt/kai-uwe/lib/libImath.so 
>> > /opt/kai-uwe/lib/libIex.so /opt/kai-uwe/lib/libHalf.so 
>> > /usr/lib/libstdc++.so -lz -llcms -lc -lglib -Wl,--rpath 
>> > -Wl,/opt/kai-uwe/lib
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `sem_destroy'
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `sem_wait'
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `sem_post'
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `sem_init'
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `sem_getvalue'
>> > /opt/kai-uwe/lib/libIlmThread.so: undefined reference to `pthread_join'
>> > collect2: ld returned 1 exit status
>> > make[2]: *** [openexr] Fehler 1
>> >
>> > Substituting pthread with -lpthread in Makefile and doing a make 
>> > install solves the issue. For many users this will be a reason to start 
>> > complaining.
>> >
>> > Do I need to specify -lpthread on user (my) side or is it to be considered 
>> > as bug in OpenEXR's build system?
>> 
>> 
>> Hi Kai-Uwe,
>> 
>> If you're using pkg-config in your build system to determine the
>> appropriate OpenEXR libs, it should include -lpthread in the output.
>> If it doesn't, that's a bug.
>> 
>> If you're doing your own manual setup, then you should add -lpthread,
>> but only if OpenEXR was compiled with thread support.  You'll need to
>> detect that somehow.  The safest bet is to use pkg-config.
>> 
>> thanks
>> d
>> 
>> 
Drew Hess | 9 Aug 09:16

OpenEXR 1.4.0a


Hi all,

I've just posted a new source tarball for OpenEXR 1.4.0a.  The *only*
change in this tarball are a couple of Visual Studio .NET 2003 project
file fixes for the ReleaseDLL targets (thanks Barnaby!).

If you are not using Visual Studio .NET 2003, you do not need to
download this version.  Otherwise, you can get the new tarball here:

http://download.savannah.nongnu.org/releases/openexr/openexr-1.4.0a.tar.gz

thanks
d
Drew Hess | 9 Aug 09:26

OpenEXR 1.4.0 for Visual Studio 2005


Sorry for the flurry of messages, but I've just uploaded a package
containing pre-compiled binaries, DLLs and static libraries for
OpenEXR 1.4.0 for use with Visual Studio 2005.  If you're using VS2005
and you want to use OpenEXR in your application, you should be able to
use this distribution instead of building OpenEXR from source on your
own.

If you're using Visual Studio .NET 2003, I don't think you can safely
use the DLLs or static libraries in this release due to ABI changes in
VS2005.  I'm planning on releasing a pre-compiled distribution for
VS2003 in the next couple of days.  Thanks for your patience.

Let me know if you have any difficulties with this package.  You can
find it here:

http://download.savannah.nongnu.org/releases/openexr/openexr-1.4.0-vs2005.zip

thanks
d

Gmane