summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Tsampas2022-02-17 12:16:17 +0200
committerStelios Tsampas2022-02-17 12:16:17 +0200
commit6f4c45d00645ac55121db732788c3e9513c8c4ac (patch)
tree5ecc1a06681e40e6a652bf1e3996da7208457b56
parentfcb6868073bfa33c983a1592914557cb25a38e94 (diff)
downloadaur-6f4c45d00645ac55121db732788c3e9513c8c4ac.tar.gz
version: 7.0-1
-rw-r--r--.SRCINFO47
-rw-r--r--PKGBUILD69
-rw-r--r--proton-sanitize_makefile.patch288
-rw-r--r--wine-futex_waitv.patch104
4 files changed, 311 insertions, 197 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 85570ca889bb..329d5cb213d8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,14 +1,13 @@
pkgbase = proton
pkgdesc = Compatibility tool for Steam Play based on Wine and additional components
- pkgver = 6.3.8
- pkgrel = 6
+ pkgver = 7.0.1
+ pkgrel = 1
epoch = 1
url = https://github.com/ValveSoftware/Proton
arch = x86_64
arch = x86_64_v3
license = custom
makedepends = autoconf
- makedepends = ncurses
makedepends = bison
makedepends = perl
makedepends = fontforge
@@ -110,6 +109,12 @@ pkgbase = proton
makedepends = lib32-gcc-libs
makedepends = libpcap
makedepends = lib32-libpcap
+ makedepends = lzo
+ makedepends = lib32-lzo
+ makedepends = libxkbcommon
+ makedepends = lib32-libxkbcommon
+ makedepends = faudio
+ makedepends = lib32-faudio
makedepends = sdl2>=2.0.16
makedepends = lib32-sdl2>=2.0.16
makedepends = desktop-file-utils
@@ -143,6 +148,12 @@ pkgbase = proton
depends = lib32-gcc-libs
depends = libpcap
depends = lib32-libpcap
+ depends = lzo
+ depends = lib32-lzo
+ depends = libxkbcommon
+ depends = lib32-libxkbcommon
+ depends = faudio
+ depends = lib32-faudio
depends = sdl2>=2.0.16
depends = lib32-sdl2>=2.0.16
depends = desktop-file-utils
@@ -174,8 +185,6 @@ pkgbase = proton
optdepends = lib32-libxcomposite
optdepends = libxinerama
optdepends = lib32-libxinerama
- optdepends = ncurses
- optdepends = lib32-ncurses
optdepends = opencl-icd-loader
optdepends = lib32-opencl-icd-loader
optdepends = libxslt
@@ -199,16 +208,15 @@ pkgbase = proton
conflicts = proton-native
noextract = wine-gecko-2.47.2-x86.tar.xz
noextract = wine-gecko-2.47.2-x86_64.tar.xz
- noextract = wine-mono-6.4.1-x86.tar.xz
+ noextract = wine-mono-7.1.2-x86.tar.xz
options = !staticlibs
options = !lto
options = emptydirs
- source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-6.3-8c
+ source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-7.0-1
source = wine-valve::git+https://github.com/ValveSoftware/wine.git
source = dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git
source = openvr::git+https://github.com/ValveSoftware/openvr.git
source = liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
- source = FAudio::git+https://github.com/FNA-XNA/FAudio.git
source = gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
source = gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git
source = gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git
@@ -217,13 +225,19 @@ pkgbase = proton
source = OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git
source = dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git
source = vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
- source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
source = Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
+ source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
+ source = Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git
+ source = gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git
+ source = ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git
+ source = dav1d::git+https://code.videolan.org/videolan/dav1d.git
+ source = gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
source = dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86.tar.xz
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86_64.tar.xz
- source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-6.4.1/wine-mono-6.4.1-x86.tar.xz
- source = dxvk-async-1.9.2.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/1.9.2/dxvk-async.patch
+ source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.1.2/wine-mono-7.1.2-x86.tar.xz
+ source = dxvk-async-1.9.4.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/1.9.4/dxvk-async.patch
+ source = wine-futex_waitv.patch
source = wine-winevulkan_fsr.patch
source = wine-more_8x5_res.patch
source = proton-sanitize_makefile.patch
@@ -247,13 +261,18 @@ pkgbase = proton
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
sha256sums = 8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94
sha256sums = b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014
- sha256sums = a70c865e590058fa6fc3aa47425646405bdda27f78b9aa6d2030d2d2a8efadbb
- sha256sums = 9212a9c42ac8c9c7b9ba7378685b27e7ea0e7a8a8aaac1f3f4d37590ada3e991
+ sha256sums = 59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d
+ sha256sums = ddde07c98045a3bc15fab5eaf3c6a756a6a4b4eaeec646d4339168b86ac00463
+ sha256sums = 7d989e9b29643897eaadb970d65e71140b11f4d641ef8816bd17feb9ad2ca992
sha256sums = 77214acb6ffc0648408c5e28b434b71d4c6a8c35f7795ac38565e6e0695208b2
sha256sums = 9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215
- sha256sums = 4abadfbcc01beb7781edadeebc6b5fadea97b0808eebf4648fd812748c730e9c
+ sha256sums = e2aa1d44f3034a81f405532abacb590f3fd03ce0a2135f9f80c8ad7763bf637b
sha256sums = 8be5e0ae9f71d686c72ac094a4eaca14ea288276195d4c0c217a4f3974fbcc70
sha256sums = 20f7cd3e70fad6f48d2f1a26a485906a36acf30903bf0eefbf82a7c400e248f3
sha256sums = 958f8e69bc789cc8fbe58cb6c9fc62f065692c3c165f20b0c21133ce94bad736
diff --git a/PKGBUILD b/PKGBUILD
index 815b07310bd2..9b3a81450345 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,14 +4,13 @@
# Contributor: heavysink <winstonwu91 at gmail>
pkgname=proton
-_srctag=6.3-8c
+_srctag=7.0-1
_commit=
pkgver=${_srctag//-/.}
-pkgver=6.3.8
_geckover=2.47.2
-_monover=6.4.1
-_asyncver=1.9.2
-pkgrel=6
+_monover=7.1.2
+_asyncver=1.9.4
+pkgrel=1
epoch=1
pkgdesc="Compatibility tool for Steam Play based on Wine and additional components"
url="https://github.com/ValveSoftware/Proton"
@@ -34,13 +33,16 @@ depends=(
libsm lib32-libsm
gcc-libs lib32-gcc-libs
libpcap lib32-libpcap
+ lzo lib32-lzo
+ libxkbcommon lib32-libxkbcommon
+ faudio lib32-faudio
'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16'
desktop-file-utils
python
steam-native-runtime
)
-makedepends=(autoconf ncurses bison perl fontforge flex mingw-w64-gcc
+makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc
git wget rsync mingw-w64-tools lld nasm meson cmake python-virtualenv python-pip
glslang vulkan-headers
giflib lib32-giflib
@@ -90,7 +92,6 @@ optdepends=(
libjpeg-turbo lib32-libjpeg-turbo
libxcomposite lib32-libxcomposite
libxinerama lib32-libxinerama
- ncurses lib32-ncurses
opencl-icd-loader lib32-opencl-icd-loader
libxslt lib32-libxslt
libva lib32-libva
@@ -115,7 +116,6 @@ source=(
dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git
openvr::git+https://github.com/ValveSoftware/openvr.git
liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
- FAudio::git+https://github.com/FNA-XNA/FAudio.git
gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git
gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git
@@ -124,12 +124,18 @@ source=(
OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git
dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git
vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
- SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
+ SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
+ Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git
+ gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git
+ ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git
+ dav1d::git+https://code.videolan.org/videolan/dav1d.git
+ gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git
https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz
https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz
dxvk-async-${_asyncver}.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/${_asyncver}/dxvk-async.patch
+ wine-futex_waitv.patch
wine-winevulkan_fsr.patch
wine-more_8x5_res.patch
proton-sanitize_makefile.patch
@@ -143,9 +149,9 @@ noextract=(
)
_make_wrappers () {
- # _arch prefix gcc ld as
- local _i686=( "i686" "-m32" "-melf_i386" "--32")
- local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64")
+ # _arch prefix gcc ld as strip
+ local _i686=( "i686" "-m32" "-melf_i386" "--32" "elf32-i386")
+ local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64" "elf64-x86-64")
local _opts=(_i686 _x86_64)
declare -n _opt
for _opt in "${_opts[@]}"; do
@@ -166,6 +172,10 @@ EOF
#!/usr/bin/bash
/usr/bin/as ${_opt[3]} "\$@"
EOF
+ install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-strip <<EOF
+#!/usr/bin/bash
+/usr/bin/strip -F ${_opt[4]} "\$@"
+EOF
done
}
@@ -198,7 +208,6 @@ prepare() {
dxvk-valve::dxvk
openvr
liberation-fonts::fonts/liberation-fonts
- FAudio
gstreamer
gst-plugins-base
gst-plugins-good
@@ -207,8 +216,13 @@ prepare() {
OpenXR-SDK
dxvk-nvapi
vkd3d-valve::vkd3d
- SPIRV-Headers
Vulkan-Headers
+ SPIRV-Headers
+ Vulkan-Loader
+ gst-libav
+ ffmpeg
+ dav1d
+ gst-plugins-rs
)
for submodule in "${_submodules[@]}"; do
@@ -236,23 +250,27 @@ prepare() {
git submodule update external/Vulkan-Headers
popd
- pushd media-converter
+ for submodule in gst-plugins-rs media-converter; do
+ pushd $submodule
export RUSTUP_TOOLCHAIN=stable
export CARGO_HOME="${srcdir}"/build/.cargo
cargo update
cargo fetch --locked --target "i686-unknown-linux-gnu"
cargo fetch --locked --target "x86_64-unknown-linux-gnu"
popd
+ done
pushd wine
# From Arch Wine
sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure*
# Fix openldap 2.5+ detection
sed 's/-lldap_r/-lldap/' -i configure
+ # Fix futex_waitv on recent linux-api-headers
+ patch -p1 -i "$srcdir"/wine-futex_waitv.patch
# Add FSR for fshack
- patch -p1 -i "$srcdir"/wine-winevulkan_fsr.patch
+ #patch -p1 -i "$srcdir"/wine-winevulkan_fsr.patch
# Adds more 16:10 resolutions for use with FSR
- patch -p1 -i "$srcdir"/wine-more_8x5_res.patch
+ #patch -p1 -i "$srcdir"/wine-more_8x5_res.patch
popd
pushd dxvk
@@ -283,7 +301,7 @@ build() {
cd build
ROOTLESS_CONTAINER="" \
../proton/configure.sh \
- --container-engine="" \
+ --container-engine="none" \
--proton-sdk-image="" \
--steam-runtime=native \
--no-proton-sdk \
@@ -350,9 +368,9 @@ package() {
cd "$_compatdir/${pkgname}/dist"
i686-w64-mingw32-strip --strip-unneeded \
- $(find lib/wine \( -iname fakedlls \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
+ $(find lib/wine \( -iname fakedlls -or -iname i386-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
x86_64-w64-mingw32-strip --strip-unneeded \
- $(find lib64/wine \( -iname fakedlls \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
+ $(find lib64/wine \( -iname fakedlls -or -iname x86_64-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
local _geckodir="share/wine/gecko/wine-gecko-${_geckover}"
i686-w64-mingw32-strip --strip-unneeded \
@@ -392,13 +410,18 @@ sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
'8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94'
'b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014'
- 'a70c865e590058fa6fc3aa47425646405bdda27f78b9aa6d2030d2d2a8efadbb'
- '9212a9c42ac8c9c7b9ba7378685b27e7ea0e7a8a8aaac1f3f4d37590ada3e991'
+ '59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d'
+ 'ddde07c98045a3bc15fab5eaf3c6a756a6a4b4eaeec646d4339168b86ac00463'
+ '7d989e9b29643897eaadb970d65e71140b11f4d641ef8816bd17feb9ad2ca992'
'77214acb6ffc0648408c5e28b434b71d4c6a8c35f7795ac38565e6e0695208b2'
'9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215'
- '4abadfbcc01beb7781edadeebc6b5fadea97b0808eebf4648fd812748c730e9c'
+ 'e2aa1d44f3034a81f405532abacb590f3fd03ce0a2135f9f80c8ad7763bf637b'
'8be5e0ae9f71d686c72ac094a4eaca14ea288276195d4c0c217a4f3974fbcc70'
'20f7cd3e70fad6f48d2f1a26a485906a36acf30903bf0eefbf82a7c400e248f3'
'958f8e69bc789cc8fbe58cb6c9fc62f065692c3c165f20b0c21133ce94bad736')
diff --git a/proton-sanitize_makefile.patch b/proton-sanitize_makefile.patch
index a3aa70ef0adb..18e708d58bd7 100644
--- a/proton-sanitize_makefile.patch
+++ b/proton-sanitize_makefile.patch
@@ -1,20 +1,16 @@
-diff --git a/build/makefile_base.mak b/build/makefile_base.mak
-index d935b9f..2171976 100644
---- a/build/makefile_base.mak
-+++ b/build/makefile_base.mak
-@@ -59,11 +59,9 @@ include $(SRC)/make/rules-cargo.mk
- # If CC is coming from make's defaults or nowhere, use our own default. Otherwise respect environment.
- CCACHE_ENV := $(patsubst %,-e %,$(shell env|cut -d= -f1|grep '^CCACHE_'))
- ifeq ($(ENABLE_CCACHE),1)
-- CCACHE_BIN := ccache
+diff --git a/Makefile.in b/Makefile.in
+index 52528f5..b4a4e97 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -63,7 +63,6 @@ ifeq ($(ENABLE_CCACHE),1)
export CCACHE_DIR := $(if $(CCACHE_DIR),$(CCACHE_DIR),$(HOME)/.ccache)
- DOCKER_OPTS := -v $(CCACHE_DIR):$(CCACHE_DIR)$(CONTAINER_MOUNT_OPTS) $(CCACHE_ENV) -e CCACHE_DIR=$(CCACHE_DIR) $(DOCKER_OPTS)
+ override DOCKER_OPTS := -v $(CCACHE_DIR):$(CCACHE_DIR)$(CONTAINER_MOUNT_OPTS) $(CCACHE_ENV) -e CCACHE_DIR=$(CCACHE_DIR) $(DOCKER_OPTS)
else
- export CCACHE_DISABLE := 1
- DOCKER_OPTS := $(CCACHE_ENV) -e CCACHE_DISABLE=1 $(DOCKER_OPTS)
+ override DOCKER_OPTS := $(CCACHE_ENV) -e CCACHE_DISABLE=1 $(DOCKER_OPTS)
endif
-@@ -121,7 +119,7 @@ container-build:
+@@ -121,7 +120,7 @@ container-build:
all32 $(MAKECMDGOALS32): container-build
all64 $(MAKECMDGOALS64): container-build
else
@@ -23,7 +19,7 @@ index d935b9f..2171976 100644
endif
-@@ -171,7 +169,8 @@ else
+@@ -171,7 +170,8 @@ else
endif
CROSSLDFLAGS += -Wl,--file-alignment,4096
@@ -33,10 +29,10 @@ index d935b9f..2171976 100644
SANITY_FLAGS := -fwrapv -fno-strict-aliasing
DEBUG_FLAGS := -gdwarf-2 -gstrict-dwarf
COMMON_FLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) $(SANITY_FLAGS) -ffile-prefix-map=$(CCACHE_BASEDIR)=.
-@@ -353,8 +352,8 @@ ALL_TARGETS += dist
+@@ -360,8 +360,8 @@ ALL_TARGETS += dist
GOAL_TARGETS += dist
- dist_prefix: wine gst_good
+ dist_prefix: wine gst_good gst_libav gst_plugins_rs
- find $(DST_LIBDIR32)/wine -type f -execdir chmod a-w '{}' '+'
- find $(DST_LIBDIR64)/wine -type f -execdir chmod a-w '{}' '+'
+ find $(DST_LIBDIR32)/wine -type f -execdir chmod go-w '{}' '+'
@@ -44,51 +40,28 @@ index d935b9f..2171976 100644
rm -rf $(abspath $(DIST_PREFIX))
python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) $(STEAM_RUNTIME_RUNSH)
-@@ -410,6 +409,9 @@ endif # ifeq ($(CONTAINER),)
+@@ -431,6 +431,11 @@ $(eval $(call rules-meson,dav1d,64))
##
GST_COMMON_MESON_ARGS := \
+ -Db_lto=true \
+ -Db_pie=true \
+ -Ddoc=disabled \
- -Dexamples=disabled \
- -Dtests=disabled \
- -Dgtk_doc=disabled \
-@@ -422,6 +424,7 @@ GST_COMMON_MESON_ARGS := \
++ -Dintrospection=disabled \
++ -Dgobject-cast-checks=disabled \
+ -Dorc=enabled
GST_ORC_MESON_ARGS := \
- -Dorc-test=disabled \
-+ -Dpackage-name="GStreamer Orc (Proton)" \
- $(GST_COMMON_MESON_ARGS)
-
- $(eval $(call rules-source,gst_orc,$(SRCDIR)/gst-orc))
-@@ -438,6 +441,9 @@ GSTREAMER_MESON_ARGS := \
+@@ -451,6 +456,8 @@ GSTREAMER_MESON_ARGS := \
-Dbenchmarks=disabled \
-Dtools=disabled \
-Dbash-completion=disabled \
+ -Dptp-helper-permissions=capabilities \
+ -Ddbghelp=disabled \
-+ -Dpackage-name="GStreamer (Proton)" \
$(GST_COMMON_MESON_ARGS)
GSTREAMER_DEPENDS = gst_orc
-@@ -476,6 +482,7 @@ GST_BASE_MESON_ARGS := \
- -Dxshm=disabled \
- -Dxvideo=disabled \
- -Dtools=disabled \
-+ -Dpackage-name="GStreamer Base Plugins (Proton)" \
- $(GST_COMMON_MESON_ARGS)
-
- GST_BASE_DEPENDS = gst_orc gstreamer
-@@ -537,6 +544,7 @@ GST_GOOD_MESON_ARGS := \
- -Dximagesrc=disabled \
- -Dy4m=disabled \
- -Dtools=disabled \
-+ -Dpackage-name="GStreamer Good Plugins (Proton)" \
- $(GST_COMMON_MESON_ARGS)
-
- GST_GOOD_DEPENDS = gst_orc gstreamer gst_base
-@@ -680,10 +688,20 @@ WINE_SOURCE_ARGS = \
+@@ -692,7 +699,13 @@ WINE_SOURCE_ARGS = \
--exclude include/config.h.in \
WINE_CONFIGURE_ARGS = \
@@ -96,104 +69,72 @@ index d935b9f..2171976 100644
+ --with-gstreamer \
+ --with-faudio \
--with-mingw \
- --without-xpresent \
-+ --without-ldap \
+ --without-vkd3d \
+ --without-oss \
+ --disable-win16 \
--disable-tests
-+WINE_CFLAGS= -fno-builtin-sin -fno-builtin-sinf -fno-builtin-cos -fno-builtin-cosf
-+WINE_CXXFLAGS= -fno-builtin-sin -fno-builtin-sinf -fno-builtin-cos -fno-builtin-cosf
-+
WINE_CONFIGURE_ARGS64 = --enable-win64
-
- WINE_DEPENDS = gst_orc gstreamer gst_base faudio jxrlib
-@@ -693,6 +711,7 @@ $(eval $(call rules-autoconf,wine,32))
- $(eval $(call rules-autoconf,wine,64))
-
- $(OBJ)/.wine-post-source:
-+ cd $(WINE_SRC) && dlls/winevulkan/make_vulkan
- cd $(WINE_SRC) && tools/make_requests
- touch $@
-
-@@ -747,6 +766,9 @@ DXVK_MESON_ARGS64 = \
- --bindir=$(DXVK_DST64)/lib64/wine/dxvk \
- --cross-file=$(DXVK_OBJ64)/build-win64.txt
+@@ -755,6 +768,9 @@ $(OBJ)/.vrclient-post-source:
+ DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk
+ DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib64/wine/dxvk
+DXVK_CPPFLAGS= -msse -msse2
+DXVK_LDFLAGS= -static -static-libgcc -static-libstdc++
+
$(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk))
- $(eval $(call rules-meson,dxvk,32))
- $(eval $(call rules-meson,dxvk,64))
-@@ -773,6 +795,9 @@ DXVK_NVAPI_MESON_ARGS64 = \
- --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi \
- --cross-file=$(DXVK_NVAPI_OBJ64)/build-win64.txt
+ $(eval $(call rules-meson,dxvk,32,CROSS))
+ $(eval $(call rules-meson,dxvk,64,CROSS))
+@@ -777,6 +793,9 @@ $(OBJ)/.dxvk-post-build32:
+ DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi
+ DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi
+DXVK_NVAPI_CPPFLAGS= -msse -msse2
+DXVK_NVAPI_LDFLAGS= -static -static-libgcc -static-libstdc++
+
$(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi))
- $(eval $(call rules-meson,dxvk-nvapi,32))
- $(eval $(call rules-meson,dxvk-nvapi,64))
-@@ -810,17 +835,18 @@ VKD3D_CONFIGURE_ARGS = \
- --disable-tests \
- --disable-demos \
- --without-ncurses \
-- WIDL=$(WINE_OBJ64)/tools/widl/widl
-
- VKD3D_CONFIGURE_ARGS32 = \
- --host=i686-w64-mingw32 \
- CC="$(CCACHE_BIN) i686-w64-mingw32-gcc" \
- LD="i686-w64-mingw32-ld" \
-+ WIDL="i686-w64-mingw32-widl" \
-
- VKD3D_CONFIGURE_ARGS64 = \
- --host=x86_64-w64-mingw32 \
- CC="$(CCACHE_BIN) x86_64-w64-mingw32-gcc" \
- LD="x86_64-w64-mingw32-ld" \
-+ WIDL="x86_64-w64-mingw32-widl" \
-
- VKD3D_LDFLAGS = -static-libgcc $(CROSSLDFLAGS)
- VKD3D_LDFLAGS32 = -L$(WINE_OBJ32)/dlls/vulkan-1/
-@@ -850,7 +876,7 @@ VKD3D_PROTON_SOURCE_ARGS = \
+ $(eval $(call rules-meson,dxvk-nvapi,32,CROSS))
+ $(eval $(call rules-meson,dxvk-nvapi,64,CROSS))
+@@ -840,10 +859,13 @@ VKD3D_PROTON_SOURCE_ARGS = \
--exclude vkd3d_build.h.in \
--exclude vkd3d_version.h.in \
-VKD3D_PROTON_MESON_ARGS = -Denable_standalone_d3d12=true
+VKD3D_PROTON_MESON_ARGS = -Denable_d3d12=true
- VKD3D_PROTON_MESON_ARGS32 = \
- --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton \
- --cross-file=$(VKD3D_PROTON_OBJ32)/build-win32.txt
-@@ -858,6 +884,9 @@ VKD3D_PROTON_MESON_ARGS64 = \
- --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton \
- --cross-file=$(VKD3D_PROTON_OBJ64)/build-win64.txt
+ VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton
+ VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton
+VKD3D_PROTON_CPPFLAGS= -msse -msse2
+VKD3D_PROTON_LDFLAGS= -static -static-libgcc -static-libstdc++
+
$(eval $(call rules-source,vkd3d-proton,$(SRCDIR)/vkd3d-proton))
- $(eval $(call rules-meson,vkd3d-proton,32))
- $(eval $(call rules-meson,vkd3d-proton,64))
+ $(eval $(call rules-meson,vkd3d-proton,32,CROSS))
+ $(eval $(call rules-meson,vkd3d-proton,64,CROSS))
+diff --git a/configure.sh b/configure.sh
+index 48d6004..33eb9f3 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -141,6 +141,7 @@ function configure() {
+ CONTAINER_MOUNT_OPTS=:Z
+ fi
+
++ if [ "$arg_container_engine" != "none" ]; then
+ if [[ -n "$arg_container_engine" ]]; then
+ check_container_engine "$arg_container_engine" || die "Specified container engine \"$arg_container_engine\" doesn't work"
+ else
+@@ -153,6 +154,7 @@ function configure() {
+ die "${arg_container_engine:-Container engine discovery} has failed. Please fix your setup."
+ fi
+ fi
++ fi
+
+ stat "Using $arg_container_engine."
+
diff --git a/make/rules-autoconf.mk b/make/rules-autoconf.mk
-index 6567f05..00b7455 100644
+index 0827caa..4e6d19f 100644
--- a/make/rules-autoconf.mk
+++ b/make/rules-autoconf.mk
-@@ -21,9 +21,9 @@ $$(OBJ)/.$(1)-configure$(3): $$(OBJ)/.$(1)-pre-configure
- --prefix="$$($(2)_DST$(3))" \
- --libdir="$$($(2)_DST$(3))/lib$(subst 32,,$(3))" \
- $$($(2)_ENV$(3)) \
-- CROSSCFLAGS="$$(COMMON_FLAGS)" \
-- CROSSCXXFLAGS="$$(COMMON_FLAGS) -std=c++17" \
-- CROSSLDFLAGS="$$(CROSSLDFLAGS)" \
-+ CROSSCFLAGS="$$($(2)_CFLAGS) $$(COMMON_FLAGS)" \
-+ CROSSCXXFLAGS="$$($(2)_CXXFLAGS) $$(COMMON_FLAGS) -std=c++17" \
-+ CROSSLDFLAGS="$$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \
- $$($(2)_CONFIGURE_ARGS) \
- $$($(2)_CONFIGURE_ARGS$(3))
-
-@@ -32,9 +32,9 @@ $$(OBJ)/.$(1)-configure$(3): $$(OBJ)/.$(1)-pre-configure
+@@ -31,9 +31,9 @@ $$(OBJ)/.$(1)-configure$(3): $$(OBJ)/.$(1)-pre-configure
$$(OBJ)/.$(1)-build$(3):
@echo ":: building $(3)bit $(1)..." >&2
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
@@ -206,25 +147,26 @@ index 6567f05..00b7455 100644
endif
endef
diff --git a/make/rules-cargo.mk b/make/rules-cargo.mk
-index 36ec054..91d8cf0 100644
+index b2af34c..c132fff 100644
--- a/make/rules-cargo.mk
+++ b/make/rules-cargo.mk
-@@ -14,7 +14,9 @@ $(OBJ)/.$(1)-configure$(3):
- $(OBJ)/.$(1)-build$(3):
+@@ -14,8 +14,10 @@ $$(OBJ)/.$(1)-configure$(3):
+ $$(OBJ)/.$(1)-build$(3):
@echo ":: building $(3)bit $(1)..." >&2
cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \
-- cargo build $$(filter -j%,$$(MAKEFLAGS)) --target "$$(ARCH$(3))-unknown-linux-gnu" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG)
+ cargo update --offline --verbose
+ cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \
-+ cargo build -j$$(SUBJOBS) --locked --offline --verbose --target "$$(ARCH$(3))-unknown-linux-gnu" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG)
- touch $$@
- endif
- endef
+ cargo build \
+- $$(filter -j%,$$(MAKEFLAGS)) \
++ -j$$(SUBJOBS) --locked --offline --verbose \
+ --target "$$(CARGO_TARGET_$(3))" \
+ --target-dir $$($(2)_OBJ$(3)) \
+ $$(CARGO_BUILD_ARG) \
diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk
-index 4c61951..3f3a62b 100644
+index c70751a..1096dc1 100644
--- a/make/rules-cmake.mk
+++ b/make/rules-cmake.mk
-@@ -24,9 +24,9 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt
+@@ -28,9 +28,9 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt
$$(OBJ)/.$(1)-build$(3):
@echo ":: building $(3)bit $(1)..." >&2
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
@@ -237,55 +179,81 @@ index 4c61951..3f3a62b 100644
endif
endef
diff --git a/make/rules-common.mk b/make/rules-common.mk
-index 083655b..37e58e3 100644
+index ec08369..55978ca 100644
--- a/make/rules-common.mk
+++ b/make/rules-common.mk
-@@ -108,18 +108,22 @@ CONTAINERGOALS := $(CONTAINERGOALS) $(filter $(1),$(MAKECMDGOALS))
-
+@@ -119,8 +119,12 @@ $(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))) \
+ # native version doesn't exist.
$(2)_ENV$(3) = \
+ WINEDEBUG="-all" \
+ WINEPREFIX="$$(OBJ)/pfx-wine$(3)" \
+ WINEDLLOVERRIDES="winemenubuilder=d;mscoree=d;mshtml=d" \
CARGO_HOME=$$(OBJ)/.cargo \
-- CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="$$(ARCH$(3))-linux-gnu-gcc" \
-+ CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="$$(ARCH$(3))-pc-linux-gnu-gcc" \
-+ CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_RUSTFLAGS="$$(RUSTFLAGS)" \
+ CARGO_TARGET_$$(call toupper,$$(CARGO_TARGET_$(3)))_LINKER="$$(TARGET_$(4)$(3))-gcc" \
++ CARGO_TARGET_$$(call toupper,$$(CARGO_TARGET_$(3)))_RUSTFLAGS="$$(RUSTFLAGS)" \
CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \
STRIP="$$(STRIP)" \
-- CC="$$(CCACHE_BIN) $$(ARCH$(3))-linux-gnu-gcc" \
-- CXX="$$(CCACHE_BIN) $$(ARCH$(3))-linux-gnu-g++" \
-+ CC="$$(CCACHE_BIN) $$(ARCH$(3))-pc-linux-gnu-gcc" \
-+ CXX="$$(CCACHE_BIN) $$(ARCH$(3))-pc-linux-gnu-g++" \
- LD="$$(ARCH$(3))-linux-gnu-ld" \
-- PKG_CONFIG="$$(ARCH$(3))-linux-gnu-pkg-config" \
-+ PKG_CONFIG="$$(ARCH$(3))-pc-linux-gnu-pkg-config" \
- CROSSCC="$$(CCACHE_BIN) $$(ARCH$(3))-w64-mingw32-gcc" \
- CROSSCXX="$$(CCACHE_BIN) $$(ARCH$(3))-w64-mingw32-g++" \
- CROSSLD="$$(ARCH$(3))-w64-mingw32-ld" \
-- CROSSPKG_CONFIG="$$(ARCH$(3))-linux-gnu-pkg-config" \
-+ CROSSPKG_CONFIG="$$(ARCH$(3))-pc-linux-gnu-pkg-config" \
+ AR="$$(TARGET_$(4)$(3))-ar" \
+@@ -134,7 +138,7 @@ $(2)_ENV$(3) = \
PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_BINDIR$(3))),,:):$$(SRC)/glslang/bin:$$$$PATH" \
LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))),,:)$$$$LD_LIBRARY_PATH" \
PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/pkgconfig))" \
+- PKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_$(4)$(3))/pkgconfig:/usr/share/pkgconfig" \
++ PKG_CONFIG_LIBDIR="/usr/lib$(3)/pkgconfig:/usr/share/pkgconfig" \
+ CFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
+ CPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
+ CXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
+@@ -158,7 +162,7 @@ $(2)_ENV$(3) += \
+ CROSSCPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
+ CROSSCXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
+ CROSSLDFLAGS="$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \
+- CROSSPKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_CROSS$(3))/pkgconfig:/usr/share/pkgconfig" \
++ CROSSPKG_CONFIG_LIBDIR="/usr/lib$(3)/pkgconfig:/usr/share/pkgconfig" \
+
+ endif
+
+@@ -171,14 +175,14 @@ else
+ install-strip = objcopy --file-alignment=4096 --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug
+ endif
+
+-TARGET_32 := i686-linux-gnu
+-TARGET_64 := x86_64-linux-gnu
++TARGET_32 := i686-pc-linux-gnu
++TARGET_64 := x86_64-pc-linux-gnu
+ TARGET_CROSS32 := i686-w64-mingw32
+ TARGET_CROSS64 := x86_64-w64-mingw32
+
+-PKG_CONFIG_TARGET_32 := i386-linux-gnu
+-PKG_CONFIG_TARGET_64 := x86_64-linux-gnu
+-PKG_CONFIG_TARGET_CROSS32 := i386-w64-mingw32
++PKG_CONFIG_TARGET_32 := i686-pc-linux-gnu
++PKG_CONFIG_TARGET_64 := x86_64-pc-linux-gnu
++PKG_CONFIG_TARGET_CROSS32 := i686-w64-mingw32
+ PKG_CONFIG_TARGET_CROSS64 := x86_64-w64-mingw32
+
+ LIBDIR_WINE_32 := wine/i386-unix
+diff --git a/make/rules-configure.mk b/make/rules-configure.mk
+index d04a3c5..18ac684 100644
+--- a/make/rules-configure.mk
++++ b/make/rules-configure.mk
+@@ -26,9 +26,9 @@ $$(OBJ)/.$(1)-configure$(3):
+ $$(OBJ)/.$(1)-build$(3):
+ @echo ":: building $(3)bit $(1)..." >&2
+ cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
+- $$(MAKE)
++ $$(MAKE) -j$$(SUBJOBS)
+ cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
+- $$(MAKE) install
++ $$(MAKE) -j$$(SUBJOBS) install
+ touch $$@
+ endif
+ endef
diff --git a/make/rules-meson.mk b/make/rules-meson.mk
-index 7b982fa..1b224fe 100644
+index d603bfd..f798edf 100644
--- a/make/rules-meson.mk
+++ b/make/rules-meson.mk
-@@ -12,9 +12,9 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
- rm -rf "$$($(2)_OBJ$(3))/meson-private/coredata.dat"
-
- grep -s -v -e c_args -e cpp_args -e link_args "$$($(2)_SRC)/build-win$(3).txt" | \
-- sed -e "s:\[properties\]:[properties]\nc_args = [$$(call list-quote,$$(COMMON_FLAGS))]:" \
-- -e "s:\[properties\]:[properties]\ncpp_args = [$$(call list-quote,$$(COMMON_FLAGS))]:" \
-- -e "s:\[properties\]:[properties]\nlink_args = [$$(call list-quote,$$(CROSSLDFLAGS))]:" \
-+ sed -e "s:\[properties\]:[properties]\nc_args = [$$(call list-quote,$$($(2)_CPPFLAGS) $$(COMMON_FLAGS))]:" \
-+ -e "s:\[properties\]:[properties]\ncpp_args = [$$(call list-quote,$$($(2)_CPPFLAGS) $$(COMMON_FLAGS))]:" \
-+ -e "s:\[properties\]:[properties]\nlink_args = [$$(call list-quote,$$($(2)_LDFLAGS) $$(CROSSLDFLAGS))]:" \
- > "$$($(2)_OBJ$(3))/build-win$(3).txt"
-
- env $$($(2)_ENV$(3)) \
-@@ -31,7 +31,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
+@@ -60,7 +60,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
$$(OBJ)/.$(1)-build$(3):
@echo ":: building $(3)bit $(1)..." >&2
env $$($(2)_ENV$(3)) \
@@ -295,15 +263,15 @@ index 7b982fa..1b224fe 100644
endif
endef
diff --git a/make/rules-winemaker.mk b/make/rules-winemaker.mk
-index 8a0f0ce..36a107c 100644
+index 69688a0..1c0d1d3 100644
--- a/make/rules-winemaker.mk
+++ b/make/rules-winemaker.mk
-@@ -29,7 +29,7 @@ $(OBJ)/.$(1)-build$(3):
+@@ -29,7 +29,7 @@ $$(OBJ)/.$(1)-build$(3):
@echo ":: building $(3)bit $(1)..." >&2
rsync -arx "$$($(2)_SRC)/" "$$($(2)_OBJ$(3))/"
env $$($(2)_ENV$(3)) \
- $$(MAKE) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)"
+ $$(MAKE) -j$$(SUBJOBS) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)"
cd "$$($(2)_OBJ$(3))" && touch "$(basename $(4)).spec" && env $$($(2)_ENV$(3)) \
- winebuild --dll --fake-module -E "$(basename $(4)).spec" -o "$(4).fake"
- mkdir -p $$($(2)_DST$(3))/lib$(subst 32,,$(3))/wine/fakedlls/
+ winebuild --$(lastword $(subst ., ,$(4))) --fake-module -E "$(basename $(4)).spec" -o "$(4).fake"
+ mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3))
diff --git a/wine-futex_waitv.patch b/wine-futex_waitv.patch
new file mode 100644
index 000000000000..bf1445fd50d6
--- /dev/null
+++ b/wine-futex_waitv.patch
@@ -0,0 +1,104 @@
+From 3196885798787b6a52dbef0f3968f6b5e0216c56 Mon Sep 17 00:00:00 2001
+From: Dmitry Skvortsov <lvb.crd@protonmail.com>
+Date: Sun, 26 Dec 2021 16:32:58 +0300
+Subject: [PATCH 1/2] Separate check for definition of FUTEX_32 and struct futex_waitv
+
+---
+ dlls/ntdll/unix/fsync.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c
+index 39d969f061d..c6869b62b4b 100644
+--- a/dlls/ntdll/unix/fsync.c
++++ b/dlls/ntdll/unix/fsync.c
+@@ -64,8 +64,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(fsync);
+ /* futex_waitv interface */
+
+ #ifndef __NR_futex_waitv
+-
+ # define __NR_futex_waitv 449
++#endif
++
++#ifndef FUTEX_32
+ # define FUTEX_32 2
+ struct futex_waitv {
+ uint64_t val;
+@@ -73,7 +75,6 @@ struct futex_waitv {
+ uint32_t flags;
+ uint32_t __reserved;
+ };
+-
+ #endif
+
+ #define u64_to_ptr(x) (void *)(uintptr_t)(x)
+--
+2.34.1
+
+From 2c15b20ad7dd57778ad2354a14dd441d1cd6cf4f Mon Sep 17 00:00:00 2001
+From: Dmitry Skvortsov <lvb.crd@protonmail.com>
+Date: Sun, 26 Dec 2021 16:45:21 +0300
+Subject: [PATCH 2/2] Add check for linux/futex.h
+
+---
+ configure | 6 ++++++
+ configure.ac | 1 +
+ dlls/ntdll/unix/fsync.c | 3 +++
+ include/config.h.in | 3 +++
+ 4 files changed, 13 insertions(+)
+
+diff --git a/configure b/configure
+index ab3aa34a922..d2bcd778c59 100755
+--- a/configure
++++ b/configure
+@@ -8317,6 +8317,12 @@ if test "x$ac_cv_header_linux_filter_h" = xyes
+ then :
+ printf "%s\n" "#define HAVE_LINUX_FILTER_H 1" >>confdefs.h
+
++fi
++ac_fn_c_check_header_compile "$LINENO" "linux/futex.h" "ac_cv_header_linux_futex_h" "$ac_includes_default"
++if test "x$ac_cv_header_linux_futex_h" = xyes
++then :
++ printf "%s\n" "#define HAVE_LINUX_FUTEX_H 1" >>confdefs.h
++
+ fi
+ ac_fn_c_check_header_compile "$LINENO" "linux/hdreg.h" "ac_cv_header_linux_hdreg_h" "$ac_includes_default"
+ if test "x$ac_cv_header_linux_hdreg_h" = xyes
+diff --git a/include/config.h.in b/include/config.h.in
+index 9eb052c6248..910cce10693 100644
+--- a/include/config.h.in
++++ b/include/config.h.in
+@@ -200,6 +200,9 @@
+ /* Define to 1 if you have the <linux/filter.h> header file. */
+ #undef HAVE_LINUX_FILTER_H
+
++/* Define to 1 if you have the <linux/futex.h> header file. */
++#undef HAVE_LINUX_FUTEX_H
++
+ /* Define if Linux-style gethostbyname_r and gethostbyaddr_r are available */
+ #undef HAVE_LINUX_GETHOSTBYNAME_R_6
+
+diff --git a/configure.ac b/configure.ac
+index 3071da61b62..cfe27460a96 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -450,2 +450,3 @@ AC_CHECK_HEADERS(\
+ linux/filter.h \
++ linux/futex.h \
+ linux/hdreg.h \
+diff --git a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c
+index c6869b62b4b..6d69c643244 100644
+--- a/dlls/ntdll/unix/fsync.c
++++ b/dlls/ntdll/unix/fsync.c
+@@ -27,6 +27,9 @@
+ #include <assert.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#ifdef HAVE_LINUX_FUTEX_H
++# include <linux/futex.h>
++#endif
+ #include <limits.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+--
+2.34.1
+