[LLVMdev] [PATCH] BlocksRuntime updates for Linux
Shantonu Sen
ssen at apple.com
Fri Sep 18 11:14:13 PDT 2009
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: blocks-linux.diff
Type: application/octet-stream
Size: 10483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090918/ebbb7903/attachment.obj>
-------------- next part --------------
Shantonu Sen
ssen at apple.com
Sent from my Mac Pro
More information about the llvm-dev
mailing list