tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Building cross/avr-gcc with clang (was: clang support)



> It still doesn't build, but I will continue working on it.
I guess I'm giving up on this.
It chokes on some double definition of floor_log2 and exact_log2, which can be 
avoided with this patch:

--- gcc/toplev.h.orig   2010-12-27 16:31:23.000000000 +0100
+++ gcc/toplev.h        2010-12-27 16:59:47.000000000 +0100
@@ -186,17 +186,19 @@
 #  define CTZ_HWI __builtin_ctz
 # endif
 
+#ifdef __cplusplus
 extern inline int
 floor_log2 (unsigned HOST_WIDE_INT x)
 {
   return x ? HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x) : -1;
 }
 
 extern inline int
 exact_log2 (unsigned HOST_WIDE_INT x)
 {
   return x == (x & -x) && x ? (int) CTZ_HWI (x) : -1;
 }
+#endif /* __cplusplus */
 #endif /* GCC_VERSION >= 3004 */
 
 /* Functions used to get and set GCC's notion of in what directory

but then linking fails with

ld: duplicate symbol _floor_log2 in c-omp.o and tree-mudflap.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)

because the toplev.h is included in both files.

So I tried to build with gcc and re-ran into pkg/43455, which is still 
"analyzed".
Applying my six months old patch still solves the problem.


Home | Main Index | Thread Index | Old Index