Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#15493 closed defect (fixed)

ilmbase and openexr universal variants don't work right

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: waqar@…
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: Cc:
Port:

Description

Installing ilmbase +universal yields universal static libraries but non-universal shared libraries:

$ port contents ilmbase | grep /lib/ | xargs file
/opt/local/lib/libHalf.6.0.0.dylib:      Mach-O dynamically linked shared library i386
/opt/local/lib/libHalf.6.dylib:          symbolic link to `libHalf.6.0.0.dylib'
/opt/local/lib/libHalf.a:                Mach-O universal binary with 2 architectures
/opt/local/lib/libHalf.a (for architecture ppc):        current ar archive
/opt/local/lib/libHalf.a (for architecture i386):       current ar archive
/opt/local/lib/libHalf.dylib:            symbolic link to `libHalf.6.0.0.dylib'
/opt/local/lib/libHalf.la:               ASCII English text
/opt/local/lib/libIex.6.0.0.dylib:       Mach-O dynamically linked shared library i386
/opt/local/lib/libIex.6.dylib:           symbolic link to `libIex.6.0.0.dylib'
/opt/local/lib/libIex.a:                 Mach-O universal binary with 2 architectures
/opt/local/lib/libIex.a (for architecture ppc): current ar archive
/opt/local/lib/libIex.a (for architecture i386):        current ar archive random library
/opt/local/lib/libIex.dylib:             symbolic link to `libIex.6.0.0.dylib'
/opt/local/lib/libIex.la:                ASCII English text
/opt/local/lib/libIlmThread.6.0.0.dylib: Mach-O dynamically linked shared library i386
/opt/local/lib/libIlmThread.6.dylib:     symbolic link to `libIlmThread.6.0.0.dylib'
/opt/local/lib/libIlmThread.a:           Mach-O universal binary with 2 architectures
/opt/local/lib/libIlmThread.a (for architecture ppc):   current ar archive
/opt/local/lib/libIlmThread.a (for architecture i386):  current ar archive random library
/opt/local/lib/libIlmThread.dylib:       symbolic link to `libIlmThread.6.0.0.dylib'
/opt/local/lib/libIlmThread.la:          ASCII English text
/opt/local/lib/libImath.6.0.0.dylib:     Mach-O dynamically linked shared library i386
/opt/local/lib/libImath.6.dylib:         symbolic link to `libImath.6.0.0.dylib'
/opt/local/lib/libImath.a:               Mach-O universal binary with 2 architectures
/opt/local/lib/libImath.a (for architecture ppc):       current ar archive
/opt/local/lib/libImath.a (for architecture i386):      current ar archive random library
/opt/local/lib/libImath.dylib:           symbolic link to `libImath.6.0.0.dylib'
/opt/local/lib/libImath.la:              ASCII English text
/opt/local/lib/pkgconfig/IlmBase.pc:     ASCII text
$

Attachments (2)

ilmbase.diff (660 bytes) - added by ryandesign (Ryan Carsten Schmidt) 16 years ago.
openexr.diff (700 bytes) - added by ryandesign (Ryan Carsten Schmidt) 16 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

I was able to work around it by replacing the included libtool with the newer one in MacPorts; see patch.

Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: ilmbase.diff added

comment:2 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: ilmbase +universal doesn't build universal shared librariesilmbase and openexr universal variants don't work right

openexr (ilmbase's only reason for being?) also doesn't work properly with +universal:

$ sudo port install openexr +universal
--->  Configuring openexr
--->  Building openexr with target all
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_OpenEXR/work/openexr-1.6.1" && nice -n 1 make all  -j2" returned error 2
Command output: Imf::ChannelList::end() const
Imf::ChannelList::begin() const
Imf::Header::end() const
Imf::Header::begin() const
Imf::KeyCode::perfOffset() const
Imf::KeyCode::filmMfcCode() const
Imf::KeyCode::perfsPerCount() const
Imf::KeyCode::perfsPerFrame() const
Imf::KeyCode::count() const
Imf::KeyCode::prefix() const
Imf::KeyCode::filmType() const
Imf::TimeCode::colorFrame() const
Imf::TimeCode::fieldPhase() const
Imf::TimeCode::bgf0() const
Imf::TimeCode::bgf1() const
Imf::TimeCode::bgf2() const
Imf::TimeCode::frame() const
Imf::TimeCode::hours() const
Imf::TimeCode::minutes() const
Imf::TimeCode::seconds() const
Imf::TimeCode::userData() const
Imf::TimeCode::dropFrame() const
Imf::InputFile::isComplete() const
Imf::InputFile::header() const
Imf::InputFile::version() const
typeinfo for Imf::Attribute
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccB9ehkq.out (No such file or directory)
make[1]: *** [exrheader] Error 1
make: *** [all-recursive] Error 1

Error: Status 1 encountered during processing.
$

The solution seems to be the same.

comment:3 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Also, openexr declared ilmbase as a build dependency, but I believe it's actually a library dependency. Fixed this in the attached patch too.

Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: openexr.diff added

comment:4 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

No response from maintainer in > 72 hours so I committed the patch for ilmbase in r37520 and for openexr in r37521.

comment:5 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.