Reputation: 2432
I'm currently having some serious trouble with making use of pnacl-compiler-rt, as I've had no success in finding any info on getting it to build (on Mac, which may or may not be relevant in the case of NaCl) with the instrumentation stuff (e.g. to include GCDAProfiling). My most recent attempt was to modify make/options.mk
:
#Added this
FUNCTIONS := GCDAProfiling
I checked the library to see whether it was in there using ar -t libcompiler_rt.a
:
__.SYMDEF SORTED
GCDAProfiling.o ------------- Here it is
clzti2.o
compilerrt_fmax.o
compilerrt_fmaxf.o
compilerrt_logb.o
compilerrt_logbf.o
ctzti2.o
divdc3.o
divdi3.o
divmoddi4.o
divmodsi4.o
divsc3.o
divsi3.o
divti3.o
fixdfdi.o
fixdfsi.o
fixdfti.o
fixsfdi.o
fixsfsi.o
fixsfti.o
fixunsdfdi.o
fixunsdfsi.o
fixunsdfti.o
fixunssfdi.o
fixunssfsi.o
fixunssfti.o
floatdidf.o
floatdisf.o
floatsidf.o
floatsisf.o
floattidf.o
floattisf.o
floatundidf.o
floatundisf.o
floatunsidf.o
floatunsisf.o
floatuntidf.o
floatuntisf.o
int_util.o
moddi3.o
modsi3.o
modti3.o
muldc3.o
muloti4.o
mulsc3.o
multi3.o
popcountdi2.o
popcountsi2.o
popcountti2.o
powidf2.o
powisf2.o
udivdi3.o
udivmoddi4.o
udivmodsi4.o
udivmodti4.o
udivsi3.o
udivti3.o
umoddi3.o
umodsi3.o
umodti3.o
I've copied this library into the pepper_49/lib/clang-newlib_x86_64/[Debug|Release]
folders.
I've also updated the pepper_49 earth
example's Makefile in order to attempt to get some code coverage data, changing only the following lines:
VALID_TOOLCHAINS := clang-newlib
...
LIBS = ppapi_simple_cpp nacl_io sdk_util ppapi_cpp ppapi pthread compiler_rt
...
CFLAGS = --coverage -Wall
When I attempt to build, I get the following (please note that I have also attempted 64-bit linking but attached the wrong output, with no current means to replace it with the correct output...):
CXX clang-newlib/Release/earth_x86_32.o
LINK clang-newlib/Release/earth_unstripped_x86_32.nexe
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_writeout':
earth.cc:(.text+0xb53c): undefined reference to `llvm_gcda_start_file'
earth.cc:(.text+0xb57c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb59c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb5dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb5fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb63c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb65c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb69c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb6bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb6fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb71c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb75c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb77c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb7bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb7dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb81c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb83c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb87c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb89c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb8dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb8fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb93c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb95c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb99c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb9bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb9fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xba1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xba5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xba7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbabc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbadc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbb1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbb3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbb7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbb9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbbdc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbbfc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbc3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbc5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbc9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbcbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbcfc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbd1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbd5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbd7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbdbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbddc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbe1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbe3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbe7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbe9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbedc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbefc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbf3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbf5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbf9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbfbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbffc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc01c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc05c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc07c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc0bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc0dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc11c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc13c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc17c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc19c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc1dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc1fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc23c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc25c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc29c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc2bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc2fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc31c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc35c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc37c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc3bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc3dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc41c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc43c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc47c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc49c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc4dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc4fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc53c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc55c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc59c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc5bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc5fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc61c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc65c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc67c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc6bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc6dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc71c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc73c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc77c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc79c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc7dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc7fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc83c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc85c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc89c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc8bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc8fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc91c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc95c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc97c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc9bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc9dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xca1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xca3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xca7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xca9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcadc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcafc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcb3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcb5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcb9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcbbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcbfc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcc1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcc5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcc7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xccbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xccdc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcd1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcd3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcd7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcd9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcddc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcdfc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xce3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xce5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xce9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcebc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcefc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcf1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcf5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcf7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcfbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcfdc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd01c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd03c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd07c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd09c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd0dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd0fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd13c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd15c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd19c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd1bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd1fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd21c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd25c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd27c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd2bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd2dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd31c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd33c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd37c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd39c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd3dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd3fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd43c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd45c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd49c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd4bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd4fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd51c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd55c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd57c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd5bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd5dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd5fc): undefined reference to `llvm_gcda_summary_info'
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_init':
earth.cc:(.text+0x1127c): undefined reference to `llvm_gcov_init'
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_writeout':
earth.cc:(.text+0xd605): undefined reference to `llvm_gcda_end_file'
i686-nacl-clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [clang-newlib/Release/earth_unstripped_x86_32.nexe] Error 1
I'm doing something (probably several) incredibly basic wrong here, but without any documentation I'm at a loss as to how to:
Any help is greatly appreciated.
Upvotes: 0
Views: 458
Reputation: 11
Upvotes: 1