ymotongpoo / perf_data_converter

Tool to convert Linux perf files to the profile.proto format used by pprof
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

gelf.h is not recognized #1

Open ymotongpoo opened 4 years ago

ymotongpoo commented 4 years ago

gelf.h is not recognized properly by the compiler.

% bazel build //src:perf_to_profile                                                                              
INFO: Writing tracer profile to '/usr/local/google/home/yoshifumi/.cache/bazel/_bazel_yoshifumi/f23837e900930fe72238435ebdfef7b7/command.profile.gz'
DEBUG: Rule 'boringssl' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "79fb2c09eb2ef284e98afdf26874857447b36da32034cd965563d0f8d57ab756"
DEBUG: Call stack for the definition of repository 'boringssl' which is a http_archive (rule definition at /usr/local/google/home/yoshifumi/.cache/bazel/_bazel_yoshifumi/f23837e900930fe72238435ebdfef7b7/external/bazel_tools/tools/build_defs/repo/http.bzl:262:16):
 - /usr/local/google/home/yoshifumi/src/projects/perf_data_converter/WORKSPACE:27:1
INFO: Analyzed target //src:perf_to_profile (1 packages loaded, 2 targets configured).
INFO: Found 1 target...
INFO: From Executing genrule //src:libelf_dev_extract:
x - debian-binary
x - control.tar.xz
x - data.tar.xz
./
./usr/
./usr/include/
./usr/include/elfutils/
./usr/include/elfutils/elf-knowledge.h
./usr/include/elfutils/version.h
./usr/include/gelf.h
./usr/include/libelf.h
./usr/include/nlist.h
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./usr/lib/x86_64-linux-gnu/libelf.a
./usr/lib/x86_64-linux-gnu/pkgconfig/
./usr/lib/x86_64-linux-gnu/pkgconfig/libelf.pc
./usr/share/
./usr/share/doc/
./usr/share/doc/libelf-dev/
./usr/share/doc/libelf-dev/changelog.Debian.gz
./usr/share/doc/libelf-dev/changelog.gz
./usr/share/doc/libelf-dev/copyright
./usr/lib/x86_64-linux-gnu/libelf.so
INFO: From Executing genrule //src:libcap_dev_extract:
x - debian-binary
x - control.tar.xz
x - data.tar.xz
./
./usr/
./usr/include/
./usr/include/sys/
./usr/include/sys/capability.h
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./usr/lib/x86_64-linux-gnu/libcap.a
./usr/lib/x86_64-linux-gnu/pkgconfig/
./usr/lib/x86_64-linux-gnu/pkgconfig/libcap.pc
./usr/share/
./usr/share/doc/
./usr/share/doc/libcap-dev/
./usr/share/doc/libcap-dev/changelog.Debian.gz
./usr/share/doc/libcap-dev/changelog.gz
./usr/share/doc/libcap-dev/copyright
./usr/share/man/
./usr/share/man/man3/
./usr/share/man/man3/cap_clear.3.gz
./usr/share/man/man3/cap_copy_ext.3.gz
./usr/share/man/man3/cap_from_text.3.gz
./usr/share/man/man3/cap_get_file.3.gz
./usr/share/man/man3/cap_get_proc.3.gz
./usr/share/man/man3/cap_init.3.gz
./usr/share/man/man3/libcap.3.gz
./usr/lib/x86_64-linux-gnu/libcap.so
./usr/share/man/man3/cap_clear_flag.3.gz
./usr/share/man/man3/cap_compare.3.gz
./usr/share/man/man3/cap_copy_int.3.gz
./usr/share/man/man3/cap_drop_bound.3.gz
./usr/share/man/man3/cap_dup.3.gz
./usr/share/man/man3/cap_free.3.gz
./usr/share/man/man3/cap_from_name.3.gz
./usr/share/man/man3/cap_get_bound.3.gz
./usr/share/man/man3/cap_get_fd.3.gz
./usr/share/man/man3/cap_get_flag.3.gz
./usr/share/man/man3/cap_get_pid.3.gz
./usr/share/man/man3/cap_set_fd.3.gz
./usr/share/man/man3/cap_set_file.3.gz
./usr/share/man/man3/cap_set_flag.3.gz
./usr/share/man/man3/cap_set_proc.3.gz
./usr/share/man/man3/cap_size.3.gz
./usr/share/man/man3/cap_to_name.3.gz
./usr/share/man/man3/cap_to_text.3.gz
./usr/share/man/man3/capgetp.3.gz
./usr/share/man/man3/capsetp.3.gz
ERROR: /usr/local/google/home/yoshifumi/src/projects/perf_data_converter/src/quipper/BUILD:111:1: C++ compilation of rule '//src/quipper:dso' failed (Exit 1) gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++0x' -MD -MF ... (remaining 45 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
src/quipper/dso.cc:9:10: fatal error: gelf.h: No such file or directory
 #include <gelf.h>
          ^~~~~~~~
