Files
MSYS2-packages/gcc/035-4.7-libitm-cygwin.patch
2014-11-04 00:43:43 +03:00

189 lines
7.0 KiB
Diff

diff -Naur gcc-4.9.2-orig/gcc/builtin-attrs.def gcc-4.9.2/gcc/builtin-attrs.def
--- gcc-4.9.2-orig/gcc/builtin-attrs.def 2014-01-03 01:23:26.000000000 +0300
+++ gcc-4.9.2/gcc/builtin-attrs.def 2014-11-04 00:32:19.319800000 +0300
@@ -108,6 +108,7 @@
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)
@@ -259,6 +260,8 @@
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,
diff -Naur gcc-4.9.2-orig/gcc/gtm-builtins.def gcc-4.9.2/gcc/gtm-builtins.def
--- gcc-4.9.2-orig/gcc/gtm-builtins.def 2013-08-28 20:42:19.000000000 +0300
+++ gcc-4.9.2/gcc/gtm-builtins.def 2014-11-04 00:32:19.335400000 +0300
@@ -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)
diff -Naur gcc-4.9.2-orig/libitm/aclocal.m4 gcc-4.9.2/libitm/aclocal.m4
--- gcc-4.9.2-orig/libitm/aclocal.m4 2014-10-30 11:28:58.000000000 +0300
+++ gcc-4.9.2/libitm/aclocal.m4 2014-11-04 00:32:19.335400000 +0300
@@ -996,6 +996,7 @@
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])
diff -Naur gcc-4.9.2-orig/libitm/configure gcc-4.9.2/libitm/configure
--- gcc-4.9.2-orig/libitm/configure 2014-10-30 11:28:58.000000000 +0300
+++ gcc-4.9.2/libitm/configure 2014-11-04 00:32:19.335400000 +0300
@@ -630,6 +630,7 @@
MAINTAINER_MODE_TRUE
enable_static
enable_shared
+lt_host_flags
CXXCPP
CPP
OTOOL64
@@ -15145,6 +15146,28 @@
+
+
+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
+
+
+
+
diff -Naur gcc-4.9.2-orig/libitm/configure.ac gcc-4.9.2/libitm/configure.ac
--- gcc-4.9.2-orig/libitm/configure.ac 2014-01-03 01:26:00.000000000 +0300
+++ gcc-4.9.2/libitm/configure.ac 2014-11-04 00:32:19.397800000 +0300
@@ -147,6 +147,7 @@
# Configure libtool
AM_PROG_LIBTOOL
+ACX_LT_HOST_FLAGS
AC_SUBST(enable_shared)
AC_SUBST(enable_static)
diff -Naur gcc-4.9.2-orig/libitm/configure.tgt gcc-4.9.2/libitm/configure.tgt
--- gcc-4.9.2-orig/libitm/configure.tgt 2014-07-25 06:05:41.000000000 +0300
+++ gcc-4.9.2/libitm/configure.tgt 2014-11-04 00:32:19.397800000 +0300
@@ -141,7 +141,7 @@
*-*-gnu* | *-*-k*bsd*-gnu \
| *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \
| *-*-solaris2* | *-*-sysv4* | *-*-hpux11* \
- | *-*-darwin* | *-*-aix*)
+ | *-*-darwin* | *-*-aix* | *-*-cygwin*)
# POSIX system. The OS is supported.
;;
diff -Naur gcc-4.9.2-orig/libitm/libitm.h gcc-4.9.2/libitm/libitm.h
--- gcc-4.9.2-orig/libitm/libitm.h 2014-01-03 01:26:00.000000000 +0300
+++ gcc-4.9.2/libitm/libitm.h 2014-11-04 00:32:19.397800000 +0300
@@ -45,6 +45,7 @@
#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. */
@@ -145,7 +146,7 @@
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;
diff -Naur gcc-4.9.2-orig/libitm/libitm_i.h gcc-4.9.2/libitm/libitm_i.h
--- gcc-4.9.2-orig/libitm/libitm_i.h 2014-01-03 01:26:00.000000000 +0300
+++ gcc-4.9.2/libitm/libitm_i.h 2014-11-04 00:32:19.397800000 +0300
@@ -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;
diff -Naur gcc-4.9.2-orig/libitm/Makefile.am gcc-4.9.2/libitm/Makefile.am
--- gcc-4.9.2-orig/libitm/Makefile.am 2014-01-13 22:36:17.000000000 +0300
+++ gcc-4.9.2/libitm/Makefile.am 2014-11-04 00:32:19.413400000 +0300
@@ -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 \
diff -Naur gcc-4.9.2-orig/libitm/Makefile.in gcc-4.9.2/libitm/Makefile.in
--- gcc-4.9.2-orig/libitm/Makefile.in 2014-10-30 11:28:58.000000000 +0300
+++ gcc-4.9.2/libitm/Makefile.in 2014-11-04 00:32:19.413400000 +0300
@@ -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 \