[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