On Tue, 26 Nov 2024, Corinna Vinschen wrote:

> Btw...
>
> We're doing this because nobody being able to debug ARM64 assembler came
> up with a piece of code checking the ntdll assembler code to find the
> address of the fast_cwd_pointer on ARM64.
>
> You seem to have the knowledge and the means to do that, Jeremy.
>
> Any fun tracking this down?

Ha, no, not really.  I looked into something similar trying to get Ruby
running on Windows on ARM64, and learned enough to know that how ARM64
encodes addresses is odd enough that I didn't want to dig further ;)

Somebody else did end up implementing getting a private variable (out of
UCRT) by looking at ARM64 assembler, maybe that could work as a starting
point?

https://github.com/ruby/ruby/commit/784fdecc4c9f6ba9a8fc872518872ed6bdbc6670#diff-883ccab70529ab9c4e51fa7b67e178a205940056b21cd123115ebadd8029f50f

(on the Ruby issue, I was of the opinion that it wasn't worth the effort
and periodic breakage to dig out that variable, and I kind of have that
opinion about the FAST_CWD stuff too - I've yet to see any issue from
*not* having it on ARM64, so all of this is probably just to deal with
some rare edge-case).

Reply via email to