diff options
author | Stelios Tsampas | 2022-02-17 12:16:17 +0200 |
---|---|---|
committer | Stelios Tsampas | 2022-02-17 12:16:17 +0200 |
commit | 6f4c45d00645ac55121db732788c3e9513c8c4ac (patch) | |
tree | 5ecc1a06681e40e6a652bf1e3996da7208457b56 | |
parent | fcb6868073bfa33c983a1592914557cb25a38e94 (diff) | |
download | aur-6f4c45d00645ac55121db732788c3e9513c8c4ac.tar.gz |
version: 7.0-1
-rw-r--r-- | .SRCINFO | 47 | ||||
-rw-r--r-- | PKGBUILD | 69 | ||||
-rw-r--r-- | proton-sanitize_makefile.patch | 288 | ||||
-rw-r--r-- | wine-futex_waitv.patch | 104 |
4 files changed, 311 insertions, 197 deletions
@@ -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 @@ -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 + |