[PATCH] D130689: [LLVM] Update C++ standard to 17

Douglas Yung via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 7 20:03:48 PDT 2022


dyung added a comment.

We are seeing an additional failure on an internal linux bot due to the change to using C++17 by default when using GNU ld:

  [3/7] Generating GwpAsan-x86_64-Test
  FAILED: projects/compiler-rt/lib/gwp_asan/tests/GwpAsan-x86_64-Test 
  cd /home/jenkins/j/w/workspace/opensource/opensource_build/build/projects/compiler-rt/lib/gwp_asan/tests && /home/jenkins/j/w/workspace/opensource/opensource_build/build/./bin/clang++ GwpAsanTestObjects.printf_sanitizer_common.cpp.x86_64.o GwpAsanTestObjects.alignment.cpp.x86_64.o GwpAsanTestObjects.backtrace.cpp.x86_64.o GwpAsanTestObjects.basic.cpp.x86_64.o GwpAsanTestObjects.compression.cpp.x86_64.o GwpAsanTestObjects.iterate.cpp.x86_64.o GwpAsanTestObjects.crash_handler_api.cpp.x86_64.o GwpAsanTestObjects.driver.cpp.x86_64.o GwpAsanTestObjects.mutex_test.cpp.x86_64.o GwpAsanTestObjects.slot_reuse.cpp.x86_64.o GwpAsanTestObjects.thread_contention.cpp.x86_64.o GwpAsanTestObjects.harness.cpp.x86_64.o GwpAsanTestObjects.enable_disable.cpp.x86_64.o GwpAsanTestObjects.late_init.cpp.x86_64.o GwpAsanTestObjects.options.cpp.x86_64.o GwpAsanTestObjects.gtest-all.cc.x86_64.o /home/jenkins/j/w/workspace/opensource/opensource_build/build/projects/compiler-rt/lib/gwp_asan/tests/libRTGwpAsanTest.x86_64.a -o /home/jenkins/j/w/workspace/opensource/opensource_build/build/projects/compiler-rt/lib/gwp_asan/tests/./GwpAsan-x86_64-Test -ldl -lstdc++ --driver-mode=g++ -pthread -m64
  /usr/bin/ld: /usr/bin/ld: DWARF error: invalid or unhandled FORM value: 0x25
  GwpAsanTestObjects.backtrace.cpp.x86_64.o: in function `Backtrace_ExceedsStorableLength_Test::TestBody()':
  backtrace.cpp:(.text+0xce6): undefined reference to `gwp_asan::AllocationMetadata::kMaxTraceLengthToCollect'
  clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

And it seems at least one buildbot is also hitting the same issue:
https://lab.llvm.org/staging/#/builders/180/builds/7174

  [165/1101] Generating GwpAsan-x86_64-Test
  FAILED: projects/compiler-rt/lib/gwp_asan/tests/GwpAsan-x86_64-Test 
  cd /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/projects/compiler-rt/lib/gwp_asan/tests && /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/./bin/clang++ GwpAsanTestObjects.printf_sanitizer_common.cpp.x86_64.o GwpAsanTestObjects.alignment.cpp.x86_64.o GwpAsanTestObjects.backtrace.cpp.x86_64.o GwpAsanTestObjects.basic.cpp.x86_64.o GwpAsanTestObjects.compression.cpp.x86_64.o GwpAsanTestObjects.iterate.cpp.x86_64.o GwpAsanTestObjects.crash_handler_api.cpp.x86_64.o GwpAsanTestObjects.driver.cpp.x86_64.o GwpAsanTestObjects.mutex_test.cpp.x86_64.o GwpAsanTestObjects.slot_reuse.cpp.x86_64.o GwpAsanTestObjects.thread_contention.cpp.x86_64.o GwpAsanTestObjects.harness.cpp.x86_64.o GwpAsanTestObjects.enable_disable.cpp.x86_64.o GwpAsanTestObjects.late_init.cpp.x86_64.o GwpAsanTestObjects.options.cpp.x86_64.o GwpAsanTestObjects.gtest-all.cc.x86_64.o /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/projects/compiler-rt/lib/gwp_asan/tests/libRTGwpAsanTest.x86_64.a -o /var/lib/buildbot/workers/suse-gary-m68k-cross/clang-m68k-linux-cross/stage1/projects/compiler-rt/lib/gwp_asan/tests/./GwpAsan-x86_64-Test -ldl -lstdc++ --driver-mode=g++ -pthread -m64
  /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: DWARF error: invalid or unhandled FORM value: 0x23
  GwpAsanTestObjects.backtrace.cpp.x86_64.o: in function `Backtrace_ExceedsStorableLength_Test::TestBody()':
  backtrace.cpp:(.text+0xca6): undefined reference to `gwp_asan::AllocationMetadata::kMaxTraceLengthToCollect'
  clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

Switching between BFD ld and gold still fails (although gold fails for a slightly different reason). Superficially it seems that switching to C++17 for some reason might be causing the compiler to emit debug info that these older non-lld linkers cannot understand for some reason?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130689/new/

https://reviews.llvm.org/D130689



More information about the llvm-commits mailing list