Error: undefined reference to '__llvm_profile_register_function' with -fprofile-instr-generate

Hi all,

I am facing following error with "-fprofile-instr-generate".
Please let me know your inputs to resolve this error

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.git
841710be7cbcd4c5b6d355ffa37d2739b21b2fd8) (http://llvm.org/git/llvm.git
682e019983ba91576ecf02a0dd93edfde0d705f3)

*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

p2282 <ganesh.faq@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.

profile-configure-linux.patch (915 Bytes)

I’ve submitted this patch in r212665, thanks!

This issue is resolved.
I tried with July-10 build using configure for building LLVM and did not
face error as in this report.
Thanks to Justin Bogner and Alexey Samsonov-2.