From 361f02166cc939879b58328cbf5e75a050c93e1d Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 7 Mar 2021 21:44:12 +0200 Subject: Move multiboot header to its own section --- src/boot.S | 4 ++-- src/idt.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/boot.S b/src/boot.S index fff1644..b17aea3 100644 --- a/src/boot.S +++ b/src/boot.S @@ -9,7 +9,7 @@ .set MULTIBOOT_ARCHITECTURE, 0 # protected mode i386 .set MULTIBOOT_HEADER_TAG_END, 0 -.section .multiboot +.section .multiboot.header, "a" .align 8 header_start: .int MULTIBOOT_HEADER_MAGIC @@ -40,7 +40,7 @@ stack_top: The linker script specifies _start as the entry point to the kernel and the bootloader will jump to this position once the kernel has been loaded. */ -.section .text +.section .multiboot.text, "ax" .extern kernel_constructors .extern kernel_main .global _start diff --git a/src/idt.cc b/src/idt.cc index 5022f3e..edf7b37 100644 --- a/src/idt.cc +++ b/src/idt.cc @@ -6,7 +6,7 @@ static_assert(sizeof(IDT::Pointer) == 6); constexpr uint8_t irq_base = 0x20; -static IDT::Entry table[256]; +__attribute__((section(".constinit"))) static IDT::Entry table[256]; static InterruptHandler* handlers[256] = {nullptr}; bool IDT::install(uint8_t irq, InterruptHandler* h) { -- cgit v1.2.1