forked from pool/mingw32-runtime
- apply patch from trunk, that fixes crash on startup on certain systems
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-runtime?expand=0&rev=18
This commit is contained in:
parent
77b6b7d680
commit
67589f89a7
51
mingw-w64-runtime-1.0.1-fix-startup-crash.patch
Normal file
51
mingw-w64-runtime-1.0.1-fix-startup-crash.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
diff --git a/crt/pseudo-reloc.c b/crt/pseudo-reloc.c
|
||||||
|
index 308ecda..9c582b0 100644
|
||||||
|
--- a/crt/pseudo-reloc.c
|
||||||
|
+++ b/crt/pseudo-reloc.c
|
||||||
|
@@ -252,15 +252,17 @@ restore_modified_sections (void)
|
||||||
|
static void
|
||||||
|
__write_memory (void *addr, const void *src, size_t len)
|
||||||
|
{
|
||||||
|
-#ifndef __MINGW64_VERSION_MAJOR
|
||||||
|
MEMORY_BASIC_INFORMATION b;
|
||||||
|
DWORD oldprot;
|
||||||
|
-#endif /* ! __MINGW64_VERSION_MAJOR */
|
||||||
|
+ int call_unprotect = 0;
|
||||||
|
|
||||||
|
if (!len)
|
||||||
|
return;
|
||||||
|
|
||||||
|
-#ifndef __MINGW64_VERSION_MAJOR
|
||||||
|
+#ifdef __MINGW64_VERSION_MAJOR
|
||||||
|
+ mark_section_writable ((LPVOID) addr);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (!VirtualQuery (addr, &b, sizeof(b)))
|
||||||
|
{
|
||||||
|
__report_error (" VirtualQuery failed for %d bytes at address %p",
|
||||||
|
@@ -269,19 +271,17 @@ __write_memory (void *addr, const void *src, size_t len)
|
||||||
|
|
||||||
|
/* Temporarily allow write access to read-only protected memory. */
|
||||||
|
if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE)
|
||||||
|
- VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE,
|
||||||
|
- &oldprot);
|
||||||
|
-#else /* ! __MINGW64_VERSION_MAJOR */
|
||||||
|
- mark_section_writable ((LPVOID) addr);
|
||||||
|
-#endif /* __MINGW64_VERSION_MAJOR */
|
||||||
|
+ {
|
||||||
|
+ call_unprotect = 1;
|
||||||
|
+ VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE,
|
||||||
|
+ &oldprot);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* write the data. */
|
||||||
|
memcpy (addr, src, len);
|
||||||
|
/* Restore original protection. */
|
||||||
|
-#ifndef __MINGW64_VERSION_MAJOR
|
||||||
|
- if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE)
|
||||||
|
+ if (call_unprotect && b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE)
|
||||||
|
VirtualProtect (b.BaseAddress, b.RegionSize, oldprot, &oldprot);
|
||||||
|
-#endif /* !__MINGW64_VERSION_MAJOR */
|
||||||
|
}
|
||||||
|
|
||||||
|
#define RP_VERSION_V1 0
|
5
mingw32-runtime.changes
Normal file
5
mingw32-runtime.changes
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 20 16:21:59 UTC 2011 - dev@dominik-schmidt.de
|
||||||
|
|
||||||
|
- apply patch from trunk, that fixes crash on startup on certain systems
|
||||||
|
|
@ -16,7 +16,9 @@ URL: http://mingw-w64.sourceforge.net/
|
|||||||
Source0: http://dl.sourceforge.net/sourceforge/mingw-w64/mingw-w64-runtime-%{version}.tar.bz2
|
Source0: http://dl.sourceforge.net/sourceforge/mingw-w64/mingw-w64-runtime-%{version}.tar.bz2
|
||||||
Source100: %{name}-rpmlintrc
|
Source100: %{name}-rpmlintrc
|
||||||
Patch0: mingw-w64-runtime-1.0.1-vfw32mri.patch
|
Patch0: mingw-w64-runtime-1.0.1-vfw32mri.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
# PATCH-FIX-UPSTREAM mingw-w64-runtime-1.0.1-fix-startup-crash.patch - patch taken from trunk, can be dropped with next release
|
||||||
|
Patch1: mingw-w64-runtime-1.0.1-fix-startup-crash.patch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
#!BuildIgnore: post-build-checks
|
#!BuildIgnore: post-build-checks
|
||||||
@ -38,7 +40,7 @@ MinGW Win64 cross-compiler runtime, base libraries.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n mingw-w64-runtime-%{version}
|
%setup -q -n mingw-w64-runtime-%{version}
|
||||||
%patch0 -p0
|
%patch0 -p0
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
./configure --host=%{_mingw32_target} --prefix=%{_prefix} --with-sysroot=%{_mingw32_sysroot} --enable-lib32 --disable-lib64
|
./configure --host=%{_mingw32_target} --prefix=%{_prefix} --with-sysroot=%{_mingw32_sysroot} --enable-lib32 --disable-lib64
|
||||||
|
Loading…
Reference in New Issue
Block a user