[lttng-dev] urcu configure/build failures on Darwin

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Jun 22 19:29:58 UTC 2016


----- On Jun 22, 2016, at 3:16 PM, Mathieu Desnoyers <mathieu.desnoyers at efficios.com> wrote: 

> ----- On Jun 22, 2016, at 2:17 PM, Luke K D'Alessandro <ldalessa at indiana.edu>
> wrote:

>>> On Jun 22, 2016, at 12:39 PM, Mathieu Desnoyers < mathieu.desnoyers at efficios.com
>>> > wrote:

>>> ----- On Jun 22, 2016, at 11:56 AM, Luke K D'Alessandro < ldalessa at indiana.edu >
>>> wrote:

>>>>> On Jun 22, 2016, at 11:37 AM, Mathieu Desnoyers < mathieu.desnoyers at efficios.com
>>>>> > wrote:

>>>>> ----- On Jun 14, 2016, at 12:31 PM, Luke K D'Alessandro < ldalessa at indiana.edu >
>>>>> wrote:

>>>>>> I tried following the Darwin instructions on the website (basically `
>>>>>> ./configure --build=x86_64-apple-darwin11` but the `clock_gettime` and `-lrt`
>>>>>> dependencies don’t exist on Darwin).

>>>>>> Just for fun I removed this dependency and added a custom version of
>>>>>> `clock_gettime` (
>>>>>> https://github.com/lorrden/darwin-posix-rt/blob/master/clock_gettime.c ) but
>>>>>> the build still fails in `systcall-compat.h`.

>>>>>> ```
>>>>>> $ make V=1
>>>>>> /Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
>>>>>> Making all in .
>>>>>> /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I./urcu
>>>>>> -I./urcu -Wall -g -O2 -D_THREAD_SAFE -pthread -MT wfqueue.lo -MD -MP -MF
>>>>>> .deps/wfqueue.Tpo -c -o wfqueue.lo wfqueue.c
>>>>>> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./urcu -I./urcu -Wall -g -O2
>>>>>> -D_THREAD_SAFE -pthread -MT wfqueue.lo -MD -MP -MF .deps/wfqueue.Tpo -c
>>>>>> wfqueue.c -fno-common -DPIC -o .libs/wfqueue.o
>>>>>> In file included from wfqueue.c:28:
>>>>>> In file included from ./urcu/static/wfqueue.h:33:
>>>>>> In file included from ./urcu/uatomic.h:24:
>>>>>> In file included from ./urcu/system.h:23:
>>>>>> In file included from ./urcu/arch.h:27:
>>>>>> ./urcu/syscall-compat.h:39:2: error: "Add platform support to
>>>>>> urcu/syscall-compat.h"
>>>>>> #error "Add platform support to urcu/syscall-compat.h"
>>>>>> ^
>>>>>> 1 error generated.
>>>>>> make[2]: *** [wfqueue.lo] Error 1
>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>> make: *** [all] Error 2
>>>>>> ```

>>>>>> Is Darwin still a supported platform for the library?

>>>>> It should, yes, but we don't test it in our CI yet.

>>>>> I just took care of the syscall-compat.h error (pushed into master
>>>>> and stable-0.9). For clock_gettime, we would need to implement
>>>>> a LGPLv2.1 wrapper within liburcu for MacOSX.

>>>>> Is this something you could look into ?

>>>> Hmm. This isn’t really something I know much about.

>>>> The github link I sent seems to be either GPLv2 or LGPLv3… don’t really know
>>>> what LGPLv2.1 means. Based on the actually code that I’m seeing, there is
>>>> really not much going on here and thus it might be difficult to do anything
>>>> differently. It might be easier to have urcu use some configuration time
>>>> behavior to have its own arch-specific timing functionality if necessary.

>>> The only place where we need clock_gettime is urcu/arch/generic.h
>>> caa_get_cycles.

>>> I just pushed the implementation of the fix in master and stable-0.9.
>>> Tested on my own macos mini machine. Can you try them out ?

>> Looks good on my system as well (bootstrapping with current autotools from
>> brew).

>> I do get a warning at

>> ```
>> ../../tests/common/thread-id.h:62:3: warning: "use pid as thread ID"
>> [-W#warnings]
>> ```

> This is just because we don't have a gettid() system call available. This just
> leads
> to less precise debug printout in the test programs, nothing to worry about.

>> however `make check` passes. Should Darwin have its own preprocessor branch in
>> this file?

> how about make regtest ?

> It appears we don't have the "nproc" program available. Is there a brew package
> for it,
> or something similar ?

This commit now in master and 0.9 should fix it: 

commit 2350bf7b3f3c4581493b187988a92b8d871471ba 
Author: Michael Jeanson <mjeanson at efficios.com> 
Date: Wed Jun 22 15:16:18 2016 -0400 

Fix: Add failover for platforms without nproc 

Signed-off-by: Michael Jeanson <mjeanson at efficios.com> 
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> 

> Thanks,

> Mathieu

>> Thanks for doing this,
>> Luke

>>> Thanks,

>>> Mathieu

>>>> Luke

>>>>> Thanks,

>>>>> Mathieu

>>>>>> Thanks,
>>>>>> Luke

>>>>>> _______________________________________________
>>>>>> lttng-dev mailing list
>>>>>> lttng-dev at lists.lttng.org
>>>>>> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

>>>>> --
>>>>> Mathieu Desnoyers
>>>>> EfficiOS Inc.
>>>>> http://www.efficios.com

>>> --
>>> Mathieu Desnoyers
>>> EfficiOS Inc.
>>> http://www.efficios.com

> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com

-- 
Mathieu Desnoyers 
EfficiOS Inc. 
http://www.efficios.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20160622/0baa638c/attachment.html>


More information about the lttng-dev mailing list