Skip to content

Conversation

yingcong-wu
Copy link
Contributor

There is an off-by-one error with current condition check for PC fallen into the range or not. There is another check within libunwind that use the correct checks in

if ((fdeInfo.pcStart <= pc) && (pc < fdeInfo.pcEnd))

      if ((fdeInfo.pcStart <= pc) && (pc < fdeInfo.pcEnd))

@yingcong-wu yingcong-wu requested a review from MaskRay August 22, 2025 07:23
@yingcong-wu yingcong-wu requested a review from a team as a code owner August 22, 2025 07:23
@llvmbot
Copy link
Member

llvmbot commented Aug 22, 2025

@llvm/pr-subscribers-libunwind

Author: Wu Yingcong (yingcong-wu)

Changes

There is an off-by-one error with current condition check for PC fallen into the range or not. There is another check within libunwind that use the correct checks in

if ((fdeInfo.pcStart <= pc) && (pc < fdeInfo.pcEnd))

      if ((fdeInfo.pcStart &lt;= pc) &amp;&amp; (pc &lt; fdeInfo.pcEnd))

Full diff: https://github.com/llvm/llvm-project/pull/154902.diff

1 Files Affected:

  • (modified) libunwind/src/DwarfParser.hpp (+1-1)
diff --git a/libunwind/src/DwarfParser.hpp b/libunwind/src/DwarfParser.hpp
index 7e85025dd054d..25250e0810987 100644
--- a/libunwind/src/DwarfParser.hpp
+++ b/libunwind/src/DwarfParser.hpp
@@ -273,7 +273,7 @@ bool CFI_Parser<A>::findFDE(A &addressSpace, pint_t pc, pint_t ehSectionStart,
           pint_t pcRange = addressSpace.getEncodedP(
               p, nextCFI, cieInfo->pointerEncoding & 0x0F);
           // Test if pc is within the function this FDE covers.
-          if ((pcStart < pc) && (pc <= pcStart + pcRange)) {
+          if ((pcStart <= pc) && (pc < pcStart + pcRange)) {
             // parse rest of info
             fdeInfo->lsda = 0;
             // check for augmentation length

trigger ci
@yingcong-wu yingcong-wu requested a review from fmayer August 25, 2025 01:53
@yingcong-wu
Copy link
Contributor Author

For stage3 (bootstrapping-build, llvm-premerge-libcxx-next-runners), I don't think the failure is related to my change.

  Unresolved Tests (2):
    lldb-api :: functionalities/data-formatter/data-formatter-stl/generic/list/TestDataFormatterGenericList.py
    lldb-api :: functionalities/data-formatter/data-formatter-stl/generic/list/loop/TestDataFormatterGenericListLoop.py
  
  ********************
  Failed Tests (1):
    lldb-api :: functionalities/data-formatter/data-formatter-stl/generic/forward_list/TestDataFormatterGenericForwardList.py

As for the buildkite failures, I don't have a clue, but it should not relate to this change either. I see this from the log

ninja: error: unknown target 'check-cxx-abilist'
  | + error 'Generating the libc++ ABI list after failed check'
  | + echo '::error::Generating the libc++ ABI list after failed check'

@yingcong-wu
Copy link
Contributor Author

Hi @reviewers-libunwind, @MaskRay, and @fmayer, could you please review this PR? Thanks.

@fmayer
Copy link
Contributor

fmayer commented Aug 27, 2025

We should add a regression test that fails before and passes after this change

@yingcong-wu
Copy link
Contributor Author

yingcong-wu commented Aug 28, 2025

Added an e2e regression test. I have to manually mark the .eh_frame_hdr as omitted in order to make libunwind do the linear search, which will invoke the affected logic. I assume the function address is located at the beginning of an FDE record(I think that should be a fair assumption).

Local test result:

zsh$> clang 1.c -lunwind
zsh$> ldd a.out
        linux-vdso.so.1 (0x00007ffc3b16b000)
        libunwind.so.1 => /tmp/llvm-unwind-fde-bug/build-debug/install/lib/x86_64-unknown-linux-gnu/libunwind.so.1 (0x00007fbac1735000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fbac1511000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbac174e000)

# skipping the command to update the eh_frame_hdr section

zsh$> ./a.out
123
fde_pc = 0x55fc2620b0d8
fde_fpc = (nil)
fde_fpc1 = 0x55fc2620b0b8

And here is the result using libgcc_s's unwind implementation

zsh$> clang 1.c
zsh$> ldd a.out
        linux-vdso.so.1 (0x00007fff217c8000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f410a4aa000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f410a2a0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f410a4e6000)

# skipping the command to update the eh_frame_hdr section

zsh$> ./a.out
123
fde_pc = 0x5632f0ed50d8
fde_fpc = 0x5632f0ed50b8
fde_fpc1 = 0x5632f0ed50b8

@github-actions
Copy link

github-actions bot commented Aug 29, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@yingcong-wu
Copy link
Contributor Author

As this test result shows, the test case also fails without my change to libunwind: https://github.com/llvm/llvm-project/actions/runs/17313128556/job/49152917070?pr=154902 (head is be13b4d8).

  # .---command stderr------------
  # | MemorySanitizer:DEADLYSIGNAL
  # | ==1153229==ERROR: MemorySanitizer: stack-overflow on address 0x7ffc3702ea78 (pc 0x560f4f3e9257 bp 0x7ffc3702f2c0 sp 0x7ffc3702ea80 T1153229)
  # | MemorySanitizer:DEADLYSIGNAL
  # | MemorySanitizer: nested bug in the same thread, aborting.
  # `-----------------------------

@yingcong-wu
Copy link
Contributor Author

Hi @fmayer , do you think this PR is ready to merge based on the CI results? I don't think the failed checks are related to my change. In my opinion, it looks more like infrastructure issues.
I see the following message in the log, not sure if that is the root cause.

+ /opt/freeware/bin/ninja -vC /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/build/aix check-cxx-abilist
ninja: Entering directory `/scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/build/aix'
ninja: error: unknown target 'check-cxx-abilist'
+ error 'Generating the libc++ ABI list after failed check'
+ echo '::error::Generating the libc++ ABI list after failed check'
::error::Generating the libc++ ABI list after failed check

@fmayer
Copy link
Contributor

fmayer commented Aug 29, 2025

@yingcong-wu yingcong-wu merged commit e57f0e9 into llvm:main Sep 1, 2025
69 of 77 checks passed
@philnik777
Copy link
Contributor

@yingcong-wu The new test fails on the Arm bots. Please fix it soon or revert to get the precommit CI green again (finally).

@llvm-ci
Copy link
Collaborator

llvm-ci commented Sep 2, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-win-x-aarch64 running on as-builder-2 while building libunwind at step 12 "test-check-bolt".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/193/builds/10240

Here is the relevant piece of the build log for the reference
Step 12 (test-check-bolt) failure: Test just built components: check-bolt completed (failure)
******************** TEST 'BOLT :: dump-dot-func.test' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 4
c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe --driver-mode=g++ C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test/Inputs/multi-func.cpp -o C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.exe -Wl,-q
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe' --driver-mode=g++ 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test/Inputs/multi-func.cpp' -o 'C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.exe' -Wl,-q
# note: command had no output on stdout or stderr
# RUN: at line 7
c:\buildbot\as-builder-2\x-aarch64\build\bin\llvm-bolt.exe C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.exe -o C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.bolt1 --dump-dot-func=_Z3addii -v=1 2>&1 | c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test\dump-dot-func.test --check-prefix=ADD
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\llvm-bolt.exe' 'C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.exe' -o 'C:\buildbot\as-builder-2\x-aarch64\build\tools\bolt\test\Output\dump-dot-func.test.tmp.bolt1' --dump-dot-func=_Z3addii -v=1
# note: command had no output on stdout or stderr
# error: command failed with exit status: 0x80000003
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe' 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test\dump-dot-func.test' --check-prefix=ADD
# .---command stderr------------
# | C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test\dump-dot-func.test:28:6: error: ADD: expected string not found in input
# | ADD: BOLT-INFO: dumping CFG to _Z3addii-00_build-cfg.dot
# |      ^
# | <stdin>:1:1: note: scanning from here
# | BOLT-INFO: shared object or position-independent executable detected
# | ^
# | <stdin>:11:1: note: possible intended match here
# | BOLT-INFO: marking .relro_padding as GNU_RELRO
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\buildbot\as-builder-2\x-aarch64\llvm-project\bolt\test\dump-dot-func.test
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: BOLT-INFO: shared object or position-independent executable detected 
# | check:28'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2: BOLT-INFO: Target architecture: aarch64 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             3: BOLT-INFO: BOLT version: e57f0e928d7b92f536a646d8ba1c26916b09e67e 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             4: BOLT-INFO: first alloc address is 0x0 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             5: BOLT-INFO: creating new program header table at address 0x200000, offset 0x200000 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             6: BOLT-INFO: marking .init_array as GNU_RELRO 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7: BOLT-INFO: marking .fini_array as GNU_RELRO 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8: BOLT-INFO: marking .data.rel.ro as GNU_RELRO 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9: BOLT-INFO: marking .dynamic as GNU_RELRO 
...
Step 14 (test-check-unwind-aarch64-unknown-linux-gnu) failure: Test just built components: check-unwind-aarch64-unknown-linux-gnu completed (failure)
******************** TEST 'llvm-libunwind-static.cfg.in :: eh_frame_fde_pc_range.pass.cpp' FAILED ********************
Exit Code: 127

Command Output (stdout):
--
# COMPILED WITH
C:/buildbot/as-builder-2/x-aarch64/build/./bin/clang++.exe C:\buildbot\as-builder-2\x-aarch64\llvm-project\libunwind\test\eh_frame_fde_pc_range.pass.cpp  --target=aarch64-unknown-linux-gnu -nostdinc++ -I C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/include -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings  C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/lib/aarch64-unknown-linux-gnu/libunwind.a -lpthread -Wl,--export-dynamic -ldl -latomic -o C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe
# executed command: C:/buildbot/as-builder-2/x-aarch64/build/./bin/clang++.exe 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\libunwind\test\eh_frame_fde_pc_range.pass.cpp' --target=aarch64-unknown-linux-gnu -nostdinc++ -I C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/include -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/lib/aarch64-unknown-linux-gnu/libunwind.a -lpthread -Wl,--export-dynamic -ldl -latomic -o 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe'
# note: command had no output on stdout or stderr
# EXECUTED AS
"C:/Python313/python.exe" "C:/buildbot/as-builder-2/x-aarch64/llvm-project/libcxx/utils/ssh.py" [email protected] --execdir C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir --  C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe
# executed command: C:/Python313/python.exe C:/buildbot/as-builder-2/x-aarch64/llvm-project/libcxx/utils/ssh.py [email protected] --execdir 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir' -- 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe'
# .---command stdout------------
# | 123
# | fde_pc = 0xaaaae7b44568
# | fde_fpc = 0xaaaae7b44540
# | fde_fpc1 = 0xaaaae7b44540
# `-----------------------------
# RUN: at line 21
C:/buildbot/as-builder-2/x-aarch64/build/./bin/clang++.exe C:\buildbot\as-builder-2\x-aarch64\llvm-project\libunwind\test\eh_frame_fde_pc_range.pass.cpp  --target=aarch64-unknown-linux-gnu -nostdinc++ -I C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/include -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings  C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/lib/aarch64-unknown-linux-gnu/libunwind.a -lpthread -Wl,--export-dynamic -ldl -latomic -o C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe
# executed command: C:/buildbot/as-builder-2/x-aarch64/build/./bin/clang++.exe 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\libunwind\test\eh_frame_fde_pc_range.pass.cpp' --target=aarch64-unknown-linux-gnu -nostdinc++ -I C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/include -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings C:/buildbot/as-builder-2/x-aarch64/build/runtimes/runtimes-aarch64-unknown-linux-gnu-bins/libunwind/test-suite-install/lib/aarch64-unknown-linux-gnu/libunwind.a -lpthread -Wl,--export-dynamic -ldl -latomic -o 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe'
# note: command had no output on stdout or stderr
# RUN: at line 22
objcopy --dump-section .eh_frame_hdr=C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp_ehf_hdr.bin C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe
# executed command: objcopy --dump-section '.eh_frame_hdr=C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp_ehf_hdr.bin' 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe'
# .---command stderr------------
# | 'objcopy': command not found
# `-----------------------------
# error: command failed with exit status: 127

--

********************


@yingcong-wu
Copy link
Contributor Author

@yingcong-wu The new test fails on the Arm bots. Please fix it soon or revert to get the precommit CI green again (finally).

Sure, I will take a quick look now.

@yingcong-wu
Copy link
Contributor Author

yingcong-wu commented Sep 2, 2025

Looks like there is no objcopy available for that build, I think adding the unsupport for that build would do it, I will open a PR for it.

objcopy --dump-section .eh_frame_hdr=C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp_ehf_hdr.bin C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe
# executed command: objcopy --dump-section '.eh_frame_hdr=C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp_ehf_hdr.bin' 'C:\buildbot\as-builder-2\x-aarch64\build\runtimes\runtimes-aarch64-unknown-linux-gnu-bins\libunwind\test\Output\eh_frame_fde_pc_range.pass.cpp.dir\t.tmp.exe'
# .---command stderr------------
# | 'objcopy': command not found

@yingcong-wu
Copy link
Contributor Author

yingcong-wu commented Sep 2, 2025

But I have added // REQUIRES: linux to the test already, why is it still running on win-x-aarch64 ? Do you have any ideas?

Never mind, it is a cross build setup, which builds on Windows env and the binary will be copied to and run on Linux env.

@yingcong-wu
Copy link
Contributor Author

yingcong-wu commented Sep 2, 2025

Open PR #156383 to unsupport this case.

yingcong-wu added a commit that referenced this pull request Sep 2, 2025
… cross toolchain build (#156383)

In #154902, the test failed
with llvm-clang-win-x-aarch64(it is a cross-build, which builds on
Windows and run on Linux, "Win to Aarch64 Linux Ubuntu Cross
Toolchain"), and objdump is not available on Windows(the build env).
Set to require x86 Linux instead.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Sep 2, 2025
…ch may have cross toolchain build (#156383)

In llvm/llvm-project#154902, the test failed
with llvm-clang-win-x-aarch64(it is a cross-build, which builds on
Windows and run on Linux, "Win to Aarch64 Linux Ubuntu Cross
Toolchain"), and objdump is not available on Windows(the build env).
Set to require x86 Linux instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants