From 47fc482931b31b6e18caa9e5a4d65a71e8955d4b Mon Sep 17 00:00:00 2001 From: Maschell Date: Sun, 24 Jul 2022 18:58:11 +0200 Subject: [PATCH] Use wut 1.1.1 --- Dockerfile | 4 ++-- wumsloader/src/crt.c | 36 ++++++++++++++++++++++++++++++++++ wumsloader/src/entry.cpp | 4 ++-- wumsloader/src/entry.h | 4 ++-- wumsloader/src/utils/imports.h | 2 ++ wumsloader/src/utils/utils.h | 2 +- 6 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 wumsloader/src/crt.c diff --git a/Dockerfile b/Dockerfile index e452bbe..ca433c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -FROM wiiuenv/devkitppc:20220507 +FROM wiiuenv/devkitppc:20220806 -COPY --from=wiiuenv/wiiumodulesystem:20220507 /artifacts $DEVKITPRO +COPY --from=wiiuenv/wiiumodulesystem:20220724 /artifacts $DEVKITPRO WORKDIR project \ No newline at end of file diff --git a/wumsloader/src/crt.c b/wumsloader/src/crt.c new file mode 100644 index 0000000..954c654 --- /dev/null +++ b/wumsloader/src/crt.c @@ -0,0 +1,36 @@ +void __init_wut_malloc(); + +void __init_wut_newlib(); + +void __init_wut_stdcpp(); + +void __init_wut_devoptab(); + +void __attribute__((weak)) __init_wut_socket(); + +void __fini_wut_malloc(); + +void __fini_wut_newlib(); + +void __fini_wut_stdcpp(); + +void __fini_wut_devoptab(); + +void __attribute__((weak)) __fini_wut_socket(); + +void __attribute__((weak)) +init_wut() { + __init_wut_malloc(); + __init_wut_newlib(); + __init_wut_stdcpp(); + __init_wut_devoptab(); + if (&__init_wut_socket) __init_wut_socket(); +} + +void __attribute__((weak)) +fini_wut() { + __fini_wut_devoptab(); + __fini_wut_stdcpp(); + __fini_wut_newlib(); + __fini_wut_malloc(); +} diff --git a/wumsloader/src/entry.cpp b/wumsloader/src/entry.cpp index edc7b6d..ccead9c 100644 --- a/wumsloader/src/entry.cpp +++ b/wumsloader/src/entry.cpp @@ -41,7 +41,7 @@ extern "C" int _start(int argc, char **argv) { } void doStart(int argc, char **argv) { - __init_wut(); + init_wut(); initLogging(); if (!gInitCalled) { @@ -130,7 +130,7 @@ void doStart(int argc, char **argv) { CallHook(gLoadedModules, WUMS_HOOK_APPLICATION_STARTS); deinitLogging(); - __fini_wut(); + fini_wut(); } void CallInitHooksForModule(const std::shared_ptr &curModule) { diff --git a/wumsloader/src/entry.h b/wumsloader/src/entry.h index 8c36dbc..5809cd9 100644 --- a/wumsloader/src/entry.h +++ b/wumsloader/src/entry.h @@ -1,7 +1,7 @@ #pragma once extern "C" void __init(); -extern "C" void __init_wut(); -extern "C" void __fini_wut(); +extern "C" void init_wut(); +extern "C" void fini_wut(); void doStart(int argc, char **argv); \ No newline at end of file diff --git a/wumsloader/src/utils/imports.h b/wumsloader/src/utils/imports.h index 76a2867..ed08af6 100644 --- a/wumsloader/src/utils/imports.h +++ b/wumsloader/src/utils/imports.h @@ -33,6 +33,7 @@ IMPORT(OSWaitCond); IMPORT(OSSignalCond); IMPORT(MEMAllocFromDefaultHeapEx); IMPORT(MEMFreeToDefaultHeap); +IMPORT(OSSwapAtomic); IMPORT(FSTimeToCalendarTime); IMPORT(FSInit); @@ -46,6 +47,7 @@ IMPORT(FSGetFreeSpaceSize); IMPORT(FSGetStat); IMPORT(FSRemove); IMPORT(FSOpenFile); +IMPORT(FSOpenFileEx); IMPORT(FSCloseFile); IMPORT(FSOpenDir); IMPORT(FSMakeDir); diff --git a/wumsloader/src/utils/utils.h b/wumsloader/src/utils/utils.h index a71f4f9..f334596 100644 --- a/wumsloader/src/utils/utils.h +++ b/wumsloader/src/utils/utils.h @@ -7,7 +7,7 @@ std::unique_ptr make_unique_nothrow(Args &&...args) noexcept(noexcept(T(std:: } template -inline typename std::_MakeUniq::__array make_unique_nothrow(size_t num) noexcept { +inline typename std::unique_ptr make_unique_nothrow(size_t num) noexcept { return std::unique_ptr(new (std::nothrow) std::remove_extent_t[num]()); }