Added patches to improve crosscompiling Wine for other platforms.

This commit is contained in:
Sebastian Lackner 2015-06-21 20:21:23 +02:00
parent 6b5229ca83
commit 5f9893a79d
4 changed files with 117 additions and 17 deletions

1
debian/changelog vendored
View File

@ -5,6 +5,7 @@ wine-staging (1.7.46) UNRELEASED; urgency=low
* Added patch to fix possible use-after-free in wineserver device IPR code.
* Added patch to fix wineserver crash when pipe server object is destroyed
before client (fixes Wine Staging Bug #393).
* Added patches to improve crosscompiling Wine for other platforms.
* Updated kernel32-GetVolumePathName to fix several test failures.
* Updated ntoskrnl-Emulator patchset to implement emulation of MOVZX
instruction on x86_64.

View File

@ -0,0 +1,39 @@
From 463cba8291e1dba1f381e0930926bc0c4bc26916 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 21 Jun 2015 20:00:18 +0200
Subject: configure.ac: Search for otool using AC_CHECK_TOOL.
This is necessary to allow using otool from custom host toolchains like i686-apple-darwin12-otool.
---
aclocal.m4 | 2 +-
configure.ac | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/aclocal.m4 b/aclocal.m4
index 3d43721..9993de1 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -62,7 +62,7 @@ LIBS="-l$1 $5 $LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
[case "$LIBEXT" in
dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
- dylib) AS_VAR_SET(ac_Lib,[`otool -L conftest$ac_exeext | grep "ac_lib_pattern\\.[[0-9A-Za-z.]]*dylib" | sed -e "s/^.*\/\(ac_lib_pattern\.[[0-9A-Za-z.]]*dylib\).*$/\1/"';2,$d'`]) ;;
+ dylib) AS_VAR_SET(ac_Lib,[`$ac_cv_prog_OTOOL -L conftest$ac_exeext | grep "ac_lib_pattern\\.[[0-9A-Za-z.]]*dylib" | sed -e "s/^.*\/\(ac_lib_pattern\.[[0-9A-Za-z.]]*dylib\).*$/\1/"';2,$d'`]) ;;
*) AS_VAR_SET(ac_Lib,[`$READELF -d conftest$ac_exeext | grep "NEEDED.*ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\\m4_dquote(\\(ac_lib_pattern\\.$LIBEXT[[^ ]]*\\)\\).*$/\1/"';2,$d'`])
AS_VAR_IF([ac_Lib],[],
[AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^ ]]*\).*$/\1/"';2,$d'`])]) ;;
diff --git a/configure.ac b/configure.ac
index f9df3f0..3587a12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -268,6 +268,7 @@ fi
AC_CHECK_TOOLS(AR,[ar gar],ar)
AC_CHECK_TOOL(STRIP,strip,strip)
+AC_CHECK_TOOL(OTOOL,otool,otool)
AC_SUBST(ARFLAGS,rc)
AC_PROG_RANLIB
AC_PROG_LN_S
--
2.4.3

View File

@ -0,0 +1,42 @@
From eb555bcc219bdd332d0bff45aa66c26f7a846307 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 21 Jun 2015 20:04:34 +0200
Subject: configure.ac: Remove check for strength-reduce bug.
This was bug was fixed in gcc-2.7.2.1 which was released 19 years ago.
When cross compiling, the configure check currently assumes that the bug
is present, which produces a lot of noise with non-gcc compilers.
---
configure.ac | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3587a12..fa6a542 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1788,22 +1788,6 @@ if test "x${GCC}" = "xyes"
then
EXTRACFLAGS="-Wall -pipe"
- dnl Check for strength-reduce bug
- AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[int L[[4]] = {0,1,2,3};]],
-[[static int Array[[3]];
- unsigned int B = 3;
- int i;
- for(i=0; i<B; i++) Array[[i]] = i - 3;
- for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
- L[[i]] = 4;
- return (Array[[1]] != -2 || L[[2]] != 3)]])],
- [ac_cv_c_gcc_strength_bug="no"],[ac_cv_c_gcc_strength_bug="yes"],[ac_cv_c_gcc_strength_bug="yes"]) )
- if test "$ac_cv_c_gcc_strength_bug" = "yes"
- then
- EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
- fi
-
dnl Check for some compiler flags
WINE_TRY_CFLAGS([-fno-builtin],[AC_SUBST(BUILTINFLAG,"-fno-builtin")])
WINE_TRY_CFLAGS([-fno-strict-aliasing])
--
2.4.3

View File

@ -86,6 +86,7 @@ patch_enable_all ()
enable_combase_String="$1"
enable_comctl32_LoadIconMetric="$1"
enable_configure_Absolute_RPATH="$1"
enable_configure_Crosscompiling="$1"
enable_crypt32_CMS_Certificates="$1"
enable_d3d11_D3D11CreateDeviceAndSwapChain="$1"
enable_d3d9_DesktopWindow="$1"
@ -336,6 +337,9 @@ patch_enable ()
configure-Absolute_RPATH)
enable_configure_Absolute_RPATH="$2"
;;
configure-Crosscompiling)
enable_configure_Crosscompiling="$2"
;;
crypt32-CMS_Certificates)
enable_crypt32_CMS_Certificates="$2"
;;
@ -2157,6 +2161,20 @@ if test "$enable_configure_Absolute_RPATH" -eq 1; then
) >> "$patchlist"
fi
# Patchset configure-Crosscompiling
# |
# | Modified files:
# | * aclocal.m4, configure.ac
# |
if test "$enable_configure_Crosscompiling" -eq 1; then
patch_apply configure-Crosscompiling/0001-configure.ac-Search-for-otool-using-AC_CHECK_TOOL.patch
patch_apply configure-Crosscompiling/0002-configure.ac-Remove-check-for-strength-reduce-bug.patch
(
echo '+ { "Michael Müller", "configure.ac: Search for otool using AC_CHECK_TOOL.", 1 },';
echo '+ { "Michael Müller", "configure.ac: Remove check for strength-reduce bug.", 1 },';
) >> "$patchlist"
fi
# Patchset crypt32-CMS_Certificates
# |
# | This patchset fixes the following Wine bugs:
@ -5033,15 +5051,15 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-resource_check_usage
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/resource.c
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_resource_check_usage" -eq 1; then
patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },';
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
@ -5057,6 +5075,18 @@ if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-resource_check_usage
# |
# | Modified files:
# | * dlls/wined3d/resource.c
# |
if test "$enable_wined3d_resource_check_usage" -eq 1; then
patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch
(
echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:
@ -5106,18 +5136,6 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset fixes the following Wine bugs: