mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-17 15:34:18 +08:00
Merge branch 'flycast' into 'master'
Update sdl2 and flycast, Use cmake and remove patches for zstd See merge request redox-os/redox!2182
This commit is contained in:
commit
bf82d7d11d
@ -1,15 +0,0 @@
|
|||||||
diff -ruwN source/programs/platform.h source-new/programs/platform.h
|
|
||||||
--- source/programs/platform.h 2025-02-19 07:04:24.000000000 +0700
|
|
||||||
+++ source-new/programs/platform.h 2025-07-21 22:52:07.716447723 +0700
|
|
||||||
@@ -109,6 +109,11 @@
|
|
||||||
#endif /* PLATFORM_POSIX_VERSION */
|
|
||||||
|
|
||||||
|
|
||||||
+#if defined(__redox__)
|
|
||||||
+/* TODO: AT_FDCWD && utimensat must be defined to conform _POSIX_VERSION */
|
|
||||||
+# define PLATFORM_POSIX_VERSION 1
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if PLATFORM_POSIX_VERSION > 1
|
|
||||||
/* glibc < 2.26 may not expose struct timespec def without this.
|
|
||||||
* See issue #1920. */
|
|
||||||
@ -1,17 +1,14 @@
|
|||||||
[source]
|
[source]
|
||||||
tar = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
|
tar = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
|
||||||
blake3 = "730dca31244abd219e995f03a55d95b2cfb4b3e16cda055a79fa6f30a4f0e1db"
|
blake3 = "730dca31244abd219e995f03a55d95b2cfb4b3e16cda055a79fa6f30a4f0e1db"
|
||||||
patches = [
|
|
||||||
"01_redox.patch"
|
|
||||||
]
|
|
||||||
[build]
|
[build]
|
||||||
template = "custom"
|
template = "custom"
|
||||||
script = """
|
script = """
|
||||||
DYNAMIC_STATIC_INIT
|
DYNAMIC_STATIC_INIT
|
||||||
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
|
||||||
# TODO: fPIC is the default on linux but not on redox and
|
# TODO: fPIC is the default on linux but not on redox and
|
||||||
# required by llvm21 as zstd statically linked there
|
# required by llvm21 as zstd statically linked there
|
||||||
export CPPFLAGS="$CPPFLAGS -fPIC"
|
export CPPFLAGS="$CPPFLAGS -fPIC"
|
||||||
${COOKBOOK_MAKE}
|
COOKBOOK_SOURCE="$COOKBOOK_SOURCE/build/cmake"
|
||||||
${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr"
|
cookbook_cmake
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[source]
|
[source]
|
||||||
git = "https://github.com/flyinghead/flycast.git"
|
git = "https://github.com/flyinghead/flycast.git"
|
||||||
rev = "1dd006d"
|
rev = "v2.6"
|
||||||
patches = ["redox.patch"]
|
patches = ["redox.patch"]
|
||||||
shallow_clone = true
|
shallow_clone = true
|
||||||
|
|
||||||
@ -8,55 +8,25 @@ shallow_clone = true
|
|||||||
template = "custom"
|
template = "custom"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"curl",
|
"curl",
|
||||||
"libiconv",
|
"libzip",
|
||||||
"liborbital",
|
|
||||||
"mesa",
|
|
||||||
"nghttp2",
|
|
||||||
"openssl3",
|
|
||||||
"sdl2",
|
"sdl2",
|
||||||
|
]
|
||||||
|
dev-dependencies = [
|
||||||
"zlib",
|
"zlib",
|
||||||
|
"zstd",
|
||||||
]
|
]
|
||||||
script = """
|
script = """
|
||||||
DYNAMIC_INIT
|
DYNAMIC_INIT
|
||||||
export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/usr/include/SDL2"
|
export CPPFLAGS+=" -D_GNU_SOURCE=1"
|
||||||
export CXXFLAGS="${CXXFLAGS} -D_GLIBCXX_USE_C99_MATH_TR1=1 -I${COOKBOOK_SYSROOT}/usr/include/SDL2"
|
COOKBOOK_CMAKE_FLAGS+=(
|
||||||
#TODO: don't use this
|
|
||||||
export SDL_LIBS="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa) -lstdc++"
|
|
||||||
#TODO: don't add curl
|
|
||||||
export SDL_LIBS="${SDL_LIBS} -lcurl -lnghttp2 -lssl -lcrypto"
|
|
||||||
COOKBOOK_CONFIGURE="cmake"
|
|
||||||
COOKBOOK_CONFIGURE_FLAGS=(
|
|
||||||
-DCMAKE_VERBOSE_MAKEFILE=On
|
|
||||||
-DCMAKE_CROSSCOMPILING=True
|
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr"
|
|
||||||
-DCMAKE_SYSTEM_NAME=Generic
|
|
||||||
-DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)"
|
|
||||||
-DREDOX=1
|
-DREDOX=1
|
||||||
-DUNIX=1
|
-DUNIX=1
|
||||||
-DUSE_HOST_LIBZIP=OFF
|
|
||||||
-DUSE_OPENMP=OFF
|
-DUSE_OPENMP=OFF
|
||||||
-DUSE_VULKAN=OFF
|
-DUSE_VULKAN=OFF
|
||||||
-DZLIB_LIBRARY="-lz"
|
-DUSE_HOST_SDL=ON
|
||||||
|
-DNOWIDE_INSTALL=ON
|
||||||
# Hacks for cmake errors
|
-DWITH_SYSTEM_ZLIB=ON
|
||||||
-DHAVE___INT8_LIBZIP=False
|
-DWITH_SYSTEM_ZSTD=ON
|
||||||
-DHAVE___INT16_LIBZIP=False
|
|
||||||
-DHAVE___INT32_LIBZIP=False
|
|
||||||
-DHAVE___INT64_LIBZIP=False
|
|
||||||
-DHAVE_FICLONERANGE=False
|
|
||||||
-DHAVE_NULLABLE=False
|
|
||||||
|
|
||||||
# Hack for Threads
|
|
||||||
-DCMAKE_THREAD_LIBS_INIT="-lc"
|
|
||||||
-DCMAKE_HAVE_THREADS_LIBRARY=1
|
|
||||||
-DCMAKE_USE_WIN32_THREADS_INIT=0
|
|
||||||
-DCMAKE_USE_PTHREADS_INIT=1
|
|
||||||
-DTHREADS_PREFER_PTHREAD_FLAG=ON
|
|
||||||
|
|
||||||
"${COOKBOOK_SOURCE}"
|
|
||||||
)
|
)
|
||||||
cookbook_configure
|
cookbook_cmake
|
||||||
# appstream generation broken
|
|
||||||
rm -rf "${COOKBOOK_STAGE}/usr/share/metainfo"
|
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -1,43 +1,32 @@
|
|||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
index 87bc605..e878607 100644
|
index 8340288..589d4b4 100644
|
||||||
--- a/CMakeLists.txt
|
--- a/CMakeLists.txt
|
||||||
+++ b/CMakeLists.txt
|
+++ b/CMakeLists.txt
|
||||||
@@ -197,7 +197,7 @@ if(NINTENDO_SWITCH)
|
@@ -466,7 +466,7 @@ if(NOT LIBRETRO)
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT LIBRETRO)
|
|
||||||
- if((WIN32 AND NOT MSVC) OR (UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|OpenBSD|NetBSD)"))
|
|
||||||
+ if((WIN32 AND NOT MSVC) OR (UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|OpenBSD|NetBSD)" AND NOT REDOX))
|
|
||||||
add_subdirectory(core/deps/breakpad)
|
|
||||||
if(WIN32)
|
|
||||||
target_link_options(${PROJECT_NAME} PRIVATE "-Wl,--build-id")
|
|
||||||
@@ -355,7 +355,10 @@ if(NOT LIBRETRO)
|
|
||||||
if(NOT APPLE)
|
|
||||||
find_package(SDL2)
|
|
||||||
endif()
|
|
||||||
- if(NOT SDL2_FOUND)
|
|
||||||
+ if(REDOX)
|
|
||||||
+ target_link_libraries(${PROJECT_NAME} PRIVATE "$ENV{SDL_LIBS}")
|
|
||||||
+ set(SDL2_FOUND 1)
|
|
||||||
+ elseif(NOT SDL2_FOUND)
|
|
||||||
add_subdirectory(core/deps/SDL EXCLUDE_FROM_ALL)
|
|
||||||
set(SDL2_FOUND 1)
|
|
||||||
endif()
|
|
||||||
@@ -482,8 +485,10 @@ if(UNIX AND NOT APPLE AND NOT ANDROID)
|
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${GLES3_LIBRARIES})
|
|
||||||
elseif(USE_OPENGL)
|
|
||||||
set(OpenGL_GL_PREFERENCE LEGACY)
|
|
||||||
- find_package(OpenGL REQUIRED)
|
|
||||||
- target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
|
||||||
+ if(NOT REDOX)
|
|
||||||
+ find_package(OpenGL REQUIRED)
|
|
||||||
+ target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
|
||||||
+ endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
if(NOT ANDROID AND NOT IOS)
|
||||||
@@ -533,7 +538,7 @@ target_sources(${PROJECT_NAME} PRIVATE
|
- if (NOT NINTENDO_SWITCH)
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE core/deps/nowide/include)
|
+ if (NOT NINTENDO_SWITCH AND NOT REDOX)
|
||||||
|
# DreamLink enabled for non-mobile Linux, MacOS, and Windows
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_DREAMLINK_DEVICES=1)
|
||||||
|
set(USE_DREAMLINK_DEVICES ON) # Must be set before adding core/sdl
|
||||||
|
@@ -493,7 +493,7 @@ if(NOT LIBRETRO)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(USE_HOST_SDL)
|
||||||
|
- find_package(SDL2 2.0.9)
|
||||||
|
+ find_package(SDL2 REQUIRED)
|
||||||
|
endif()
|
||||||
|
if(NOT SDL2_FOUND)
|
||||||
|
set(SDL_TEST_ENABLED_BY_DEFAULT OFF)
|
||||||
|
@@ -691,11 +691,11 @@ target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
core/deps/chdpsr/cdipsr.cpp
|
||||||
|
core/deps/chdpsr/cdipsr.h)
|
||||||
|
|
||||||
|
-add_subdirectory(core/deps/nowide EXCLUDE_FROM_ALL)
|
||||||
|
+add_subdirectory(core/deps/nowide)
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE nowide::nowide)
|
||||||
|
|
||||||
if(NOT MINIUPNP_FOUND)
|
if(NOT MINIUPNP_FOUND)
|
||||||
- if(NINTENDO_SWITCH)
|
- if(NINTENDO_SWITCH)
|
||||||
@ -45,58 +34,32 @@ index 87bc605..e878607 100644
|
|||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE FEAT_NO_MINIUPNPC)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE FEAT_NO_MINIUPNPC)
|
||||||
else()
|
else()
|
||||||
option(UPNPC_BUILD_SHARED "Build shared library" OFF)
|
option(UPNPC_BUILD_SHARED "Build shared library" OFF)
|
||||||
diff --git a/core/build.h b/core/build.h
|
Submodule core/deps/asio contains modified content
|
||||||
index a8560f7..1d6a4dd 100755
|
diff --git a/core/deps/asio/asio/include/asio/detail/config.hpp b/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||||
--- a/core/build.h
|
index 61ee752..4b140b9 100644
|
||||||
+++ b/core/build.h
|
--- a/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||||
@@ -227,6 +227,9 @@
|
+++ b/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||||
#endif
|
@@ -828,6 +828,7 @@
|
||||||
#endif
|
|| defined(__NetBSD__) \
|
||||||
|
|| defined(__OpenBSD__) \
|
||||||
+#if defined(__redox__)
|
|| defined(__linux__) \
|
||||||
+#define TARGET_NO_EXCEPTIONS
|
+ || defined(__redox__) \
|
||||||
+#endif
|
|| defined(__HAIKU__)
|
||||||
|
# define ASIO_HAS_UNISTD_H 1
|
||||||
#if !defined(LIBRETRO) && !defined(TARGET_NO_EXCEPTIONS)
|
# endif
|
||||||
#define USE_GGPO
|
@@ -1093,7 +1094,6 @@
|
||||||
diff --git a/core/deps/libzip/lib/zip_name_locate.c b/core/deps/libzip/lib/zip_name_locate.c
|
# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS)
|
||||||
index 308d843..f07fd20 100644
|
# endif // !defined(ASIO_DISABLE_THREADS)
|
||||||
--- a/core/deps/libzip/lib/zip_name_locate.c
|
#endif // !defined(ASIO_HAS_THREADS)
|
||||||
+++ b/core/deps/libzip/lib/zip_name_locate.c
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
+#include <config.h>
|
|
||||||
#include <string.h>
|
|
||||||
#ifdef HAVE_STRINGS_H
|
|
||||||
#include <strings.h>
|
|
||||||
diff --git a/core/deps/nowide/include/nowide/convert.hpp b/core/deps/nowide/include/nowide/convert.hpp
|
|
||||||
index 9c234f7..24d807e 100644
|
|
||||||
--- a/core/deps/nowide/include/nowide/convert.hpp
|
|
||||||
+++ b/core/deps/nowide/include/nowide/convert.hpp
|
|
||||||
@@ -118,6 +118,7 @@ namespace nowide {
|
|
||||||
{
|
|
||||||
return nowide::conv::utf_to_utf<char>(s);
|
|
||||||
}
|
|
||||||
+#if !defined(__redox__)
|
|
||||||
///
|
|
||||||
/// Convert between UTF-8 and UTF-16 string, implemented only on Windows platform
|
|
||||||
///
|
|
||||||
@@ -145,7 +146,7 @@ namespace nowide {
|
|
||||||
{
|
|
||||||
return nowide::conv::utf_to_utf<wchar_t>(s);
|
|
||||||
}
|
|
||||||
-
|
-
|
||||||
+#endif
|
// POSIX threads.
|
||||||
} // nowide
|
#if !defined(ASIO_HAS_PTHREADS)
|
||||||
|
# if defined(ASIO_HAS_THREADS)
|
||||||
|
|
||||||
diff --git a/core/hw/sh4/modules/serial.cpp b/core/hw/sh4/modules/serial.cpp
|
diff --git a/core/hw/sh4/modules/serial.cpp b/core/hw/sh4/modules/serial.cpp
|
||||||
index 1a7689e..b23bf1b 100644
|
index aca43a0..11991e9 100644
|
||||||
--- a/core/hw/sh4/modules/serial.cpp
|
--- a/core/hw/sh4/modules/serial.cpp
|
||||||
+++ b/core/hw/sh4/modules/serial.cpp
|
+++ b/core/hw/sh4/modules/serial.cpp
|
||||||
@@ -164,7 +164,7 @@ struct PTYPipe : public SerialPipe
|
@@ -475,7 +475,7 @@ struct PTYPipe : public SerialPort::Pipe
|
||||||
|
|
||||||
void init()
|
void init()
|
||||||
{
|
{
|
||||||
@ -105,130 +68,42 @@ index 1a7689e..b23bf1b 100644
|
|||||||
if (config::SerialConsole && config::SerialPTY && tty == 1)
|
if (config::SerialConsole && config::SerialPTY && tty == 1)
|
||||||
{
|
{
|
||||||
tty = open("/dev/ptmx", O_RDWR | O_NDELAY | O_NOCTTY | O_NONBLOCK);
|
tty = open("/dev/ptmx", O_RDWR | O_NDELAY | O_NOCTTY | O_NONBLOCK);
|
||||||
diff --git a/core/khronos/GL4/gl3w.c b/core/khronos/GL4/gl3w.c
|
diff --git a/core/linux/context.cpp b/core/linux/context.cpp
|
||||||
index 661dc1c..f8b6374 100644
|
index 7ab2d8e..8a2bb2c 100644
|
||||||
--- a/core/khronos/GL4/gl3w.c
|
--- a/core/linux/context.cpp
|
||||||
+++ b/core/khronos/GL4/gl3w.c
|
+++ b/core/linux/context.cpp
|
||||||
@@ -107,6 +107,26 @@ static GL3WglProc get_proc(const char *proc)
|
@@ -8,11 +8,11 @@
|
||||||
{
|
#define __USE_GNU 1
|
||||||
return (GL3WglProc)eglGetProcAddress(proc);
|
|
||||||
}
|
|
||||||
+#elif defined(__redox__)
|
|
||||||
+#include <SDL.h>
|
|
||||||
+
|
|
||||||
+static int open_libgl(void)
|
|
||||||
+{
|
|
||||||
+ if (SDL_GL_LoadLibrary(NULL) < 0)
|
|
||||||
+ return GL3W_ERROR_LIBRARY_OPEN;
|
|
||||||
+
|
|
||||||
+ return GL3W_OK;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void close_libgl(void)
|
|
||||||
+{
|
|
||||||
+ SDL_GL_UnloadLibrary();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static GL3WglProc get_proc(const char *proc)
|
|
||||||
+{
|
|
||||||
+ return (GL3WglProc)SDL_GL_GetProcAddress(proc);
|
|
||||||
+}
|
|
||||||
#else
|
|
||||||
#include <dlfcn.h>
|
|
||||||
|
|
||||||
diff --git a/core/linux-dist/main.cpp b/core/linux-dist/main.cpp
|
|
||||||
index 365482a..2e16071 100644
|
|
||||||
--- a/core/linux-dist/main.cpp
|
|
||||||
+++ b/core/linux-dist/main.cpp
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
#endif
|
|
||||||
#include "types.h"
|
|
||||||
|
|
||||||
-#if defined(__unix__) || defined(__SWITCH__)
|
|
||||||
+#if defined(__unix__) || defined(__SWITCH__) || defined(__redox__)
|
|
||||||
#include "hw/sh4/dyna/blockmanager.h"
|
|
||||||
#include "log/LogManager.h"
|
|
||||||
#include "emulator.h"
|
|
||||||
diff --git a/core/linux/posix_vmem.cpp b/core/linux/posix_vmem.cpp
|
|
||||||
index a2ab3c7..d503eb7 100644
|
|
||||||
--- a/core/linux/posix_vmem.cpp
|
|
||||||
+++ b/core/linux/posix_vmem.cpp
|
|
||||||
@@ -120,7 +120,7 @@ static int allocate_shared_filemem(unsigned size) {
|
|
||||||
// Use Android's specific shmem stuff.
|
|
||||||
fd = ashmem_create_region("RAM", size);
|
|
||||||
#else
|
|
||||||
- #if !defined(__APPLE__)
|
|
||||||
+ #if !defined(__APPLE__) && !defined(__redox__)
|
|
||||||
fd = shm_open("/dcnzorz_mem", O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE);
|
|
||||||
shm_unlink("/dcnzorz_mem");
|
|
||||||
#endif
|
#endif
|
||||||
@@ -216,6 +216,7 @@ void vmem_platform_destroy()
|
|
||||||
void vmem_platform_reset_mem(void *ptr, unsigned size_bytes) {
|
- #if !defined(__OpenBSD__)
|
||||||
// Mark them as non accessible.
|
+ #if !defined(__OpenBSD__) && !defined(__redox__)
|
||||||
mprotect(ptr, size_bytes, PROT_NONE);
|
#include <ucontext.h>
|
||||||
+ #if !defined(__redox__)
|
|
||||||
// Tell the kernel to flush'em all (FIXME: perhaps unmap+mmap 'd be better?)
|
|
||||||
madvise(ptr, size_bytes, MADV_DONTNEED);
|
|
||||||
#if defined(MADV_REMOVE)
|
|
||||||
@@ -223,6 +224,7 @@ void vmem_platform_reset_mem(void *ptr, unsigned size_bytes) {
|
|
||||||
#elif defined(MADV_FREE)
|
|
||||||
madvise(ptr, size_bytes, MADV_FREE);
|
|
||||||
#endif
|
#endif
|
||||||
+ #endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allocates a bunch of memory (page aligned and page-sized)
|
- #if defined(__OpenBSD__)
|
||||||
diff --git a/core/log/StringUtil.h b/core/log/StringUtil.h
|
+ #if defined(__OpenBSD__) || defined(__redox__)
|
||||||
index b14a9a6..cd942e7 100644
|
#include <signal.h>
|
||||||
--- a/core/log/StringUtil.h
|
#endif
|
||||||
+++ b/core/log/StringUtil.h
|
|
||||||
@@ -24,7 +24,7 @@ int vasprintf(char **s, const char *fmt, va_list ap)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__)
|
|
||||||
+#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__) && !defined(__redox__)
|
|
||||||
static locale_t GetCLocale()
|
|
||||||
{
|
|
||||||
static locale_t c_locale = newlocale(LC_ALL_MASK, "C", nullptr);
|
|
||||||
@@ -69,11 +69,11 @@ bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list ar
|
|
||||||
writtenCount = vsnprintf(out, outsize, format, args);
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
-#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__)
|
|
||||||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__) && !defined(__redox__)
|
|
||||||
locale_t previousLocale = uselocale(GetCLocale());
|
|
||||||
#endif
|
|
||||||
writtenCount = vsnprintf(out, outsize, format, args);
|
|
||||||
-#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__)
|
|
||||||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__) && !defined(__redox__)
|
|
||||||
uselocale(previousLocale);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
@@ -101,7 +101,7 @@ std::string StringFromFormatV(const char* format, va_list args)
|
|
||||||
std::string temp = buf;
|
|
||||||
delete[] buf;
|
|
||||||
#else
|
|
||||||
-#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__)
|
|
||||||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__) && !defined(__redox__)
|
|
||||||
locale_t previousLocale = uselocale(GetCLocale());
|
|
||||||
#endif
|
|
||||||
if (vasprintf(&buf, format, args) < 0)
|
|
||||||
@@ -110,7 +110,7 @@ std::string StringFromFormatV(const char* format, va_list args)
|
|
||||||
buf = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__)
|
|
||||||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) && !defined(__OpenBSD__) && !defined(__SWITCH__) && !defined(__redox__)
|
|
||||||
uselocale(previousLocale);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
@@ -112,6 +112,11 @@ static void context_segfault(host_context_t* hostctx, void* segfault_ctx)
|
||||||
|
bicopy<ToSegfault>(hostctx->rsp, MCTX(.__gregs[_REG_RSP]));
|
||||||
|
bicopy<ToSegfault>(hostctx->r9, MCTX(.__gregs[_REG_R9]));
|
||||||
|
bicopy<ToSegfault>(hostctx->rdi, MCTX(.__gregs[_REG_RDI]));
|
||||||
|
+ #elif defined(__redox__)
|
||||||
|
+ bicopy<ToSegfault>(hostctx->pc, MCTX(.rip));
|
||||||
|
+ bicopy<ToSegfault>(hostctx->rsp, MCTX(.rsp));
|
||||||
|
+ bicopy<ToSegfault>(hostctx->r9, MCTX(.r9));
|
||||||
|
+ bicopy<ToSegfault>(hostctx->rdi, MCTX(.rdi));
|
||||||
|
#elif defined(__unix__)
|
||||||
|
bicopy<ToSegfault>(hostctx->pc, MCTX(.gregs[REG_RIP]));
|
||||||
|
bicopy<ToSegfault>(hostctx->rsp, MCTX(.gregs[REG_RSP]));
|
||||||
diff --git a/core/network/dns.cpp b/core/network/dns.cpp
|
diff --git a/core/network/dns.cpp b/core/network/dns.cpp
|
||||||
index af98bfc..423773c 100644
|
index 4d45c4a..96752ef 100644
|
||||||
--- a/core/network/dns.cpp
|
--- a/core/network/dns.cpp
|
||||||
+++ b/core/network/dns.cpp
|
+++ b/core/network/dns.cpp
|
||||||
@@ -148,7 +148,7 @@ char *read_name(char *reader, char *buffer, int *count)
|
@@ -153,7 +153,7 @@ pico_ip4 parseDnsResponsePacket(const void *buf, size_t len)
|
||||||
return name;
|
return { ~0u };
|
||||||
}
|
}
|
||||||
|
|
||||||
-#if !defined(_WIN32) && !defined(__SWITCH__)
|
-#if !defined(_WIN32) && !defined(__SWITCH__)
|
||||||
@ -236,7 +111,7 @@ index af98bfc..423773c 100644
|
|||||||
#include <ifaddrs.h>
|
#include <ifaddrs.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -195,7 +195,7 @@ bool is_local_address(u32 addr)
|
@@ -200,7 +200,7 @@ bool is_local_address(u32 addr)
|
||||||
}
|
}
|
||||||
closesocket(sd);
|
closesocket(sd);
|
||||||
|
|
||||||
@ -246,25 +121,25 @@ index af98bfc..423773c 100644
|
|||||||
#else // !_WIN32 && !__SWITCH__
|
#else // !_WIN32 && !__SWITCH__
|
||||||
|
|
||||||
diff --git a/core/network/net_platform.h b/core/network/net_platform.h
|
diff --git a/core/network/net_platform.h b/core/network/net_platform.h
|
||||||
index 9c6af69..fc6bd45 100644
|
index 8b5ea48..1a20e0b 100644
|
||||||
--- a/core/network/net_platform.h
|
--- a/core/network/net_platform.h
|
||||||
+++ b/core/network/net_platform.h
|
+++ b/core/network/net_platform.h
|
||||||
@@ -89,7 +89,7 @@ static inline void set_tcp_nodelay(sock_t fd)
|
@@ -91,7 +91,7 @@ static inline void set_tcp_nodelay(sock_t fd)
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
struct protoent *tcp_proto = getprotobyname("TCP");
|
struct protoent *tcp_proto = getprotobyname("TCP");
|
||||||
setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, (const char *)&optval, optlen);
|
setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, (const char *)&optval, optlen);
|
||||||
-#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
|
-#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
|
||||||
+#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__redox__)
|
+#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__redox__)
|
||||||
setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen);
|
setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen);
|
||||||
#else
|
#else
|
||||||
struct protoent *tcp_proto = getprotobyname("TCP");
|
struct protoent *tcp_proto = getprotobyname("TCP");
|
||||||
diff --git a/core/rend/TexCache.cpp b/core/rend/TexCache.cpp
|
diff --git a/core/rend/TexCache.cpp b/core/rend/TexCache.cpp
|
||||||
index 6654a39..dbc1577 100644
|
index 35b41b7..2782d5e 100644
|
||||||
--- a/core/rend/TexCache.cpp
|
--- a/core/rend/TexCache.cpp
|
||||||
+++ b/core/rend/TexCache.cpp
|
+++ b/core/rend/TexCache.cpp
|
||||||
@@ -783,7 +783,10 @@ void BaseTextureCacheData::Update()
|
@@ -670,7 +670,10 @@ bool BaseTextureCacheData::Update()
|
||||||
height = original_h;
|
mipmapped = false;
|
||||||
|
}
|
||||||
//lock the texture to detect changes in it
|
//lock the texture to detect changes in it
|
||||||
+// TODO: No SIGSEGV handler on redox
|
+// TODO: No SIGSEGV handler on redox
|
||||||
+#if !defined(__redox__)
|
+#if !defined(__redox__)
|
||||||
@ -273,15 +148,3 @@ index 6654a39..dbc1577 100644
|
|||||||
|
|
||||||
UploadToGPU(upscaled_w, upscaled_h, (const u8 *)temp_tex_buffer, IsMipmapped(), mipmapped);
|
UploadToGPU(upscaled_w, upscaled_h, (const u8 *)temp_tex_buffer, IsMipmapped(), mipmapped);
|
||||||
if (config::DumpTextures)
|
if (config::DumpTextures)
|
||||||
diff --git a/core/types.h b/core/types.h
|
|
||||||
index d2ea162..3fa816e 100644
|
|
||||||
--- a/core/types.h
|
|
||||||
+++ b/core/types.h
|
|
||||||
@@ -169,6 +169,7 @@ inline static void JITWriteProtect(bool enabled) {
|
|
||||||
//includes from c++rt
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
+#include <strings.h>
|
|
||||||
#include <map>
|
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
|
|||||||
@ -1,28 +1,17 @@
|
|||||||
#TODO: TEST
|
|
||||||
[source]
|
[source]
|
||||||
git = "https://gitlab.redox-os.org/redox-os/sdl2.git"
|
git = "https://gitlab.redox-os.org/redox-os/sdl2.git"
|
||||||
|
branch = "redox-2.0.33"
|
||||||
|
shallow_clone = true
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
template = "custom"
|
template = "cmake"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"liborbital",
|
"liborbital",
|
||||||
"mesa",
|
"mesa",
|
||||||
"zlib",
|
"zlib",
|
||||||
]
|
]
|
||||||
script = """
|
cmakeflags = [
|
||||||
DYNAMIC_INIT
|
"-DSDL_VIDEO=1",
|
||||||
export LDFLAGS="${LDFLAGS} -lorbital -lOSMesa -lstdc++"
|
"-DSDL_ORBITAL=1",
|
||||||
COOKBOOK_CONFIGURE_FLAGS+=(
|
"-DREDOX=1",
|
||||||
--disable-pulseaudio
|
]
|
||||||
--disable-video-x11
|
|
||||||
--enable-audio
|
|
||||||
--enable-dummyaudio
|
|
||||||
--enable-redoxaudio
|
|
||||||
--enable-threads
|
|
||||||
--enable-video-orbital
|
|
||||||
)
|
|
||||||
cookbook_configure
|
|
||||||
|
|
||||||
# Hack to add OSMesa
|
|
||||||
sed -i "s/Requires:/Requires: osmesa >= 8.0.0/" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/sdl2.pc"
|
|
||||||
"""
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user