mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-26 16:25:58 +03:00
[GH-ISSUE #3840] [APP BUG]: Builds now failing on Linux #1150
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#1150
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Shoegzer on GitHub (Nov 29, 2025).
Original GitHub issue: https://github.com/shadps4-emu/shadPS4/issues/3840
Checklist
Describe the Bug
Builds are failing on linux.
Bad build:
78e301c3dbLast known good build:
f557c6ac64Can bisect if necessary.
Build log is here: build.log
Reproduction Steps
cmake -S . -B build/ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++Expected Behavior
Build succeeds
Specify OS Version
Linux Mint 22.2 / kernel 6.14
CPU
Intel Core i9-14900HX
GPU
Nvidia GTX 4070
Amount of RAM in GB
64 GB
@Shoegzer commented on GitHub (Nov 30, 2025):
Update: Since the above test involved clang-21, re-tested build against clang-18 since this is recommended, however it still fails at a different point:
build.log
Note that building also fails with gcc (gcc-14.2.0)
@Shoegzer commented on GitHub (Dec 8, 2025):
Update: Linux builds continue to fail as of commit
65f0b07c34. Also, given the following in cmake, could linux builds be failing due to an incompatibility with more recent vulkan apis? The building section does not specify a required version.@Shoegzer commented on GitHub (Dec 13, 2025):
Updated: Tested against #3865 which resolves certain issues with linux builds, though it didn't fix the issue here unfortunately. Test system added the
moldpackage as it was missing and the above submission installs it, though to no effect.@georgemoralis Any ideas what could be happening on linux?
@georgemoralis commented on GitHub (Dec 13, 2025):
latest sdl3 required ibxcursor-dev libxi-dev libxss-dev libxtst-dev for ci to build. Maybe you are missing some of these packages?
@Shoegzer commented on GitHub (Dec 13, 2025):
Thanks, good thought but those are all installed on the system. The dependencies listed in the build docs are all installed as well, though perhaps there's something else with the build environment?
Other info:
@Shoegzer commented on GitHub (Dec 19, 2025):
I'm assuming my environment above meets (and doesn't exceed) all the minimum requirements for building.
I should add that even when shadps4 was building on linux systems, per #1195, it has required manually correcting the path to
visibility.hin the following files:externals/glslang/SPIRV/GlslangToSpv.hexternals/glslang/SPIRV/Logger.hThis seems to be a yet-unresolved issue with external glslang, but in any event, I wonder if the new problem above is due to similar issues with incorrect paths to header files.
@qurious-pixel I assume you're unable to build too? And if not, have you found a workaround for it?
@dkman123 commented on GitHub (Dec 25, 2025):
You may be able to compile if you change the line in CMakeLists.txt
-find_package(VulkanHeaders 1.4.329 CONFIG)
+find_package(VulkanHeaders 1.4.328 CONFIG)
I also had to change
-find_package(glslang 15 CONFIG)
+find_package(glslang 16 CONFIG)
I'm not saying that it will work afterward, but it might compile.
Edit: In case you don't know how to read that, it's taking out the line starting with minus and adding the line starting with plus. Though in this case you only need to change the one character/digit.
@Shoegzer commented on GitHub (Dec 28, 2025):
Thanks, that's helpful although building still fails after those changes. Here's the log:
build.log
A few questions:
I assume you were getting the exact same error before you fixed it? Also, why did those changes actually fix this for you? Maybe I can work backwards from there.
What OS and environment are you working with, any differences from this one? Given that shadps4 no longer builds on certain linux environments, it would be good to know the specific conditions so a proper fix can be committed.
How did you setup vulkan sdk? Over here it was downloaded from sdk.lunarg.com to
~/.local/lib/vulkan, then the VULKAN_SDK environment was established in~/.profileas per the post above. There is a~/.local/lib/vulkan//1.4.328.1/vulkansdkbinary but that was not used at all.@mittonk commented on GitHub (Jan 9, 2026):
From a similar setup: Using libstdc++-13 rather than the 14 in that error worked around
std::jthread arguments must be invocable after conversion to rvalues. I haven't poked that enough to understand what changed, or if something needs to be adjusted for libstdc++-14.Also had problems with CMake picking up a similarly-versioned glslang from elsewhere (
cmake --debug-find ...showed that explicitly) --- forcing use of the copy inexternals/glslangsolved that without changing import paths or version dependencies, used-DCMAKE_DISABLE_FIND_PACKAGE_glslang=ON.So this worked around also-having-libstdc++-14 and also-having-other-glslang :
@Shoegzer commented on GitHub (Jan 12, 2026):
Thanks! This is one of two reasons builds are failing, though indeed your workaround using
-DCMAKE_CXX_FLAGS"--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/13works assuming gcc-13 is installed. Hopefully the shadps4 dev team can look into supporting libstdc++14 with clang, as it would appear that anyone with gcc-14/libstdc++-14 will fail to build. If that happens I'll close this.Exactly. This is the second reason builds are failing, though thankfully fixable without any code changes. For background: recently the Vulkan team switched distributing the Vulkan SDK from their lunarg repo to a tarball, as described here. If you install the new tarball-based SDK without also removing remnants of the older repo-based SDK, conflicts such as this can result. In my case, an
apt purge glslang-devremoved the conflict so that-DCMAKE_DISABLE_FIND_PACKAGE_glslang=ONis not necessary - though your workaround certainly works.Incidentally, as an added bonus - the relative path fix I described in #1195 should no longer be necessary once the older repo-based glslang is purged.