[lttng-dev] Building URCU in a Cygwin 64 environment

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue May 31 21:52:35 UTC 2016


----- On May 31, 2016, at 4:47 PM, Jonathan Rajotte Julien Jonathan.rajotte-julien at efficios.com wrote:

> Hi Sebastien,
> 
> I'll simply move the conversation here (from IRC) to have an archive of it.
> 
> On 2016-05-31 09:39 AM, Sebastien Boisvert wrote:
>> Hi,
>>
>> I am in the process of writing a blog article on the use of the LTTng-UST
>> userspace event tracer on Windows.
>>
>> I am building urcu and LTTng-UST in a Cygwin 64 environment. Then, I plan to use
>> LTTng in Visual Studio Community, so I mostly need headers (.h) and shared
>> libraries (.dll).
> 
> Nice!
> 
>>
>> When I am building urcu (0.9.2), I get this message:
>>
>> libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin
>> shared libraries
> 
> This seems related to a Windows restriction regarding inter-library
> dependencies [1], the relevant part:
> 
> "Some platforms, such as Windows, do not even allow you this
> flexibility. In order to build a shared library, it must be entirely
> self-contained or it must have dependencies known at link time (that is,
> have references only to symbols that are found in the .lo files or the
> specified ā€˜-lā€™ libraries), and you need to specify the -no-undefined
> flag. By default, libtool builds only static libraries on these kinds of
> platforms."
> 
> Looks like the -no-undefined might be a good start judging from this
> patch I found for the urcu cygwin port in yacp [2].
> 
> Cheers!
> 
> [1]
> https://www.gnu.org/software/libtool/manual/libtool.html#Inter_002dlibrary-dependencies
> [2]
> https://github.com/fd00/yacp/blob/master/userspace-rcu/userspace-rcu-0.8.7-1bl1.src.patch

Is there a way we could adapt this patch to urcu upstream without changing
the behavior on non-cygwin builds ?

Thanks,

Mathieu

>>
>> The immediate consequence seems to be the absence of .dll files in the urcu
>> build that I am generating. Otherwise, the build contains static library files
>> and headers.
>>
>> However, I suppose that the .a static library files also have undefined symbols
>> as I am getting linking issues when building LTTng-UST.
>>
>> Do you have a clue of what may be the issue here ? Otherwise, I will continue my
>> investigation and get around the issue eventually.
>> _______________________________________________
>> lttng-dev mailing list
>> lttng-dev at lists.lttng.org
>> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> 
> --
> Jonathan R. Julien
> Efficios
> 
> _______________________________________________
> 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


More information about the lttng-dev mailing list