diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-07-23 10:00:29 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-07-23 10:00:29 +0200 |
| commit | e1763a726ed43df366a5ee65803bdacb0e5bb28e (patch) | |
| tree | 725721a2c0a0cdd67e1df2aec31edddafb57be89 /externals | |
| parent | 23c77a0d4f884057abff59f4df4b0e9ceb508136 (diff) | |
[build, cmake] port to solaris (#96)
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/96
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'externals')
6 files changed, 64 insertions, 49 deletions
diff --git a/externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp b/externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp index 2d6d6ea6d8..8a523267e5 100644 --- a/externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp +++ b/externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + /* This file is part of the dynarmic project. * Copyright (c) 2019 MerryMage * SPDX-License-Identifier: 0BSD @@ -13,6 +16,9 @@ # ifndef __OpenBSD__ # include <ucontext.h> # endif +# ifdef __sun__ +# include <sys/regset.h> +# endif #endif #include <cstring> @@ -145,9 +151,9 @@ void SigHandler::SigAction(int sig, siginfo_t* info, void* raw_context) { #ifndef MCL_ARCHITECTURE_RISCV ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(raw_context); -# ifndef __OpenBSD__ +#ifndef __OpenBSD__ auto& mctx = ucontext->uc_mcontext; -# endif +#endif #endif #if defined(MCL_ARCHITECTURE_X86_64) @@ -167,6 +173,9 @@ void SigHandler::SigAction(int sig, siginfo_t* info, void* raw_context) { # elif defined(__OpenBSD__) # define CTX_RIP (ucontext->sc_rip) # define CTX_RSP (ucontext->sc_rsp) +# elif defined(__sun__) +# define CTX_RIP (mctx.gregs[REG_RIP]) +# define CTX_RSP (mctx.gregs[REG_RSP]) # else # error "Unknown platform" # endif diff --git a/externals/nx_tzdb/tzdb_to_nx/externals/tz/CMakeLists.txt b/externals/nx_tzdb/tzdb_to_nx/externals/tz/CMakeLists.txt index 948fe69a23..2312b34dd6 100644 --- a/externals/nx_tzdb/tzdb_to_nx/externals/tz/CMakeLists.txt +++ b/externals/nx_tzdb/tzdb_to_nx/externals/tz/CMakeLists.txt @@ -24,8 +24,8 @@ if (NOT EXISTS "${TZ_DIR}" OR NOT EXISTS "${TZIF_LIST_FILE}") # separate directory before building. execute_process( COMMAND - ${GIT_PROGRAM} clone --depth 1 "file://${TZ_SOURCE_DIR}" "${TZ_TMP_SOURCE_DIR}" - COMMAND_ERROR_IS_FATAL ANY + ${GIT_PROGRAM} clone --depth=1 "file://${TZ_SOURCE_DIR}" "${TZ_TMP_SOURCE_DIR}" + # No need to be fatal, on SunOS this works fine - COMMAND_ERROR_IS_FATAL ANY ) if (APPLE) diff --git a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/main.cpp b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/main.cpp index c1825970ac..12c12ac268 100644 --- a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/main.cpp +++ b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/main.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + #include "tzif.h" #include <array> #include <cerrno> @@ -7,7 +10,7 @@ #include <getopt.h> #include <poll.h> #include <sys/stat.h> -#include <sys/types.h> +#include <cstdint> #include <unistd.h> constexpr std::size_t ten_megabytes{(1 << 20) * 10}; @@ -92,7 +95,7 @@ int main(int argc, char *argv[]) { } } - u_int8_t *buf = new u_int8_t[filesize]; + std::uint8_t *buf = new std::uint8_t[filesize]; filesize = read(f, buf, filesize); if (filesize == static_cast<std::size_t>(-1)) { @@ -124,7 +127,7 @@ int main(int argc, char *argv[]) { delete[] buf; - std::vector<u_int8_t> output_buffer; + std::vector<std::uint8_t> output_buffer; tzif_data->ReformatNintendo(output_buffer); filename = "(stdout)"; diff --git a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.cpp b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.cpp index 4d2b842741..476afcbc8e 100644 --- a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.cpp +++ b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.cpp @@ -1,14 +1,17 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + #include "tzif.h" #include <cstdint> #include <cstring> #include <memory> -#include <sys/types.h> +#include <cstdint> namespace Tzif { -static std::size_t SkipToVersion2(const u_int8_t *data, std::size_t size) { +static std::size_t SkipToVersion2(const std::uint8_t *data, std::size_t size) { char magic[5]; - const u_int8_t *p{data}; + const std::uint8_t *p{data}; std::memcpy(magic, data, 4); magic[4] = '\0'; @@ -28,15 +31,15 @@ static std::size_t SkipToVersion2(const u_int8_t *data, std::size_t size) { } template <typename Type> constexpr static void SwapEndianess(Type *value) { - u_int8_t *data = reinterpret_cast<u_int8_t *>(value); + std::uint8_t *data = reinterpret_cast<std::uint8_t *>(value); union { - u_int8_t data[sizeof(Type)]; + std::uint8_t data[sizeof(Type)]; Type value; } temp; - for (u_int32_t i = 0; i < sizeof(Type); i++) { - u_int32_t alt_index = sizeof(Type) - i - 1; + for (std::uint32_t i = 0; i < sizeof(Type); i++) { + std::uint32_t alt_index = sizeof(Type) - i - 1; temp.data[alt_index] = data[i]; } @@ -52,13 +55,13 @@ static void FlipHeader(Header &header) { SwapEndianess(&header.charcnt); } -std::unique_ptr<DataImpl> ReadData(const u_int8_t *data, std::size_t size) { +std::unique_ptr<DataImpl> ReadData(const std::uint8_t *data, std::size_t size) { const std::size_t v2_offset = SkipToVersion2(data, size); if (v2_offset == static_cast<std::size_t>(-1)) { return nullptr; } - const u_int8_t *p = data + v2_offset; + const std::uint8_t *p = data + v2_offset; Header header; std::memcpy(&header, p, sizeof(header)); @@ -67,10 +70,10 @@ std::unique_ptr<DataImpl> ReadData(const u_int8_t *data, std::size_t size) { FlipHeader(header); const std::size_t data_block_length = - header.timecnt * sizeof(int64_t) + header.timecnt * sizeof(u_int8_t) + + header.timecnt * sizeof(int64_t) + header.timecnt * sizeof(std::uint8_t) + header.typecnt * sizeof(TimeTypeRecord) + - header.charcnt * sizeof(int8_t) + header.isstdcnt * sizeof(u_int8_t) + - header.isutcnt * sizeof(u_int8_t); + header.charcnt * sizeof(int8_t) + header.isstdcnt * sizeof(std::uint8_t) + + header.isutcnt * sizeof(std::uint8_t); if (v2_offset + data_block_length + sizeof(Header) > size) { return nullptr; @@ -81,7 +84,7 @@ std::unique_ptr<DataImpl> ReadData(const u_int8_t *data, std::size_t size) { const auto copy = []<typename Type>(std::unique_ptr<Type[]> &array, int length, - const u_int8_t *const &ptr) -> const u_int8_t * { + const std::uint8_t *const &ptr) -> const std::uint8_t * { const std::size_t region_length = length * sizeof(Type); array = std::make_unique<Type[]>(length); std::memcpy(array.get(), ptr, region_length); @@ -110,16 +113,16 @@ std::unique_ptr<DataImpl> ReadData(const u_int8_t *data, std::size_t size) { return impl; } -static void PushToBuffer(std::vector<u_int8_t> &buffer, const void *data, +static void PushToBuffer(std::vector<std::uint8_t> &buffer, const void *data, std::size_t size) { - const u_int8_t *p{reinterpret_cast<const u_int8_t *>(data)}; + const std::uint8_t *p{reinterpret_cast<const std::uint8_t *>(data)}; for (std::size_t i = 0; i < size; i++) { buffer.push_back(*p); p++; } } -void DataImpl::ReformatNintendo(std::vector<u_int8_t> &buffer) const { +void DataImpl::ReformatNintendo(std::vector<std::uint8_t> &buffer) const { buffer.clear(); Header header_copy{header}; @@ -131,7 +134,7 @@ void DataImpl::ReformatNintendo(std::vector<u_int8_t> &buffer) const { PushToBuffer(buffer, transition_times.get(), header.timecnt * sizeof(int64_t)); PushToBuffer(buffer, transition_types.get(), - header.timecnt * sizeof(u_int8_t)); + header.timecnt * sizeof(std::uint8_t)); PushToBuffer(buffer, local_time_type_records.get(), header.typecnt * sizeof(TimeTypeRecord)); PushToBuffer(buffer, time_zone_designations.get(), diff --git a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.h b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.h index 62ff3afe15..a6eb32a896 100644 --- a/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.h +++ b/externals/nx_tzdb/tzdb_to_nx/src/tzdb2nx/tzif.h @@ -1,22 +1,25 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + #pragma once #include <array> #include <memory> -#include <sys/types.h> +#include <cstdint> #include <vector> namespace Tzif { typedef struct { char magic[4]; - u_int8_t version; - u_int8_t reserved[15]; - u_int32_t isutcnt; - u_int32_t isstdcnt; - u_int32_t leapcnt; - u_int32_t timecnt; - u_int32_t typecnt; - u_int32_t charcnt; + std::uint8_t version; + std::uint8_t reserved[15]; + std::uint32_t isutcnt; + std::uint32_t isstdcnt; + std::uint32_t leapcnt; + std::uint32_t timecnt; + std::uint32_t typecnt; + std::uint32_t charcnt; } Header; static_assert(sizeof(Header) == 0x2c); @@ -34,9 +37,9 @@ public: #pragma pack(push, 1) typedef struct { - u_int32_t utoff; - u_int8_t dst; - u_int8_t idx; + std::uint32_t utoff; + std::uint8_t dst; + std::uint8_t idx; } TimeTypeRecord; #pragma pack(pop) static_assert(sizeof(TimeTypeRecord) == 0x6); @@ -46,7 +49,7 @@ public: explicit Data() = default; virtual ~Data() = default; - virtual void ReformatNintendo(std::vector<u_int8_t> &buffer) const = 0; + virtual void ReformatNintendo(std::vector<std::uint8_t> &buffer) const = 0; }; class DataImpl : public Data { @@ -54,19 +57,19 @@ public: explicit DataImpl() = default; ~DataImpl() override = default; - void ReformatNintendo(std::vector<u_int8_t> &buffer) const override; + void ReformatNintendo(std::vector<std::uint8_t> &buffer) const override; Header header; Footer footer; std::unique_ptr<int64_t[]> transition_times; - std::unique_ptr<u_int8_t[]> transition_types; + std::unique_ptr<std::uint8_t[]> transition_types; std::unique_ptr<TimeTypeRecord[]> local_time_type_records; std::unique_ptr<int8_t[]> time_zone_designations; - std::unique_ptr<u_int8_t[]> standard_indicators; - std::unique_ptr<u_int8_t[]> ut_indicators; + std::unique_ptr<std::uint8_t[]> standard_indicators; + std::unique_ptr<std::uint8_t[]> ut_indicators; }; -std::unique_ptr<DataImpl> ReadData(const u_int8_t *data, std::size_t size); +std::unique_ptr<DataImpl> ReadData(const std::uint8_t *data, std::size_t size); } // namespace Tzif diff --git a/externals/renderdoc/renderdoc_app.h b/externals/renderdoc/renderdoc_app.h index 84ff62b5db..f4eb12526e 100644 --- a/externals/renderdoc/renderdoc_app.h +++ b/externals/renderdoc/renderdoc_app.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Baldur Karlsson // SPDX-License-Identifier: MIT @@ -38,14 +41,8 @@ #if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) #define RENDERDOC_CC __cdecl -#elif defined(__linux__) -#define RENDERDOC_CC -#elif defined(__APPLE__) -#define RENDERDOC_CC -#elif defined(__FreeBSD__) -#define RENDERDOC_CC #else -#error "Unknown platform" +#define RENDERDOC_CC #endif #ifdef __cplusplus |
