Clang seems to emit all functionAddress relocs as section relocs, but
ld -r can turn those relocs into symbol ones. It turns out that we
weren't handling that case correctly when the symbol was a weak def
whose definition did not prevail.
Details
- Reviewers
gkm oontvoo - Group Reviewers
Restricted Project - Commits
- rGad8df21db287: [reland][lld-macho] Fix symbol relocs handling for compact unwind's…
rGe941fe506114: [lld-macho] Fix symbol relocs handling for compact unwind's functionAddress
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
LG
lld/MachO/InputFiles.cpp | ||
---|---|---|
930 | sorry, not 100% related to this, but if the same input file is repeated on the command line, does the pointer equality hold true? or do they count as separate files? | |
lld/test/MachO/weak-definition-gc.s | ||
262 | at this point is it worth implementing -r yet? | |
473–481 | do we need all these? |
lld/test/MachO/weak-definition-gc.s | ||
---|---|---|
262 | also, it's not clear to me that implementing -r would remove the need for these YAML files, unless we want to reproduce all the quirks of ld64. We might very well find it easier to not convert section to symbol relocations in our own implementation. |
sorry, not 100% related to this, but if the same input file is repeated on the command line, does the pointer equality hold true? or do they count as separate files?