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

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Jun 22 19:16:12 UTC 2016


----- 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 ? 

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 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20160622/8d3d0922/attachment-0001.html>


More information about the lttng-dev mailing list