I am checking some terrible C source code; I haven't got any idea about how to maintain it or cooperate with it. But I found a very fundamental problem. It does NOT have a startup.asm; it has a startup.c using the powerful C extension "#pragma". So, the C runtime environment is setup by "#pragma section", "#pragma intvect", "#pragma asm". I quite worry about such a startup.c; so I contacted the FAE of our local distributor. The FAE is an experienced good engineer, but he told me that, this is not their standard way to setup C runtime environment; they definitely provided the startup.s from Day 1.
What will be the side-effect, when the C runtime environment is setup by the C extension "#pragma"?
Either they didn't understand, or they did understand and were trying to be "clever".
Both of these are major risks to you / your project / your company - I'm not sure which is worse!
Do you have the option to go back to the client and/or the original supplier to get an explanation?
Most likely, I would not have such an option.
Amazing and fantastic.
This is the most fundamental problem, but there are also other critical problems within this project.
What kind of developer would create such a startup.c solution for C runtime environment setup?