aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/BasicBlockSections.cpp
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@jrtc27.com>2023-08-22 23:38:24 +0100
committerJessica Clarke <jrtc27@jrtc27.com>2023-08-22 23:38:24 +0100
commit7e1afab1b1821550c5f8d0d6a50636236fa02e2c (patch)
tree5fff8d8c927c31403614567a72a34013a6e00561 /llvm/lib/CodeGen/BasicBlockSections.cpp
parent7dc5bde90c6bdb7aa979cda283df1d7698e5d335 (diff)
downloadllvm-7e1afab1b1821550c5f8d0d6a50636236fa02e2c.zip
llvm-7e1afab1b1821550c5f8d0d6a50636236fa02e2c.tar.gz
llvm-7e1afab1b1821550c5f8d0d6a50636236fa02e2c.tar.bz2
[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
Diffstat (limited to 'llvm/lib/CodeGen/BasicBlockSections.cpp')
0 files changed, 0 insertions, 0 deletions