[all-commits] [llvm/llvm-project] 7e1afa: [compiler-rt] Use .globl for FreeBSD/NetBSD interc...

Jessica Clarke via All-commits all-commits at lists.llvm.org
Tue Aug 22 15:38:51 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7e1afab1b1821550c5f8d0d6a50636236fa02e2c
      https://github.com/llvm/llvm-project/commit/7e1afab1b1821550c5f8d0d6a50636236fa02e2c
  Author: Jessica Clarke <jrtc27 at jrtc27.com>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M compiler-rt/lib/interception/interception.h

  Log Message:
  -----------
  [compiler-rt] Use .globl for FreeBSD/NetBSD interceptor wrappers

On FreeBSD and NetBSD we don't use .weak due to differing semantics.
Currently we end up using no directive, which gives a local symbol,
whereas the closer thing to a weak symbol would be a global one. In
particular, both GNU and LLVM toolchains cannot handle a GOT-indirect
reference to a local symbol at a non-zero offset within a section on
AArch64 (see https://github.com/ARM-software/abi-aa/issues/217), and so
interceptors do not work on FreeBSD/arm64, failing to link with LLD.
Switching to .globl both works around this bug and more closely aligns
such non-weak platforms with weak ones.

Fixes https://github.com/llvm/llvm-project/issues/63418

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D158552




More information about the All-commits mailing list