Issue metadata
Sign in to add a comment
|
media-libs/opencv broken by llvm-next update |
||||||||||||||||||||||||
Issue descriptionhttps://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1168987 may have broken opencv. Attempts to emerge it on grunt fail with the following error: /usr/bin/x86_64-cros-linux-gnu-clang++ -O2 -pipe -O2 -pipe -O2 -pipe -march=amdfam10 -g -O3 -DNDEBUG -Wl,-O1 -Wl,-O2 -Wl,--as-needed CMakeFiles/opencv_traincascade.dir/traincascade.o CMakeFiles/opencv_traincascade.dir/cascadeclassifier.o CMakeFiles/opencv_traincascade.dir/boost.o CMakeFiles/opencv_traincascade.dir/features.o CMakeFiles/opencv_traincascade.dir/haarfeatures.o CMakeFiles/opencv_traincascade.dir/lbpfeatures.o CMakeFiles/opencv_traincascade.dir/imagestorage.o -o ../../bin/opencv_traincascade -rdynamic ../../lib/libopencv_ml.so.2.3.0 ../../lib/libopencv_haartraining_engine.a ../../lib/libopencv_objdetect.so.2.3.0 ../../lib/libopencv_calib3d.so.2.3.0 ../../lib/libopencv_features2d.so.2.3.0 ../../lib/libopencv_highgui.so.2.3.0 ../../lib/libopencv_imgproc.so.2.3.0 ../../lib/libopencv_flann.so.2.3.0 ../../lib/libopencv_core.so.2.3.0 -lz -ldl -lm -lpthread -lrt ../../lib/libopencv_features2d.so.2.3.0: error: undefined reference to 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' clang-7: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [modules/traincascade/CMakeFiles/opencv_traincascade.dir/build.make:261: bin/opencv_traincascade] Error 1 make[2]: Leaving directory '/build/grunt/tmp/portage/media-libs/opencv-2.3.0-r12/work/opencv-2.3.0_build' make[1]: *** [CMakeFiles/Makefile2:954: modules/traincascade/CMakeFiles/opencv_traincascade.dir/all] Error 2
,
Aug 10
Two engineers' chroots are failing, with either build_packages --board=grunt or emerge-grunt media-libs/opencv
,
Aug 10
Several packages are failing, including: dev-libs/protobuf-3.3.0 dev-libs/libpcre-8.41-r1 sys-devel/llvm-6.0.0-r2 media-libs/opencv-2.3.0-r12 sys-apps/smartmontools-6.6-r1 Attaching the failed build log of sys-devel/llvm
,
Aug 10
Also of note, both of the failed build_packages were preceded by `repo sync`
,
Aug 10
testing with the new compiler for Grunt passed yesterday... https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8938650290509748592 so, maybe there is a problem with old object files?
,
Aug 10
CQ for grunt has finished buildpackages... https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8938565665814955488
,
Aug 10
can you emerge -C opencv dependencies and try again?
,
Aug 10
The build failure in LLVM is exactly the same as the one in opencv (linker cannot find a string destructor): FAILED: bin/llvm-tblgen : && /usr/bin/x86_64-cros-linux-gnu-clang++ -O2 -pipe -O2 -pipe -O2 -pipe -march=amdfam10 -g -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fcolor-diagnostics -ffunction-sections -fdata-sections -Wl,-O1 -Wl,-O2 -Wl,--as-needed -Wl,-allow-shlib-undefined -Wl,-O3 -Wl,--gc-sections utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o -o bin/llvm-tblgen -Wl,-rpath,"\$ORIGIN/../lib64" lib64/libLLVMSupport.a lib64/libLLVMTableGen.a -lpthread lib64/libLLVMSupport.a -lz -lrt -ldl -lpthread -lm lib64/libLLVMDemangle.a && : ../llvm-6.0.0.src/utils/TableGen/DFAPacketizerEmitter.cpp:566: error: undefined reference to 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' ../llvm-6.0.0.src/lib/Support/ErrorHandling.cpp:161: error: undefined reference to 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
,
Aug 10
I am trying to repro locally. Step I am doing: $ repo sync $ ./setup_board --board=grunt $ ./build_packages --board=grunt
,
Aug 10
,
Aug 10
This broke on octopus as well on my local checkout performing build_packages: opencv-2.3.0-r12: ../../lib/libopencv_features2d.so.2.3.0: error: undefined reference to 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::al locator<char> >::~basic_string()' opencv-2.3.0-r12: clang-7: error: linker command failed with exit code 1 (use -v to see invocation) opencv-2.3.0-r12: make[2]: *** [modules/haartraining/CMakeFiles/opencv_haartraining.dir/build.make:104: bin/opencv_haartraining] Error 1 opencv-2.3.0-r12: make[2]: Leaving directory '/build/octopus/tmp/portage/media-l ibs/opencv-2.3.0-r12/work/opencv-2.3.0_build' opencv-2.3.0-r12: make[1]: *** [CMakeFiles/Makefile2:1066: modules/haartraining/CMakeFiles/opencv_haartraining.dir/all] Error 2 opencv-2.3.0-r12: make[1]: *** Waiting for unfinished jobs.... opencv-2.3.0-r12: ../../lib/libopencv_features2d.so.2.3.0: error: undefined refe rence to 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::al locator<char> >::~basic_string()' opencv-2.3.0-r12: clang-7: error: linker command failed with exit code 1 (use -v to see invocation) opencv-2.3.0-r12: make[2]: *** [modules/haartraining/CMakeFiles/opencv_createsamples.dir/build.make:104: bin/opencv_createsamples] Error 1 opencv-2.3.0-r12: make[2]: Leaving directory '/build/octopus/tmp/portage/media-l ibs/opencv-2.3.0-r12/work/opencv-2.3.0_build' opencv-2.3.0-r12: make[1]: *** [CMakeFiles/Makefile2:1022: modules/haartraining/ CMakeFiles/opencv_createsamples.dir/all] Error 2 opencv-2.3.0-r12: [ 98%] Linking CXX shared library ../../lib/libopencv_contrib.so
,
Aug 10
I am not able to repro. $ ./build_packages passed for me. I also verified that emerge-grunt opencv also works. CQ also does not show any issues. So, I suspect there is something weird in the chroot. Can you try the following? $ rm -rf /build/grunt/var/cache/portage/* $ rm -rf /build/grunt/packages/* # Do build packages again. $ ./build_packages --board=grunt
,
Aug 10
My ./build_packages --board=grunt this morning had this failure. I just finished ./setup_board --board=grunt --force ./build_packages --board=grunt and it succeeded. So I guess my problem was maybe caused by some old object files.
,
Aug 10
adurbin@, could you try doing a setup_board with the --force flag, to force the toolchain to update? See if that fixes your problem...
,
Aug 10
,
Aug 10
Ping? Please verify whether or not 'setup_board --force' fixed this problem for you.
,
Aug 10
sent email to chromium-os-dev explaining the workaround (setup_board --force). we are working on regenerating the prebuilds. https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1171249/1
,
Aug 10
Still running...
,
Aug 10
I might have run into a related problem, when building a kernel for cheza (180809 sandbox) with clang: drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.o: In function `_dpu_core_perf_crtc_update_bus': /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:260: undefined reference to `dpu_power_data_bus_set_quota' /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:260:(.text+0x7a8): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `dpu_power_data_bus_set_quota' /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:269: undefined reference to `dpu_power_data_bus_set_quota' /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:269:(.text+0x7e4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `dpu_power_data_bus_set_quota' drivers/gpu/drm/msm/msm_fb.o: In function `msm_framebuffer_phys': /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/msm_fb.c:203: undefined reference to `msm_gem_get_dma_addr' /mnt/host/source/src/third_party/kernel/v4.14/drivers/gpu/drm/msm/msm_fb.c:203:(.text+0x398): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `msm_gem_get_dma_addr' make[1]: *** [/mnt/host/source/src/third_party/kernel/v4.14/Makefile:1022: vmlinux] Error 1 The problem disappeared after running 'update_chroot'.
,
Aug 10
$ ./setup_board --force --board=grunt $ USE=chrome_internal ./build_packages --board=grunt 839 packages later, this does work around the problem.
,
Aug 10
Drop to P1 since "--force" workaround works and llozano@ also sent a message to chromium-os-dev.
,
Aug 10
As another confirmation it looks like the --force works on octopus as well (to be expected). I'm still building but down to 11 packages.
,
Aug 11
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ef3ba198777af90147b0b000ae4f0e343285b29a commit ef3ba198777af90147b0b000ae4f0e343285b29a Author: Manoj Gupta <manojgupta@google.com> Date: Sat Aug 11 05:44:06 2018 Uprev libc++. Speculative fix for dev chroots in chromium:873201. This is just to force libc++ to be rebuilt in dev chroots. BUG= chromium:873201 TEST=pre-cq passes. Change-Id: I0066a82f5886d74ed8d700bd178c067aaff7371e Reviewed-on: https://chromium-review.googlesource.com/1171379 Commit-Ready: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Luis Lozano <llozano@chromium.org> [rename] https://crrev.com/ef3ba198777af90147b0b000ae4f0e343285b29a/sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild [rename] https://crrev.com/ef3ba198777af90147b0b000ae4f0e343285b29a/sys-libs/libcxx/libcxx-7.0.0.ebuild [add] https://crrev.com/ef3ba198777af90147b0b000ae4f0e343285b29a/sys-libs/libcxxabi/libcxxabi-7.0.0-r2.ebuild [add] https://crrev.com/ef3ba198777af90147b0b000ae4f0e343285b29a/sys-libs/libcxx/libcxx-7.0.0-r2.ebuild
,
Aug 13
I believe we can close this issue. There have been no more complains since we took measures to fix this on Friday and we sent the message to chromium-os-dev.
,
Aug 13
,
Aug 15
Issue 874241 has been merged into this issue.
,
Aug 15
chromeos simple build is still broken. > cros chrome-sdk --board=amd64-generic --nogoma --clang $ autoninja -C out_amd64-generic/Release/ chrome It succeeds to build it but cannot execute 'chrome' /opt/google/chrome/chrome: symbol lookup error: ./chrome: undefined symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev
,
Aug 16
Dongseng, I think you also need to update the Chrome OS image on the test machine to have a recent libc++.
,
Aug 17
Reopening since Matthew Wang ran into this after a full repo sync today: https://paste.googleplex.com/6316275898777600
,
Aug 17
is the workaround in #20 or #21 not working? i.e. $ ./setup_board --board=<board> --force
,
Aug 17
I chatted with Matthew and the workaround worked for him. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by cmt...@chromium.org
, Aug 10