It is <i>excruciatingly</i> hard to make a living out from programming and that <i>while staying honest</i>, because planned obsolescence is EVERYWHERE in software (and a bit in the hardware).<p>The only way I found: assembly with a conservative usage of the macro preprocessor. Since risc-v is not there yet (and it may fail), I still code super simple C code but I try hard to care for this code to compile NOT only with gcc and force myself to use tcc, cproc, scc, etc: only compile-time function tables coupled with runtime function tables, with preprocessor namespaces (if a project decides to grow to very large).<p>YES, it means additional upfront work, and other assembly ports if required. Only for pertinent ISAs though, the other ISAs get a "reference" implementation in simple C (and I mean _really_ simple and brutal): open source communities on the long run can do that fingers in the nose, corpos, not so sure...