From 2411bf060b9c173d91b93ed047a41064e04cce51 Mon Sep 17 00:00:00 2001 From: lizzie Date: Sun, 6 Sep 2026 18:38:50 +0000 Subject: [PATCH] 2026-09-06 18:38:50 Signed-off-by: lizzie --- src/core/arm/symbols.cpp | 33 +++++++++++++++++---------------- src/core/loader/nro.cpp | 5 +++-- src/core/loader/nso.cpp | 5 +++-- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/core/arm/symbols.cpp b/src/core/arm/symbols.cpp index 4e270c319e..9cb0f8b1c9 100644 --- a/src/core/arm/symbols.cpp +++ b/src/core/arm/symbols.cpp @@ -17,25 +17,26 @@ namespace Core { namespace Symbols { struct ModuleHeaderLocation { - u32 version; - u32 header_offset; - u32 version_offset; + u32_le version; + u32_le header_offset; + u32_le version_offset; }; static_assert(sizeof(ModuleHeaderLocation) == 0x0C); struct ModuleHeader { - u32 signature; - u32 dynamic_offset; - u32 bss_start_offset; - u32 bss_end_offset; - u32 exception_info_start_offset; - u32 exception_info_end_offset; - u32 module_offset; - u32 relro_start_offset; - u32 full_relro_end_offset; - u32 nx_debug_link_start_offset; - u32 nx_debug_link_end_offset; - u32 note_gnu_build_id_start_offset; - u32 note_gnu_build_id_end_offset; + u32_le signature; + u32_le dynamic_offset; + u32_le bss_start_offset; + u32_le bss_end_offset; + // https://github.com/Atmosphere-NX/Atmosphere/pull/2835/changes + s32_le exception_info_start_offset; + s32_le exception_info_end_offset; + u32_le module_offset; + u32_le relro_start_offset; + u32_le full_relro_end_offset; + u32_le nx_debug_link_start_offset; + u32_le nx_debug_link_end_offset; + u32_le note_gnu_build_id_start_offset; + u32_le note_gnu_build_id_end_offset; }; static_assert(sizeof(ModuleHeader) == 0x34); diff --git a/src/core/loader/nro.cpp b/src/core/loader/nro.cpp index 4ba4bde0bb..3533ce6594 100644 --- a/src/core/loader/nro.cpp +++ b/src/core/loader/nro.cpp @@ -63,8 +63,9 @@ struct ModHeader { u32_le dynamic_offset; u32_le bss_start_offset; u32_le bss_end_offset; - u32_le unwind_start_offset; - u32_le unwind_end_offset; + // https://github.com/Atmosphere-NX/Atmosphere/pull/2835/changes + s32_le unwind_start_offset; + s32_le unwind_end_offset; u32_le module_offset; // Offset to runtime-generated module object. typically equal to .bss base }; static_assert(sizeof(ModHeader) == 0x1c, "ModHeader has incorrect size."); diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp index 0a3dc5885b..3ce2a2517c 100644 --- a/src/core/loader/nso.cpp +++ b/src/core/loader/nso.cpp @@ -35,8 +35,9 @@ struct MODHeader { u32_le dynamic_offset; u32_le bss_start_offset; u32_le bss_end_offset; - u32_le eh_frame_hdr_start_offset; - u32_le eh_frame_hdr_end_offset; + // https://github.com/Atmosphere-NX/Atmosphere/pull/2835/changes + s32_le eh_frame_hdr_start_offset; + s32_le eh_frame_hdr_end_offset; u32_le module_offset; // Offset to runtime-generated module object. typically equal to .bss base }; static_assert(sizeof(MODHeader) == 0x1c, "MODHeader has incorrect size.");