On Thu, Aug 29, 2013 at 08:26:01AM -0600, Charles Davis wrote:
> 
> On Aug 29, 2013, at 2:57 AM, Alexey Samsonov wrote:
> 
> > Hi!
> > 
> > This is causing Android build failures on our bot:
> > 
> > [  0%] Building CXX object 
> > projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.android.dir/sanitizer_posix.cc.o
> > In file included from 
> > /build/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc:43:
> > /build/llvm_build64/bin/../lib/clang/3.4/include/unwind.h:71:19: error: 
> > typedef redefinition with different types ('uintptr_t' (aka 'unsigned int') 
> > vs 'unsigned long *')
> > typedef uintptr_t _Unwind_Ptr;
> >                   ^
> > /build/../../../android-ndk/standalone/sysroot/usr/include/link.h:47:28: 
> > note: previous definition is here
> > typedef long unsigned int* _Unwind_Ptr;
> What's that even doing there? Is there some sort of macro that the Android 
> NDK defines when it defines that type? We may need to protect our own 
> definitions with it.

https://github.com/android/platform_bionic/blob/master/libc/include/link.h

Nothing other than the header guard.  We will probably either have
to protect our definition like this:

#if !defined(__ANDROID__) || !defined(__arm) || !defined(_LINK_H_)

or declare that Android's header is broken, and modify compiler-rt
to avoid including both headers in the same TU.  I'm tending towards
the latter given that GCC's unwind.h has a similar "problem".

Thanks,
-- 
Peter
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to