Link every executable binary with crt{i,n}.o
This commit is contained in:
parent
d5d96defdd
commit
26c8bb115c
7
src/kernel/crti.S
Normal file
7
src/kernel/crti.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crti.S"
|
7
src/kernel/crtn.S
Normal file
7
src/kernel/crtn.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crtn.S"
|
|
@ -18,11 +18,11 @@ command=cp -f -- `$(CC) -print-file-name=crtend.o` $(OBJDIR)crtend.o
|
|||
|
||||
[crti.o]
|
||||
type=object
|
||||
sources=../common/crti.S
|
||||
sources=crti.S
|
||||
|
||||
[crtn.o]
|
||||
type=object
|
||||
sources=../common/crtn.S
|
||||
sources=crtn.S
|
||||
|
||||
[uKernel.bin]
|
||||
type=binary
|
||||
|
@ -34,11 +34,11 @@ depends=$(OBJDIR)crtbegin.o,$(OBJDIR)crtend.o,$(OBJDIR)crti.o,$(OBJDIR)crtn.o,$(
|
|||
[arch.S]
|
||||
depends=../arch/i386/ioport.S
|
||||
|
||||
[../common/crti.S]
|
||||
depends=../arch/amd64/crti.S,../arch/i386/crti.S
|
||||
[crti.S]
|
||||
depends=../common/crti.S,../arch/amd64/crti.S,../arch/i386/crti.S
|
||||
|
||||
[../common/crtn.S]
|
||||
depends=../arch/amd64/crtn.S,../arch/i386/crtn.S
|
||||
[crtn.S]
|
||||
depends=../common/crtn.S,../arch/amd64/crtn.S,../arch/i386/crtn.S
|
||||
|
||||
[multiboot.c]
|
||||
depends=../loader/multiboot.c,../drivers/boot/multiboot.h
|
||||
|
|
7
src/loader/crti.S
Normal file
7
src/loader/crti.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crti.S"
|
7
src/loader/crtn.S
Normal file
7
src/loader/crtn.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crtn.S"
|
|
@ -18,11 +18,11 @@ command=cp -f -- `$(CC) -m32 -print-file-name=crtend.o` $(OBJDIR)crtend.o
|
|||
|
||||
[crti.o]
|
||||
type=object
|
||||
sources=../common/crti.S
|
||||
sources=crti.S
|
||||
|
||||
[crtn.o]
|
||||
type=object
|
||||
sources=../common/crtn.S
|
||||
sources=crtn.S
|
||||
|
||||
[libuLoader]
|
||||
type=library
|
||||
|
@ -31,19 +31,13 @@ sources=boot/multiboot.c,bus.c,bus/cmos.c,bus/ioport.c,bus/vga.c,console.c,conso
|
|||
[uLoader.bin]
|
||||
type=binary
|
||||
sources=arch.S,gdt.c,main.c,multiboot.c,start.S
|
||||
ldflags=$(OBJDIR)crti.o $(OBJDIR)crtbegin.o $(OBJDIR)crtend.o $(OBJDIR)crtn.o $(OBJDIR)libuLoader.a `$(CC) -print-libgcc-file-name`
|
||||
ldflags=$(OBJDIR)crti.o $(OBJDIR)crtbegin.o $(OBJDIR)libuLoader.a $(OBJDIR)crtend.o $(OBJDIR)crtn.o `$(CC) -print-libgcc-file-name`
|
||||
depends=$(OBJDIR)crtbegin.o,$(OBJDIR)crtend.o,$(OBJDIR)crti.o,$(OBJDIR)crtn.o,$(OBJDIR)libuLoader.a,../arch/amd64/uKernel.ld,../arch/i386/uKernel.ld
|
||||
|
||||
#sources
|
||||
[arch.S]
|
||||
depends=../arch/i386/ioport.S
|
||||
|
||||
[../common/crti.S]
|
||||
depends=../arch/amd64/crti.S,../arch/i386/crti.S
|
||||
|
||||
[../common/crtn.S]
|
||||
depends=../arch/amd64/crtn.S,../arch/i386/crtn.S
|
||||
|
||||
[bus.c]
|
||||
depends=../drivers/bus.c
|
||||
|
||||
|
@ -59,6 +53,12 @@ depends=../drivers/console.c
|
|||
[console/uart.c]
|
||||
depends=../drivers/console/uart.c
|
||||
|
||||
[crti.S]
|
||||
depends=../common/crti.S,../arch/amd64/crti.S,../arch/i386/crti.S
|
||||
|
||||
[crtn.S]
|
||||
depends=../common/crtn.S,../arch/amd64/crtn.S,../arch/i386/crtn.S
|
||||
|
||||
[display.c]
|
||||
depends=../drivers/display.c
|
||||
|
||||
|
|
|
@ -103,6 +103,9 @@ _start:
|
|||
/* call the global constructors */
|
||||
call _init
|
||||
|
||||
/* initialize the userland */
|
||||
call init
|
||||
|
||||
/* run the userland kernel */
|
||||
call main
|
||||
#if defined(__ELF__)
|
||||
|
@ -110,10 +113,14 @@ _start:
|
|||
#else
|
||||
add $0xc, %esp
|
||||
#endif
|
||||
push %eax
|
||||
|
||||
/* call the global destructors */
|
||||
call _fini
|
||||
|
||||
/* exit the userland kernel */
|
||||
push %eax
|
||||
call exit
|
||||
add $0x4, %esp
|
||||
|
||||
hlt
|
||||
|
||||
|
|
7
tools/crti.S
Normal file
7
tools/crti.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crti.S"
|
7
tools/crtn.S
Normal file
7
tools/crtn.S
Normal file
|
@ -0,0 +1,7 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
||||
|
||||
|
||||
|
||||
#include "common/crtn.S"
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
|
||||
/* init */
|
||||
int _init(void)
|
||||
int init(void)
|
||||
{
|
||||
ukBus * bus;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
targets=crtbegin.o,crtend.o,start.o,uKernel
|
||||
targets=crtbegin.o,crtend.o,crti.o,crtn.o,start.o,uKernel
|
||||
cppflags_force=-nostdinc -isystem ../include -I../src
|
||||
cflags_force=`../tools/platform.sh -V NATIVE_CFLAGS -C "$$ARCH"`
|
||||
cflags=-W -Wall -g -O2
|
||||
|
@ -16,6 +16,14 @@ command=cp -f -- `$(CC) -print-file-name=crtbegin.o` $(OBJDIR)crtbegin.o
|
|||
type=command
|
||||
command=cp -f -- `$(CC) -print-file-name=crtend.o` $(OBJDIR)crtend.o
|
||||
|
||||
[crti.o]
|
||||
type=object
|
||||
sources=crti.S
|
||||
|
||||
[crtn.o]
|
||||
type=object
|
||||
sources=crtn.S
|
||||
|
||||
[start.o]
|
||||
type=object
|
||||
sources=start.S
|
||||
|
@ -23,7 +31,7 @@ sources=start.S
|
|||
[uKernel]
|
||||
type=binary
|
||||
sources=bus.c,clock.c,console.c,init.c,main.c
|
||||
ldflags=$(OBJDIR)crtbegin.o $(OBJDIR)crtend.o $(OBJDIR)start.o $(OBJDIR)../src/lib/libuKernel.a $(OBJDIR)../src/drivers/clock/sys.o $(OBJDIR)../src/drivers/console/stdio.o `$(CC) -print-libgcc-file-name`
|
||||
ldflags=$(OBJDIR)crti.o $(OBJDIR)crtbegin.o $(OBJDIR)start.o $(OBJDIR)../src/lib/libuKernel.a $(OBJDIR)../src/drivers/clock/sys.o $(OBJDIR)../src/drivers/console/stdio.o $(OBJDIR)crtend.o $(OBJDIR)crtn.o `$(CC) -print-libgcc-file-name`
|
||||
depends=$(OBJDIR)crtbegin.o,$(OBJDIR)crtend.o,$(OBJDIR)start.o,$(OBJDIR)../src/lib/libuKernel.a,$(OBJDIR)../src/drivers/clock/sys.o,$(OBJDIR)../src/drivers/console/stdio.o
|
||||
|
||||
#sources
|
||||
|
@ -33,6 +41,12 @@ depends=../src/drivers/bus.c,../src/drivers/bus/tty.c
|
|||
[console.c]
|
||||
depends=../src/drivers/console.h
|
||||
|
||||
[crti.S]
|
||||
depends=../src/common/crti.S,../src/arch/amd64/crti.S,../src/arch/i386/crti.S
|
||||
|
||||
[crtn.S]
|
||||
depends=../src/common/crtn.S,../src/arch/amd64/crtn.S,../src/arch/i386/crtn.S
|
||||
|
||||
[main.c]
|
||||
depends=../src/kernel/main.c
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user