Stream: git-wasmtime

Topic: wasmtime / issue #3183 Wasmtime doesn't work on Linux AAr...


view this post on Zulip Wasmtime GitHub notifications bot (Aug 12 2021 at 20:15):

alexcrichton opened issue #3183:

As of https://github.com/bytecodealliance/wasmtime/pull/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.

view this post on Zulip Wasmtime GitHub notifications bot (Mar 04 2022 at 13:47):

akirilov-arm commented on issue #3183:

An associated libgcc issue has been created.

view this post on Zulip Wasmtime GitHub notifications bot (May 10 2022 at 12:53):

akirilov-arm labeled issue #3183:

As of https://github.com/bytecodealliance/wasmtime/pull/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.

view this post on Zulip Wasmtime GitHub notifications bot (May 10 2022 at 12:53):

akirilov-arm labeled issue #3183:

As of https://github.com/bytecodealliance/wasmtime/pull/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.

view this post on Zulip Wasmtime GitHub notifications bot (May 10 2022 at 19:04):

akirilov-arm commented on issue #3183:

And a patch has been posted.

view this post on Zulip Wasmtime GitHub notifications bot (May 30 2022 at 19:30):

akirilov-arm commented on issue #3183:

The fix has been committed.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 09 2022 at 14:17):

alexcrichton closed issue #3183:

As of https://github.com/bytecodealliance/wasmtime/pull/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.


Last updated: Oct 23 2024 at 20:03 UTC