[llvm-commits] [compiler-rt] r153735 - /compiler-rt/trunk/lib/atomic.c
David Chisnall
csdavec at swan.ac.uk
Fri Mar 30 05:46:19 PDT 2012
I can disable that if __LP64__ is not defined, but I think a better solution would be for clang to support __uint128_t in 32-bit mode...
David
On 30 Mar 2012, at 13:43, Alexander Potapenko wrote:
> Apparently __uint128_t is a 32-bit-specific problem:
>
> $ /usr/local/google/asan/asan-llvm-trunk/llvm/build/Release+Asserts/bin/clang
> -Wall -Werror -O3 -fomit-frame-pointer
> --sysroot=/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/SDKs/linux
> -c -fPIC -o /usr/local/google/asan/asan-llvm-trunk/llvm/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib/atomic.o
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:153:3:
> error: implicitly declaring library function 'memcpy' with type 'void
> *(void *, const void *, unsigned long)' [-Werror]
> memcpy(dest, src, size);
> ^
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:153:3:
> note: please include the header <string.h> or explicitly provide a
> declaration for 'memcpy'
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:185:7:
> error: implicitly declaring library function 'memcmp' with type 'int
> (const void *, const void *, unsigned long)' [-Werror]
> if (memcmp(ptr, expected, size) == 0) {
> ^
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:185:7:
> note: please include the header <string.h> or explicitly provide a
> declaration for 'memcmp'
> 2 errors generated.
>
> (Ok)
>
> $ /usr/local/google/asan/asan-llvm-trunk/llvm/build/Release+Asserts/bin/clang
> -Wall -Werror -O3 -fomit-frame-pointer -m32
> --sysroot=/usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/SDKs/linux
> -c -fPIC -o /usr/local/google/asan/asan-llvm-trunk/llvm/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib/atomic.o
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c
>
> /usr/local/google/asan/asan-llvm-trunk/llvm/projects/compiler-rt/lib/atomic.c:149:3:
> error: use of undeclared identifier '__uint128_t'
> LOCK_FREE_CASES();
> ...
> (Bad)
>
>
>
>
> On Fri, Mar 30, 2012 at 12:53 PM, Alexander Potapenko <glider at google.com> wrote:
>> We're seeing several compilation failures on the ASan bot while building LLVM:
>>
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:149:3:
>> error: use of undeclared identifier '__uint128_t'
>> LOCK_FREE_CASES();
>> ^
>> COMPILE: clang_linux/full-i386/i386:
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/comparedf2.c
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:137:26:
>> note: expanded from macro 'LOCK_FREE_CASES'
>> LOCK_FREE_ACTION(__uint128_t);\
>> ...
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:153:3:
>> error: implicitly declaring library function 'memcpy' with type 'void
>> *(void *, const void *, unsigned int)' [-Werror]
>> memcpy(dest, src, size);
>> ^
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:153:3:
>> note: please include the header <string.h> or explicitly provide a
>> declaration for 'memcpy'
>> ...
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:185:7:
>> error: implicitly declaring library function 'memcmp' with type 'int
>> (const void *, const void *, unsigned int)' [-Werror]
>> if (memcmp(ptr, expected, size) == 0) {
>> ^
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:185:7:
>> note: please include the header <string.h> or explicitly provide a
>> declaration for 'memcmp'
>> ...
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:247:1:
>> error: unknown type name '__uint128_t'
>> OPTIMISED_CASES
>> ^
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:220:39:
>> note: expanded from macro 'OPTIMISED_CASES'
>> OPTIMISED_CASE(16, IS_LOCK_FREE_16, __uint128_t)\
>> ^
>> /usr/local/google/home/asanbot/b2/slave/linux/build/llvm/projects/compiler-rt/lib/atomic.c:236:26:
>> note: expanded from macro 'OPTIMISED_CASE'
>> void __atomic_store_##n(type *dest, type val, int model) {\
>> ^
>> fatal error: too many errors emitted, stopping now [-ferror-limit=]
>
>
>
> --
> Alexander Potapenko
> Software Engineer
> Google Moscow
More information about the llvm-commits
mailing list