On Mon, Mar 16, 2015 at 4:33 PM, Stefan Reinauer stefan.reinauer@coreboot.org wrote:
- Aaron Durbin adurbin@chromium.org [150316 22:44]:
A quick hack is add ALIGN(32) to the linker script before _bs_init_begin: src/arch/x86/ramstage.ld
But I think we'll need to store pointers to the structures in order to properly handle the situation where the compiler is effectively making alignment/size decisions for some reason.
I suggest trying to enforce alignment / size instead of adding another layer of indirection.
I'm not sure that's possible w/o marking the struct packed just for the sake of it. The other issue is that this section is sitting in RO while also being written to. The other thing, which has been known for awhile, is that we can't take advantage of symbols being equal for an empty set since C says no two symbols can be the same. I'm sure the language lawyers will correct me where I got that wrong.