[MacPorts] #69970: gimp2 @2.10.36_4+python27: Undefined symbols for architecture arm64

MacPorts noreply at macports.org
Tue May 14 04:58:03 UTC 2024


#69970: gimp2 @2.10.36_4+python27: Undefined symbols for architecture arm64
---------------------+----------------------
  Reporter:  Ooolab  |      Owner:  mascguy
      Type:  defect  |     Status:  reopened
  Priority:  Normal  |  Milestone:
 Component:  ports   |    Version:
Resolution:          |   Keywords:
      Port:  gimp2   |
---------------------+----------------------
Changes (by ryandesign):

 * status:  closed => reopened
 * resolution:  duplicate =>


Comment:

 Maybe it's simpler to analyze your instance of this problem in this ticket
 after all, since #69193 is already crowded with a lot of comments and Fred
 has already solved his problem by reinstalling all ports, a drastic step
 I'd like you to avoid if we can find the true cause of the problem. Fred
 can't help us find the problem anymore since he has already deleted
 whatever caused the problem.

 Investigating [attachment:gimp2Error.log.bz2 your log here] (and
 [attachment:'ticket:69193:MacPorts GIMP2 log.txt' Fred's from #69193] is
 similar, just months older so it was using an earlier version of openexr
 3), the significant aspect of the error message in my opinion is the
 `Imath_2_3` part:

 {{{
 Undefined symbols for architecture arm64:
   "Imf_3_2::Chromaticities::Chromaticities(Imath_2_3::Vec2<float> const&,
 Imath_2_3::Vec2<float> const&, Imath_2_3::Vec2<float> const&,
 Imath_2_3::Vec2<float> const&)", referenced from:
       _EXRLoader::getProfile() const in openexr-wrapper.o
 }}}

 2_3 is not the version of the Imath library that openexr 3 uses. The
 openexr 3 port depends on the imath port which provides libImath-3_1.dylib
 so the correct symbol, the one that's not undefined, would have
 `Imath_3_1` in place of `Imath_2_3`. So we need to figure out why your
 build believes the Imath library version is `2_3` instead of `3_1`.

 Earlier in the log I see:

 {{{
 In file included from openexr-wrapper.cc:53:
 In file included from /opt/local/include/OpenEXR/ImfRgbaFile.h:21:
 In file included from /opt/local/include/OpenEXR/ImfFrameBuffer.h:21:
 In file included from /opt/local/include/OpenEXR/ImathBox.h:65:
 In file included from /opt/local/include/OpenEXR/ImathVec.h:46:
 In file included from /opt/local/include/OpenEXR/ImathExc.h:47:
 In file included from /opt/local/include/OpenEXR/IexBaseExc.h:10:
 In file included from /opt/local/include/OpenEXR/IexNamespace.h:49:
 /opt/local/include/OpenEXR/IexConfig.h:22:9: warning:
 'IEX_INTERNAL_NAMESPACE' macro redefined [-Wmacro-redefined]
 #define IEX_INTERNAL_NAMESPACE Iex_3_2
         ^
 /opt/local/include/OpenEXR/IlmBaseConfig.h:47:9: note: previous definition
 is here
 #define IEX_INTERNAL_NAMESPACE Iex_2_3
         ^
 }}}

 Redefinitions are suspicious, especially the familiar `2_3` reference.

 Checking my system, I do not have a file
 /opt/local/include/OpenEXR/IlmBaseConfig.h.
 [https://ports.macports.org/search/?installed_file=IlmBaseConfig.h&q=
 Searching the ports database], the only port that has an IlmBaseConfig.h
 file is ilmbase, a dependency of the older openexr2 port, but it's in
 /opt/local/libexec/openexr2/include/OpenEXR not in
 /opt/local/include/OpenEXR. ilmbase's contents also include libImath-
 2_5.dylib. So my suspicion is that somehow you have, or had, an even older
 libImath-2_3.dylib, and its headers, installed in /opt/local, possibly
 even put there by something other than MacPorts.

 Let's investigate. Let's see if you have these files, when they were last
 modified, what port (if any) installed them, and what openexr and imath-
 related ports you have installed. Try running these three commands, which
 you can copy/paste to the terminal:

 {{{
 ls -l /opt/local/include/OpenEXR/IlmBaseConfig.h /opt/local/lib/libImath-
 2_*.dylib
 port provides /opt/local/include/OpenEXR/IlmBaseConfig.h /opt/local/lib
 /libImath-2_*.dylib
 port -v installed 'name:(ilmbase|imath|openexr)'
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/69970#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list