I thought (for apps, not kernel modules) that you just needed a static build, and your app was self-contained, only relying on system calls. The problems seem to be that some compilers seem to be generating code with instructions we do not want (regardless of our gcc params), or our static apps must be only partily static (calling incompatible libs), or embedding libs with incompatible instructions.
I was under the impression that an old enough compiler linked with old enough libs would not use incompatible arm instructions, and all would be fine if I stay close to the metal (native mode) and just make dependable system calls (or use /proc interfaces as needed). But my recent experience shows that my impression was naive, apparently. Things are not as easy as they seemed in the recent past...
The more you learn, the more you realize that you do not know (the unknown unknowns). The only folks who (think they) know it all, are those freshly graduated from tech school. At least until the older wiser folks in industry rub their noses in the musty dusty rusty corner cases of reality. But sadly, the older wiser folks have much to learn too, when diving into new territory such as this, for me.
|