Opened 6 months ago
Last modified 6 months ago
#69970 reopened defect
gimp2 @2.10.36_4+python27: Undefined symbols for architecture arm64
Reported by: | Ooolab | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | cooljeanius (Eric Gallager) | |
Port: | gimp2 |
Description
When I tried to install gimp2 through MacPorts, I got this error. Could someone please help me with this installation. My OS is Sonoma 14.4.1 The detailed error message is in the attached file. Thanks!
Attachments (1)
Change History (5)
comment:1 Changed 6 months ago by jmroot (Joshua Root)
Owner: | set to mascguy |
---|---|
Port: | gimp2 added |
Status: | new → assigned |
Summary: | gimp-2.10.36: Undefined symbols for architecture arm64 → gimp2 @2.10.36_4+python27: Undefined symbols for architecture arm64 |
Changed 6 months ago by jmroot (Joshua Root)
Attachment: | gimp2Error.log.bz2 added |
---|
comment:2 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
Duplicate of #69193.
comment:3 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
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 your log here (and 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. 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)'
comment:4 Changed 6 months ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|