diff --git a/apps/base/echo/Makefile b/apps/base/echo/Makefile index fb4e6ce..53a186f 100644 --- a/apps/base/echo/Makefile +++ b/apps/base/echo/Makefile @@ -5,11 +5,11 @@ FILENAME = echo.elf SYSROOT = --sysroot=../../../out/system/ -CC = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -CPP = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)g++ -LD = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ld -AS = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)as -OBJDUMP = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)objdump +CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ +LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld +AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as +OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump GIT_COMMIT = $(shell git rev-parse HEAD) GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD) diff --git a/apps/system/init/Makefile b/apps/system/init/Makefile index 843656e..fa197f5 100644 --- a/apps/system/init/Makefile +++ b/apps/system/init/Makefile @@ -5,11 +5,11 @@ FILENAME = init.elf SYSROOT = --sysroot=../../../out/system/ -CC = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -CPP = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)g++ -LD = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ld -AS = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)as -OBJDUMP = ../../../../$(COMPILER_PATH)/$(COMPILER_ARCH)objdump +CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ +LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld +AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as +OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump GIT_COMMIT = $(shell git rev-parse HEAD) GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD) diff --git a/libc/Makefile b/libc/Makefile index 068c095..6f7ec50 100644 --- a/libc/Makefile +++ b/libc/Makefile @@ -1,5 +1,5 @@ build: - cp include/* ../out/system/include + cp -r include/* ../out/system/include make --quiet -C runtime build make --quiet -C src build diff --git a/libc/libgcc/Makefile b/libc/libgcc/Makefile deleted file mode 100644 index 08a0e7e..0000000 --- a/libc/libgcc/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Config file -include ../../../Makefile.conf - -NAME=gcc - -OBJECT_NAME=lib$(NAME).a - -OUTPUT_DIR=../../out/system/lib/ - -CC = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -AR = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ar -NASM = /usr/bin/nasm - -C_SOURCES = $(shell find ./ -type f -name '*.c') -S_SOURCES = $(shell find ./ -type f -name '*.s') -ASM_SOURCES = $(shell find ./ -type f -name '*.asm') -OBJ = ${C_SOURCES:.c=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.s=.o} - -INCLUDE_DIR = ../include - -ifeq ($(OSARCH), amd64) -ASM_ARCH := elf64 -else ifeq ($(OSARCH), i686) -ASM_ARCH := elf32 -endif - -CFLAGS := -fPIC -I$(INCLUDE_DIR) - -build: $(OBJECT_NAME) - -$(OBJECT_NAME): $(OBJ) - $(AR) rcs $(OUTPUT_DIR)$@ $(OBJ) - -%.o: %.c $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c17 -c $< -o $@ - -%.o: %.cpp $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c++20 -c $< -o $@ - -%.o: %.asm - $(NASM) $< -f $(ASM_ARCH) -o $@ - -clean: - diff --git a/libc/libgcc/cxa.cpp b/libc/libgcc/cxa.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/libc/libssp/Makefile b/libc/libssp/Makefile deleted file mode 100644 index c31b837..0000000 --- a/libc/libssp/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Config file -include ../../../Makefile.conf - -NAME=ssp - -OBJECT_NAME=lib$(NAME).a - -OUTPUT_DIR=../../out/system/lib/ - -CC = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -AR = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ar -NASM = /usr/bin/nasm - -C_SOURCES = $(shell find ./ -type f -name '*.c') -S_SOURCES = $(shell find ./ -type f -name '*.s') -ASM_SOURCES = $(shell find ./ -type f -name '*.asm') -OBJ = ${C_SOURCES:.c=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.s=.o} - -INCLUDE_DIR = ../include - -ifeq ($(OSARCH), amd64) -ASM_ARCH := elf64 -else ifeq ($(OSARCH), i686) -ASM_ARCH := elf32 -endif - -CFLAGS := -fPIC -I$(INCLUDE_DIR) - -build: $(OBJECT_NAME) - -$(OBJECT_NAME): $(OBJ) - $(AR) rcs $(OUTPUT_DIR)$@ $(OBJ) - -%.o: %.c $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c17 -c $< -o $@ - -%.o: %.cpp $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c++20 -c $< -o $@ - -%.o: %.asm - $(NASM) $< -f $(ASM_ARCH) -o $@ - -clean: - diff --git a/libc/libssp/ssp.c b/libc/libssp/ssp.c deleted file mode 100644 index e96911d..0000000 --- a/libc/libssp/ssp.c +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef STACK_CHK_GUARD_VALUE -#if UINTPTR_MAX == UINT32_MAX -#define STACK_CHK_GUARD_VALUE 0xDEAD57AC -#else -#define STACK_CHK_GUARD_VALUE 0xDEAD57AC00000000 -#endif -#endif - -__UINTPTR_TYPE__ __stack_chk_guard = 0; - -static void __attribute__((constructor, no_stack_protector)) __guard_setup(void) -{ - if (__stack_chk_guard == 0) - __stack_chk_guard = STACK_CHK_GUARD_VALUE; -} - -__attribute__((weak, noreturn, no_stack_protector)) void __stack_chk_fail(void) -{ - const char *msg = "Stack smashing detected"; - __asm__ __volatile__("syscall" - : - : "a"(0), "D"(0x57AC) - : "rcx", "r11", "memory"); -} - -__attribute__((weak, noreturn, no_stack_protector)) void __chk_fail(void) -{ - const char *msg = "Buffer overflow detected"; - __asm__ __volatile__("syscall" - : - : "a"(0), "D"(0xF700) - : "rcx", "r11", "memory"); -} diff --git a/libc/runtime/Makefile b/libc/runtime/Makefile index f2da55a..3bc388e 100644 --- a/libc/runtime/Makefile +++ b/libc/runtime/Makefile @@ -1,8 +1,8 @@ # Config file include ../../../Makefile.conf -CC = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -AS = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)as +CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as NASM = /usr/bin/nasm C_SOURCES = $(shell find ./ -type f -name '*.c') @@ -16,8 +16,14 @@ else ifeq ($(OSARCH), i686) ASM_ARCH := elf32 endif +CRTBEGIN_PATH = $(shell $(CC) -print-file-name=crtbegin.o) +CRTEND_PATH = $(shell $(CC) -print-file-name=crtend.o) +CRTI_PATH = $(shell $(CC) -print-file-name=crti.o) +CRTN_PATH = $(shell $(CC) -print-file-name=crtn.o) + build: $(OBJ) mv $^ ../../out/system/lib/ + cp $(CRTBEGIN_PATH) $(CRTEND_PATH) $(CRTI_PATH) $(CRTN_PATH) ../../out/system/lib/ %.o: %.c $(CC) -nostdlib -mno-red-zone -std=c17 -c $< -o $@ diff --git a/libc/runtime/crtbegin.S b/libc/runtime/crtbegin.S deleted file mode 100644 index 149fef2..0000000 --- a/libc/runtime/crtbegin.S +++ /dev/null @@ -1,14 +0,0 @@ -# I WILL PLACE HERE THE crti.o BECAUSE GCC REFUSE TO LINK IT AND I DON'T KNOW WHY -.section .init -.global _init -.type _init, @function -_init: - push %rbp - movq %rsp, %rbp - -.section .fini -.global _fini -.type _fini, @function -_fini: - push %rbp - movq %rsp, %rbp diff --git a/libc/runtime/crtend.S b/libc/runtime/crtend.S deleted file mode 100644 index 3f911fa..0000000 --- a/libc/runtime/crtend.S +++ /dev/null @@ -1,8 +0,0 @@ -# I WILL PLACE HERE THE crtn.o BECAUSE GCC REFUSE TO LINK IT AND I DON'T KNOW WHY -.section .init - popq %rbp - ret - -.section .fini - popq %rbp - ret diff --git a/libc/runtime/crti.S b/libc/runtime/crti.S deleted file mode 100644 index 9385571..0000000 --- a/libc/runtime/crti.S +++ /dev/null @@ -1,13 +0,0 @@ -.section .init -.global _init -.type _init, @function -_init: - push %rbp - movq %rsp, %rbp - -.section .fini -.global _fini -.type _fini, @function -_fini: - push %rbp - movq %rsp, %rbp diff --git a/libc/runtime/crtn.S b/libc/runtime/crtn.S deleted file mode 100644 index 2fe55b4..0000000 --- a/libc/runtime/crtn.S +++ /dev/null @@ -1,7 +0,0 @@ -.section .init - popq %rbp - ret - -.section .fini - popq %rbp - ret diff --git a/libs/libgcc/Makefile b/libs/libgcc/Makefile index 08a0e7e..826c8f4 100644 --- a/libs/libgcc/Makefile +++ b/libs/libgcc/Makefile @@ -7,38 +7,14 @@ OBJECT_NAME=lib$(NAME).a OUTPUT_DIR=../../out/system/lib/ -CC = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -AR = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ar -NASM = /usr/bin/nasm +CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -C_SOURCES = $(shell find ./ -type f -name '*.c') -S_SOURCES = $(shell find ./ -type f -name '*.s') -ASM_SOURCES = $(shell find ./ -type f -name '*.asm') -OBJ = ${C_SOURCES:.c=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.s=.o} - -INCLUDE_DIR = ../include - -ifeq ($(OSARCH), amd64) -ASM_ARCH := elf64 -else ifeq ($(OSARCH), i686) -ASM_ARCH := elf32 -endif - -CFLAGS := -fPIC -I$(INCLUDE_DIR) +CRTBEGIN_PATH = $(shell $(CC) -print-file-name=libgcc.a) build: $(OBJECT_NAME) -$(OBJECT_NAME): $(OBJ) - $(AR) rcs $(OUTPUT_DIR)$@ $(OBJ) - -%.o: %.c $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c17 -c $< -o $@ - -%.o: %.cpp $(HEADERS) $(HEADERS2) - $(CC) $(CFLAGS) -std=c++20 -c $< -o $@ - -%.o: %.asm - $(NASM) $< -f $(ASM_ARCH) -o $@ +$(OBJECT_NAME): + cp $(CRTBEGIN_PATH) $(OUTPUT_DIR) clean: diff --git a/libs/libgcc/cxa.cpp b/libs/libgcc/cxa.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/libs/libssp/Makefile b/libs/libssp/Makefile index c31b837..bd08f42 100644 --- a/libs/libssp/Makefile +++ b/libs/libssp/Makefile @@ -7,8 +7,8 @@ OBJECT_NAME=lib$(NAME).a OUTPUT_DIR=../../out/system/lib/ -CC = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)gcc -AR = ../../../$(COMPILER_PATH)/$(COMPILER_ARCH)ar +CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar NASM = /usr/bin/nasm C_SOURCES = $(shell find ./ -type f -name '*.c')