-
Notifications
You must be signed in to change notification settings - Fork 11k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Win64EH] Write .pdata symbol relocations relative to the temporary b…
…egin symbol Previously the relocations pointed at the public user facing, possibly external symbol. When the function itself is weak, that symbol may be overridden at link time, pointing at another strong implementation of the same function instead. In that case, there's two conflicting pdata entries pointing at the same address, and the wrong unwind info might end up used. Both GCC/binutils and MSVC produce pdata pointing at internal static symbols. (GCC/binutils point at the .text section just as LLVM does after this change, MSVC points at special label type symbols with the type IMAGE_SYM_CLASS_LABEL and names like '$LN4'.) This fixes unwinding through an overridden "operator new" with a statically linked C++ library in MinGW mode. (Building libc++ with -ffunction-sections and linking with --gc-sections might avoid the issue too.) This makes the produced object files a little less user friendly to debug, but with other recent improvements for llvm-readobj, the unwind info debugging experience should be pretty much the same. Differential Revision: https://reviews.llvm.org/D109651
- Loading branch information
Showing
6 changed files
with
22 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters