Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix unwinding on OS X 10.9. #10013

Merged
merged 1 commit into from
Oct 22, 2013
Merged

Fix unwinding on OS X 10.9. #10013

merged 1 commit into from
Oct 22, 2013

Conversation

bdash
Copy link
Contributor

@bdash bdash commented Oct 22, 2013

OS X 10.9's linker has a bug that results in it failing to preserve
DWARF unwind information when passed the -no_compact_unwind flag.
This flag is passed on OS X because the unwind information for
__morestack cannot be represented by the compact unwind format.

We can work around this problem by using a more targeted approach
to disabling compact unwind information. The OS X linker looks for
a particular pattern in the DWARF unwind information and will not
attempt to convert the unwind information to the compact format.
The pattern in question is the return address register being saved
twice to the same location.

Fixes #6849.

OS X 10.9's linker has a bug that results in it failing to preserve
DWARF unwind information when passed the -no_compact_unwind flag.
This flag is passed on OS X because the unwind information for
__morestack cannot be represented by the compact unwind format.

We can work around this problem by using a more targeted approach
to disabling compact unwind information. The OS X linker looks for
a particular pattern in the DWARF unwind information and will not
attempt to convert the unwind information to the compact format.
The pattern in question is the return address register being saved
twice to the same location.

Fixes #6849.
@brson
Copy link
Contributor

brson commented Oct 22, 2013

@bdash Thanks for figuring this out! 🍨

bors added a commit that referenced this pull request Oct 22, 2013
OS X 10.9's linker has a bug that results in it failing to preserve
DWARF unwind information when passed the -no_compact_unwind flag.
This flag is passed on OS X because the unwind information for
__morestack cannot be represented by the compact unwind format.

We can work around this problem by using a more targeted approach
to disabling compact unwind information. The OS X linker looks for
a particular pattern in the DWARF unwind information and will not
attempt to convert the unwind information to the compact format.
The pattern in question is the return address register being saved
twice to the same location.

Fixes #6849.
@bors bors closed this Oct 22, 2013
@bors bors merged commit fd8c06e into rust-lang:master Oct 22, 2013
@bdash bdash deleted the mavericks-unwinding branch November 20, 2014 07:35
flip1995 pushed a commit to flip1995/rust that referenced this pull request Dec 17, 2022
Don't lint `manual_assert` in `else if`

fixes rust-lang#9886
changelog: `manual_assert`: Don't lint in `else if`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Task failure aborts app on OS X 10.9
3 participants