Problem cross-compiling trunk for bfin

Ian Lance Taylor iant@google.com
Wed Feb 16 23:02:00 GMT 2011


"Henderson, Stuart" <Stuart.Henderson@analog.com> 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



More information about the Gcc-help mailing list