Aaron Durbin (adurbin@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2883
-gerrit
commit ce0f7cd302dcf2bdfe14abd75e1b4ec6e22a1b11 Author: Aaron Durbin adurbin@chromium.org Date: Fri Mar 22 19:55:35 2013 -0500
rmodule: align ld script with latest x86 ld script
The x86 linker script added a .textfirst section. In order to properly link ramstage as a relocatable module the .textfirst section needs to be included.
Also, the support for code coverage was added by including the constructor section and symbols. Coverage has not been tested as I suspect it might not work in a relocatable environment without some tweaking. However, the section and symbols are there if needed.
Change-Id: Ie1f6d987d6eb657ed4aa3a8918b2449dafaf9463 Signed-off-by: Aaron Durbin adurbin@chromium.org --- src/lib/rmodule.ld | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/lib/rmodule.ld b/src/lib/rmodule.ld index c8bd297..41d6357 100644 --- a/src/lib/rmodule.ld +++ b/src/lib/rmodule.ld @@ -37,11 +37,17 @@ SECTIONS
.text : AT (_payload_begin_offset) { /* C code of the module. */ + *(.textfirst); *(.text); *(.text.*); /* C read-only data. */ . = ALIGN(16);
+ __CTOR_LIST__ = .; + *(.ctors); + LONG(0); + __CTOR_END__ = .; + /* The driver sections are to allow linking coreboot's * ramstage with the rmodule linker. Any changes made in * coreboot_ram.ld should be made here as well. */