[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