Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Sep 2006 10:09:42 -0700
From:      Alexander Botero-Lowry <alexbl@FreeBSD.org>
To:        freebsd-ports@FreeBSD.org
Subject:   Re: detect presence of threads support in sqlite3 port
Message-ID:  <200609301709.k8UH9gWG034468@Laptop.mine.box>

next in thread | raw e-mail | index | archive | help
> Le Lun 25 sep 06 à 11:21:11 +0200, Alexander Zhuravlev <zaa at zaa.pp.ru>
>  écrivait :
>> So, how can I determine the fact that the port was compiled with such 
>> option, so I can rise an error in my port or compile it with bundled
>> sqlite 3.2 library?
>> Any help will be much appreciated.
>
This is the exact issue that sparked my interest in some kind of OPTIONS 
dependency/checking mechanism in ports. One of my ports (audio/xmms2) requires
that sqlite3 be built threadsafe, and there is no way to detect this at runtime
so it would be possible to end up with a nastly corrupted medialib because of
this.

So the idea would be to store the OPTIONS choices file in the pkgdb as +OPTIONS
or something, and then to be able to say NEED_OPTIONS=sqlite3:THREADS or 
something like that.

> sqlite supports pkg-config, so you could try something based upon
>
> pkg-config --libs sqlite3 | grep '\${PTHREAD_LIBS}'
This might not always work since sqlite3's thread safety is if I remember 
correctly a test to see if threads are using their own contexts or using a
global one, and asserting if they try to use a global one. It doesn't 
really requite pthreads and that is probably just there as a convenience.

Alex



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