summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Tsampas2020-06-08 20:36:12 +0300
committerStelios Tsampas2020-06-08 20:36:12 +0300
commit6baa2d6882afd5d6b03f6e51a095cf8978c86195 (patch)
tree6260917f83317243726a2f34f4d20a3e72e538d3
parent2ebc035e729ab72cdec47216f9c91be9572e7de2 (diff)
downloadaur-6baa2d6882afd5d6b03f6e51a095cf8978c86195.tar.gz
Version 5.0-8
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD41
-rw-r--r--proton-disable_lock.patch16
-rw-r--r--proton-unfuck_makefile.patch115
-rw-r--r--wine-gcc10.patch479
5 files changed, 595 insertions, 77 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6b874c826337..ee295832ee2d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = proton-native
pkgdesc = Compatibility tool for Steam Play based on Wine and additional components. Monolithic distribution
- pkgver = 5.0.7
- pkgrel = 2
+ pkgver = 5.0.8
+ pkgrel = 1
epoch = 1
url = https://github.com/ValveSoftware/Proton
arch = x86_64
@@ -99,7 +99,6 @@ pkgbase = proton-native
makedepends = python
makedepends = steam-native-runtime
makedepends = wine-gecko-bin>=2.47.1
- makedepends = wine-mono-bin>=4.9.4
depends = fontconfig
depends = lib32-fontconfig
depends = lcms2
@@ -132,7 +131,6 @@ pkgbase = proton-native
depends = python
depends = steam-native-runtime
depends = wine-gecko-bin>=2.47.1
- depends = wine-mono-bin>=4.9.4
optdepends = giflib
optdepends = lib32-giflib
optdepends = libpng
@@ -171,7 +169,8 @@ pkgbase = proton-native
optdepends = cups
optdepends = samba
optdepends = dosbox
- source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-5.0-7
+ noextract = wine-mono-bin-4.9.4.tar.gz
+ source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-5.0-8
source = wine-valve::git+https://github.com/ValveSoftware/wine.git
source = vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
source = dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git
@@ -181,14 +180,18 @@ pkgbase = proton-native
source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
source = Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
source = FAudio::git+https://github.com/FNA-XNA/FAudio.git
+ source = glib::git+https://gitlab.gnome.org/GNOME/glib.git
source = gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
+ source = gst-orc::git+https://gitlab.freedesktop.org/gstreamer/orc.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
- source = glib::git+https://gitlab.gnome.org/GNOME/glib.git
+ source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-4.9.4/wine-mono-bin-4.9.4.tar.gz
source = proton-unfuck_makefile.patch
source = proton-disable_lock.patch
source = proton-user_compat_data.patch
source = dxvk-extraopts.patch
+ source = wine-gcc10.patch
+ sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
@@ -203,10 +206,12 @@ pkgbase = proton-native
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
- sha256sums = 2c47db5b0381fe1d83cf96f531ce63c7781892bba56db033899fbb8ba6e1a2bc
- sha256sums = ce7a59545f5a077e8f93684eddfdad39df807ffeb3a39d6054ca5d1c61644b04
+ sha256sums = df97cdb904a583a1f92ce17d9d4793aed063ebc9bb139b6d1989b22a534c7b63
+ sha256sums = 4cce6f7f262fa42f9e6b4c30d3b75852c186b71e91ccbe5cc5980563d3296120
+ sha256sums = 8263a3ffb7f8e7a5d81bfbffe1843d6f84502d3443fe40f065bcae02b36ba954
sha256sums = 20f7cd3e70fad6f48d2f1a26a485906a36acf30903bf0eefbf82a7c400e248f3
sha256sums = bc17f1ef1e246db44c0fa3874290ad0a5852b0b3fe75902b39834913e3811d98
+ sha256sums = 311dd7461619c2f31e0ec281f1aca2f46dec23d3e21246b9b8d7775081998e32
pkgname = proton-native
diff --git a/PKGBUILD b/PKGBUILD
index 399a35fb75ad..5ea075436b6e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,12 +1,11 @@
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
pkgname=proton-native
-_srctag=5.0-7
+_srctag=5.0-8
pkgver=${_srctag//-/.}
_geckover=2.47.1
_monover=4.9.4
-#_dxvkver=1.5
-pkgrel=2
+pkgrel=1
epoch=1
pkgdesc="Compatibility tool for Steam Play based on Wine and additional components. Monolithic distribution"
arch=(x86_64)
@@ -31,8 +30,6 @@ depends=(
python
steam-native-runtime
"wine-gecko-bin>=$_geckover"
- "wine-mono-bin>=$_monover"
-# "dxvk>=$_dxvkver"
)
makedepends=(autoconf ncurses bison perl fontforge flex meson
'gcc>=4.5.0-2'
@@ -57,13 +54,10 @@ makedepends=(autoconf ncurses bison perl fontforge flex meson
libxslt lib32-libxslt
gst-plugins-base-libs lib32-gst-plugins-base-libs
vulkan-icd-loader lib32-vulkan-icd-loader
-# vkd3d lib32-vkd3d
sdl2 lib32-sdl2
libgphoto2
sane
gsm
-# vulkan-headers
-# spirv-headers
samba
opencl-headers
git
@@ -85,11 +79,9 @@ 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
gst-plugins-base-libs lib32-gst-plugins-base-libs
-# vkd3d lib32-vkd3d
sdl2 lib32-sdl2
libgphoto2
sane
@@ -110,14 +102,20 @@ source=(
SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
FAudio::git+https://github.com/FNA-XNA/FAudio.git
+ glib::git+https://gitlab.gnome.org/GNOME/glib.git
gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
+ gst-orc::git+https://gitlab.freedesktop.org/gstreamer/orc.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
- glib::git+https://gitlab.gnome.org/GNOME/glib.git
+ https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-bin-${_monover}.tar.gz
proton-unfuck_makefile.patch
proton-disable_lock.patch
proton-user_compat_data.patch
dxvk-extraopts.patch
+ wine-gcc10.patch
+)
+noextract=(
+ wine-mono-bin-${_monover}.tar.gz
)
sha256sums=(
SKIP
@@ -125,6 +123,7 @@ sha256sums=(
SKIP
SKIP
SKIP
+ SKIP
SKIP
SKIP
SKIP
@@ -134,15 +133,19 @@ sha256sums=(
SKIP
SKIP
SKIP
- '2c47db5b0381fe1d83cf96f531ce63c7781892bba56db033899fbb8ba6e1a2bc'
- 'ce7a59545f5a077e8f93684eddfdad39df807ffeb3a39d6054ca5d1c61644b04'
+ 'df97cdb904a583a1f92ce17d9d4793aed063ebc9bb139b6d1989b22a534c7b63'
+ '4cce6f7f262fa42f9e6b4c30d3b75852c186b71e91ccbe5cc5980563d3296120'
+ '8263a3ffb7f8e7a5d81bfbffe1843d6f84502d3443fe40f065bcae02b36ba954'
'20f7cd3e70fad6f48d2f1a26a485906a36acf30903bf0eefbf82a7c400e248f3'
'bc17f1ef1e246db44c0fa3874290ad0a5852b0b3fe75902b39834913e3811d98'
+ '311dd7461619c2f31e0ec281f1aca2f46dec23d3e21246b9b8d7775081998e32'
)
prepare() {
- [ ! -d build ] && mkdir build
+ [ ! -d mono ] && mkdir mono
+ cp "wine-mono-bin-${_monover}.tar.gz" mono/
+ [ ! -d build ] && mkdir build
cd proton
for submodule in ffmpeg openvr SPIRV-Headers Vulkan-Headers FAudio fonts/liberation-fonts; do
git submodule init "${submodule}"
@@ -156,7 +159,7 @@ prepare() {
git submodule update "${submodule}"
done
- for submodule in gstreamer gst-plugins-{base,good} glib; do
+ for submodule in gstreamer gst-{plugins-{base,good},orc} glib; do
git submodule init "${submodule}"
git config submodule."${submodule}".url ../"${submodule#*/}"
git submodule update "${submodule}"
@@ -166,6 +169,8 @@ prepare() {
patch -p1 -i "$srcdir"/proton-disable_lock.patch
patch -p1 -i "$srcdir"/proton-user_compat_data.patch
+ patch -p1 -i "$srcdir"/wine-gcc10.patch
+
# Uncomment to enable extra optimizations
# Patch crossfiles with extra optimizations from makepkg.conf
patch -p1 -i "$srcdir"/dxvk-extraopts.patch
@@ -225,9 +230,9 @@ build() {
WINEESYNC=0 \
WINEFSYNC=0 \
NO_DXVK=0 \
- SYSTEM_GSTREAMER=0\
+ SYSTEM_GSTREAMER=0 \
SYSTEM_GECKO=1 \
- SYSTEM_MONO=1 \
+ SYSTEM_MONO=0 \
make -j1 dist
}
@@ -249,8 +254,6 @@ package() {
-exec chmod 644 {} \;
chmod 755 "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/{proton,dist/bin/{msidb,wine{,64},wine{,64}-preloader,wineserver}}
- ln -s /usr/share/wine/mono \
- "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/share/wine/mono
ln -s /usr/share/wine/gecko \
"$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/share/wine/gecko
diff --git a/proton-disable_lock.patch b/proton-disable_lock.patch
index 5377655e6e39..4341658471d8 100644
--- a/proton-disable_lock.patch
+++ b/proton-disable_lock.patch
@@ -1,8 +1,8 @@
diff --git a/proton b/proton
-index d1b0e6a..8f11730 100755
+index 8183820..7acc32a 100755
--- a/proton
+++ b/proton
-@@ -102,39 +102,15 @@ class Proton:
+@@ -102,7 +102,6 @@ class Proton:
self.user_settings_file = self.path("user_settings.py")
self.wine_bin = self.bin_dir + "wine"
self.wineserver_bin = self.bin_dir + "wineserver"
@@ -10,12 +10,12 @@ index d1b0e6a..8f11730 100755
def path(self, d):
return self.base_dir + d
+@@ -114,35 +113,14 @@ class Proton:
+ not filecmp.cmp(self.version_file, self.path("dist/version"))
def extract_tarball(self):
- with self.dist_lock:
-- if not os.path.exists(self.dist_dir) or \
-- not os.path.exists(self.path("dist/version")) or \
-- not filecmp.cmp(self.version_file, self.path("dist/version")):
+- if self.need_tarball_extraction():
- if os.path.exists(self.dist_dir):
- shutil.rmtree(self.dist_dir)
- tar = None
@@ -31,10 +31,14 @@ index d1b0e6a..8f11730 100755
- try_copy(self.version_file, self.dist_dir)
+ return True
+ def missing_default_prefix(self):
+ '''Check if the default prefix dir is missing. Returns true if missing, false if present'''
+ return not os.path.isdir(self.default_pfx_dir)
+
def make_default_prefix(self):
- with self.dist_lock:
- local_env = dict(g_session.env)
-- if not os.path.isdir(self.default_pfx_dir):
+- if self.missing_default_prefix():
- #make default prefix
- local_env["WINEPREFIX"] = self.default_pfx_dir
- local_env["WINEDEBUG"] = "-all"
diff --git a/proton-unfuck_makefile.patch b/proton-unfuck_makefile.patch
index a3f48aed8e89..bb8ff4909a8c 100644
--- a/proton-unfuck_makefile.patch
+++ b/proton-unfuck_makefile.patch
@@ -1,5 +1,5 @@
diff --git a/build/makefile_base.mak b/build/makefile_base.mak
-index 79ac5b2..d38c79e 100644
+index 00e2a13..4c74509 100644
--- a/build/makefile_base.mak
+++ b/build/makefile_base.mak
@@ -89,8 +89,8 @@ SELECT_DOCKER_IMAGE :=
@@ -22,7 +22,7 @@ index 79ac5b2..d38c79e 100644
SANITY_FLAGS := -fwrapv -fno-strict-aliasing
COMMON_FLAGS := $(OPTIMIZE_FLAGS) $(SANITY_FLAGS)
-@@ -213,6 +214,16 @@ GST_GOOD_OBJ64 := ./obj-gst-good64
+@@ -217,6 +218,16 @@ GST_GOOD_OBJ64 := ./obj-gst-good64
FAUDIO := $(SRCDIR)/FAudio
FAUDIO_OBJ32 := ./obj-faudio32
FAUDIO_OBJ64 := ./obj-faudio64
@@ -39,7 +39,7 @@ index 79ac5b2..d38c79e 100644
LSTEAMCLIENT := $(SRCDIR)/lsteamclient
LSTEAMCLIENT32 := ./syn-lsteamclient32/lsteamclient
-@@ -229,6 +240,16 @@ WINE_DST32 := ./dist-wine32
+@@ -233,6 +244,16 @@ WINE_DST32 := ./dist-wine32
WINE_OBJ32 := ./obj-wine32
WINE_OBJ64 := ./obj-wine64
WINEMAKER := $(abspath $(WINE)/tools/winemaker/winemaker)
@@ -56,7 +56,7 @@ index 79ac5b2..d38c79e 100644
# Wine outputs that need to exist for other steps (dist)
WINE_OUT_BIN := $(DST_DIR)/bin/wine64
-@@ -236,9 +257,11 @@ WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
+@@ -240,9 +261,11 @@ WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
WINE_OUT := $(WINE_OUT_BIN) $(WINE_OUT_SERVER)
# Tool-only build outputs needed for other projects
WINEGCC32 := $(TOOLS_DIR32)/bin/winegcc
@@ -68,7 +68,7 @@ index 79ac5b2..d38c79e 100644
WINEBUILD64 := $(TOOLS_DIR64)/bin/winebuild
WINE_BUILDTOOLS64 := $(WINEGCC64) $(WINEBUILD64)
-@@ -246,6 +269,12 @@ WINEWIDL_OBJ32 := ./obj-widl32
+@@ -250,6 +273,12 @@ WINEWIDL_OBJ32 := ./obj-widl32
WINEWIDL_OBJ64 := ./obj-widl64
WINEWIDL32 := $(WINEWIDL_OBJ32)/tools/widl/widl
WINEWIDL64 := $(WINEWIDL_OBJ64)/tools/widl/widl
@@ -81,7 +81,7 @@ index 79ac5b2..d38c79e 100644
VRCLIENT := $(SRCDIR)/vrclient_x64
VRCLIENT32 := ./syn-vrclient32
-@@ -261,22 +290,38 @@ VULKAN_H_OBJ32 := ./obj-vulkan-headers32
+@@ -265,22 +294,38 @@ VULKAN_H_OBJ32 := ./obj-vulkan-headers32
VULKAN_H_OBJ64 := ./obj-vulkan-headers64
VULKAN_H32 := $(TOOLS_DIR32)/include/vulkan/vulkan.h
VULKAN_H64 := $(TOOLS_DIR64)/include/vulkan/vulkan.h
@@ -122,7 +122,7 @@ index 79ac5b2..d38c79e 100644
BISON_VER = 3.3.2
BISON_TARBALL := bison-$(BISON_VER).tar.xz
-@@ -285,6 +330,10 @@ BISON_OBJ32 := ./obj-bison32
+@@ -289,6 +334,10 @@ BISON_OBJ32 := ./obj-bison32
BISON_OBJ64 := ./obj-bison64
BISON_BIN32 := $(BISON_OBJ32)/built/bin/bison
BISON_BIN64 := $(BISON_OBJ64)/built/bin/bison
@@ -133,7 +133,7 @@ index 79ac5b2..d38c79e 100644
FONTS := $(SRCDIR)/fonts
-@@ -388,11 +437,26 @@ DIST_GECKO64 := $(DIST_GECKO_DIR)/wine-gecko-$(GECKO_VER)-x86_64
+@@ -393,11 +442,26 @@ DIST_GECKO64 := $(DIST_GECKO_DIR)/wine-gecko-$(GECKO_VER)-x86_64
DIST_WINEMONO_DIR := $(DST_DIR)/share/wine/mono
DIST_WINEMONO := $(DIST_WINEMONO_DIR)/wine-mono-$(WINEMONO_VER)
DIST_FONTS := $(DST_DIR)/share/fonts
@@ -161,7 +161,7 @@ index 79ac5b2..d38c79e 100644
DEPLOY_COPY_TARGETS := $(DIST_COPY_TARGETS) $(DIST_VERSION) $(DIST_LICENSE) $(DIST_OFL_LICENSE)
REDIST_COPY_TARGETS := $(DEPLOY_COPY_TARGETS) $(DIST_COMPAT_MANIFEST)
-@@ -468,7 +532,7 @@ $(DIST_FONTS): fonts
+@@ -473,7 +537,7 @@ $(DIST_FONTS): fonts
ALL_TARGETS += dist
GOAL_TARGETS += dist
@@ -170,7 +170,7 @@ index 79ac5b2..d38c79e 100644
echo `date '+%s'` `GIT_DIR=$(abspath $(SRCDIR)/.git) git describe --tags` > $(DIST_VERSION)
cp $(DIST_VERSION) $(DST_BASE)/
rm -rf $(abspath $(DIST_PREFIX)) && \
-@@ -515,6 +579,8 @@ module64:
+@@ -520,6 +584,8 @@ module64:
module: module32 module64
@@ -179,7 +179,7 @@ index 79ac5b2..d38c79e 100644
##
## glib
##
-@@ -523,6 +589,10 @@ GLIB_CONFIGURE_FILES32 := $(GLIB_OBJ32)/build.ninja
+@@ -528,6 +594,10 @@ GLIB_CONFIGURE_FILES32 := $(GLIB_OBJ32)/build.ninja
GLIB_CONFIGURE_FILES64 := $(GLIB_OBJ64)/build.ninja
GLIB_MESON_ARGS := -Dlibmount=false
@@ -190,7 +190,7 @@ index 79ac5b2..d38c79e 100644
# 64-bit configure. Remove coredata file if already configured (due to e.g. makefile changing)
$(GLIB_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
-@@ -531,6 +601,7 @@ $(GLIB_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(GLIB_OBJ64)
+@@ -536,6 +606,7 @@ $(GLIB_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(GLIB_OBJ64)
rm -f "$(abspath $(GLIB_OBJ64))"/meson-private/coredata.dat; \
fi
cd "$(abspath $(GLIB))" && \
@@ -198,7 +198,7 @@ index 79ac5b2..d38c79e 100644
meson --prefix="$(abspath $(TOOLS_DIR64))" --libdir="lib" $(GLIB_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GLIB_OBJ64))"
# 32-bit configure. Remove coredata file if already configured (due to e.g. makefile changing)
-@@ -540,6 +611,10 @@ $(GLIB_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(GLIB_OBJ32)
+@@ -545,6 +616,10 @@ $(GLIB_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(GLIB_OBJ32)
rm -f "$(abspath $(GLIB_OBJ32))"/meson-private/coredata.dat; \
fi
cd "$(abspath $(GLIB))" && \
@@ -209,19 +209,29 @@ index 79ac5b2..d38c79e 100644
meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GLIB_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GLIB_OBJ32))"
## glib goals
-@@ -584,6 +659,8 @@ glib32: $(GLIB_CONFIGURE_FILES32)
- ##
+@@ -585,6 +660,8 @@ glib32: $(GLIB_CONFIGURE_FILES32)
+
GST_COMMON_MESON_ARGS := \
+ -Db_lto=true \
+ -Db_pie=true \
-Dexamples=disabled \
-Dtests=disabled \
- -Dtools=disabled \
-@@ -597,6 +674,10 @@ GST_COMMON_MESON_ARGS := \
- GSTREAMER_MESON_ARGS := \
+ -Dgtk_doc=disabled \
+@@ -626,6 +703,9 @@ $(GST_ORC_CONFIGURE_FILES32): $(MAKEFILE_DEP) glib32 | $(GST_ORC_OBJ32)
+ fi
+ cd "$(abspath $(GST_ORC))" && \
+ PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \
++ CFLAGS="-m32 $(COMMON_FLAGS)" \
++ CXXFLAGS="-m32 $(COMMON_FLAGS)" \
++ PKG_CONFIG="i686-pc-linux-gnu-pkg-config" \
+ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
+ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_ORC_MESON_ARGS) $(MESON_STRIP_ARG) "$(abspath $(GST_ORC_OBJ32))"
+
+@@ -667,6 +747,10 @@ GSTREAMER_MESON_ARGS := \
-Dgst_parse=false \
-Dbenchmarks=disabled \
+ -Dtools=disabled \
+ -Dbash-completion=disabled \
+ -Dptp-helper-permissions=capabilities \
+ -Ddbghelp=disabled \
@@ -229,7 +239,7 @@ index 79ac5b2..d38c79e 100644
$(GST_COMMON_MESON_ARGS)
GSTREAMER_CONFIGURE_FILES32 := $(GSTREAMER_OBJ32)/build.ninja
-@@ -621,6 +702,9 @@ $(GSTREAMER_CONFIGURE_FILES32): $(MAKEFILE_DEP) glib32 | $(GSTREAMER_OBJ32)
+@@ -691,6 +775,9 @@ $(GSTREAMER_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_orc32 | $(GSTREAMER_OBJ32)
fi
cd "$(abspath $(GSTREAMER))" && \
PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \
@@ -239,15 +249,15 @@ index 79ac5b2..d38c79e 100644
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GSTREAMER_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GSTREAMER_OBJ32))"
-@@ -681,6 +765,7 @@ GST_BASE_MESON_ARGS := \
- -Dx11=disabled \
+@@ -756,6 +843,7 @@ GST_BASE_MESON_ARGS := \
-Dxshm=disabled \
-Dxvideo=disabled \
+ -Dtools=disabled \
+ -Dpackage-name="GStreamer Base Plugins (Proton)" \
$(GST_COMMON_MESON_ARGS)
GST_BASE_CONFIGURE_FILES32 := $(GST_BASE_OBJ32)/build.ninja
-@@ -705,6 +790,9 @@ $(GST_BASE_CONFIGURE_FILES32): $(MAKEFILE_DEP) gstreamer32 | $(GST_BASE_OBJ32)
+@@ -780,6 +868,9 @@ $(GST_BASE_CONFIGURE_FILES32): $(MAKEFILE_DEP) gstreamer32 | $(GST_BASE_OBJ32)
fi
cd "$(abspath $(GST_BASE))" && \
PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \
@@ -257,15 +267,15 @@ index 79ac5b2..d38c79e 100644
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_BASE_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GST_BASE_OBJ32))"
-@@ -790,6 +878,7 @@ GST_GOOD_MESON_ARGS := \
- -Dwavenc=disabled \
+@@ -870,6 +961,7 @@ GST_GOOD_MESON_ARGS := \
-Dximagesrc=disabled \
-Dy4m=disabled \
-+ -Dpackage-name="GStreamer Good Plugins (Proton)" \
+ -Dtools=disabled \
++ -Dpackage-name="GStreamer Good Plugins (Proton)" \
$(GST_COMMON_MESON_ARGS)
GST_GOOD_CONFIGURE_FILES32 := $(GST_GOOD_OBJ32)/build.ninja
-@@ -814,6 +903,9 @@ $(GST_GOOD_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_base32 | $(GST_GOOD_OBJ32)
+@@ -894,6 +986,9 @@ $(GST_GOOD_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_base32 | $(GST_GOOD_OBJ32)
fi
cd "$(abspath $(GST_GOOD))" && \
PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \
@@ -275,7 +285,7 @@ index 79ac5b2..d38c79e 100644
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_GOOD_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GST_GOOD_OBJ32))"
-@@ -845,6 +937,7 @@ gst_good32: $(GST_GOOD_CONFIGURE_FILES32)
+@@ -929,6 +1024,7 @@ gst_good32: $(GST_GOOD_CONFIGURE_FILES32)
cp -a $(TOOLS_DIR32)/lib/libgst* $(DST_DIR)/lib/ && \
cp -a $(TOOLS_DIR32)/lib/gstreamer-1.0 $(DST_DIR)/lib/
@@ -283,7 +293,7 @@ index 79ac5b2..d38c79e 100644
##
## ffmpeg
-@@ -862,13 +955,15 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
+@@ -946,13 +1042,15 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
$(abspath $(FFMPEG))/configure \
--cc=$(CC_QUOTED) --cxx=$(CXX_QUOTED) \
--prefix=$(abspath $(TOOLS_DIR64)) \
@@ -300,7 +310,7 @@ index 79ac5b2..d38c79e 100644
--disable-swscale \
--disable-postproc \
--disable-avfilter \
-@@ -894,17 +989,19 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
+@@ -978,17 +1076,19 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
$(FFMPEG_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
$(FFMPEG_CONFIGURE_FILES32): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ32)
cd $(dir $@) && \
@@ -322,7 +332,7 @@ index 79ac5b2..d38c79e 100644
--disable-swscale \
--disable-postproc \
--disable-avfilter \
-@@ -947,14 +1044,14 @@ ffmpeg64: $(FFMPEG_CONFIGURE_FILES64)
+@@ -1031,14 +1131,14 @@ ffmpeg64: $(FFMPEG_CONFIGURE_FILES64)
+$(MAKE) -C $(FFMPEG_OBJ64)
+$(MAKE) -C $(FFMPEG_OBJ64) install
mkdir -pv $(DST_DIR)/lib64
@@ -339,7 +349,7 @@ index 79ac5b2..d38c79e 100644
endif # ifeq ($(WITH_FFMPEG),1)
-@@ -980,19 +1077,22 @@ FAUDIO_CONFIGURE_FILES32 := $(FAUDIO_OBJ32)/Makefile
+@@ -1064,19 +1164,22 @@ FAUDIO_CONFIGURE_FILES32 := $(FAUDIO_OBJ32)/Makefile
FAUDIO_CONFIGURE_FILES64 := $(FAUDIO_OBJ64)/Makefile
$(FAUDIO_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -368,7 +378,7 @@ index 79ac5b2..d38c79e 100644
faudio32: SHELL = $(CONTAINER_SHELL32)
faudio32: $(FAUDIO_CONFIGURE_FILES32)
-@@ -1183,36 +1283,48 @@ WINE32_MAKE_ARGS := \
+@@ -1267,36 +1370,48 @@ WINE32_MAKE_ARGS := \
# 64bit-configure
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
@@ -425,7 +435,15 @@ index 79ac5b2..d38c79e 100644
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED)
-@@ -1367,6 +1479,8 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) | $(WINE_BUILDTOOLS32) $(filter $(MAKE
+@@ -1372,7 +1487,6 @@ $(VRCLIENT_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
+ $(VRCLIENT_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(VRCLIENT) $(VRCLIENT)/vrclient_x64 | $(VRCLIENT_OBJ64) $(WINEMAKER)
+ cd $(VRCLIENT) && \
+ $(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \
+- --nosource-fix --nolower-include --nodlls --nomsvcrt \
+ -I"$(abspath $(TOOLS_DIR64))"/include/ \
+ -I"$(abspath $(TOOLS_DIR64))"/include/wine/ \
+ -I"$(abspath $(TOOLS_DIR64))"/include/wine/windows/ \
+@@ -1451,6 +1565,8 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) | $(WINE_BUILDTOOLS32) $(filter $(MAKE
## Create & configure object directory for cmake
@@ -434,7 +452,7 @@ index 79ac5b2..d38c79e 100644
CMAKE_CONFIGURE_FILES32 := $(CMAKE_OBJ32)/Makefile
CMAKE_CONFIGURE_FILES64 := $(CMAKE_OBJ64)/Makefile
-@@ -1418,12 +1532,16 @@ cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake3
+@@ -1502,12 +1618,16 @@ cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake3
+$(MAKE) -C $(CMAKE_OBJ32) install
touch $(CMAKE_BIN32)
@@ -451,7 +469,7 @@ index 79ac5b2..d38c79e 100644
$(BISON):
if [ -e "$(SRCDIR)/../bison/$(BISON_TARBALL)" ]; then \
mkdir -p $(dir $@); \
-@@ -1488,6 +1606,8 @@ bison32-intermediate: $(BISON_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),bison3
+@@ -1572,6 +1692,8 @@ bison32-intermediate: $(BISON_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),bison3
+$(MAKE) -C $(BISON_OBJ32) install
touch $(BISON_BIN32)
@@ -460,7 +478,7 @@ index 79ac5b2..d38c79e 100644
##
## dxvk
##
-@@ -1508,7 +1628,7 @@ $(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(DXVK)/build-win64.txt | $(DXVK_OBJ6
+@@ -1592,7 +1714,7 @@ $(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(DXVK)/build-win64.txt | $(DXVK_OBJ6
fi
cd "$(abspath $(DXVK))" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
@@ -469,7 +487,7 @@ index 79ac5b2..d38c79e 100644
# 32-bit configure. Remove coredata file if already configured (due to e.g. makefile changing)
$(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(DXVK)/build-win32.txt | $(DXVK_OBJ32)
-@@ -1517,7 +1637,7 @@ $(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(DXVK)/build-win32.txt | $(DXVK_OBJ3
+@@ -1601,7 +1723,7 @@ $(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(DXVK)/build-win32.txt | $(DXVK_OBJ3
fi
cd "$(abspath $(DXVK))" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
@@ -478,7 +496,7 @@ index 79ac5b2..d38c79e 100644
## dxvk goals
DXVK_TARGETS = dxvk dxvk_configure dxvk32 dxvk64 dxvk_configure32 dxvk_configure64
-@@ -1536,7 +1656,7 @@ dxvk_configure32: $(DXVK_CONFIGURE_FILES32)
+@@ -1620,7 +1742,7 @@ dxvk_configure32: $(DXVK_CONFIGURE_FILES32)
dxvk: dxvk32 dxvk64
dxvk64: $(DXVK_CONFIGURE_FILES64)
@@ -487,7 +505,7 @@ index 79ac5b2..d38c79e 100644
mkdir -p "$(DST_DIR)/lib64/wine/dxvk"
cp "$(DXVK_OBJ64)"/bin/dxgi.dll "$(DST_DIR)"/lib64/wine/dxvk
cp "$(DXVK_OBJ64)"/bin/d3d11.dll "$(DST_DIR)"/lib64/wine/dxvk
-@@ -1549,7 +1669,7 @@ dxvk64: $(DXVK_CONFIGURE_FILES64)
+@@ -1633,7 +1755,7 @@ dxvk64: $(DXVK_CONFIGURE_FILES64)
dxvk32: $(DXVK_CONFIGURE_FILES32)
@@ -496,7 +514,16 @@ index 79ac5b2..d38c79e 100644
mkdir -p "$(DST_DIR)"/lib/wine/dxvk
cp "$(DXVK_OBJ32)"/bin/dxgi.dll "$(DST_DIR)"/lib/wine/dxvk/
cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/
-@@ -1568,24 +1688,24 @@ VULKAN_H_CONFIGURE_FILES32 := $(VULKAN_H_OBJ32)/Makefile
+@@ -1641,7 +1763,7 @@ dxvk32: $(DXVK_CONFIGURE_FILES32)
+ cp "$(DXVK_OBJ32)"/bin/d3d10_1.dll "$(DST_DIR)"/lib/wine/dxvk/
+ cp "$(DXVK_OBJ32)"/bin/d3d10core.dll "$(DST_DIR)"/lib/wine/dxvk/
+ cp "$(DXVK_OBJ32)"/bin/d3d9.dll "$(DST_DIR)"/lib/wine/dxvk/
+- cp "$(DXVK_OBJ32)"/bin/dxvk_config.dll "$(DST_DIR)"/lib/wine/dxvk
++ cp "$(DXVK_OBJ32)"/bin/dxvk_config.dll "$(DST_DIR)"/lib/wine/dxvk/
+ if test -e $(SRCDIR)/.git; then ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version; fi
+
+ endif # NO_DXVK
+@@ -1652,24 +1774,24 @@ VULKAN_H_CONFIGURE_FILES32 := $(VULKAN_H_OBJ32)/Makefile
VULKAN_H_CONFIGURE_FILES64 := $(VULKAN_H_OBJ64)/Makefile
$(VULKAN_H_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -527,7 +554,7 @@ index 79ac5b2..d38c79e 100644
# SPIRV-Headers
-@@ -1593,24 +1713,24 @@ SPIRV_H_CONFIGURE_FILES32 := $(SPIRV_H_OBJ32)/Makefile
+@@ -1677,24 +1799,24 @@ SPIRV_H_CONFIGURE_FILES32 := $(SPIRV_H_OBJ32)/Makefile
SPIRV_H_CONFIGURE_FILES64 := $(SPIRV_H_OBJ64)/Makefile
$(SPIRV_H_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -558,7 +585,7 @@ index 79ac5b2..d38c79e 100644
# widl; required for vkd3d, which is built before wine
-@@ -1618,14 +1738,18 @@ WINEWIDL_CONFIGURE_FILES64 := $(WINEWIDL_OBJ64)/Makefile
+@@ -1702,14 +1824,18 @@ WINEWIDL_CONFIGURE_FILES64 := $(WINEWIDL_OBJ64)/Makefile
WINEWIDL_CONFIGURE_FILES32 := $(WINEWIDL_OBJ32)/Makefile
$(WINEWIDL_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -580,7 +607,7 @@ index 79ac5b2..d38c79e 100644
LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
CC=$(CC_QUOTED) \
-@@ -1637,14 +1761,18 @@ $(WINEWIDL32): $(WINEWIDL_CONFIGURE_FILES32)
+@@ -1721,14 +1847,18 @@ $(WINEWIDL32): $(WINEWIDL_CONFIGURE_FILES32)
make tools/widl
$(WINEWIDL_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
@@ -601,7 +628,7 @@ index 79ac5b2..d38c79e 100644
CFLAGS=-I$(abspath $(TOOLS_DIR64))"/include -g $(COMMON_FLAGS)" \
LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \
-@@ -1672,7 +1800,7 @@ $(VKD3D_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VULKAN_H32) $(SPIRV_H32) $(VKD3D)/
+@@ -1756,7 +1886,7 @@ $(VKD3D_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VULKAN_H32) $(SPIRV_H32) $(VKD3D)/
$(abspath $(VKD3D))/configure \
--disable-tests \
--prefix=$(abspath $(TOOLS_DIR32)) \
diff --git a/wine-gcc10.patch b/wine-gcc10.patch
new file mode 100644
index 000000000000..35cc5f0afbbd
--- /dev/null
+++ b/wine-gcc10.patch
@@ -0,0 +1,479 @@
+From 5740b735cdb44fb89a41f3090dcc3dabf360ab41 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:19 -0600
+Subject: [PATCH] crypt32: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/crypt32/crypt32_private.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h
+index 3d0129e7d40..d92eb1a1570 100644
+--- a/wine/dlls/crypt32/crypt32_private.h
++++ b/wine/dlls/crypt32/crypt32_private.h
+@@ -152,7 +152,7 @@ BOOL WINAPI CRYPT_AsnEncodePubKeyInfoNoNull(DWORD dwCertEncodingType,
+ */
+ HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID);
+
+-HINSTANCE hInstance DECLSPEC_HIDDEN;
++extern HINSTANCE hInstance DECLSPEC_HIDDEN;
+
+ void crypt_oid_init(void) DECLSPEC_HIDDEN;
+ void crypt_oid_free(void) DECLSPEC_HIDDEN;
+From fba65a153759dd60f470fe9a787f074cbf0f7ea8 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:20 -0600
+Subject: [PATCH] dsound: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/dsound/dsound_private.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
+index 69c4a2f3902..930c3e92ec8 100644
+--- a/wine/dlls/dsound/dsound_private.h
++++ b/wine/dlls/dsound/dsound_private.h
+@@ -188,9 +188,9 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
+ IDirectSoundBufferImpl **ppdsb,
+ IDirectSoundBufferImpl *pdsb) DECLSPEC_HIDDEN;
+ void secondarybuffer_destroy(IDirectSoundBufferImpl *This) DECLSPEC_HIDDEN;
+-const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN;
+-const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN;
+-const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN;
++extern const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN;
++extern const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN;
++extern const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN;
+
+ HRESULT IKsPrivatePropertySetImpl_Create(REFIID riid, void **ppv) DECLSPEC_HIDDEN;
+
+From 453980e13015e20dd551531be69b3361b63f22b1 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:21 -0600
+Subject: [PATCH] gphoto2.ds: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/gphoto2.ds/gphoto2_i.h | 4 +++-
+ dlls/gphoto2.ds/gphoto2_main.c | 2 ++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/dlls/gphoto2.ds/gphoto2_i.h b/dlls/gphoto2.ds/gphoto2_i.h
+index 9ab8bbbf33b..4171fcae4f4 100644
+--- a/wine/dlls/gphoto2.ds/gphoto2_i.h
++++ b/wine/dlls/gphoto2.ds/gphoto2_i.h
+@@ -100,7 +100,9 @@ struct tagActiveDS
+ struct jpeg_decompress_struct jd;
+ struct jpeg_error_mgr jerr;
+ #endif
+-} activeDS DECLSPEC_HIDDEN;
++};
++
++extern struct tagActiveDS activeDS DECLSPEC_HIDDEN;
+
+ /* Helper functions */
+ extern TW_UINT16 GPHOTO2_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN;
+diff --git a/dlls/gphoto2.ds/gphoto2_main.c b/dlls/gphoto2.ds/gphoto2_main.c
+index 28100414cc7..4d71c89e2e2 100644
+--- a/wine/dlls/gphoto2.ds/gphoto2_main.c
++++ b/wine/dlls/gphoto2.ds/gphoto2_main.c
+@@ -33,6 +33,8 @@
+
+ WINE_DEFAULT_DEBUG_CHANNEL(twain);
+
++struct tagActiveDS activeDS;
++
+ DSMENTRYPROC GPHOTO2_dsmentry;
+
+ #ifdef HAVE_GPHOTO2
+From e402fdf364fc76838ba4e11a11fef3c552110639 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:22 -0600
+Subject: [PATCH] mshtml: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Jacek Caban <jacek@codeweavers.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/mshtml/htmlstyle.h | 2 +-
+ dlls/mshtml/main.c | 7 +++++++
+ dlls/mshtml/mshtml_private.h | 12 ++++++------
+ 3 files changed, 14 insertions(+), 7 deletions(-)
+
+diff --git a/dlls/mshtml/htmlstyle.h b/dlls/mshtml/htmlstyle.h
+index 9dcf3d9eed1..7a83897043b 100644
+--- a/wine/dlls/mshtml/htmlstyle.h
++++ b/wine/dlls/mshtml/htmlstyle.h
+@@ -142,7 +142,7 @@ void init_css_style(CSSStyle*,nsIDOMCSSStyleDeclaration*,style_qi_t,
+ dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN;
+
+ void CSSStyle_init_dispex_info(dispex_data_t *info, compat_mode_t mode) DECLSPEC_HIDDEN;
+-const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN;
++extern const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN;
+
+ HRESULT get_style_property(CSSStyle*,styleid_t,BSTR*) DECLSPEC_HIDDEN;
+ HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN;
+diff --git a/dlls/mshtml/main.c b/dlls/mshtml/main.c
+index 29396a5475a..e2c927c5f9d 100644
+--- a/wine/dlls/mshtml/main.c
++++ b/wine/dlls/mshtml/main.c
+@@ -51,6 +51,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
+ HINSTANCE hInst;
+ DWORD mshtml_tls = TLS_OUT_OF_INDEXES;
+
++void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*);
++nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*);
++nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*);
++void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt);
++void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*);
++void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*);
++
+ static HINSTANCE shdoclc = NULL;
+ static WCHAR *status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1];
+ static IMultiLanguage2 *mlang;
+diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
+index 9612b326088..cc9eefc5283 100644
+--- a/wine/dlls/mshtml/mshtml_private.h
++++ b/wine/dlls/mshtml/mshtml_private.h
+@@ -355,12 +355,12 @@ typedef struct {
+
+ DEFINE_GUID(IID_nsXPCOMCycleCollectionParticipant, 0x9674489b,0x1f6f,0x4550,0xa7,0x30, 0xcc,0xae,0xdd,0x10,0x4c,0xf9);
+
+-nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN;
+-nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN;
+-void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN;
+-void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN;
+-void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN;
+-void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN;
++extern nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN;
++extern nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN;
++extern void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN;
++extern void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN;
++extern void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN;
++extern void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN;
+
+ void init_dispex_with_compat_mode(DispatchEx*,IUnknown*,dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN;
+ void release_dispex(DispatchEx*) DECLSPEC_HIDDEN;
+From cc7f698b8245a48669d248569e7589ff824f2c70 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:23 -0600
+Subject: [PATCH] msi: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Hans Leidekker <hans@codeweavers.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/msi/msi.c | 2 ++
+ dlls/msi/msipriv.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
+index 7bf5004bed1..6387b0a9372 100644
+--- a/wine/dlls/msi/msi.c
++++ b/wine/dlls/msi/msi.c
+@@ -51,6 +51,8 @@
+
+ WINE_DEFAULT_DEBUG_CHANNEL(msi);
+
++BOOL is_wow64;
++
+ static const WCHAR installerW[] = {'\\','I','n','s','t','a','l','l','e','r',0};
+
+ UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context)
+diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
+index fca2f9e7b4d..6b87cfb3d86 100644
+--- a/wine/dlls/msi/msipriv.h
++++ b/wine/dlls/msi/msipriv.h
+@@ -42,7 +42,7 @@
+ #include "winemsi.h"
+
+ static const BOOL is_64bit = sizeof(void *) > sizeof(int);
+-BOOL is_wow64 DECLSPEC_HIDDEN;
++extern BOOL is_wow64 DECLSPEC_HIDDEN;
+
+ #define MSI_DATASIZEMASK 0x00ff
+ #define MSITYPE_VALID 0x0100
+From c13d58780f78393571dfdeb5b4952e3dcd7ded90 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:24 -0600
+Subject: [PATCH] sane.ds: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/sane.ds/sane_i.h | 6 ++++--
+ dlls/sane.ds/sane_main.c | 18 ++++++++++++++++++
+ 2 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/sane.ds/sane_i.h b/dlls/sane.ds/sane_i.h
+index 941e8b9e1b9..9351bdc2229 100644
+--- a/wine/dlls/sane.ds/sane_i.h
++++ b/wine/dlls/sane.ds/sane_i.h
+@@ -36,7 +36,7 @@
+ #include "twain.h"
+
+ #ifdef SONAME_LIBSANE
+-#define MAKE_FUNCPTR(f) typeof(f) * p##f DECLSPEC_HIDDEN;
++#define MAKE_FUNCPTR(f) extern typeof(f) * p##f DECLSPEC_HIDDEN;
+ MAKE_FUNCPTR(sane_init)
+ MAKE_FUNCPTR(sane_exit)
+ MAKE_FUNCPTR(sane_get_devices)
+@@ -84,7 +84,9 @@ struct tagActiveDS
+ TW_FIX32 defaultXResolution;
+ BOOL YResolutionSet;
+ TW_FIX32 defaultYResolution;
+-} activeDS DECLSPEC_HIDDEN;
++};
++
++extern struct tagActiveDS activeDS DECLSPEC_HIDDEN;
+
+ /* Helper functions */
+ extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN;
+diff --git a/dlls/sane.ds/sane_main.c b/dlls/sane.ds/sane_main.c
+index 7af0a2321ac..0cf211d0983 100644
+--- a/wine/dlls/sane.ds/sane_main.c
++++ b/wine/dlls/sane.ds/sane_main.c
+@@ -30,9 +30,27 @@
+
+ WINE_DEFAULT_DEBUG_CHANNEL(twain);
+
++struct tagActiveDS activeDS;
++
+ DSMENTRYPROC SANE_dsmentry;
+
+ #ifdef SONAME_LIBSANE
++#define MAKE_FUNCPTR(f) typeof(f) * p##f;
++MAKE_FUNCPTR(sane_init)
++MAKE_FUNCPTR(sane_exit)
++MAKE_FUNCPTR(sane_get_devices)
++MAKE_FUNCPTR(sane_open)
++MAKE_FUNCPTR(sane_close)
++MAKE_FUNCPTR(sane_get_option_descriptor)
++MAKE_FUNCPTR(sane_control_option)
++MAKE_FUNCPTR(sane_get_parameters)
++MAKE_FUNCPTR(sane_start)
++MAKE_FUNCPTR(sane_read)
++MAKE_FUNCPTR(sane_cancel)
++MAKE_FUNCPTR(sane_set_io_mode)
++MAKE_FUNCPTR(sane_get_select_fd)
++MAKE_FUNCPTR(sane_strstatus)
++#undef MAKE_FUNCPTR
+
+ HINSTANCE SANE_instance;
+
+From 93888fbb3e4d973f5878a0aab16a9d64fb73a764 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:25 -0600
+Subject: [PATCH] secur32: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/secur32/ntlm.c | 4 ++--
+ dlls/secur32/secur32_priv.h | 3 ---
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c
+index b368a5f0165..4e3fda3ea98 100644
+--- a/wine/dlls/secur32/ntlm.c
++++ b/wine/dlls/secur32/ntlm.c
+@@ -1387,8 +1387,8 @@ static const SecPkgInfoA infoA = {
+ ntlm_comment_A
+ };
+
+-SecPkgInfoA *ntlm_package_infoA = (SecPkgInfoA *)&infoA;
+-SecPkgInfoW *ntlm_package_infoW = (SecPkgInfoW *)&infoW;
++static SecPkgInfoA *ntlm_package_infoA = (SecPkgInfoA *)&infoA;
++static SecPkgInfoW *ntlm_package_infoW = (SecPkgInfoW *)&infoW;
+
+ static SecPkgInfoW *build_package_infoW( const SecPkgInfoW *info )
+ {
+diff --git a/dlls/secur32/secur32_priv.h b/dlls/secur32/secur32_priv.h
+index 5ed26d67ef2..1bff1372b08 100644
+--- a/wine/dlls/secur32/secur32_priv.h
++++ b/wine/dlls/secur32/secur32_priv.h
+@@ -190,9 +190,6 @@ void SECUR32_arc4Cleanup(arc4_info *a4i) DECLSPEC_HIDDEN;
+ #define NTLMSSP_NEGOTIATE_56 0x80000000
+
+
+-SecPkgInfoW *ntlm_package_infoW DECLSPEC_HIDDEN;
+-SecPkgInfoA *ntlm_package_infoA DECLSPEC_HIDDEN;
+-
+ /* schannel internal interface */
+ typedef struct schan_imp_session_opaque *schan_imp_session;
+
+From 4a91eb362666b3af549c48b95e093051756628e0 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:26 -0600
+Subject: [PATCH] twain_32: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/twain_32/twain32_main.c | 4 +++-
+ dlls/twain_32/twain_i.h | 6 +++---
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/dlls/twain_32/twain32_main.c b/dlls/twain_32/twain32_main.c
+index b1beb969580..0f8ee144306 100644
+--- a/wine/dlls/twain_32/twain32_main.c
++++ b/wine/dlls/twain_32/twain32_main.c
+@@ -29,7 +29,9 @@
+
+ WINE_DEFAULT_DEBUG_CHANNEL(twain);
+
+-extern HINSTANCE DSM_hinstance;
++TW_UINT16 DSM_twCC;
++activeDS *activeSources;
++HINSTANCE DSM_hinstance;
+
+ BOOL WINAPI DllMain (HINSTANCE hinstance, DWORD reason, LPVOID reserved)
+ {
+diff --git a/dlls/twain_32/twain_i.h b/dlls/twain_32/twain_i.h
+index 7939d233bb0..ad513458cdc 100644
+--- a/wine/dlls/twain_32/twain_i.h
++++ b/wine/dlls/twain_32/twain_i.h
+@@ -45,11 +45,11 @@ typedef struct tagActiveDS
+ HWND event_window;
+ } activeDS;
+
+-TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */
++extern TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */
+
+-activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */
++extern activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */
+
+-HINSTANCE DSM_hinstance DECLSPEC_HIDDEN;
++extern HINSTANCE DSM_hinstance DECLSPEC_HIDDEN;
+
+ /* Implementation of operation triplets (From Application to Source Manager) */
+ extern TW_UINT16 TWAIN_CloseDS
+From bc51c5d589de709e1d393b58b0cc5985c78061ac Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:28 -0600
+Subject: [PATCH] webservices: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Hans Leidekker <hans@codeweavers.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/webservices/webservices_private.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/dlls/webservices/webservices_private.h b/dlls/webservices/webservices_private.h
+index 6f2b90dad28..b352aa52d49 100644
+--- a/wine/dlls/webservices/webservices_private.h
++++ b/wine/dlls/webservices/webservices_private.h
+@@ -18,7 +18,7 @@
+
+ #include "winhttp.h"
+
+-_locale_t c_locale DECLSPEC_HIDDEN;
++extern _locale_t c_locale DECLSPEC_HIDDEN;
+
+ #define STREAM_BUFSIZE 4096
+
+@@ -50,8 +50,8 @@ struct dictionary
+ ULONG current_sequence;
+ ULONG *sequence;
+ };
+-struct dictionary dict_builtin DECLSPEC_HIDDEN;
+-const struct dictionary dict_builtin_static DECLSPEC_HIDDEN;
++extern struct dictionary dict_builtin DECLSPEC_HIDDEN;
++extern const struct dictionary dict_builtin_static DECLSPEC_HIDDEN;
+
+ int find_string( const struct dictionary *, const unsigned char *, ULONG, ULONG * ) DECLSPEC_HIDDEN;
+ HRESULT insert_string( struct dictionary *, unsigned char *, ULONG, int, ULONG * ) DECLSPEC_HIDDEN;
+From da21c305164c3e585e29e20242afc5a31f91989f Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:27 -0600
+Subject: [PATCH] wbemprox: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/wbemprox/main.c | 2 ++
+ dlls/wbemprox/wbemprox_private.h | 4 ++--
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/wbemprox/main.c b/dlls/wbemprox/main.c
+index d90f4f8cc63..09084414983 100644
+--- a/wine/dlls/wbemprox/main.c
++++ b/wine/dlls/wbemprox/main.c
+@@ -35,6 +35,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
+ static HINSTANCE instance;
+
++struct list *table_list;
++
+ typedef HRESULT (*fnCreateInstance)( LPVOID *ppObj );
+
+ typedef struct
+diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
+index 9d39a7c92ba..9096b392e38 100644
+--- a/wine/dlls/wbemprox/wbemprox_private.h
++++ b/wine/dlls/wbemprox/wbemprox_private.h
+@@ -20,8 +20,8 @@
+ #include "wine/heap.h"
+ #include "wine/list.h"
+
+-IClientSecurity client_security DECLSPEC_HIDDEN;
+-struct list *table_list DECLSPEC_HIDDEN;
++extern IClientSecurity client_security DECLSPEC_HIDDEN;
++extern struct list *table_list DECLSPEC_HIDDEN;
+
+ enum param_direction
+ {
+From 388348ddbf7d138fed3a6fe48bf6666a95ef3528 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:29 -0600
+Subject: [PATCH] winebus: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/winebus.sys/bus.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/winebus.sys/bus.h b/dlls/winebus.sys/bus.h
+index 041a37ad040..22a4b46a516 100644
+--- a/wine/dlls/winebus.sys/bus.h
++++ b/wine/dlls/winebus.sys/bus.h
+@@ -54,5 +54,5 @@ DEVICE_OBJECT* bus_enumerate_hid_devices(const platform_vtbl *vtbl, enum_func fu
+ DWORD check_bus_option(const UNICODE_STRING *option, DWORD default_value) DECLSPEC_HIDDEN;
+ BOOL is_xbox_gamepad(WORD vid, WORD pid) DECLSPEC_HIDDEN;
+
+-HANDLE driver_key DECLSPEC_HIDDEN;
+-DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN;
++extern HANDLE driver_key DECLSPEC_HIDDEN;
++extern DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN;
+From 44e69405adcdc98d6b0777e6c0acb2697d776ef8 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Thu, 23 Jan 2020 17:05:30 -0600
+Subject: [PATCH] xinput: Global variable compatibility update for gcc 10.
+
+Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
+Signed-off-by: Alexandre Julliard <julliard@winehq.org>
+---
+ dlls/xinput1_3/xinput_private.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/xinput1_3/xinput_private.h b/dlls/xinput1_3/xinput_private.h
+index 7de9a2a2e4d..0de4f3b0b03 100644
+--- a/wine/dlls/xinput1_3/xinput_private.h
++++ b/wine/dlls/xinput1_3/xinput_private.h
+@@ -27,8 +27,8 @@ typedef struct _xinput_controller
+ XINPUT_VIBRATION vibration;
+ } xinput_controller;
+
+-CRITICAL_SECTION xinput_crit;
+-xinput_controller controllers[XUSER_MAX_COUNT];
++extern CRITICAL_SECTION xinput_crit;
++extern xinput_controller controllers[XUSER_MAX_COUNT];
+
+ void HID_find_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN;
+ void HID_destroy_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN;