[MacPorts] #64200: par2 @0.8.1+universal: Undefined symbols for architecture i386: ___atomic_compare_exchange ___atomic_load
MacPorts
noreply at macports.org
Mon Dec 13 16:29:46 UTC 2021
#64200: par2 @0.8.1+universal: Undefined symbols for architecture i386:
___atomic_compare_exchange ___atomic_load
---------------------+----------------------
Reporter: RobK88 | Owner: (none)
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.7.1
Resolution: | Keywords: lion
Port: par2 |
---------------------+----------------------
Comment (by kencu):
There is a backstory here. The compiler_rt atomics were apparently a
rather gross hack that never had a chance of actually working right, as
the code was statically linked into each binary and nobody knew what
anybody else was doing with that memory. This kind of thing has to be
apparently administered by a shared library that all executables use
(makes sense). So it was turned off for a reason.
gcc does it right -- it ships a libatomic.dylib that you can / have to
link in (manually on darwin, but that's another story), but that works
properly.
You could also add a dep for libgcc and link in that libatomic.dylib, but
at this point in time, just turning on the (apparently officially not-
really-perfect-but-does-at-least-link-the-binary) compiler_rt versions
would be considered "good enough" for the issues at hand.
--
Ticket URL: <https://trac.macports.org/ticket/64200#comment:7>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list