aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CodeGen.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2025-02-05 09:31:58 -0800
committerGitHub <noreply@github.com>2025-02-05 09:31:58 -0800
commita907008bcb8dcc093f8aa5c0450d92cd63473b81 (patch)
tree943fea8fe4bcee130ea4e7cdce99acb2f3fa8000 /llvm/lib/CodeGen/CodeGen.cpp
parent19c3e2f7de28e10caef40baf94293bb67712401e (diff)
downloadllvm-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