diff options
Diffstat (limited to 'i386')
-rw-r--r-- | i386/Makefile.in | 4 | ||||
-rw-r--r-- | i386/Makerules.in | 8 | ||||
-rw-r--r-- | i386/i386at/boothdr.S | 7 | ||||
-rw-r--r-- | i386/ldscript | 6 |
4 files changed, 14 insertions, 11 deletions
diff --git a/i386/Makefile.in b/i386/Makefile.in index 6fcd5c3..dc5c661 100644 --- a/i386/Makefile.in +++ b/i386/Makefile.in @@ -134,11 +134,9 @@ boothdr.o: i386asm.h all: sysdep.a $(MAKE) -C linux $@ -# `$($(systype)-objfiles-prepend)' are special, but are nevertheless -# created for the target `sysdep.a'. sysdep.a: $(objfiles) linux/linux.o rm -f $@ - $(AR) cr $@ $(filter-out $($(systype)-objfiles-prepend),$^) + $(AR) cr $@ $^ $(RANLIB) $@ check: diff --git a/i386/Makerules.in b/i386/Makerules.in index ef04948..9f09bcc 100644 --- a/i386/Makerules.in +++ b/i386/Makerules.in @@ -33,12 +33,8 @@ DEFINES += -DCONTINUATIONS -D__ELF__ -Di386 $(DEFS-$(systype)) # The system specific ones always override the generic ones. INCLUDES += -I$(abs_top_srcdir)/$(systype)/bogus -# Arrange for a suitable load address. -LDFLAGS-kernel += -Ttext 100000 - -# `boothdr.o' has to be at the beginning of the kernel image. -$(systype)-objfiles-prepend = boothdr.o - +# i386 specific linker script. +LDFLAGS-kernel += -T $(abs_top_srcdir)/$(systype)/ldscript # # Autoconf support diff --git a/i386/i386at/boothdr.S b/i386/i386at/boothdr.S index de80753..125eece 100644 --- a/i386/i386at/boothdr.S +++ b/i386/i386at/boothdr.S @@ -3,8 +3,11 @@ #include "i386asm.h" - .text - + /* + * This section will be put first into .text. See also i386/ldscript. + */ + .section .text.start,"ax" + /* We should never be entered this way. */ .globl start,_start start: diff --git a/i386/ldscript b/i386/ldscript index 0680714..19a5c76 100644 --- a/i386/ldscript +++ b/i386/ldscript @@ -46,8 +46,14 @@ SECTIONS KEEP (*(.init)) } =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. + */ + . = 0x100000; .text : { + *(.text.start) *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ |