From b7c40630d9fee0e1be68b1d3af330a0ec1c841ee Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Sat, 27 Feb 2016 12:35:54 -0800 Subject: [PATCH] buildgcc: Fix building GDB for mipsel-elf Change-Id: I31ed159b13c0da60383068832615c6e4a9608efe Signed-off-by: Stefan Reinauer Reviewed-on: https://review.coreboot.org/13849 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Martin Roth --- .../patches/gdb-7.9.1_sim-arange.patch | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 util/crossgcc/patches/gdb-7.9.1_sim-arange.patch diff --git a/util/crossgcc/patches/gdb-7.9.1_sim-arange.patch b/util/crossgcc/patches/gdb-7.9.1_sim-arange.patch new file mode 100644 index 0000000000..bf56c2db7c --- /dev/null +++ b/util/crossgcc/patches/gdb-7.9.1_sim-arange.patch @@ -0,0 +1,61 @@ +From: Mike Frysinger + +With newer versions of gcc (5.x), the extern inline we're using with the +sim-arange module no longer works. Since this code really wants the gnu +inline semantics, use that attribute explicitly. + +Reported-by: DJ Delorie +Reported-by: Joel Sherrill + +diff -urN gdb-7.9.1.orig/sim/common/sim-arange.h gdb-7.9.1/sim/common/sim-arange.h +--- gdb-7.9.1.orig/sim/common/sim-arange.h 2015-05-13 10:36:05.000000000 -0700 ++++ gdb-7.9.1/sim/common/sim-arange.h 2016-02-27 12:22:58.090512073 -0800 +@@ -60,22 +60,26 @@ + address_word /*start*/, + address_word /*end*/); + ++/* TODO: This should get moved into sim-inline.h. */ ++#ifdef HAVE_INLINE ++#ifdef SIM_ARANGE_C ++#define SIM_ARANGE_INLINE INLINE ++#else ++#define SIM_ARANGE_INLINE EXTERN_INLINE ++#endif ++#else ++#define SIM_ARANGE_INLINE EXTERN ++#endif ++ + /* Return non-zero if ADDR is in range AR, traversing the entire tree. + If no range is specified, that is defined to mean "everything". */ +-extern INLINE int ++SIM_ARANGE_INLINE int + sim_addr_range_hit_p (ADDR_RANGE * /*ar*/, address_word /*addr*/); + #define ADDR_RANGE_HIT_P(ar, addr) \ + ((ar)->range_tree == NULL || sim_addr_range_hit_p ((ar), (addr))) + + #ifdef HAVE_INLINE +-#ifdef SIM_ARANGE_C +-#define SIM_ARANGE_INLINE INLINE +-#else +-#define SIM_ARANGE_INLINE EXTERN_INLINE +-#endif + #include "sim-arange.c" +-#else +-#define SIM_ARANGE_INLINE + #endif + #define SIM_ARANGE_C_INCLUDED + +diff -urN gdb-7.9.1.orig/sim/common/sim-inline.h gdb-7.9.1/sim/common/sim-inline.h +--- gdb-7.9.1.orig/sim/common/sim-inline.h 2015-05-13 10:36:05.000000000 -0700 ++++ gdb-7.9.1/sim/common/sim-inline.h 2016-02-27 12:23:58.169085087 -0800 +@@ -303,7 +303,9 @@ + /* ??? Temporary, pending decision to always use extern inline and do a vast + cleanup of inline support. */ + #ifndef INLINE2 +-#if defined (__GNUC__) ++#if defined (__GNUC_GNU_INLINE__) || defined (__GNUC_STDC_INLINE__) ++#define INLINE2 __inline__ __attribute__ ((__gnu_inline__)) ++#elif defined (__GNUC__) + #define INLINE2 __inline__ + #else + #define INLINE2 /*inline*/