[cfe-dev] Error: undefined reference to '__llvm_profile_register_function' with -fprofile-instr-generate

Justin Bogner mail at justinbogner.com
Tue Jul 8 10:38:06 PDT 2014


p2282 <ganesh.faq at gmail.com> writes:
> Hi all,
>
> I am facing following error with "-fprofile-instr-generate".
> Please let me know your inputs to resolve this error

It looks like compiler-rt's configure + make build isn't set up build
the profile libraries on linux. Taking a look at the FUNCTIONS.profile
variables in make/platform/clang_linux.mk compared to those in
clang_darwin.mk, I guess that something like the following (untested)
patch would help.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: profile-configure-linux.patch
Type: text/x-patch
Size: 915 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140708/cafcd57a/attachment.bin>
-------------- next part --------------

Alternatively, you can probably get this working by using cmake rather
than configure.

> Thanks,
>
> *Error:*
> export PATH=/home/user/llvm_install/bin:$PATH
> export LD_LIBRARY_PATH=/home/user/llvm_install/lib
> $ clang++ -O2 -fprofile-instr-generate hello.cpp
> /tmp/hello-58ef5f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-58ef5f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-58ef5f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-58ef5f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-58ef5f.o:hello.cpp:function __llvm_profile_runtime_user: error:
> undefined reference to '__llvm_profile_runtime'
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
>
> *Above error says , 'use -v'. Output of -v is as follows*
> --snip start--
> "/usr/local/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m
> elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o
> /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu
> -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/home/LLVM_install/bin/../lib
> -L/lib -L/usr/lib /tmp/hello-c8552f.o
> */home/LLVM_install/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.profile-x86_64.a*
> -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
> /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
> /tmp/hello-c8552f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-c8552f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-c8552f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-c8552f.o:hello.cpp:function __llvm_profile_init: error: undefined
> reference to '__llvm_profile_register_function'
> /tmp/hello-c8552f.o:hello.cpp:function __llvm_profile_runtime_user: error:
> undefined reference to '__llvm_profile_runtime'
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation) 
> --snip end--
>
>
> *Clang version:* clang version 3.5.0 (http://llvm.org/git/clang.git841710be7cbcd4c5b6d355ffa37d2739b21b2fd8) (http://llvm.org/git/llvm.git682e019983ba91576ecf02a0dd93edfde0d705f3)
>
> *OS:* Ubuntu 14.04
>
> *LD version:*GNU gold (GNU Binutils 2.24.51.20140522) 1.11
>
> *LLVM Configure options:* configure --enable-profiling --enable-optimized
> --enable-shared --disable-debug-runtime --enable-targets=all
> --prefix=/home/user/llvm_install
> --with-binutils-include=/gold_linker/binutils/include


More information about the cfe-dev mailing list