[Bug 230888] Missing 64 bit atomic functions for i386 (libatomic)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Bug 230888] Missing 64 bit atomic functions for i386 (libatomic)


--- Comment #39 from [hidden email] ---
A commit references this bug:

Author: dim
Date: Mon Sep 14 14:52:22 UTC 2020
New revision: 365721
URL: https://svnweb.freebsd.org/changeset/base/365721

  MF12 r365661:

  MFC r364753:

  Add atomic and bswap functions to libcompiler_rt

  There have been several mentions on our mailing lists about missing
  atomic functions in our system libraries (e.g. __atomic_load_8 and
  friends), and recently I saw __bswapdi2 and __bswapsi2 mentioned too.

  To address this, add implementations for the functions from compiler-rt
  to the system compiler support libraries, e.g. libcompiler_rt.a and and

  This also needs a small fixup in compiler-rt's atomic.c, to ensure that
  32-bit mips can build correctly.

  Bump __FreeBSD_version to make it easier for port maintainers to detect
  when these functions were added.

  Differential Revision: https://reviews.freebsd.org/D26159

  MFC r364782:

  After r364753, there should be no need to suppress -Watomic-alignment
  warnings anymore for compiler-rt's atomic.c. This occurred because the
  IS_LOCK_FREE_8 macro was not correctly defined to 0 for mips, and this
  caused the compiler to emit a runtime call to __atomic_is_lock_free(),
  and that triggers the warning.

  MFC r365509:

  Follow-up r364753 by enabling compiler-rt's atomic implementation only
  for clang, as it uses clang specific builtins, and does not compile
  correctly with gcc. Note that gcc packages usually come with their own
  libatomic, providing these primitives.

  MFC r365588:

  Follow-up r364753 by only using arm's stdatomic.c implementation, as it
  already covers the functions in compiler-rt's atomic.c, leading to
  conflicts when linking.

  PR:           230888
  Approved by:  re (gjb)

_U  releng/12.2/

You are receiving this mail because:
You are the assignee for the bug.
[hidden email] mailing list
To unsubscribe, send any mail to "[hidden email]"