diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 367cb9c..7a7f255 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -48,23 +48,23 @@ jobs: # Usually, it requires Linux, x86_64 and gcc/g++. # os : GitHub Actions YAML workflow label. See https://github.com/actions/virtual-environments#available-environments # gcc - { pkgs: 'nasm', cc: gcc, cxx: g++, os: ubuntu-latest, }, - { pkgs: 'gcc-12 g++-12 nasm', cc: gcc-12, cxx: g++-12, os: ubuntu-22.04, }, - { pkgs: 'gcc-11 g++-11 nasm', cc: gcc-11, cxx: g++-11, os: ubuntu-22.04, }, - { pkgs: 'gcc-10 g++-10 nasm', cc: gcc-10, cxx: g++-10, os: ubuntu-22.04, }, - { pkgs: 'gcc-9 g++-9 nasm', cc: gcc-9, cxx: g++-9, os: ubuntu-22.04, }, - { pkgs: 'gcc-8 g++-8 nasm', cc: gcc-8, cxx: g++-8, os: ubuntu-20.04, }, - { pkgs: 'gcc-7 g++-7 nasm', cc: gcc-7, cxx: g++-7, os: ubuntu-20.04, }, + { pkgs: 'nasm', cc: gcc, cxx: g++, os: ubuntu-latest, }, + { pkgs: 'gcc-12 g++-12 nasm', cc: gcc-12, cxx: g++-12, os: ubuntu-22.04, }, + { pkgs: 'gcc-11 g++-11 nasm', cc: gcc-11, cxx: g++-11, os: ubuntu-22.04, }, + { pkgs: 'gcc-10 g++-10 nasm', cc: gcc-10, cxx: g++-10, os: ubuntu-22.04, }, + { pkgs: 'gcc-9 g++-9 nasm', cc: gcc-9, cxx: g++-9, os: ubuntu-22.04, }, + { pkgs: 'gcc-8 g++-8 nasm', cc: gcc-8, cxx: g++-8, os: ubuntu-20.04, }, + { pkgs: 'gcc-7 g++-7 nasm', cc: gcc-7, cxx: g++-7, os: ubuntu-20.04, }, # clang - { pkgs: 'nasm', cc: clang, cxx: clang++, os: ubuntu-latest, }, - { pkgs: 'clang-14 nasm', cc: clang-14, cxx: clang++-14, os: ubuntu-22.04, }, - { pkgs: 'clang-13 nasm', cc: clang-13, cxx: clang++-13, os: ubuntu-22.04, }, - { pkgs: 'clang-12 nasm', cc: clang-12, cxx: clang++-12, os: ubuntu-22.04, }, - { pkgs: 'clang-11 nasm', cc: clang-11, cxx: clang++-11, os: ubuntu-22.04, }, - { pkgs: 'clang-10 nasm', cc: clang-10, cxx: clang++-10, os: ubuntu-20.04, }, - { pkgs: 'clang-9 nasm', cc: clang-9, cxx: clang++-9, os: ubuntu-20.04, }, - { pkgs: 'clang-8 nasm', cc: clang-8, cxx: clang++-8, os: ubuntu-20.04, }, - { pkgs: 'clang-7 nasm', cc: clang-7, cxx: clang++-7, os: ubuntu-20.04, }, + { pkgs: 'nasm', cc: clang, cxx: clang++, os: ubuntu-latest, }, + { pkgs: 'clang-14 nasm', cc: clang-14, cxx: clang++-14, os: ubuntu-22.04, }, + { pkgs: 'clang-13 nasm', cc: clang-13, cxx: clang++-13, os: ubuntu-22.04, }, + { pkgs: 'clang-12 nasm', cc: clang-12, cxx: clang++-12, os: ubuntu-22.04, }, + { pkgs: 'clang-11 nasm', cc: clang-11, cxx: clang++-11, os: ubuntu-22.04, }, + { pkgs: 'clang-10 nasm', cc: clang-10, cxx: clang++-10, os: ubuntu-20.04, }, + { pkgs: 'clang-9 nasm', cc: clang-9, cxx: clang++-9, os: ubuntu-20.04, }, + { pkgs: 'clang-8 nasm', cc: clang-8, cxx: clang++-8, os: ubuntu-20.04, }, + { pkgs: 'clang-7 nasm', cc: clang-7, cxx: clang++-7, os: ubuntu-20.04, }, ] runs-on: ${{ matrix.os }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e22874..1935e22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,6 +68,8 @@ else() else() # set(EMULATOR_FLAGS ${EMULATOR_FLAGS} -sdl) endif() + # Speicfy the linker. + set(CMAKE_LINKER ld) endif() # ============================================================================= diff --git a/mentos/boot.lds b/mentos/boot.lds index c99c023..ad47a4a 100644 --- a/mentos/boot.lds +++ b/mentos/boot.lds @@ -1,17 +1,14 @@ -OUTPUT_FORMAT("elf") -OUTPUT_ARCH(i386) +OUTPUT_FORMAT("elf32-i386") ENTRY(boot_entry) -BOOTLOADER_PHYSICAL_ADDRESS = 0x00100000; - MEMORY { BOOTLOADER_MEM : ORIGIN = 0x00000000, LENGTH = 128M } SECTIONS { - . = BOOTLOADER_PHYSICAL_ADDRESS; + . = 0x00100000; _bootloader_start = .; .multiboot . : AT(ADDR(.multiboot)) { diff --git a/mentos/kernel.lds b/mentos/kernel.lds index 3716d68..32b1d41 100644 --- a/mentos/kernel.lds +++ b/mentos/kernel.lds @@ -1,20 +1,17 @@ -OUTPUT_FORMAT("elf") -OUTPUT_ARCH(i386) +OUTPUT_FORMAT("elf32-i386") ENTRY(kmain) -KERNEL_VIRTUAL_ADDRESS = 0xC0000000; - MEMORY { USER_SPACE : ORIGIN = 0x00000000, LENGTH = 3072M - KERNEL_LOWMEM : ORIGIN = KERNEL_VIRTUAL_ADDRESS, LENGTH = 896M + KERNEL_LOWMEM : ORIGIN = 0xC0000000, LENGTH = 896M KERNEL_HIGHMEM : ORIGIN = 0xF8000000, LENGTH = 128M } SECTIONS { - . = KERNEL_VIRTUAL_ADDRESS; + . = 0xC0000000; /* Put the .text section. */ .text . : AT(ADDR(.text)) {