www.keil.com/.../armccref_chdcdggg.htm
It says, "The use of --apcs=/ropi is not supported when compiling C++. You can compile only the C subset of C++ with /ropi."
What dose it mean by "the C subset of C++" ? Which part of c++ is not supported? nonvirtual member function ? virtual function ? or exception handling ?
I kept reading the ELF specification and drawing the structures for it for about three hours
It appears you are not the only one:
stackoverflow.com/.../linux-user-space-elf-loader
If you cannot find existing code that does most of the work, why don't you take a library for reading ELF, parse a simple executable and implement relocations that you encounter one at a time. I think it is reasonable to expect that Cortex-M3 executables will only use a smaller subset of the full spec.