BuildSystem: binutils1.39->1.44, gcc12.2.0->15.1.0
This commit is contained in:
@@ -68,7 +68,9 @@ namespace Kernel
|
||||
|
||||
bool has_fd(int fd) const
|
||||
{
|
||||
if (fd < 0 || static_cast<size_t>(fd) >= events.size())
|
||||
// For some reason having (fd < 0 || ...) makes GCC 15.1.0
|
||||
// think bitmap access can be out of bounds...
|
||||
if (static_cast<size_t>(fd) >= events.size())
|
||||
return false;
|
||||
return bitmap[fd / 32] & (1u << (fd % 32));
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ namespace Kernel
|
||||
BAN::Atomic<bool> m_smp_free_lock { false };
|
||||
SMPMessage* m_smp_free { nullptr };
|
||||
|
||||
SMPMessage* m_smp_message_storage;
|
||||
SMPMessage* m_smp_message_storage { nullptr };
|
||||
|
||||
void* m_current_page_table { nullptr };
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Kernel
|
||||
long ret;
|
||||
asm volatile("int %[irq]"
|
||||
: "=a"(ret)
|
||||
: [irq]"i"(IRQ_SYSCALL)
|
||||
: [irq]"i"(static_cast<int>(IRQ_SYSCALL)) // WTF GCC 15
|
||||
, "a"(syscall)
|
||||
, "b"((uintptr_t)arg1)
|
||||
, "c"((uintptr_t)arg2)
|
||||
|
||||
@@ -746,6 +746,8 @@ namespace Kernel::ACPI::AML
|
||||
return {};
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wstack-usage="
|
||||
static BAN::ErrorOr<void> perform_store(const Node& source, Reference* target, TargetType target_type)
|
||||
{
|
||||
dprintln_if(AML_DUMP_FUNCTION_CALLS, "perform_store");
|
||||
@@ -826,6 +828,7 @@ namespace Kernel::ACPI::AML
|
||||
|
||||
return {};
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
static BAN::ErrorOr<void> store_into_target(ParseContext& context, const Node& node)
|
||||
{
|
||||
|
||||
@@ -176,19 +176,20 @@ namespace Kernel
|
||||
switch (entry->type)
|
||||
{
|
||||
case 0:
|
||||
Processor processor;
|
||||
processor.processor_id = entry->entry0.acpi_processor_id;
|
||||
processor.apic_id = entry->entry0.apic_id;
|
||||
processor.flags = entry->entry0.flags & 0x03;
|
||||
MUST(apic->m_processors.push_back(processor));
|
||||
MUST(apic->m_processors.emplace_back(Processor {
|
||||
.processor_id = entry->entry0.acpi_processor_id,
|
||||
.apic_id = entry->entry0.apic_id,
|
||||
.flags = static_cast<uint8_t>(entry->entry0.flags & 0x03),
|
||||
}));
|
||||
break;
|
||||
case 1:
|
||||
IOAPIC ioapic;
|
||||
ioapic.id = entry->entry1.ioapic_id;
|
||||
ioapic.paddr = entry->entry1.ioapic_address;
|
||||
ioapic.gsi_base = entry->entry1.gsi_base;
|
||||
ioapic.max_redirs = 0;
|
||||
MUST(apic->m_io_apics.push_back(ioapic));
|
||||
MUST(apic->m_io_apics.emplace_back(IOAPIC {
|
||||
.id = entry->entry1.ioapic_id,
|
||||
.paddr = entry->entry1.ioapic_address,
|
||||
.vaddr = 0,
|
||||
.gsi_base = entry->entry1.gsi_base,
|
||||
.max_redirs = 0,
|
||||
}));
|
||||
break;
|
||||
case 2:
|
||||
apic->m_irq_overrides[entry->entry2.irq_source] = entry->entry2.gsi;
|
||||
|
||||
@@ -391,7 +391,7 @@ namespace Kernel
|
||||
// NOTE: This is offset by 2 pointers since interrupt without PL change
|
||||
// does not push SP and SS. This allows accessing "whole" interrupt stack.
|
||||
:: [load_sp]"r"(Processor::current_stack_top() - 2 * sizeof(uintptr_t)),
|
||||
[yield]"i"(IRQ_YIELD)
|
||||
[yield]"i"(static_cast<int>(IRQ_YIELD)) // WTF GCC 15
|
||||
: "memory", "rcx"
|
||||
);
|
||||
#elif ARCH(i686)
|
||||
@@ -403,7 +403,7 @@ namespace Kernel
|
||||
// NOTE: This is offset by 2 pointers since interrupt without PL change
|
||||
// does not push SP and SS. This allows accessing "whole" interrupt stack.
|
||||
:: [load_sp]"r"(Processor::current_stack_top() - 2 * sizeof(uintptr_t)),
|
||||
[yield]"i"(IRQ_YIELD)
|
||||
[yield]"i"(static_cast<int>(IRQ_YIELD)) // WTF GCC 15
|
||||
: "memory", "ecx"
|
||||
);
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user