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

Wasmtime doesn't work on Linux AArch64 with PAC enabled #3183

Closed
alexcrichton opened this issue Aug 12, 2021 · 3 comments · Fixed by #4195
Closed

Wasmtime doesn't work on Linux AArch64 with PAC enabled #3183

alexcrichton opened this issue Aug 12, 2021 · 3 comments · Fixed by #4195
Labels
bug Incorrect behavior in the current implementation that needs fixing wasmtime Issues about wasmtime that don't fall into another label

Comments

@alexcrichton
Copy link
Member

As of #3180 Wasmtime will stop workong on AArch64 Linux with PAC enabled. Debugging this issue at https://bytecodealliance.zulipchat.com/#narrow/stream/217126-wasmtime/topic/arm64.2C.20pointer.20auth.2C.20unwinding seems to indicate that this is a libgcc bug which only accidentally worked before because the DW_OP_lit0 we specify for register 34, the pointer auth enabling register, just happened to show up at an even address in memory. After #3180 the encoding of the FDE is changing just enough that some expressions show up at odd addresses, which tricks libgcc to thinking that pointer authentication is enabled, when it actually isn't.

This commit is tracking improving this by either figuring out a workaround for gcc, implementing pointer authentication, or something similar.

@akirilov-arm
Copy link
Contributor

An associated libgcc issue has been created.

@akirilov-arm akirilov-arm added bug Incorrect behavior in the current implementation that needs fixing wasmtime Issues about wasmtime that don't fall into another label labels May 10, 2022
@akirilov-arm
Copy link
Contributor

And a patch has been posted.

@akirilov-arm
Copy link
Contributor

The fix has been committed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Incorrect behavior in the current implementation that needs fixing wasmtime Issues about wasmtime that don't fall into another label
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants