MSYS2-packages/mingw-w64-cross-gcc-git/5.0-libitm-cygwin.patch

179 lines
6.7 KiB
Diff

--- origsrc/gcc-4.8.0/gcc/builtin-attrs.def 2013-01-10 14:38:27.000000000 -0600
+++ src/gcc-4.8.0/gcc/builtin-attrs.def 2013-03-24 03:12:36.171830700 -0500
@@ -107,6 +107,7 @@ DEF_ATTR_IDENT (ATTR_TYPEGENERIC, "type
DEF_ATTR_IDENT (ATTR_TM_REGPARM, "*tm regparm")
DEF_ATTR_IDENT (ATTR_TM_TMPURE, "transaction_pure")
DEF_ATTR_IDENT (ATTR_RETURNS_TWICE, "returns_twice")
+DEF_ATTR_IDENT (ATTR_SYSV_ABI, "sysv_abi")
DEF_ATTR_TREE_LIST (ATTR_NOVOPS_LIST, ATTR_NOVOPS, ATTR_NULL, ATTR_NULL)
@@ -254,6 +255,8 @@ DEF_ATTR_TREE_LIST (ATTR_TM_CONST_NOTHRO
ATTR_TM_REGPARM, ATTR_NULL, ATTR_CONST_NOTHROW_LIST)
DEF_ATTR_TREE_LIST (ATTR_TM_NOTHROW_RT_LIST,
ATTR_RETURNS_TWICE, ATTR_NULL, ATTR_TM_NOTHROW_LIST)
+DEF_ATTR_TREE_LIST (ATTR_TM_NOTHROW_RT_SYSV_LIST,
+ ATTR_SYSV_ABI, ATTR_NULL, ATTR_TM_NOTHROW_RT_LIST)
/* Same attributes used for BUILT_IN_MALLOC except with TM_PURE thrown in. */
DEF_ATTR_TREE_LIST (ATTR_TMPURE_MALLOC_NOTHROW_LIST,
--- origsrc/gcc-4.8.0/gcc/gtm-builtins.def 2012-01-25 14:32:57.000000000 -0600
+++ src/gcc-4.8.0/gcc/gtm-builtins.def 2013-03-24 03:11:58.649684600 -0500
@@ -1,5 +1,5 @@
DEF_TM_BUILTIN (BUILT_IN_TM_START, "_ITM_beginTransaction",
- BT_FN_UINT32_UINT32_VAR, ATTR_TM_NOTHROW_RT_LIST)
+ BT_FN_UINT32_UINT32_VAR, ATTR_TM_NOTHROW_RT_SYSV_LIST)
DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT, "_ITM_commitTransaction",
BT_FN_VOID, ATTR_TM_NOTHROW_LIST)
--- origsrc/gcc-4.8-20130310/libitm/Makefile.am 2012-02-14 07:14:27.000000000 -0600
+++ src/gcc-4.8-20130310/libitm/Makefile.am 2013-03-17 04:58:44.672486200 -0500
@@ -54,7 +54,7 @@
# want or need libstdc++.
libitm_la_DEPENDENCIES = $(libitm_version_dep)
libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS)
-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script)
+libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(lt_host_flags)
libitm_la_SOURCES = \
aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \
--- origsrc/gcc-4.8-20130310/libitm/Makefile.in 2013-03-10 17:37:36.000000000 -0500
+++ src/gcc-4.8-20130310/libitm/Makefile.in 2013-03-17 05:12:23.653329200 -0500
@@ -279,6 +279,7 @@
link_itm = @link_itm@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_host_flags = @lt_host_flags@
mandir = @mandir@
mkdir_p = @mkdir_p@
multi_basedir = @multi_basedir@
@@ -329,7 +330,7 @@
# want or need libstdc++.
libitm_la_DEPENDENCIES = $(libitm_version_dep)
libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS)
-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script)
+libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(lt_host_flags)
libitm_la_SOURCES = aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc \
barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \
retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \
--- origsrc/gcc-4.8-20130310/libitm/aclocal.m4 2013-03-10 17:37:36.000000000 -0500
+++ src/gcc-4.8-20130310/libitm/aclocal.m4 2013-03-17 03:01:59.966866400 -0500
@@ -996,6 +996,7 @@ m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
m4_include([../config/futex.m4])
m4_include([../config/lead-dot.m4])
+m4_include([../config/lthostflags.m4])
m4_include([../config/mmap.m4])
m4_include([../config/multi.m4])
m4_include([../config/override.m4])
--- origsrc/gcc-4.8-20130310/libitm/configure 2013-03-10 17:37:36.000000000 -0500
+++ src/gcc-4.8-20130310/libitm/configure 2013-03-17 03:02:07.416876700 -0500
@@ -630,6 +630,7 @@ MAINTAINER_MODE_FALSE
MAINTAINER_MODE_TRUE
enable_static
enable_shared
+lt_host_flags
CXXCPP
CPP
OTOOL64
@@ -15139,6 +15140,28 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+case $host in
+ *-cygwin* | *-mingw*)
+ # 'host' will be top-level target in the case of a target lib,
+ # we must compare to with_cross_host to decide if this is a native
+ # or cross-compiler and select where to install dlls appropriately.
+ if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"';
+ else
+ lt_host_flags='-no-undefined -bindir "$(bindir)"';
+ fi
+ ;;
+ *)
+ lt_host_flags=
+ ;;
+esac
+
+
+
+
--- origsrc/gcc-4.8-20130310/libitm/configure.ac 2013-02-03 11:46:11.000000000 -0600
+++ src/gcc-4.8-20130310/libitm/configure.ac 2013-03-17 02:56:04.926376500 -0500
@@ -147,6 +147,7 @@ AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_
# Configure libtool
AM_PROG_LIBTOOL
+ACX_LT_HOST_FLAGS
AC_SUBST(enable_shared)
AC_SUBST(enable_static)
--- origsrc/gcc-4.7.2/libitm/configure.tgt 2012-02-13 15:51:44.000000000 -0600
+++ src/gcc-4.7.2/libitm/configure.tgt 2013-03-05 05:39:29.757102000 -0600
@@ -131,7 +131,7 @@ case "${target}" in
*-*-gnu* | *-*-k*bsd*-gnu \
| *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \
| *-*-solaris2* | *-*-sysv4* | *-*-hpux11* \
- | *-*-darwin* | *-*-aix* | *-*-dragonfly*)
+ | *-*-darwin* | *-*-aix* | *-*-dragonfly* | *-*-cygwin*)
# POSIX system. The OS is supported.
;;
--- origsrc/gcc-4.8.0/libitm/libitm.h 2013-02-03 11:46:11.000000000 -0600
+++ src/gcc-4.8.0/libitm/libitm.h 2013-03-24 03:08:50.036896600 -0500
@@ -45,6 +45,7 @@ extern "C" {
#define ITM_NORETURN __attribute__((noreturn))
#define ITM_PURE __attribute__((transaction_pure))
+#define ITM_SYSV __attribute__((sysv_abi))
/* The following are externally visible definitions and functions, though
only very few of these should be called by user code. */
@@ -136,7 +137,7 @@ typedef uint64_t _ITM_transactionId_t; /
extern _ITM_transactionId_t _ITM_getTransactionId(void) ITM_REGPARM;
-extern uint32_t _ITM_beginTransaction(uint32_t, ...) ITM_REGPARM;
+extern uint32_t _ITM_beginTransaction(uint32_t, ...) ITM_REGPARM ITM_SYSV;
extern void _ITM_abortTransaction(_ITM_abortReason) ITM_REGPARM ITM_NORETURN;
--- origsrc/gcc-4.8.0/libitm/libitm_i.h 2013-02-03 11:46:11.000000000 -0600
+++ src/gcc-4.8.0/libitm/libitm_i.h 2013-03-24 03:38:48.084780000 -0500
@@ -39,8 +39,10 @@
#include "local_type_traits"
#include "local_atomic"
+#ifndef __CYGWIN__
/* Don't require libgcc_s.so for exceptions. */
extern void _Unwind_DeleteException (_Unwind_Exception*) __attribute__((weak));
+#endif
#include "common.h"
@@ -289,7 +291,7 @@
// Invoked from assembly language, thus the "asm" specifier on
// the name, avoiding complex name mangling.
static uint32_t begin_transaction(uint32_t, const gtm_jmpbuf *)
- __asm__(UPFX "GTM_begin_transaction") ITM_REGPARM;
+ __asm__(UPFX "GTM_begin_transaction") ITM_REGPARM ITM_SYSV;
// In eh_cpp.cc
void revert_cpp_exceptions (gtm_transaction_cp *cp = 0);
@@ -322,7 +324,7 @@
extern uint64_t gtm_spin_count_var;
extern "C" uint32_t GTM_longjmp (uint32_t, const gtm_jmpbuf *, uint32_t)
- ITM_NORETURN ITM_REGPARM;
+ ITM_NORETURN ITM_REGPARM ITM_SYSV;
extern "C" void GTM_LB (const void *, size_t) ITM_REGPARM;