[llvm] [BOLT] Fix pwrite assertion failure when patching .dynsym at high offsets (PR #198569)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 06:19:24 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>tools/bolt/unittests/Core/CMakeFiles/CoreTests.dir/BinaryContext.cpp.o</summary>

```
FAILED: tools/bolt/unittests/Core/CMakeFiles/CoreTests.dir/BinaryContext.cpp.o
sccache /opt/llvm/bin/clang++ -DAARCH64_AVAILABLE -DLLVM_BUILD_STATIC -DRISCV_AVAILABLE -DX86_AVAILABLE -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/bolt/unittests/Core -I/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/unittests/Core -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/bolt/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AArch64 -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/Target/AArch64 -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/X86 -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/Target/X86 -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/RISCV -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/Target/RISCV -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -UNDEBUG -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -MD -MT tools/bolt/unittests/Core/CMakeFiles/CoreTests.dir/BinaryContext.cpp.o -MF tools/bolt/unittests/Core/CMakeFiles/CoreTests.dir/BinaryContext.cpp.o.d -o tools/bolt/unittests/Core/CMakeFiles/CoreTests.dir/BinaryContext.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/unittests/Core/BinaryContext.cpp
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/unittests/Core/BinaryContext.cpp:110:30: error: non-const lvalue reference to type 'raw_fd_ostream' cannot bind to a value of unrelated type 'raw_svector_ostream'
110 |   BS.flushPendingRelocations(OS, [&](const MCSymbol *S) {
|                              ^~
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/include/bolt/Core/BinarySection.h:481:48: note: passing argument to parameter 'OS' here
481 |   void flushPendingRelocations(raw_fd_ostream &OS,
|                                                ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/unittests/Core/BinaryContext.cpp:152:30: error: non-const lvalue reference to type 'raw_fd_ostream' cannot bind to a value of unrelated type 'raw_svector_ostream'
152 |   BS.flushPendingRelocations(OS, [&](const MCSymbol *S) {
|                              ^~
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/include/bolt/Core/BinarySection.h:481:48: note: passing argument to parameter 'OS' here
481 |   void flushPendingRelocations(raw_fd_ostream &OS,
|                                                ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/unittests/Core/BinaryContext.cpp:189:30: error: non-const lvalue reference to type 'raw_fd_ostream' cannot bind to a value of unrelated type 'raw_svector_ostream'
189 |   BS.flushPendingRelocations(OS, [&](const MCSymbol *S) { return 0x800000F; });
|                              ^~
/home/gha/actions-runner/_work/llvm-project/llvm-project/bolt/include/bolt/Core/BinarySection.h:481:48: note: passing argument to parameter 'OS' here
481 |   void flushPendingRelocations(raw_fd_ostream &OS,
|                                                ^
3 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/198569


More information about the llvm-commits mailing list