[LLVMdev] undefined reference to 'llvm_gcda_start_file', 'llvm_gcda_emit_arcs', etc

Qun Fa testforqunfa at gmail.com
Thu Mar 14 06:46:14 PDT 2013


Thanks for your reply.

May I know which is the recommended library that should be linked against?

I am currently linking libprofile_rt.a.

And I have noticed the differences that, if we do

`nm libprofile_rt.a | grep llvm`

with my old copy of the llvm/clang installation, I can see

00000000000005e0 T _llvm_gcda_emit_arcs
0000000000000b48 S _llvm_gcda_emit_arcs.eh
0000000000000430 T _llvm_gcda_emit_function
0000000000000aa8 S _llvm_gcda_emit_function.eh
00000000000006c0 T _llvm_gcda_end_file
0000000000000b98 S _llvm_gcda_end_file.eh
00000000000003d0 T _llvm_gcda_increment_indirect_counter
0000000000000a80 S _llvm_gcda_increment_indirect_counter.eh
0000000000000000 T _llvm_gcda_start_file
0000000000000a08 S _llvm_gcda_start_file.eh

They are the symbols that my test build is looking for.

But with the latest codebase, here is what I saw

00000000000000a8 T llvm_start_basic_block_tracing
0000000000000067 T llvm_trace_basic_block
0000000000000467 T llvm_decrement_path_count
000000000000042a T llvm_increment_path_count
0000000000000662 T llvm_start_path_profiling
0000000000000020 T llvm_start_edge_profiling
0000000000000020 T llvm_start_opt_edge_profiling

Thanks again,
Qun

On Thu, Mar 14, 2013 at 1:11 AM, Nick Lewycky <nicholas at mxc.ca> wrote:

> Qun Fa wrote:
>
>> Hi,
>> I am trying to test my project and get the code coverage with a version
>> of clang compiler that was built from the latest llvm/clang codebase.
>>
>> It worked for a while. But today, after I updated my local checkout, and
>> re-build llvm, clang and compiler-rt, when I test my project again, I
>> got the errors with undefined reference to 'llvm_gcda_start_file',
>> 'llvm_gcda_emit_arcs', 'llvm_gcda_emit_function', and
>> 'llvm_gcda_end_file'.
>>
>> I have searched the codebase, and have found the functions are defined
>> in GCDAProfiling.c file, but not sure why this suddenly doesn't work for
>> me.
>>
>> Anyone can give any suggestions?
>>
>
> Those symbols should be provided by compiler-rt/lib/profile/**GCDAProfiling.c.
> There used to be a copy in llvm's tree, but I deleted that one recently.
> It's possible you used to be using the one from llvm, but now need to
> switch to using the one from compiler-rt?
>
> Nick
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130314/a46188ec/attachment.html>


More information about the llvm-dev mailing list