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