189 lines
7.0 KiB
Diff
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 \
|