-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Closed
Labels
Description
Bugzilla Link | 1380 |
Resolution | FIXED |
Resolved on | Feb 22, 2010 12:56 |
Version | trunk |
OS | Linux |
Blocks | #1242 |
Extended Description
Currently there are two ways of registering eh function frames during runtime:
- __register_frame_info call (and friends) in the early beginning (crtbegin.o).
- Direct eh section inspection ("GLIBC" method).
Unfortunately, it seems the __register_frame_info call not always emitted (e.g.
crtbegin.o compiled during llvm-gcc compilation without LLVM itself lacks this
call).
The second approach uses some assumptions. One of the biggest assumption is that
entries in eh frame section are sorted according to PC's stored in entries. We
can easily achieve this, if we emit information at once in the end (like gcc
does). When we're emitting this information in separate "parts" (but in one
section, of course), linker can permute "parts" making sort assumption invalid.
This is needed for backward compatibility of generated eh information.