Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 2011 13:34:04 +0400
From:      Oleg Ginzburg <olevole@olevole.ru>
To:        freebsd-questions@freebsd.org
Subject:   GCD in FreeBSD with gcc
Message-ID:  <201112241334.04812.olevole@olevole.ru>

next in thread | raw e-mail | index | archive | help
Hi,

I try to play with GCD in FreeBSD. Compilation through clang is fine.
However when i use the gcc from base for code with dispatch_async i got

warning: implicit declaration of function 'dispatch_async'

The existing file /usr/local/include/dispatch/queue.h contains the following 
constructions:

#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0)
DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
void
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
#endif


It sets some restriction on a number of platforms. 
Concerning FreeBSD, dispatch_async - it is not ready or these records weren't 
corrected for FreeBSD ?

PS: FreeBSD 9.0-RC3, /usr/ports/devel/libdispatch 210_1


Sample file test.c:
--
#include <stdio.h>
#include <stdlib.h>
#include <dispatch/dispatch.h>
#include <dispatch/queue.h>

void
say_hello(__unused void *arg)
{
        printf("Hi.\n");
        exit(0);
}


int
main(int argc, char *argv[])
{
        dispatch_queue_t q;

        q = dispatch_get_main_queue();

        dispatch_async(q, say_hello);

        printf("Im Here\n");
        dispatch_main();
}
--

gcc -Wall -Werror -I/usr/local/include -L/usr/local/lib -o test test.c -
ldispatch



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112241334.04812.olevole>