diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-11-07 16:50:03 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-11-07 16:50:03 +0100 |
| commit | 48843306e2ea51b95525a0a5f04d2afac3193176 (patch) | |
| tree | a66f98a62f8d7d4472e823aa29de0cdb06dc4115 /docs | |
| parent | 159482a7a99330d2b6d3b9a28a22316e0d8b6ca7 (diff) | |
[compat] Fix other DragonFlyBSD/NixOS issues (#2860)
Uh - the other pr that had "Fix dragonfly" got commits lost and I didn't notice... oops; cherry picked them back through :)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2860
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/Caveats.md | 30 | ||||
| -rw-r--r-- | docs/Coding.md | 2 | ||||
| -rw-r--r-- | docs/Deps.md | 28 |
3 files changed, 47 insertions, 13 deletions
diff --git a/docs/Caveats.md b/docs/Caveats.md index 1ddf08b24c..ac847d052d 100644 --- a/docs/Caveats.md +++ b/docs/Caveats.md @@ -30,6 +30,13 @@ macOS is largely untested. Expect crashes, significant Vulkan issues, and other ## Solaris +Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability. + +Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`. + +- **gcc**: `sudo pkg install developer/gcc-14`. +- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`. + Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configure command. In the meantime, a Qt Quick frontend is in the works--check back later! This is needed for some dependencies that call cc directly (tz): @@ -74,7 +81,7 @@ Still will not run flawlessly until `mesa-24` is available. Modify CMakeCache.tx After configuration, you may need to modify `externals/ffmpeg/CMakeFiles/ffmpeg-build/build.make` to use `-j$(nproc)` instead of just `-j`. -`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`. +`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`. Builds are currently not working due to lack of `std::jthread` and such, either compile libc++ manually or wait for ports to catch up. If clang has errors, try using `g++-11`. @@ -107,6 +114,21 @@ cmake --build build -- -j`nproc` cmake --install build ``` +# DragonFlyBSD + +If `libstdc++.so.6` is not found (`GLIBCXX_3.4.30`) then attempt: +```sh +rm /usr/local/lib/gcc11/libstdc++.so.6 +ln -s /usr/local/lib/gcc14/libstdc++.so /usr/local/lib/gcc11/libstdc++.so.6 +``` +This may have unforeseen consequences of which we don't need to worry about for now. + +Default `g++` (and the libstdc++) is too outdated - so install `gcc14` and redirect CMake to the new compiler toolchain `-DCMAKE_CXX_COMPILER=gcc14 -DCMAKE_C_COMPILER=g++14`. + +There is also `llvm18` and use `-DCMAKE_CXX_COMPILER=clang++18 -DCMAKE_C_COMPILER=clang18` (note the `18` suffix at the end). NOTE: It doesn't have an updated libcxx so `<span>` will be missing, either build it manually or use gcc. + +If build hangs, use `hammer2 bulkfree`. + ## MSYS2 `qt6-static` isn't supported yet. @@ -169,3 +191,9 @@ find ./*/ -name "*.dll" | while read -r dll; do deps "$dll"; done DirectX 12 is not available - simply copy and paste a random DLL and name it `d3d12.dll`. Install [Qt6 compatibility libraries](github.com/ANightly/qt6windows7) specifically Qt 6.9.5. + +## RedoxOS + +The package install may randomly hang at times, in which case it has to be restarted. ALWAYS do a `sudo pkg update` or the chances of it hanging will be close to 90%. If "multiple" installs fail at once, try installing 1 by 1 the packages. + +When CMake invokes certain file syscalls - it may sometimes cause crashes or corruptions on the (kernel?) address space - so reboot the system if there is a "hang" in CMake. diff --git a/docs/Coding.md b/docs/Coding.md index ec524cbbf8..8d02df4088 100644 --- a/docs/Coding.md +++ b/docs/Coding.md @@ -8,6 +8,8 @@ But for new developers you may find that following these guidelines will make ev Simply put, types/classes are named as `PascalCase`, same for methods and functions like `AddElement`. Variables are named `like_this_snake_case` and constants are `IN_SCREAMING_CASE`. +Except for Qt MOC where `functionName` is preferred. + Template typenames prefer short names like `T`, `I`, `U`, if a longer name is required either `Iterator` or `perform_action` are fine as well. Macros must always be in `SCREAMING_CASE`. Do not use short letter macros as systems like Solaris will conflict with them; a good rule of thumb is >5 characters per macro - i.e `THIS_MACRO_IS_GOOD`, `AND_ALSO_THIS_ONE`. diff --git a/docs/Deps.md b/docs/Deps.md index f66bf05e90..15ffff28a8 100644 --- a/docs/Deps.md +++ b/docs/Deps.md @@ -196,7 +196,6 @@ apk add g++ git cmake make mbedtls-dev mbedtls-static mesa-dev qt6-qtbase-dev qt `mbedtls-static` has to be specified otherwise `libeverest.a` and `libp256m.a` will fail to be found. </details> - <details> <summary>Void Linux</summary> @@ -236,7 +235,7 @@ brew install molten-vk vulkan-loader <details> <summary>FreeBSD</summary> -As root run: `pkg install devel/cmake devel/sdl20 devel/boost-libs devel/catch2 devel/libfmt devel/nlohmann-json devel/ninja devel/nasm devel/autoconf devel/pkgconf devel/qt6-base devel/simpleini net/enet multimedia/ffnvcodec-headers multimedia/ffmpeg audio/opus archivers/liblz4 lang/gcc12 graphics/glslang graphics/vulkan-utility-libraries graphics/spirv-tools www/cpp-httplib devel/jwt-cpp devel/unordered-dense` +As root run: `pkg install devel/cmake devel/sdl20 devel/boost-libs devel/catch2 devel/libfmt devel/nlohmann-json devel/ninja devel/nasm devel/autoconf devel/pkgconf devel/qt6-base devel/simpleini net/enet multimedia/ffnvcodec-headers multimedia/ffmpeg audio/opus archivers/liblz4 lang/gcc12 graphics/glslang graphics/vulkan-utility-libraries graphics/spirv-tools www/cpp-httplib devel/jwt-cpp devel/unordered-dense mbedtls3 vulkan-headers quazip-qt6` If using FreeBSD 12 or prior, use `devel/pkg-config` instead. @@ -263,16 +262,21 @@ pkg_add cmake nasm git boost unzip--iconv autoconf-2.72p0 bash ffmpeg glslang gm </details> <details> -<summary>Solaris / OpenIndiana</summary> +<summary>DragonFlyBSD</summary> -Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability. +```sh +pkg install gcc14 git cmake unzip nasm autoconf bash pkgconf ffmpeg glslang gmake jq nlohmann-json enet spirv-tools sdl2 vulkan-utility-libraries vulkan-headers catch2 libfmt openssl liblz4 boost-libs cpp-httplib qt6-base quazip-qt6 unordered-dense libva-vdpau-driver libva-utils libva-intel-driver +``` -Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`. +[Caveats](./Caveats.md#dragonflybsd). -- **gcc**: `sudo pkg install developer/gcc-14`. -- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`. +</details> +<details> +<summary>Solaris / OpenIndiana</summary> -Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/lz4 libusb-1 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`. +```sh +sudo pkg install qt6 boost glslang libzip library/lz4 libusb-1 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt +``` [Caveats](./Caveats.md#solaris). @@ -316,16 +320,16 @@ pkgman install git cmake patch libfmt_devel nlohmann_json lz4_devel opus_devel b [Caveats](./Caveats.md#haikuos). </details> - <details> <summary>RedoxOS</summary> -TODO: Fix syscall crashes (heavy IO stalls and hangup due to net mutexes?) ```sh -sudo pkg update && sudo pkg install git cmake -sudo pkg install ffmpeg6 sdl2 zlib llvm18 +sudo pkg update +sudo pkg install git cmake ffmpeg6 sdl2 zlib llvm18 ``` +[Caveats](./Caveats.md#redoxos). + </details> ## All Done |
