diff -Nur gcc-5.3.0.orig/gcc/config/tilegx/linux.h gcc-5.3.0/gcc/config/tilegx/linux.h --- gcc-5.3.0.orig/gcc/config/tilegx/linux.h 2015-01-05 13:33:28.000000000 +0100 +++ gcc-5.3.0/gcc/config/tilegx/linux.h 2016-01-25 12:53:51.975221940 +0100 @@ -55,8 +55,6 @@ /* For __clear_cache in libgcc2.c. */ #ifdef IN_LIBGCC2 -#include - /* 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.3.0.orig/gcc/config/tilepro/linux.h gcc-5.3.0/gcc/config/tilepro/linux.h --- gcc-5.3.0.orig/gcc/config/tilepro/linux.h 2015-01-05 13:33:28.000000000 +0100 +++ gcc-5.3.0/gcc/config/tilepro/linux.h 2016-01-25 12:56:33.687363200 +0100 @@ -47,8 +47,6 @@ /* For __clear_cache in libgcc2.c. */ #ifdef IN_LIBGCC2 -#include - /* 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.3.0.orig/libgcc/config/tilepro/atomic.h gcc-5.3.0/libgcc/config/tilepro/atomic.h --- gcc-5.3.0.orig/libgcc/config/tilepro/atomic.h 2015-01-05 13:33:28.000000000 +0100 +++ gcc-5.3.0/libgcc/config/tilepro/atomic.h 2016-01-25 13:16:09.116389975 +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 @@ -90,14 +95,12 @@ syscall, as is the 64-bit compare-and-exchange. The other 64-bit routines are implemented by looping over the 64-bit compare-and-exchange routine, so may be potentially less efficient. */ -#endif -#ifdef __tilegx__ -#include -#else -#include -#endif +#define __NR_FAST_cmpxchg -1 +#define __NR_FAST_atomic_update -2 +#define __NR_FAST_cmpxchg64 -3 +#endif /* 32-bit integer compare-and-exchange. */ static __inline __attribute__ ((always_inline))