From 8e95e3560a6175962e73fd140e6a4b250928030f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Sat, 26 Dec 2020 23:54:31 -0300 Subject: [PATCH] wine: make it work on i686-musl. -fno-PIC (wine build system) and pie by default (our toolchain) are a bad match. Force -no-pie where necessary. --- srcpkgs/wine/template | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/srcpkgs/wine/template b/srcpkgs/wine/template index 42592c677d9..0e1913df004 100644 --- a/srcpkgs/wine/template +++ b/srcpkgs/wine/template @@ -13,7 +13,15 @@ distfiles="https://dl.winehq.org/wine/source/${version%r*}/wine-${version/r/-r}. checksum=9dd7813918277d89ad3dbbd911eb1a7ada1c92778f17c727ca3a9fba591c7ec5 lib32mode=full -archs="i686 x86_64*" +archs="i686* x86_64*" + +_nopie=no +if [ "$XBPS_TARGET_MACHINE" = i686-musl ]; then + # build system adds -fno-PIC for 32bit builds, which, + # coupled with our default pie toolchain, leads to textrels + # in the final binary; musl doesn't support those + _nopie=yes +fi hostmakedepends="pkg-config flex gettext" makedepends="gettext-devel lcms2-devel zlib-devel ncurses-devel @@ -47,6 +55,18 @@ fi _wine_libexec="/usr/libexec/wine" nopie_files="${_wine_libexec}/wine${_wine_suffix}" +if [ "${_nopie}" = yes ]; then + nopie_files+=" ${_wine_libexec}/wineserver${_wineserver_suffix}" +fi + +pre_build() { + if [ "${_nopie}" = yes ]; then + make LDFLAGS="$LDFLAGS -no-pie" \ + tools/{widl/widl,winebuild/winebuild,winegcc/winegcc,wrc/wrc} \ + loader/wine server/wineserver + fi +} + post_install() { # Font aliasing settings for Win32 applications install -d ${DESTDIR}/etc/fonts/conf.{avail,d} @@ -103,6 +123,9 @@ wine-common_package() { wine-tools_package() { depends="wine-${version}_${revision}" short_desc+=" - development tools" + if [ "${_nopie}" = yes ]; then + nopie=yes + fi pkg_install() { for file in widl winebuild winecpp winedump wineg++ winegcc winemaker wmc wrc function_grep.pl do