On 02/18/2013 04:10 PM, Daniel Lezcano wrote:
> On 02/18/2013 09:46 PM, Stéphane Graber wrote:
>> On 02/18/2013 03:40 PM, Daniel Lezcano wrote:
>>> On 02/18/2013 06:23 PM, Stéphane Graber wrote:
>>>> dpkg spotted that we're not explicitly linking against pthread even though
>>>> we use some of its symbols (sem_*).
>>> uh ? wait.
>>>
>>> We shouldn't link against the lib pthread.
>>>
>>> I don't think sem_* is a symbol coming from the pthread library.
>>>
>>> Could you give the output of dpkg ?
>> From "man sem_open":
>>        Link with -pthread.
> 
> -pthread, not -lpthread

Oops, misread ...

> or -librt
> 
> As lxc is not thread safe, you should prevent to link against the
> libpthread because the user will think it is thread safe and that could
> lead to some unexpected behavior.

Right, please ignore the patch as it's definitely not something we want
to do. Would be nice to find a way to make dpkg happy though as this may
result into wrongly autogenerated package dependencies (though as in
this case it's against libc, it's not really a problem).

> Linking against librt should be ok. I don't understand the warning of dpkg.
> 
> Could you check by commenting the lines below if the warning still appear ?
> 
> #if !IS_BIONIC
> liblxc_so_LDADD += -lutil -lrt
> #endif

Building without those fails with:
liblxc.so: undefined reference to `sem_post'
liblxc.so: undefined reference to `sem_open'
liblxc.so: undefined reference to `sem_timedwait'
liblxc.so: undefined reference to `sem_wait'
liblxc.so: undefined reference to `sem_init'
liblxc.so: undefined reference to `sem_destroy'
liblxc.so: undefined reference to `sem_close'


So maybe it's just the tools being confused...
Building with -lutil -lrt does work fine, it's just that dpkg-shlibdeps
thinks something's wrong and there doesn't appear to be an easy way to
shut it...


>> dpkg-shlibdeps output:
>> dpkg-shlibdeps: warning: symbol sem_post used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_open used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_close used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_init used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_timedwait used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_destroy used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>> dpkg-shlibdeps: warning: symbol sem_wait used by
>> debian/liblxc0/usr/lib/x86_64-linux-gnu/liblxc.so.0.9.0.alpha3 found in
>> none of the libraries
>>
>>
>> Looking at pthread.so it appears to provide:
>> sem_init
>> sem_destroy
>> sem_open
>> sem_close
>> sem_unlink
>> sem_getvalue
>> sem_wait
>> sem_trywait
>> sem_timedwait
>> sem_post
>>
>>>> Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
>>>> ---
>>>>  src/lxc/Makefile.am | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
>>>> index 8974ca9..a0077aa 100644
>>>> --- a/src/lxc/Makefile.am
>>>> +++ b/src/lxc/Makefile.am
>>>> @@ -115,7 +115,7 @@ liblxc_so_LDFLAGS = \
>>>>  liblxc_so_LDADD = $(CAP_LIBS) $(APPARMOR_LIBS) $(SECCOMP_LIBS)
>>>>  
>>>>  if !IS_BIONIC
>>>> -liblxc_so_LDADD += -lutil -lrt
>>>> +liblxc_so_LDADD += -lutil -lrt -lpthread
>>>>  endif
>>>>  
>>>>  bin_SCRIPTS = \
>>
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to