enable optimizations, tls patch

f38
Michael Cronenworth 10 years ago
parent 4244dc9ec4
commit eb3fb493f9

@ -1,32 +0,0 @@
--- wine-mono-4.5.6/build-winemono.sh.orig 2015-03-02 11:21:51.000000000 -0600
+++ wine-mono-4.5.6/build-winemono.sh 2015-03-07 23:40:43.725956614 -0600
@@ -62,7 +62,8 @@
cd "$CURDIR/build-cross-$ARCH"
if test 1 != $REBUILD || test ! -e Makefile; then
- CPPFLAGS="-gdwarf-2 -gstrict-dwarf" ../mono/configure --prefix="$CURDIR/build-cross-$ARCH-install" --build=$BUILD --target=$MINGW --host=$MINGW --with-tls=none --disable-mcs-build --enable-win32-dllmain=yes --with-libgc-threads=win32 PKG_CONFIG=false mono_cv_clang=no || exit 1
+ CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic" \
+ CPPFLAGS="-O0 -gdwarf-2 -gstrict-dwarf" ../mono/configure --prefix="$CURDIR/build-cross-$ARCH-install" --build=$BUILD --target=$MINGW --host=$MINGW --with-tls=none --disable-mcs-build --enable-win32-dllmain=yes --with-libgc-threads=win32 PKG_CONFIG=false mono_cv_clang=no || exit 1
sed -e 's/-lgcc_s//' -i libtool
fi
WINEPREFIX=/dev/null make $MAKEOPTS || exit 1
@@ -108,6 +108,7 @@
cd "$CURDIR/build-cross-cli"
if test 1 != $REBUILD || test ! -e Makefile; then
+ CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic" \
../mono/configure --prefix="$CURDIR/build-cross-cli-install" --with-mcs-docs=no --disable-system-aot || exit 1
fi
if test 1 = $USE_MONOLITE; then
--- wine-mono-4.5.6/mono/libgc/win32_threads.c.orig 2015-03-08 00:50:02.940982196 -0600
+++ wine-mono-4.5.6/mono/libgc/win32_threads.c 2015-03-08 00:50:18.624128240 -0600
@@ -165,9 +165,6 @@
* GC_max_thread_index may temporarily be larger than MAX_THREADS.
* To avoid subscript errors, we check on access.
*/
-#ifdef __GNUC__
-__inline__
-#endif
LONG GC_get_max_thread_index()
{
LONG my_max = GC_max_thread_index;

@ -0,0 +1,12 @@
--- wine-mono-4.5.6/mono/libgc/win32_threads.c.orig 2015-03-08 00:50:02.940982196 -0600
+++ wine-mono-4.5.6/mono/libgc/win32_threads.c 2015-03-08 00:50:18.624128240 -0600
@@ -165,9 +165,6 @@
* GC_max_thread_index may temporarily be larger than MAX_THREADS.
* To avoid subscript errors, we check on access.
*/
-#ifdef __GNUC__
-__inline__
-#endif
LONG GC_get_max_thread_index()
{
LONG my_max = GC_max_thread_index;

@ -1,16 +1,16 @@
--- wine-mono-4.5.6/build-winemono.sh.orig 2015-04-20 10:34:32.150114394 -0500
+++ wine-mono-4.5.6/build-winemono.sh 2015-04-20 10:33:13.699274928 -0500
@@ -64,6 +64,7 @@
@@ -63,6 +63,7 @@
cd "$CURDIR/build-cross-$ARCH"
if test 1 != $REBUILD || test ! -e Makefile; then
CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic" \
CPPFLAGS="-O0 -gdwarf-2 -gstrict-dwarf" ../mono/configure --prefix="$CURDIR/build-cross-$ARCH-install" --build=$BUILD --target=$MINGW --host=$MINGW --with-tls=none --disable-mcs-build --enable-win32-dllmain=yes --with-libgc-threads=win32 PKG_CONFIG=false mono_cv_clang=no || exit 1
CPPFLAGS="-gdwarf-2 -gstrict-dwarf" ../mono/configure --prefix="$CURDIR/build-cross-$ARCH-install" --build=$BUILD --target=$MINGW --host=$MINGW --with-tls=none --disable-mcs-build --enable-win32-dllmain=yes --with-libgc-threads=win32 PKG_CONFIG=false mono_cv_clang=no || exit 1
+ sed -e 's+compiler_flags="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld"+compiler_flags="-static"+' -i libtool
sed -e 's/-lgcc_s//' -i libtool
fi
WINEPREFIX=/dev/null make $MAKEOPTS || exit 1
@@ -112,6 +112,7 @@
@@ -109,6 +110,7 @@
cd "$CURDIR/build-cross-cli"
if test 1 != $REBUILD || test ! -e Makefile; then
CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic" \
../mono/configure --prefix="$CURDIR/build-cross-cli-install" --with-mcs-docs=no --disable-system-aot || exit 1
+ sed -e 's+compiler_flags="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld"+compiler_flags="-static"+' -i libtool
fi

@ -0,0 +1,22 @@
--- a/mono/utils/mono-compiler.h 2015-02-27 16:42:27.000000000 -0600
+++ b/mono/utils/mono-compiler.h 2015-04-23 10:52:44.137887962 -0500
@@ -13,7 +13,7 @@
#define MONO_FAST_TLS_SET(x,y) x = y
#define MONO_FAST_TLS_GET(x) x
#define MONO_FAST_TLS_INIT(x)
-#define MONO_FAST_TLS_DECLARE(x) static __thread gpointer x MONO_TLS_FAST;
+#define MONO_FAST_TLS_DECLARE(x) static __thread gpointer __attribute__((used)) x MONO_TLS_FAST;
#if HAVE_TLS_MODEL_ATTR
--- a/mono/metadata/sgen-alloc.c 2015-04-23 11:03:09.641290545 -0500
+++ b/mono/metadata/sgen-alloc.c 2015-04-23 11:02:56.601136395 -0500
@@ -94,7 +94,7 @@
static __thread char *tlab_temp_end;
static __thread char *tlab_real_end;
/* Used by the managed allocator/wbarrier */
-static __thread char **tlab_next_addr;
+static __thread char __attribute__((used)) **tlab_next_addr;
#endif
#ifdef HAVE_KW_THREAD

@ -3,7 +3,7 @@
Name: wine-mono
Version: 4.5.6
Release: 3%{?dist}
Release: 4%{?dist}
Summary: Mono library required for Wine
License: GPLv2 and LGPLv2 and MIT and BSD and MS-PL and MPLv1.1
@ -13,8 +13,12 @@ Source0: http://sourceforge.net/projects/wine/files/Wine%20Mono/%{version
Patch0: wine-mono-build-msifilename.patch
# https://github.com/mono/mono/commit/1445d4821c8091c395264542344dca9df22a2c82
Patch1: wine-mono-valgrind.patch
Patch2: wine-mono-build-cflags.patch
Patch3: wine-mono-build-static.patch
# to statically link in winpthreads
Patch2: wine-mono-build-static.patch
# https://github.com/mono/mono/commit/16ee0252305fbd4f40ea39c3c4421dc7f103f8a0
Patch3: wine-mono-tls.patch
# this function gets optimized out when inlined
Patch4: wine-mono-build-inline.patch
# see git://github.com/madewokherd/wine-mono
@ -57,8 +61,9 @@ Windows Mono library required for Wine.
%setup -q
%patch0 -p1 -b.msifilename
%patch1 -dmono -p1 -b.valgrind
%patch2 -p1 -b.cflags
%patch3 -p1 -b.static
%patch2 -p1 -b.static
%patch3 -dmono -p1 -b.tls
%patch4 -p1 -b.inline
%build
MAKEOPTS=%{_smp_mflags} MSIFILENAME=wine-mono-%{version}.msi ./build-winemono.sh
@ -95,6 +100,9 @@ cp mono-basic/LICENSE mono-basic-LICENSE
%{_datadir}/wine/mono/wine-mono-%{version}.msi
%changelog
* Thu Apr 23 2015 Michael Cronenworth <mike@cchtml.com> - 4.5.6-4
- enable optimizations, tls patch
* Mon Apr 20 2015 Michael Cronenworth <mike@cchtml.com> - 4.5.6-3
- statically link DLLs (#1213427)

Loading…
Cancel
Save