diff --git a/libc/src/Makefile b/libc/src/Makefile index 0e09225..f05b514 100644 --- a/libc/src/Makefile +++ b/libc/src/Makefile @@ -26,7 +26,7 @@ else ifeq ($(OSARCH), i686) ASM_ARCH := elf32 endif -CFLAGS := -fPIC -mno-red-zone -I$(INCLUDE) +CFLAGS := -fPIC -I$(INCLUDE) build: $(OBJECT_NAME) diff --git a/libc/src/mem/impl.cpp b/libc/src/mem/LibAllocImplementation.cpp similarity index 100% rename from libc/src/mem/impl.cpp rename to libc/src/mem/LibAllocImplementation.cpp diff --git a/libc/src/print/printf.h b/libc/src/print/printf.h index a4aac03..97a08de 100644 --- a/libc/src/print/printf.h +++ b/libc/src/print/printf.h @@ -96,7 +96,7 @@ extern "C" * @param c the single character to print */ PRINTF_VISIBILITY - void putchar(char c); + int putchar(int c); /** * An implementation of the C standard's printf/vprintf diff --git a/libs/libinit/Makefile b/libs/libinit/Makefile index 8c27ea9..28800f8 100644 --- a/libs/libinit/Makefile +++ b/libs/libinit/Makefile @@ -10,6 +10,7 @@ OUTPUT_DIR=../../out/system/lib/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar +OBJDUMP = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump NASM = /usr/bin/nasm C_SOURCES = $(shell find ./ -type f -name '*.c') @@ -30,6 +31,7 @@ build: $(OBJECT_NAME) $(OBJECT_NAME): $(OBJ) $(AR) rcs $(OUTPUT_DIR)$@ $(OBJ) + $(OBJDUMP) -d $(OUTPUT_DIR)$@ > file_dump.map %.o: %.c $(CC) $(CFLAGS) -std=c17 -c $< -o $@ @@ -44,4 +46,4 @@ $(OBJECT_NAME): $(OBJ) $(NASM) $< -f $(ASM_ARCH) -o $@ clean: - rm -f $(OBJ) + rm -f file_dump.map $(OBJ) diff --git a/libs/libssp/Makefile b/libs/libssp/Makefile index 2b92292..75d69c6 100644 --- a/libs/libssp/Makefile +++ b/libs/libssp/Makefile @@ -9,6 +9,7 @@ OUTPUT_DIR=../../out/system/lib/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar +OBJDUMP = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump NASM = /usr/bin/nasm C_SOURCES = $(shell find ./ -type f -name '*.c') @@ -27,6 +28,7 @@ build: $(OBJECT_NAME) $(OBJECT_NAME): $(OBJ) $(AR) rcs $(OUTPUT_DIR)$@ $(OBJ) + $(OBJDUMP) -d $(OUTPUT_DIR)$@ > file_dump.map %.o: %.c $(CC) $(CFLAGS) -std=c17 -c $< -o $@ @@ -38,4 +40,4 @@ $(OBJECT_NAME): $(OBJ) $(NASM) $< -f $(ASM_ARCH) -o $@ clean: - rm -f $(OBJ) + rm -f file_dump.map $(OBJ) diff --git a/libs/libssp/ssp.c b/libs/libssp/ssp.c index e96911d..32c6aac 100644 --- a/libs/libssp/ssp.c +++ b/libs/libssp/ssp.c @@ -21,6 +21,7 @@ __attribute__((weak, noreturn, no_stack_protector)) void __stack_chk_fail(void) : : "a"(0), "D"(0x57AC) : "rcx", "r11", "memory"); + __builtin_unreachable(); } __attribute__((weak, noreturn, no_stack_protector)) void __chk_fail(void) @@ -30,4 +31,5 @@ __attribute__((weak, noreturn, no_stack_protector)) void __chk_fail(void) : : "a"(0), "D"(0xF700) : "rcx", "r11", "memory"); + __builtin_unreachable(); }