x86: link romstage like the other architectures
All the other architectures are using the memlayout
for linking romstage. Use that same method on x86
as well for consistency.
BUG=chrome-os-partner:44827
BRANCH=None
TEST=Built a myriad of boards. Analyzed readelf output.
Change-Id: I016666c4b01410df112e588c2949e3fc64540c2e
Signed-off-by: Aaron Durbin <adubin@chromium.org>
Reviewed-on: http://review.coreboot.org/11510
Tested-by: build bot (Jenkins)
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 4aa6bf8..464d631 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -192,12 +192,12 @@
secmon-y += halt.c
ifneq ($(CONFIG_ARCH_X86),y)
-# X86 bootblock and romstage use custom ldscripts that are all glued together,
+# X86 bootblock uses custom ldscripts that are all glued together,
# so we need to exclude it here or it would pick these up as well
bootblock-y += program.ld
-romstage-y += program.ld
endif
+romstage-y += program.ld
ramstage-y += program.ld
ifeq ($(CONFIG_RELOCATABLE_MODULES),y)
diff --git a/src/lib/program.ld b/src/lib/program.ld
index 1346eaf..cf011e9 100644
--- a/src/lib/program.ld
+++ b/src/lib/program.ld
@@ -27,6 +27,12 @@
.text : {
_program = .;
_text = .;
+ /*
+ * The .rom.* sections are to acommodate x86 romstage. romcc as well
+ * as the assembly files put their text and data in these sections.
+ */
+ *(.rom.text);
+ *(.rom.data);
*(.text._start);
*(.text.stage_entry);
*(.text);