[LLVMdev] [llvm-commits] [PATCH] BlocksRuntime updates for Linux

Shantonu Sen ssen at apple.com
Tue Sep 22 19:59:08 PDT 2009


Sounds like your system compiler doesn't support gcc-style builtin  
atomics. Please use a different compiler?

Shantonu

Sent from my MacBook

On Sep 22, 2009, at 7:54 PM, Edward O'Callaghan wrote:

> Breaks Builds on Solaris and AuroraUX with:
>
> bash-3.2$ make
> Scanning dependencies of target BlocksRuntime
> [  1%] Building C object BlocksRuntime/CMakeFiles/BlocksRuntime.dir/ 
> runtime.c.o
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:77:2:
> error: #error unknown atomic compare-and-swap primitive
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:
> In function 'latching_incr_int':
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:118:
> warning: implicit declaration of function 'OSAtomicCompareAndSwapInt'
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:
> In function '_Block_dump':
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:664:
> warning: format '%#lx' expects type 'long unsigned int', but argument
> 3 has type 'unsigned int'
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:672:
> warning: format '%#lx' expects type 'long unsigned int', but argument
> 3 has type 'unsigned int'
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:673:
> warning: format '%#lx' expects type 'long unsigned int', but argument
> 3 has type 'unsigned int'
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:
> In function '_Block_byref_dump':
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:688:
> warning: format '%#lx' expects type 'long unsigned int', but argument
> 3 has type 'unsigned int'
> /export/home/edward/lab/llvm/build/compiler-rt/BlocksRuntime/ 
> runtime.c:689:
> warning: format '%#lx' expects type 'long unsigned int', but argument
> 3 has type 'unsigned int'
>
> Please check these.
>
> Thank you,
> Edward O'Callaghan.
>
> 2009/9/22 Chris Lattner <clattner at apple.com>:
>>
>> On Sep 21, 2009, at 9:15 AM, Shantonu Sen wrote:
>>
>> [forwarding to llvm-commits, which is where i meant to send it the  
>> first
>> time]
>>
>> The source changes seem fine to me, and I don't have an opinion  
>> about the
>> build system changes - I suggest committing them and seeing if anyone
>> screams :)
>> Thanks Shantonu,
>> -Chris
>>
>> Ping?
>> Shantonu Sen
>> ssen at apple.com
>> Sent from my Mac Pro
>> Begin forwarded message:
>>
>> From: Shantonu Sen <ssen at apple.com>
>> Date: September 18, 2009 11:14:13 AM PDT
>> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu>
>> Subject: [LLVMdev] [PATCH] BlocksRuntime updates for Linux
>>
>> The attached diff cleans up the BlocksRuntime/ directory of  
>> compiler-rt for
>> better portability, eliminates compiler warnings, and adds support  
>> to the
>> cmake build to install the results.
>>
>> More specifically, the changes:
>> 1) Remove cmake-specific #define usage from the exported
>> Block.h/Block_private.h headers, since clients won't know what to  
>> set. These
>> are moved into runtime.c as appropriate
>> 2) Use cmake checks for CAS builtins, instead of guessing based on  
>> GCC
>> #defines (which aren't set by clang and llvm-gcc anyway)
>> 3) "#pragma mark" isn't supported by FSF gcc, so "#if 0" it out. It  
>> should
>> still show up in IDEs that support it
>> 4) Fix some compiler warnings. GCC 4.3.3 seems super strict about %p.
>> function pointers can't be cast to void * either.
>> 5) Avoid a warning for apple_versioning.c that "ISO C does not  
>> allow empty
>> files"
>>
>> Tested on Ubuntu Linux 9.04 with clang and llvm-gcc and -fblocks to  
>> define
>> and copy some blocks (and invoke them, obviously). Also tested on  
>> Mac OS X
>> 10.6 and linking against -lBlocksRuntime ahead of -lSystem.
>>
>> <blocks-linux.diff>
>>
>> Shantonu Sen
>> ssen at apple.com
>>
>> Sent from my Mac Pro
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>
>
>
> -- 
> -- 
> Edward O'Callaghan
> http://www.auroraux.org/
> eocallaghan at auroraux dot org
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list