summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/Config.lb16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/arch/i386/Config.lb b/src/arch/i386/Config.lb
index bb5202bc45..e9b426cc2d 100644
--- a/src/arch/i386/Config.lb
+++ b/src/arch/i386/Config.lb
@@ -1,4 +1,5 @@
uses CONFIG_SMP
+uses CONFIG_USE_INIT
init init/crt0.S.lb
ldscript init/ldscript.lb
@@ -29,6 +30,21 @@ end
addaction clean "rm -f romimage payload.*"
+if CONFIG_USE_INIT
+makerule init.o
+ depends "$(INIT-OBJECTS)"
+ action "$(LD) -melf_i386 -r -o init.pre.o $(INIT-OBJECTS)"
+ action "$(OBJCOPY) --rename-section .text=.init.text --rename-section .data=.init.data --rename-section .rodata=.init.rodata --rename-section .rodata.str1.1=.init.rodata.str1.1 init.pre.o init.o"
+end
+
+makerule linuxbios
+ depends "crt0.o init.o linuxbios_ram.rom ldscript.ld"
+ action "$(CC) -nostdlib -nostartfiles -static -o $@ -T ldscript.ld crt0.o init.o"
+ action "$(CROSS_COMPILE)nm -n linuxbios | sort > linuxbios.map"
+end
+
+end
+
dir lib
dir boot
if CONFIG_SMP