I added type-based color printing to my hexdump in my kernel [1] if anyone wants to have that code. It was instrumental in finding bugs quickly in wee hours of the night sometimes, especially if you have heap corruption.
----
[1] https://github.com/ChariotOS/chariot/blob/e046849c668458d25e...
At the level that LLVM's LTO operates, no information about classes or objects is left, so LLVM itself can't really devirtualize C++ methods in most cases
Likely that it supports the Supervisor execution environment from the riscv spec [1]. This means it can run the typical ring 0 and ring 3 for kernelspace and userspace respectively, and importantly the board supports virtual memory.
From the article: "New York Public Radio's investment in Pocket Casts was made possible, in part, by Cynthia King Vance and a grant from Carnegie Corporation of New York."
I don't think it was from donations, but I could be wrong
I actually usually have a general-use Makefile that I work from as a starting point [1]. It takes all c files from a src/ folder and builds their objects to build/ and then links them all in one go. No need for me to specify the files. It also works recursively.