I've also been maintaining a winelib build, this continues to build, it's only the mingw build that fails
Anything we can do to work around that? The linker error doesn't really make all that much sense to me since it involves the C++ standard library.
The work around if to not use LTO, or go back to an older version of ld.bfd, also reverting this commit https://github.com/bminor/binutils-gdb/commit/041d1c2d4f03a134cb7574e4d62d2ce4418503ff fixes it
We aren't using LTO by default though?
Then you're fine, I'll update the title
I can confirm that this binutils commit fixes this.
Thanks, do we know when the fix will make it into a release?
According to https://sourceware.org/bugzilla/show_bug.cgi?id=26675#c19 it should already be in 2.36.
from the proton binutils script for build-mingw-w64.sh:
pushd binutils/
if [ ! -e Makefile ]; then
../../$BINUTILS_SRCDIR/configure \
--prefix=$DST_DIR/ \
--build=$BUILD_ARCH \
--host=$HOST_ARCH \
--target=$WIN32_TARGET_ARCH \
--enable-lto \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-nls \
--disable-werror \
$BINUTILS_EXTRA_CONFIGURE
fi
make $JOBS configure-host
make $JOBS LDFLAGS=-all-static
make $JOBS install
popd
and from the gcc build options:
pushd gcc/
if [ ! -e Makefile ]; then
#arguments mostly taken from Arch AUR mingw-w64-gcc PKGBUILD,
#except "--disable-dw2-exceptions" swapped for "--disable-sjlj-exceptions --with-dwarf2"
#for performance reasons on 32-bit
LDFLAGS=-static PATH=$NEWPATH:$PATH ../../$GCC_SRCDIR/configure \
--prefix=$DST_DIR/ \
--build=$BUILD_ARCH \
--host=$HOST_ARCH \
--target=$WIN32_TARGET_ARCH \
--enable-static \
--enable-shared \
--enable-languages=c,lto,c++ \
--disable-multilib \
--enable-threads=posix \
--enable-fully-dynamic-string \
--enable-libstdcxx-time=yes \
--enable-libstdcxx-filesystem-ts=yes \
--enable-cloog-backend=isl \
--enable-libgomp \
--enable-lto \
--disable-sjlj-exceptions \
--with-dwarf2 \
$GCC_EXTRA_CONFIGURE
fi
PATH=$NEWPATH make $JOBS all-gcc
PATH=$NEWPATH make $JOBS install-gcc
popd
--enable-lto is set in the compile options for both, but this is for binutils, not dxvk.
I've just started looking into this as I have a user who claims upstream dxvk when compiled on arch works, but when compiled in proton hangs his vega APU in RE2. reverting https://github.com/doitsujin/dxvk/commit/742b52bbb566ede9fd638817b9d0a1e0c0f6b49b seems to fix it. but im not sure why it would not be affected on arch, but be affected in proton other than build environment differences
GNU Binutils 2.35.2 release
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3bcf28ab4a7205c606e6dfde4f55548f188ad7eb
https://ftp.gnu.org/gnu/binutils/binutils-2.35.2.tar.gz
sorry, 2.35.2 not include https://sourceware.org/bugzilla/show_bug.cgi?id=26675#c14
GNU Binutils 2.36.1 release
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f35674005e609660f5f45005a9e095541ca4c5fe https://ftp.gnu.org/gnu/binutils/binutils-2.36.1.tar.gz
Nothing extracted yet.
This is only on 32bit, and previously worked with 2.34
build.log
This is more of an FYI, I've reported the issue with Gentoo here https://bugs.gentoo.org/745372 and I'll try and find how to report it upstream with the binutils folk