Name clashes when cross compiling

Henderson, Stuart Stuart.Henderson at analog.com
Thu Apr 7 17:41:42 UTC 2011


Hi,
I'm encountering a problem cross-compiling GCC (trunk) for Blackfin, using uClibc.  A semi-recent change in GCC has resulted in sys/ucontext.h and GCC's generated insn-constants.h being included at the same time when building libgcc.  This results in name clashes with the enum of registers in the gregset_t array. For more background, see the GCC PR:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47779

The originally suggested fix is very messy and Bernd suggests the fix should be made in uClibc, which I agree with.  However I'm not sure what the best way to do it is.  Will simply disabling this enum when IN_LIBGCC2 be sufficient?

Thanks,
Stu


Index: libc/sysdeps/linux/bfin/sys/ucontext.h
===================================================================
--- libc/sysdeps/linux/bfin/sys/ucontext.h      (revision 5369)
+++ libc/sysdeps/linux/bfin/sys/ucontext.h      (working copy)
@@ -33,6 +33,7 @@
 /* Container for all general registers.  */
 typedef greg_t gregset_t[NGREG];

+#ifndef IN_LIBGCC2
 /* Number of each register is the `gregset_t' array.  */
 enum
 {
@@ -131,6 +132,7 @@
   REG_SEQSTAT = 46
 #define        REG_SEQSTAT     REG_SEQSTAT
 };
+#endif

 /* Context to describe whole processor state.  */
 typedef struct





More information about the uClibc mailing list