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 - /* 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 -#else -#include -#endif - - /* 32-bit integer compare-and-exchange. */ static __inline __attribute__ ((always_inline)) int arch_atomic_val_compare_and_exchange_4 (volatile int *mem,