From d23e292ef624ae1000b700399ece00c72946ede1 Mon Sep 17 00:00:00 2001
From: Aaron Durbin <adurbin@chromium.org>
Date: Fri, 22 Mar 2013 19:55:35 -0500
Subject: 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>
Reviewed-on: http://review.coreboot.org/2883
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
---
 src/lib/rmodule.ld | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/lib/rmodule.ld b/src/lib/rmodule.ld
index c8bd297e51..41d6357fe1 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. */
-- 
cgit v1.2.3