[lttng-dev] linking c++ with shared object tracepoints

Jérémie Galarneau jeremie.galarneau at efficios.com
Tue Jun 4 11:44:57 EDT 2013


Just to isolate the problem further, can you give me the version of
lttng-ust you have installed and which distribution you are using?

On Tue, Jun 4, 2013 at 11:37 AM, Aryeh Weinreb <weinrea at gmail.com> wrote:
>> I prepared a quick and dirty example based on the "demo" project.
>> Replace the Makefile and demo.c files with these:
>> https://gist.github.com/jgalar/5706595
>>
>> This will compile a C++ application which links against the
>> lttng-ust-provider-ust-tests-demo3.so provider.
>>
>> Resulting trace:
>> [10:59:42.399354875] (+?.?????????) mercury:demo:16256
>> ust_tests_demo3:done: { cpu_id = 4 }, { value = 42 }
>>
>> Regards,
>> Jérémie
>
> Thanks.
> Unfortunately, this is not working for me.
>
> Making all in demo
> make[3]: Entering directory `/home/nkw643/lttng-ust-2.1.2/tests/demo'
> g++   -c -o demo.o demo.cpp
> gcc  -I.  -fpic -c -o tp3.o tp3.c
> gcc -shared -o lttng-ust-provider-ust-tests-demo3.so  -llttng-ust tp3.o
> g++ -o demo demo.o lttng-ust-provider-ust-tests-demo3.so -L. -ldl
>   -Wl,-rpath=.
> /usr/bin/ld: demo: hidden symbol `tracepoint_dlopen' in demo.o is
> referenced by DSO
> /usr/bin/ld: final link failed: Nonrepresentable section on output
> collect2: ld returned 1 exit status
>
> $ nm -s demo.o | grep tracepoint_dlopen
> 0000000000000020 V tracepoint_dlopen
> $ nm -s .libs/liblttng-ust-provider-ust-tests-demo3.so   | grep
> tracepoint_dlopen
>                  U tracepoint_dlopen
>
> $ readelf -s demo.o  | grep tracepoint_dlopen
>     34: 0000000000000020    48 OBJECT  WEAK   HIDDEN     6 tracepoint_dlopen
> $ readelf -s .libs/liblttng-ust-provider-ust-tests-demo3.so   | grep
> tracepoint_dlopen
>      6: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND tracepoint_dlopen
>     67: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND tracepoint_dlopen
>
> $readelf -d demo.o  | grep tracepoint_dlopen
> $
> $readelf -d .libs/liblttng-ust-provider-ust-tests-demo3.so  | grep
> tracepoint_dlopen
> $



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list