compilation terminated.
Target //src:perf_to_profile failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 47.428s, Critical Path: 8.81s
INFO: 214 processes: 214 linux-sandbox.
FAILED: Build did NOT complete successfully
proppy commented 4 years ago

Did you check if the file is in blaze-bin?

proppy commented 4 years ago

Can you paste the logs with --sandbox_debug so that we get all the compiler flags and see if $GENDIR is in there?

ymotongpoo commented 4 years ago

Interestingly it worked in my machine at home. Bazel prepares sandbox environment, so it means it should work in the corp machine, right? I should try bazel clean --expunge there first.

% bazel build //src:perf_to_profile
DEBUG: Rule 'rules_deb_packages' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1569855870 +0200"
DEBUG: Call stack for the definition of repository 'rules_deb_packages' which is a git_repository (rule definition at /home/ymotongpoo/.cache/bazel/_bazel_ymotongpoo/11b31fc2b1db3d08a4ec3e73730ccd7b/external/bazel_tools/tools/build_defs/repo/git.bzl:195:18):
 - /home/ymotongpoo/src/projects/perf_data_converter/WORKSPACE:61:1
INFO: SHA256 (https://github.com/google/boringssl/archive/master-with-bazel.zip) = 6199c64b94718cd9f1f3ecdd1752eed8e0ae4e2538ef0afa82081a6f8aeb51ce
DEBUG: Rule 'boringssl' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "6199c64b94718cd9f1f3ecdd1752eed8e0ae4e2538ef0afa82081a6f8aeb51ce"
DEBUG: Call stack for the definition of repository 'boringssl' which is a http_archive (rule definition at /home/ymotongpoo/.cache/bazel/_bazel_ymotongpoo/11b31fc2b1db3d08a4ec3e73730ccd7b/external/bazel_tools/tools/build_defs/repo/http.bzl:262:16):
 - /home/ymotongpoo/src/projects/perf_data_converter/WORKSPACE:27:1
INFO: Analyzed target //src:perf_to_profile (18 packages loaded, 1078 targets configured).
INFO: Found 1 target...
INFO: From Executing genrule //src:libelf_dev_extract:
x - debian-binary
x - control.tar.xz
x - data.tar.xz
./
./usr/
./usr/include/
./usr/include/elfutils/
./usr/include/elfutils/elf-knowledge.h
./usr/include/elfutils/version.h
./usr/include/gelf.h
./usr/include/libelf.h
./usr/include/nlist.h
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./usr/lib/x86_64-linux-gnu/libelf.a
./usr/lib/x86_64-linux-gnu/pkgconfig/
./usr/lib/x86_64-linux-gnu/pkgconfig/libelf.pc
./usr/share/
./usr/share/doc/
./usr/share/doc/libelf-dev/
./usr/share/doc/libelf-dev/changelog.Debian.gz
./usr/share/doc/libelf-dev/changelog.gz
./usr/share/doc/libelf-dev/copyright
./usr/lib/x86_64-linux-gnu/libelf.so
INFO: From Executing genrule //src:libcap_dev_extract:
x - debian-binary
x - control.tar.xz
x - data.tar.xz
./
./usr/
./usr/include/
./usr/include/sys/
./usr/include/sys/capability.h
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./usr/lib/x86_64-linux-gnu/libcap.a
./usr/lib/x86_64-linux-gnu/pkgconfig/
./usr/lib/x86_64-linux-gnu/pkgconfig/libcap.pc
./usr/share/
./usr/share/doc/
./usr/share/doc/libcap-dev/
./usr/share/doc/libcap-dev/changelog.Debian.gz
./usr/share/doc/libcap-dev/changelog.gz
./usr/share/doc/libcap-dev/copyright
./usr/share/man/
./usr/share/man/man3/
./usr/share/man/man3/cap_clear.3.gz
./usr/share/man/man3/cap_copy_ext.3.gz
./usr/share/man/man3/cap_from_text.3.gz
./usr/share/man/man3/cap_get_file.3.gz
./usr/share/man/man3/cap_get_proc.3.gz
./usr/share/man/man3/cap_init.3.gz
./usr/share/man/man3/libcap.3.gz
./usr/lib/x86_64-linux-gnu/libcap.so
./usr/share/man/man3/cap_clear_flag.3.gz
./usr/share/man/man3/cap_compare.3.gz
./usr/share/man/man3/cap_copy_int.3.gz
./usr/share/man/man3/cap_drop_bound.3.gz
./usr/share/man/man3/cap_dup.3.gz
./usr/share/man/man3/cap_free.3.gz
./usr/share/man/man3/cap_from_name.3.gz
./usr/share/man/man3/cap_get_bound.3.gz
./usr/share/man/man3/cap_get_fd.3.gz
./usr/share/man/man3/cap_get_flag.3.gz
./usr/share/man/man3/cap_get_pid.3.gz
./usr/share/man/man3/cap_set_fd.3.gz
./usr/share/man/man3/cap_set_file.3.gz
./usr/share/man/man3/cap_set_flag.3.gz
./usr/share/man/man3/cap_set_proc.3.gz
./usr/share/man/man3/cap_size.3.gz
./usr/share/man/man3/cap_to_name.3.gz
./usr/share/man/man3/cap_to_text.3.gz
./usr/share/man/man3/capgetp.3.gz
./usr/share/man/man3/capsetp.3.gz
INFO: From Compiling src/quipper/perf_serializer.cc:
src/quipper/perf_serializer.cc: In member function 'bool quipper::PerfSerializer::DeserializeAuxtraceInfoEvent(const quipper::PerfDataProto_AuxtraceInfoEvent&, quipper::event_t*) const':
src/quipper/perf_serializer.cc:1006:21: warning: comparison of integer expressions of different signedness: 'quipper::u64' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
 1006 |   for (u64 i = 0; i < sample.unparsed_binary_blob_priv_data_size(); ++i) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/quipper/perf_serializer.cc: In member function 'const quipper::SampleInfoReader* quipper::PerfSerializer::GetSampleInfoReaderForEvent(const event_t&) const':
src/quipper/perf_serializer.cc:1467:24: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'ssize_t' {aka 'long int'} [-Wsign-compare]
 1467 |         if (array_size <= event_id_pos) {
      |             ~~~~~~~~~~~^~~~~~~~~~~~~~~
src/quipper/perf_serializer.cc:1482:24: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'ssize_t' {aka 'long int'} [-Wsign-compare]
 1482 |         if (array_size < event_id_pos) {
      |             ~~~~~~~~~~~^~~~~~~~~~~~~~
INFO: From Compiling src/quipper/perf_reader.cc:
src/quipper/perf_reader.cc: In member function 'bool quipper::PerfReader::ReadCPUTopologyMetadata(quipper::DataReader*, size_t)':
src/quipper/perf_reader.cc:1525:23: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
 1525 |     for (int i = 0; i < nrcpus; ++i) {
      |                     ~~^~~~~~~~
INFO: From Compiling src/perf_data_converter.cc:
src/perf_data_converter.cc: In member function 'perftools::ProcessProfiles perftools::{anonymous}::PerfDataConverter::Profiles()':
src/perf_data_converter.cc:663:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<perftools::profiles::Builder>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  663 |   for (int i = 0; i < builders_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~
Target //src:perf_to_profile up-to-date:
  bazel-bin/src/perf_to_profile
INFO: Elapsed time: 204.173s, Critical Path: 27.76s
INFO: 557 processes: 557 linux-sandbox.
INFO: Build completed successfully, 564 total actions