3 ms·
This seems to be concentrating on what the system loader is doing without mentioning whatever the statically linked standard library gets up to before calling t
by nebulous1 8y ago
This seems to be concentrating on what the system loader is doing without mentioning whatever the statically linked standard library gets up to before calling the main function?
- jwr 8y agoOn microcontrollers, you often don't have a standard library, or if you do, it is limited, and doesn't do things before main. The article describes pretty well what happens on a microcontroller. I would add that in some (most?) environments, the code that gets executed before main() is easily accessible: it sits in files within the project (written in assembly most of the time).
- nebulous1 8y agoCool, he is talking about the loader though, which would imply that this is all language independent? Except for where he mentions things getting executed before main in C++, which I'm assuming would be the doings of the C++ standard library.
- monocasa 8y agoIt's still pretty language independent. Qemu for instance is a c codebase that depends on static initialization functions that run before main to register the different components.
- jldugger 8y agoIn any other context, yes, you're missing C library predecessors to main(). But it's specifically referencing embedded systems, which is why hardware initialization and memory segments are mentioned.