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

i#7161: Set bit 4 of the CPSR in the sigframe. #7209

Merged
merged 4 commits into from
Jan 23, 2025
Merged

Conversation

egrimley-arm
Copy link
Contributor

@egrimley-arm egrimley-arm commented Jan 23, 2025

Bit 4 of the ARM (AArch32) CPSR is RES1, meaning that it is either hardwired to 1 or its value should be preserved. With newer kernels sigreturn generates a SIGSEGV if it sees that this bit is not set in the sigframe. It might be better to preserve the value of this bit throughout DynamoRIO (i#7207) but for now we just set it in the place that seems to matter.

Issue: #7207
Fixes: #7161

Bit 4 of the ARM (AArch32) CPSR is RES1, meaning that it is either
hardwired to 1 or its value should be preserved. With newer kernels
sigreturn generates a SIGSEGV if it sees that this bit is not set in
the sigframe. It might be better to preserve the value of this bit
throughout DynamoRIO (i#7207) but for now we just set it in the
place that seems to matter.

Fixes: #7161

Change-Id: I0c39dde5673d8d535d4427e3d150779270c88d2a
@egrimley-arm egrimley-arm self-assigned this Jan 23, 2025
Change-Id: Idce0af6f8e33d9d1033851af06c0b84b05d48813
Change-Id: I42503c3ccc0cf0a2e6fc824f867466025613a86a
@egrimley-arm egrimley-arm merged commit 2258616 into master Jan 23, 2025
17 checks passed
@egrimley-arm egrimley-arm deleted the i7161-cpsr-bit-4 branch January 23, 2025 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Most signal-related tests fail on AArch32 on certain platforms
2 participants