179 lines
6.7 KiB
Diff
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;
|
|
|