You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My system is Asahi Linux (Linux on ARM Macbooks) which use 16kB pages, not 4kB. So of course trying to map files on 4kB boundaries is going to fail. In fact, aarch64 systems can have up to 64kB page sizes.
Bumping the toolchain version up to 1.100301.220327 fixes the issue:
And indeed, checking readelf --program-headers shows that the new arm-none-eabi-g++ binary uses 64kB page alignment.
I think this bug can be fixed in two ways: either by bumping up the GCC version to at least 1.100301.220327 or by rebuilding the older version in a way that fixes the alignment issue.
The text was updated successfully, but these errors were encountered:
I have the following in my platformio.ini:
Unfortunately this results in a segmentation fault (error -11 is a segmentation fault):
Testing the compiler manually makes it more clear:
I tracked it down to a page alignment issue in the binary. When I read the program headers, I get the following:
In particular, this LOAD header assumes a 4kB page system (the virtual address is aligned to 4kB and the alignment itself says 0x1000 which is 4kB):
My system is Asahi Linux (Linux on ARM Macbooks) which use 16kB pages, not 4kB. So of course trying to map files on 4kB boundaries is going to fail. In fact, aarch64 systems can have up to 64kB page sizes.
Bumping the toolchain version up to 1.100301.220327 fixes the issue:
And indeed, checking
readelf --program-headers
shows that the new arm-none-eabi-g++ binary uses 64kB page alignment.I think this bug can be fixed in two ways: either by bumping up the GCC version to at least 1.100301.220327 or by rebuilding the older version in a way that fixes the alignment issue.
The text was updated successfully, but these errors were encountered: