From e4ab908fe0c29ae7eef506149367fb2018c7c776 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 8 Apr 2020 15:18:12 +0200 Subject: [PATCH] Kernel: Move global constructor invocation a bit earlier --- Kernel/init.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Kernel/init.cpp b/Kernel/init.cpp index cd2832e985..2c46189715 100644 --- a/Kernel/init.cpp +++ b/Kernel/init.cpp @@ -119,6 +119,11 @@ extern "C" [[noreturn]] void init() gdt_init(); idt_init(); + // Invoke all static global constructors in the kernel. + // Note that we want to do this as early as possible. + for (ctor_func_t* ctor = &start_ctors; ctor < &end_ctors; ctor++) + (*ctor)(); + setup_interrupts(); setup_acpi(); @@ -134,10 +139,6 @@ extern "C" [[noreturn]] void init() setup_time_management(); - // call global constructors after gtd and itd init - for (ctor_func_t* ctor = &start_ctors; ctor < &end_ctors; ctor++) - (*ctor)(); - new NullDevice; if (!get_serial_debug()) new SerialDevice(SERIAL_COM1_ADDR, 64);