On Sat, 2013-02-02 at 19:32 -0500, Kevin O'Connor wrote:
I'm not sure how to best address this. One way is to go forward and sprinkle VISIBLE32INIT. Another way would be to revert patch 1, pass a function pointer to reloc_preinit() instead of hard-coding maininit, and teach the CSM code how to "longjmp" back to UEFI after relocation so it doesn't have to unwind the stack. I'm not sure that would be any less "ugly" though.
Any other ideas?
If we special-case handle_csm32() in layoutrom.py, so that it doesn't mark any of the functions it links to as also being runtime, then perhaps that might suffice?