diff options
author | Fangrui Song <i@maskray.me> | 2025-02-05 09:31:58 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-05 09:31:58 -0800 |
commit | a907008bcb8dcc093f8aa5c0450d92cd63473b81 (patch) | |
tree | 943fea8fe4bcee130ea4e7cdce99acb2f3fa8000 /llvm/lib/CodeGen/CodeGen.cpp | |
parent | 19c3e2f7de28e10caef40baf94293bb67712401e (diff) | |
download | llvm-a907008bcb8dcc093f8aa5c0450d92cd63473b81.zip llvm-a907008bcb8dcc093f8aa5c0450d92cd63473b81.tar.gz llvm-a907008bcb8dcc093f8aa5c0450d92cd63473b81.tar.bz2 |
[BOLT,test] Link against a shared object to test PLT (#125625)
A few tests generate a statically-linked position-independent executable
with `-nostdlib -Wl,--unresolved-symbols=ignore-all -pie` (`%clang`) and
test PLT handling. (--unresolved-symbols=ignore-all suppresses undefined
symbol errors and serves as a convenience hack.)
This relies on an unguaranteed linker behavior: a statically-linked PIE
does not necessarily generate PLT entries.
While current lld generates a PLT entry, it will change to suppress the
PLT entry to simplify internal handling and improve consistency.
(The behavior has no consistency in GNU ld, some ports generated a
.dynsym entry while some don't. While most seem to generate a PLT entry
but some ports use a weird `R_*_NONE` relocation.)
Diffstat (limited to 'llvm/lib/CodeGen/CodeGen.cpp')
0 files changed, 0 insertions, 0 deletions