autofdo fails when built using compiler-rt as default rtlib |
|||
Issue descriptionWhen clang is host compiler, autofdo does not build with compiler-rt as default rtlib. https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/chromiumos-sdk/builds/2305 autofdo-0.15-r3: rm -f libglog.a autofdo-0.15-r3: ar cru libglog.a glog/src/libglog_a-logging.o glog/src/libglog_a-raw_logging.o glog/src/libglog_a-vlog_is_on.o glog/src/libglog_a-utilities.o glog/src/libglog_a-demangle.o glog/src/libglog_a-symbolize.o glog/src/libglog_a-signalhandler.o autofdo-0.15-r3: x86_64-pc-linux-gnu-ranlib libglog.a autofdo-0.15-r3: llvm_profile_writer.cc:101:18: error: no member named 'setName' in autofdo-0.15-r3: 'llvm::StringMap<llvm::sampleprof::FunctionSamples, autofdo-0.15-r3: llvm::MallocAllocator>' autofdo-0.15-r3: callee_profile.setName(GetNameRef(callsite.second)); autofdo-0.15-r3: ~~~~~~~~~~~~~~ ^ autofdo-0.15-r3: llvm_profile_writer.cc:102:17: error: no matching member function for call to autofdo-0.15-r3: 'push_back' autofdo-0.15-r3: inline_stack_.push_back(&callee_profile); autofdo-0.15-r3: ~~~~~~~~~~~~~~^~~~~~~~~ autofdo-0.15-r3: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/bits/stl_vector.h:1038:7: note: autofdo-0.15-r3: candidate function not viable: no known conversion from autofdo-0.15-r3: 'llvm::StringMap<llvm::sampleprof::FunctionSamples, llvm::MallocAllocator> autofdo-0.15-r3: *' to 'const std::vector<llvm::sampleprof::FunctionSamples *, autofdo-0.15-r3: std::allocator<llvm::sampleprof::FunctionSamples *> >::value_type' (aka autofdo-0.15-r3: 'llvm::sampleprof::FunctionSamples *const') for 1st argument autofdo-0.15-r3: push_back(const value_type& __x) autofdo-0.15-r3: ^ autofdo-0.15-r3: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/bits/stl_vector.h:1057:7: note: autofdo-0.15-r3: candidate function not viable: no known conversion from autofdo-0.15-r3: 'llvm::StringMap<llvm::sampleprof::FunctionSamples, llvm::MallocAllocator> autofdo-0.15-r3: *' to 'std::vector<llvm::sampleprof::FunctionSamples *, autofdo-0.15-r3: std::allocator<llvm::sampleprof::FunctionSamples *> >::value_type' (aka autofdo-0.15-r3: 'llvm::sampleprof::FunctionSamples *') for 1st argument autofdo-0.15-r3: push_back(value_type&& __x) autofdo-0.15-r3: ^ autofdo-0.15-r3: 2 errors generated. autofdo-0.15-r3: make[1]: *** [Makefile:1059: create_llvm_prof-llvm_profile_writer.o] Error 1
,
May 31 2017
Existing github bug https://github.com/google/autofdo/issues/42
,
Jun 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/e6d27f8c20b576c7abf2e4bd0454691e645e518d commit e6d27f8c20b576c7abf2e4bd0454691e645e518d Author: Manoj Gupta <manojgupta@google.com> Date: Fri Jun 02 02:47:42 2017 Update autofdo to use different APIs with llvm-next. LLVM's ProfileData API has changed. So patch autofdo when built with llvm-next to use newer API. BUG= chromium:728360 TEST=autofdo builds with llvm-next. Change-Id: Ib006aec7ba73f427f991cea3756088f27eff0d09 Reviewed-on: https://chromium-review.googlesource.com/520663 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Caroline Tice <cmtice@chromium.org> Commit-Queue: Manoj Gupta <manojgupta@chromium.org> Trybot-Ready: Manoj Gupta <manojgupta@chromium.org> [add] https://crrev.com/e6d27f8c20b576c7abf2e4bd0454691e645e518d/sys-devel/autofdo/files/autofdo-0.15-llvm-next.patch [rename] https://crrev.com/e6d27f8c20b576c7abf2e4bd0454691e645e518d/sys-devel/autofdo/autofdo-0.15-r4.ebuild [modify] https://crrev.com/e6d27f8c20b576c7abf2e4bd0454691e645e518d/sys-devel/autofdo/autofdo-0.15.ebuild
,
Jun 2 2017
,
Jun 2 2017
Toolchain llvm_next builders are failing with this change. They set latest_toolchain=True and USE="llvm-next" but it does not build the host llvm compiler which is still the older version.
,
Jun 2 2017
We should probably ask the upstream to make a new release for similar issues next time.
,
Jun 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/73e8d004472a02e14b364122d283d78f09b22f52 commit 73e8d004472a02e14b364122d283d78f09b22f52 Author: Manoj Gupta <manojgupta@google.com> Date: Fri Jun 02 23:59:42 2017 Remove autofdo llvm-next use flag. Toolchain builders fail to build autofdo with llvm-next as host clang is not rebuilt. Instead directly query if llvm was built with llvm-next and apply the patch to use newer API. Also update EAPI to 5 to be able to use the query. BUG= chromium:728360 TEST=autofdo builds with llvm with and without llvm-next. Change-Id: I6192c0a35cb4161ffa195f54083da5e89373bb51 Reviewed-on: https://chromium-review.googlesource.com/522908 Commit-Ready: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [rename] https://crrev.com/73e8d004472a02e14b364122d283d78f09b22f52/sys-devel/autofdo/autofdo-0.15-r5.ebuild [modify] https://crrev.com/73e8d004472a02e14b364122d283d78f09b22f52/sys-devel/autofdo/autofdo-0.15.ebuild
,
Jun 12 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by manojgupta@chromium.org
, May 31 2017