diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-02 09:01:29 -0500 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-02 09:01:29 -0500 |
commit | c216a2000179a133e1e38852f55261f4bf9f08f6 (patch) | |
tree | 5598723901bfc557169a0d5294f411294662af10 /kernel | |
parent | f9d0734cf87f5ed03a57fdd994067dd5f872de78 (diff) |
misc: gcc->clang && gas->nasm
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/CMakeLists.txt | 16 | ||||
-rw-r--r-- | kernel/boot/gdt/gdt.s | 20 |
2 files changed, 11 insertions, 25 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index a65d436..bab610e 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -65,18 +65,8 @@ set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/boot/linker.ld") set(LINKER_FLAGS -T ${LINKER_SCRIPT} -nostdlib -) - -execute_process(COMMAND ${CMAKE_CXX_COMPILER} - -print-file-name=crtbegin.o - OUTPUT_VARIABLE CRTBEGIN_O - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -execute_process(COMMAND ${CMAKE_CXX_COMPILER} - -print-file-name=crtend.o - OUTPUT_VARIABLE CRTEND_O - OUTPUT_STRIP_TRAILING_WHITESPACE + -fuse-ld=lld + --target=i686-elf ) add_library(crti OBJECT boot/init/crti.s) @@ -94,9 +84,7 @@ set(CRTN_O "${CRTN_OUT}/CMakeFiles/crtn.dir/${CRTN_SRC}.o") # FIXME: This isn't a good way of setting the link order. set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_COMPILER} <CMAKE_CXX_LINK_FLAGS> <FLAGS> <LINK_FLAGS> \ ${CRTI_O} \ - ${CRTBEGIN_O} \ <OBJECTS> \ - ${CRTEND_O} \ ${CRTN_O} \ -o <TARGET> <LINK_LIBRARIES>" ) diff --git a/kernel/boot/gdt/gdt.s b/kernel/boot/gdt/gdt.s index ee50e4e..d1d768c 100644 --- a/kernel/boot/gdt/gdt.s +++ b/kernel/boot/gdt/gdt.s @@ -1,26 +1,24 @@ -.intel_syntax noprefix - .global _GDT_flush .type _GDT_flush, @function _GDT_flush: /* First Argument (Pointer to the GDT) */ - mov eax, [esp + 4] + movl 4(%esp), %eax /* Load GDT */ - lgdt [eax] + lgdt (%eax) /* Offset For Kernel Data Segment (16 bits) */ - mov eax, 0x10 + mov $0x10, %eax /* Set the Data Segment Selectors */ - mov ds, ax - mov es, ax - mov fs, ax - mov gs, ax - mov ss, ax + mov %ax, %ds + mov %ax, %es + mov %ax, %fs + mov %ax, %gs + mov %ax, %ss /* Set the Code Segment Selector */ - jmp 0x08:.flush + jmp $0x08, $.flush .flush: ret |