"Henderson, Stuart" <Stuart.Henderson@xxxxxxxxxx> writes: > r160579 | rsandifo | 2010-06-10 21:23:43 +0100 (Thu, 10 Jun 2010) | 7 lines > gcc/ > * configure.ac (tm_include_list): Add insn-constants.h. > * configure: Regenerate. > * Makefile.in (GTM_H): Move insn-constants.h here from... > (TM_H): ...here. > * mkconfig.sh: Remove special handling for insn-constants.h. > > The change moves the inclusion of "insn-constants.h" from being conditional on: > #if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET > to just: > #if defined IN_GCC > > This causes insn-constants.h to be included here which defines various register macros that can then clash with the enum (of registers in the gregset_t array) in uClibc's sys/ucontext.h. > > Although I've only hit this with bfin, it seems like it could easily hit other architectures. Not having a deep enough understanding of the gcc ecosystem nor why the change was made, I was hoping someone could explain the best way to resolve this? I doubt there is a clean way to solve this. Probably the simplest way is to rename the conflicting constants in gcc/config/bfin/*. Please open a bug report about this. See http://gcc.gnu.org/bugs/ . Thanks. Ian