summaryrefslogtreecommitdiff
path: root/i386
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2007-02-19 22:30:48 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:27:05 +0200
commitbad9f4c53148a65138128ad8683d689535eca878 (patch)
tree48b2d06db4adc3fd74f7ef4afa511e7ed4d9c9c5 /i386
parent45268d3812e359e15cb1b4dacbe86e985e5ba305 (diff)
2007-02-19 Thomas Schwinge <tschwinge@gnu.org>
* Makefile.am (gnumach_LINKFLAGS): New variable. (gnumach_LINK): Use that one instead of the previously used `LINKFLAGS_gnumach'. * i386/Makefrag.am (LINKFLAGS_gnumach): Rename to `gnumach_LINKFLAGS', move into [PLATFORM_at] and pass `_START'. * i386/ldscript: Don't hardcode a _start address of 0x100000, but make it configurable via `_START'.
Diffstat (limited to 'i386')
-rw-r--r--i386/Makefrag.am5
-rw-r--r--i386/ldscript8
2 files changed, 9 insertions, 4 deletions
diff --git a/i386/Makefrag.am b/i386/Makefrag.am
index f70e63c..7d573db 100644
--- a/i386/Makefrag.am
+++ b/i386/Makefrag.am
@@ -194,8 +194,11 @@ nodist_libkernel_a_SOURCES += \
EXTRA_DIST += \
i386/ldscript
-LINKFLAGS_gnumach = \
+if PLATFORM_at
+gnumach_LINKFLAGS += \
+ --defsym _START=0x100000 \
-T '$(srcdir)'/i386/ldscript
+endif
#
# Installation.
diff --git a/i386/ldscript b/i386/ldscript
index 19a5c76..2195af3 100644
--- a/i386/ldscript
+++ b/i386/ldscript
@@ -47,10 +47,12 @@ SECTIONS
} =0x90909090
.plt : { *(.plt) }
/*
- * _start needs to be at 0x100000, so that's where .text will be begin
- * and .text.start will be first in there. See also i386/i386at/boothdr.S.
+ * There are specific requirements about entry points, so we have it
+ * configurable via `_START': `.text' will begin there and `.text.start' will
+ * be first in there. See also `i386/i386at/boothdr.S' and
+ * `LINKFLAGS_gnumach' in `i386/Makefrag.am'.
*/
- . = 0x100000;
+ . = _START;
.text :
{
*(.text.start)