[lld] [ELF] Separate relative and non-relative dynamic relocations (PR #187959)

via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 22 16:36:18 PDT 2026


github-actions[bot] wrote:

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

* 3784 tests passed
* 74 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### lld
<details>
<summary>lld.ELF/ppc64-long-branch-rel14.s</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
echo 'SECTIONS {        .text_low 0x2000: { *(.text_low) }        .text_high 0xa000 : { *(.text_high) }        }' > /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.lds
# executed command: echo 'SECTIONS {        .text_low 0x2000: { *(.text_low) }        .text_high 0xa000 : { *(.text_high) }        }'
# note: command had no output on stdout or stderr
# RUN: at line 7
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -filetype=obj -triple=powerpc64 /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -filetype=obj -triple=powerpc64 /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o
# note: command had no output on stdout or stderr
# RUN: at line 8
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/ld.lld -T /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.lds /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/ld.lld -T /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.lds /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# note: command had no output on stdout or stderr
# RUN: at line 9
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-readelf -r /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SEC /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-readelf -r /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SEC /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-objdump -d --no-show-raw-insn /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-objdump -d --no-show-raw-insn /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# note: command had no output on stdout or stderr
# RUN: at line 12
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -filetype=obj -triple=powerpc64le /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-mc -filetype=obj -triple=powerpc64le /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/ld.lld -pie -T /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.lds /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/ld.lld -pie -T /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.lds /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp.o -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# note: command had no output on stdout or stderr
# RUN: at line 14
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-readelf -r /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SEC /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-readelf -r /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SEC /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# note: command had no output on stdout or stderr
# RUN: at line 15
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-objdump -d --no-show-raw-insn /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-objdump -d --no-show-raw-insn /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llvm-objdump: warning: '/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lld/test/ELF/Output/ppc64-long-branch-rel14.s.tmp': st_name (0x70000003) is past the end of the string table of size 0x38
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s:28:15: error: CHECK-EMPTY: is not on the line after the previous match
# | # CHECK-EMPTY:
# |               ^
# | <stdin>:20:1: note: 'next' match was here
# | 
# | ^
# | <stdin>:14:12: note: previous match ended here
# |  201c: trap
# |            ^
# | <stdin>:15:1: note: non-matching line after previous match is here
# |  2020: addis 12, 2, 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/lld/test/ELF/ppc64-long-branch-rel14.s
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          15:  2020: addis 12, 2, 0 
# |          16:  2024: ld 12, 8368(12) 
# |          17:  2028: mtctr 12 
# |          18:  202c: bctr 
# |          19:  ... 
# |          20:  
# | empty:28     ! error: match on wrong line
# |          21: 0000000000002040 <__long_branch_>: 
# |          22:  2040: addis 12, 2, 0 
# |          23:  2044: ld 12, 8376(12) 
# |          24:  2048: mtctr 12 
# |          25:  204c: bctr 
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</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/187959


More information about the llvm-commits mailing list