summaryrefslogtreecommitdiff
path: root/package/gcc/patches/5.3.0/tile-fix-libgcc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/gcc/patches/5.3.0/tile-fix-libgcc.patch')
-rw-r--r--package/gcc/patches/5.3.0/tile-fix-libgcc.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/package/gcc/patches/5.3.0/tile-fix-libgcc.patch b/package/gcc/patches/5.3.0/tile-fix-libgcc.patch
new file mode 100644
index 000000000..07aa97200
--- /dev/null
+++ b/package/gcc/patches/5.3.0/tile-fix-libgcc.patch
@@ -0,0 +1,41 @@
+diff -Nur gcc-5.2.0.orig/gcc/config/tilegx/linux.h gcc-5.2.0/gcc/config/tilegx/linux.h
+--- gcc-5.2.0.orig/gcc/config/tilegx/linux.h 2015-01-05 13:33:28.000000000 +0100
++++ gcc-5.2.0/gcc/config/tilegx/linux.h 2015-12-02 15:13:59.563521746 +0100
+@@ -55,8 +55,6 @@
+ /* For __clear_cache in libgcc2.c. */
+ #ifdef IN_LIBGCC2
+
+-#include <arch/icache.h>
+-
+ /* Use the minimum page size of 4K. Alternatively we can call
+ getpagesize() but it introduces a libc dependence. */
+ #undef CLEAR_INSN_CACHE
+diff -Nur gcc-5.2.0.orig/libgcc/config/tilepro/atomic.h gcc-5.2.0/libgcc/config/tilepro/atomic.h
+--- gcc-5.2.0.orig/libgcc/config/tilepro/atomic.h 2015-01-05 13:33:28.000000000 +0100
++++ gcc-5.2.0/libgcc/config/tilepro/atomic.h 2015-12-02 15:41:08.868942210 +0100
+@@ -46,6 +46,11 @@
+ The "exchange" and "compare and exchange" macros may also take
+ pointer values. We use the pseudo-type "VAL" in the documentation
+ to indicate the use of an appropriate type. */
++
++#ifndef SPR_CMPEXCH_VALUE
++#define SPR_CMPEXCH_VALUE 0x2780
++#endif
++
+ #else
+ /* Atomic instruction macros
+
+@@ -92,13 +97,6 @@
+ compare-and-exchange routine, so may be potentially less efficient. */
+ #endif
+
+-#ifdef __tilegx__
+-#include <arch/spr_def.h>
+-#else
+-#include <asm/unistd.h>
+-#endif
+-
+-
+ /* 32-bit integer compare-and-exchange. */
+ static __inline __attribute__ ((always_inline))
+ int arch_atomic_val_compare_and_exchange_4 (volatile int *mem,