[TCWG-614] Range Thunks Finally managed to get some review on the entirety of the Range Thunks patches. Have reorganised the patches and wrote some documentation to make it easier to review. Responded to all review comments so far.
Compiler-rt A long tail of frustration.
Managed to get a hello world semi-hosting test case running on the latest QEMU running newlib-nano. This was much more difficult than I expected due to: - The semihosting startup code of newlib does a semi-hosting call for top of memory regardless of whether the heap and stack location have been identified in a linker-script. - The QEMU semihosting response to top of memory is not helpful leaving the stack location in an invalid memory location (latest QEMU requires emulation of a board and not a generic machine) - QEMU doesn't data-abort when writing to a stack location, so my return address is helpfully read back as 0x0 Worked around by providing a large enough memory size to QEMU that the semihosting call for top of memory returns 0, allowing newlib to use the values in the linker script. Will probably need to spend some time to write my own startup code that just uses the linker script for the heap and stack.
Building compiler-rt for v6-m and v7-m has been much more difficult than I expected as well. I've managed to find a configuration that works, although it relies on some experimental work in moving compiler-rt to the runtimes directory.
Plans for next week: - LLD is top priority - Get testing for compiler-rt working via qemu on v7-m, the recipe that works for build does not support testing. I've got to either extract the cmake magic flags or find a way to plumb through the runes that make the tests work to the recipe I've got. - On holiday Thursday, Friday and the following Monday