[wine] Update to 1.7.39

mooninite mooninite at fedoraproject.org
Tue Mar 24 02:58:06 UTC 2015


commit 764a0da0a3827f9e8d886f61d43d29b525107f17
Author: Michael Cronenworth <mike at cchtml.com>
Date:   Mon Mar 23 21:57:56 2015 -0500

    Update to 1.7.39

 .gitignore      |   6 +--
 sources         |   6 +--
 wine-gcc5.patch | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 wine.spec       |  28 +++++-----
 4 files changed, 182 insertions(+), 19 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 562e43c..68c8868 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/wine-1.7.38.tar.bz2
-/wine-1.7.38.tar.bz2.sign
-/wine-staging-1.7.38.tar.gz
+/wine-1.7.39.tar.bz2
+/wine-1.7.39.tar.bz2.sign
+/wine-staging-1.7.39.tar.gz
diff --git a/sources b/sources
index 59fb56f..12e114f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-0e2c4eae7b5093cb4b7018974994915f  wine-1.7.38.tar.bz2
-63ed73652a1b0068ca096f1324e643d6  wine-1.7.38.tar.bz2.sign
-a6385ebf1c6830cc4732bb9a49bb4419  wine-staging-1.7.38.tar.gz
+eada8f9fde77a72e1d1f682020d4cbfe  wine-1.7.39.tar.bz2
+3d1c993249d4ca1971a69724657286ab  wine-1.7.39.tar.bz2.sign
+88b30faba37a5889843a96bfbc81af35  wine-staging-1.7.39.tar.gz
diff --git a/wine-gcc5.patch b/wine-gcc5.patch
new file mode 100644
index 0000000..e90ede6
--- /dev/null
+++ b/wine-gcc5.patch
@@ -0,0 +1,161 @@
+--- wine-1.7.38/dlls/ntdll/sec.c.orig	2015-03-06 07:27:36.000000000 -0600
++++ wine-1.7.38/dlls/ntdll/sec.c	2015-03-19 10:42:37.117665983 -0500
+@@ -1714,7 +1714,7 @@
+  * the native function returns something like
+  * "S-1-5-21-0000000000-000000000-0000000000-500";
+  */
+-NTSTATUS WINAPI RtlConvertSidToUnicodeString(
++NTSTATUS WINAPI __attribute__((optimize("O0"))) RtlConvertSidToUnicodeString(
+        PUNICODE_STRING String,
+        PSID pSid,
+        BOOLEAN AllocateString)
+--- wine-1.7.38/dlls/ntdll/directory.c.orig	2015-03-19 13:53:47.952588902 -0500
++++ wine-1.7.38/dlls/ntdll/directory.c	2015-03-19 13:52:51.571954998 -0500
+@@ -3008,7 +3008,7 @@
+  * element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is
+  * returned, but the unix name is still filled in properly.
+  */
+-NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret,
++NTSTATUS CDECL __attribute__((optimize("O0"))) wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret,
+                                           UINT disposition, BOOLEAN check_case )
+ {
+     static const WCHAR unixW[] = {'u','n','i','x'};
+--- wine-1.7.38/dlls/kernel32/volume.c.orig	2015-03-19 15:01:23.647111174 -0500
++++ wine-1.7.38/dlls/kernel32/volume.c	2015-03-19 15:00:59.460854627 -0500
+@@ -714,7 +714,7 @@
+ /***********************************************************************
+  *           GetVolumeInformationW   (KERNEL32.@)
+  */
+-BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len,
++BOOL WINAPI __attribute__((optimize("O0"))) GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len,
+                                    DWORD *serial, DWORD *filename_len, DWORD *flags,
+                                    LPWSTR fsname, DWORD fsname_len )
+ {
+--- wine-1.7.39/dlls/ntdll/virtual.c.orig	2015-03-23 09:22:18.512141978 -0500
++++ wine-1.7.39/dlls/ntdll/virtual.c	2015-03-23 09:22:47.951415202 -0500
+@@ -2346,7 +2346,7 @@
+  *             NtQueryVirtualMemory   (NTDLL.@)
+  *             ZwQueryVirtualMemory   (NTDLL.@)
+  */
+-NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr,
++NTSTATUS WINAPI __attribute__((optimize("O0"))) NtQueryVirtualMemory( HANDLE process, LPCVOID addr,
+                                       MEMORY_INFORMATION_CLASS info_class, PVOID buffer,
+                                       SIZE_T len, SIZE_T *res_len )
+ {
+--- wine-1.7.39/dlls/kernel32/process.c.orig	2015-03-23 11:35:21.490412754 -0500
++++ wine-1.7.39/dlls/kernel32/process.c	2015-03-23 12:12:36.928665968 -0500
+@@ -1088,7 +1088,7 @@
+  *
+  * Startup routine of a new process. Runs on the new process stack.
+  */
+-static DWORD WINAPI start_process( PEB *peb )
++static DWORD WINAPI __attribute__((optimize("O0"))) start_process( PEB *peb )
+ {
+     IMAGE_NT_HEADERS *nt;
+     LPTHREAD_START_ROUTINE entry;
+--- wine-1.7.39/dlls/winex11.drv/window.c.orig	2015-03-23 12:14:36.789785691 -0500
++++ wine-1.7.39/dlls/winex11.drv/window.c	2015-03-23 12:35:56.656863213 -0500
+@@ -1270,7 +1270,7 @@
+  *
+  * Synchronize the X client window position with the Windows one
+  */
+-static void sync_client_position( struct x11drv_win_data *data,
++static void __attribute__((optimize("O0"))) sync_client_position( struct x11drv_win_data *data,
+                                   const RECT *old_client_rect, const RECT *old_whole_rect )
+ {
+     int mask = 0;
+--- wine-1.7.39/dlls/gdi32/freetype.c.orig	2015-03-20 08:41:44.000000000 -0500
++++ wine-1.7.39/dlls/gdi32/freetype.c	2015-03-23 14:15:25.884759565 -0500
+@@ -6389,7 +6389,7 @@
+ 
+ static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
+ 
+-static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format,
++static DWORD __attribute__((optimize("O0"))) get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format,
+                                LPGLYPHMETRICS lpgm, ABC *abc, DWORD buflen, LPVOID buf,
+                                const MAT2* lpmat)
+ {
+--- wine-1.7.39/dlls/rpcrt4/rpc_binding.c.orig	2015-03-20 08:41:44.000000000 -0500
++++ wine-1.7.39/dlls/rpcrt4/rpc_binding.c	2015-03-23 17:00:45.215424859 -0500
+@@ -984,7 +984,7 @@
+ /***********************************************************************
+  *             RpcBindingCopy (RPCRT4.@)
+  */
+-RPC_STATUS RPC_ENTRY RpcBindingCopy(
++RPC_STATUS RPC_ENTRY __attribute__((optimize("O0"))) RpcBindingCopy(
+   RPC_BINDING_HANDLE SourceBinding,
+   RPC_BINDING_HANDLE* DestinationBinding)
+ {
+--- wine-1.7.39/dlls/gdi32/font.c.orig	2015-03-23 20:33:48.751656009 -0500
++++ wine-1.7.39/dlls/gdi32/font.c	2015-03-23 20:33:52.295693767 -0500
+@@ -1297,7 +1297,7 @@
+  * Return the size of the string as it would be if it was output properly by
+  * e.g. TextOut.
+  */
+-BOOL WINAPI GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext,
++BOOL WINAPI __attribute__((optimize("O0"))) GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext,
+                                    LPINT nfit, LPINT dxs, LPSIZE size )
+ {
+     DC *dc;
+--- wine-1.7.39/dlls/gdi32/mapping.c.orig	2015-03-23 20:21:39.025790911 -0500
++++ wine-1.7.39/dlls/gdi32/mapping.c	2015-03-23 20:27:31.380589949 -0500
+@@ -324,7 +324,7 @@
+ /***********************************************************************
+  *           DPtoLP    (GDI32.@)
+  */
+-BOOL WINAPI DPtoLP( HDC hdc, LPPOINT points, INT count )
++BOOL WINAPI __attribute__((optimize("O0"))) DPtoLP( HDC hdc, LPPOINT points, INT count )
+ {
+     DC * dc = get_dc_ptr( hdc );
+     if (!dc) return FALSE;
+@@ -352,7 +352,7 @@
+ /***********************************************************************
+  *           LPtoDP    (GDI32.@)
+  */
+-BOOL WINAPI LPtoDP( HDC hdc, LPPOINT points, INT count )
++BOOL WINAPI __attribute__((optimize("O0"))) LPtoDP( HDC hdc, LPPOINT points, INT count )
+ {
+     DC * dc = get_dc_ptr( hdc );
+     if (!dc) return FALSE;
+--- wine-1.7.39/dlls/user32/win.c.orig	2015-03-23 21:42:20.861715642 -0500
++++ wine-1.7.39/dlls/user32/win.c	2015-03-23 21:45:49.223517788 -0500
+@@ -2955,7 +2955,7 @@
+ /*****************************************************************
+  *		SetParent (USER32.@)
+  */
+-HWND WINAPI SetParent( HWND hwnd, HWND parent )
++HWND WINAPI __attribute__((optimize("O0"))) SetParent( HWND hwnd, HWND parent )
+ {
+     HWND full_handle;
+     HWND old_parent = 0;
+--- wine-1.7.39/programs/winecfg/appdefaults.c.orig	2015-03-23 21:15:50.402096990 -0500
++++ wine-1.7.39/programs/winecfg/appdefaults.c	2015-03-23 21:16:22.345452810 -0500
+@@ -78,7 +78,7 @@
+ static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion";
+ static const char szKeyProdNT[] = "System\\CurrentControlSet\\Control\\ProductOptions";
+ 
+-static int get_registry_version(void)
++static int __attribute__((optimize("O0"))) get_registry_version(void)
+ {
+     int i, best = -1, platform, major, minor = 0, build = 0;
+     char *p, *ver, *type = NULL;
+--- wine-1.7.39/programs/winemenubuilder/winemenubuilder.c.orig	2015-03-23 21:18:24.651815189 -0500
++++ wine-1.7.39/programs/winemenubuilder/winemenubuilder.c	2015-03-23 21:24:20.565779739 -0500
+@@ -2323,7 +2323,7 @@
+     return ret;
+ }
+ 
+-static void update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId,
++static void __attribute__((optimize("O0"))) update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId,
+     LPCSTR appName, LPCSTR desktopFile, LPCSTR openWithIcon)
+ {
+     static const WCHAR ProgIDW[] = {'P','r','o','g','I','D',0};
+@@ -2400,7 +2400,7 @@
+     HeapFree(GetProcessHeap(), 0, openWithIconW);
+ }
+ 
+-static BOOL cleanup_associations(void)
++static BOOL __attribute__((optimize("O0"))) cleanup_associations(void)
+ {
+     static const WCHAR openW[] = {'o','p','e','n',0};
+     static const WCHAR DesktopFileW[] = {'D','e','s','k','t','o','p','F','i','l','e',0};
diff --git a/wine.spec b/wine.spec
index 31b5817..108dc40 100644
--- a/wine.spec
+++ b/wine.spec
@@ -21,8 +21,8 @@
 %endif
 
 Name:           wine
-Version:        1.7.38
-Release:        3%{?dist}
+Version:        1.7.39
+Release:        1%{?dist}
 Summary:        A compatibility layer for windows applications
 
 Group:          Applications/Emulators
@@ -68,6 +68,8 @@ Source501:      wine-tahoma.conf
 Source502:      wine-README-tahoma
 
 Patch511:       wine-cjk.patch
+# temporary workaround for GCC 5.0 optimization regressions
+Patch512:       wine-gcc5.patch
 
 # wine compholio patches for pipelight.
 # pulseaudio-patch is covered by that patch-set, too.
@@ -615,6 +617,9 @@ This package adds the opencl driver for wine.
 %prep
 %setup -q
 %patch511 -p1 -b.cjk
+%if 0%{?fedora} > 21
+%patch512 -p1 -b.gcc5
+%endif
 
 # setup and apply compholio-patches or pulseaudio-patch.
 # since the pulse patch is included in the compholio patches use it from
@@ -640,20 +645,13 @@ autoreconf
 
 %build
 
-%if 0%{?fedora} > 21
-# GCC 5 has a optimization that causes wine to break
-%ifnarch %{arm}
-export CFLAGS="\
--fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types -fssa-phiopt -ftree-bit-ccp -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-sink -ftree-slsr -ftree-sra -ftree-pta -ftree-ter \
--falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-cp -fipa-cp-alignment -fipa-icf -fipa-icf-functions -fipa-ra -fipa-sra -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp -fvect-cost-model=cheap \
--pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error"
-%else
-export CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -Wno-error"
-%endif
-%else
 # disable fortify as it breaks wine
 # http://bugs.winehq.org/show_bug.cgi?id=24606
 # http://bugs.winehq.org/show_bug.cgi?id=25073
+%if 0%{?fedora} > 21
+export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`"
+export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error"
+%else
 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error"
 %endif
 
@@ -1854,6 +1852,10 @@ fi
 %{_libdir}/wine/opencl.dll.so
 
 %changelog
+* Sun Mar 22 2015 Michael Cronenworth <mike at cchtml.com> 1.7.39-1
+- version upgrade
+- Enable some optimizations and workarounds for GCC5 regressions
+
 * Tue Mar 10 2015 Adam Jackson <ajax at redhat.com> 1.7.38-3
 - Drop sysvinit subpackage on F23+
 


More information about the scm-commits mailing list