[all-commits] [llvm/llvm-project] d9fac9: [BOLT] Fix unit test failures when libLLVM is link...
Anatoly Trosinenko via All-commits
all-commits at lists.llvm.org
Sat Aug 2 03:37:47 PDT 2025
Branch: refs/heads/users/atrosinenko/bolt-unit-tests-llvm-dylib
Home: https://github.com/llvm/llvm-project
Commit: d9fac9fcb337e34ea98f4237179389e51c39300a
https://github.com/llvm/llvm-project/commit/d9fac9fcb337e34ea98f4237179389e51c39300a
Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
Date: 2025-08-02 (Sat, 02 Aug 2025)
Changed paths:
M bolt/unittests/Core/CMakeLists.txt
M bolt/unittests/Profile/CMakeLists.txt
Log Message:
-----------
[BOLT] Fix unit test failures when libLLVM is linked dynamically
When LLVM_LINK_LLVM_DYLIB is ON, `check-bolt` target reports unit test
failures:
BOLT-Unit :: Core/./CoreTests/failed_to_discover_tests_from_gtest
BOLT-Unit :: Profile/./ProfileTests/failed_to_discover_tests_from_gtest
The reason is that when llvm-lit runs a unit-test executable:
/path/to/CoreTests --gtest_list_tests '--gtest_filter=-*DISABLED_*'
an assertion is triggered with the following message:
LLVM ERROR: Option 'default' already exists!
This assertion triggers when the initializer of defaultListDAGScheduler
defined at SelectionDAGISel.cpp:219 is called as a statically-linked
function after already being called during the initialization of libLLVM.
The issue can be traced down to LLVMTestingSupport library which depends
on libLLVM as neither COMPONENT_LIB nor DISABLE_LLVM_LINK_LLVM_DYLIB is
specified in a call to `add_llvm_library(LLVMTestingSupport ...)`.
Specifying DISABLE_LLVM_LINK_LLVM_DYLIB for LLVMTestingSupport makes
Clang unit test fail and COMPONENT_LIB is probably inappropriate for a
testing-specific library, thus as a workaround, added Error.cpp source
from LLVMTestingSupport directly to the list of source files of CoreTests
target (as it depends on `llvm::detail::TakeError(llvm::Error)`) and
removed LLVMTestingSupport from the list of dependencies of ProfileTests.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list