CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
84 lines
2.0 KiB
ArmAsm
84 lines
2.0 KiB
ArmAsm
.globl _start
|
|
.type _start,@function
|
|
.text
|
|
_start:
|
|
.cfi_startproc
|
|
0:
|
|
addis 2,12,(.TOC.-0b)@ha
|
|
addi 2,2,(.TOC.-0b)@l
|
|
.localentry _start,.-0b
|
|
mflr 0
|
|
std 0,16(1)
|
|
stdu 1,-32(1)
|
|
.cfi_def_cfa_offset 32
|
|
.cfi_offset 65, 16
|
|
|
|
.macro call f
|
|
bl \f
|
|
nop
|
|
.endm
|
|
|
|
# 3000 plt calls, giving over 64k in .plt size. With a small .got
|
|
# this guarantees some plt call stubs can use a 16-bit signed offset
|
|
# from .TOC. while others need a 32-bit signed offset (and are larger).
|
|
|
|
.irpc t4,012
|
|
.irpc t3,0123456789
|
|
.irpc t2,0123456789
|
|
.irpc t1,0123456789
|
|
.if \t4
|
|
call f\t4\t3\t2\t1
|
|
.elseif \t3
|
|
call f\t3\t2\t1
|
|
.elseif \t2
|
|
call f\t2\t1
|
|
.else
|
|
call f\t1
|
|
.endif
|
|
.endr
|
|
.endr
|
|
.endr
|
|
.endr
|
|
|
|
addi 1,1,32
|
|
.cfi_def_cfa_offset 0
|
|
ld 0,16(1)
|
|
mtlr 0
|
|
.cfi_restore 65
|
|
blr
|
|
.cfi_endproc
|
|
.size _start,.-_start
|
|
|
|
# Padding to trigger a stub sizing error with commit 2f83249c13 and
|
|
# c804c6f98d (relro changes). This particular testcase gives a decrease
|
|
# in .got to .plt gap after .eh_frame editing, resulting in some plt
|
|
# call stubs being smaller. If the very last one is smaller the size
|
|
# error triggers. Arguably, the ppc64 backend should not report an
|
|
# error for shrinkage. However, the actual PR object files showed an
|
|
# *increase* in .got to .plt gap after .eh_frame editing, resulting in
|
|
# some plt call stubs being larger. That hit an assertion failure
|
|
# when a long branch stub followed the larger plt call stub and
|
|
# overwrote the end of the plt call stub.
|
|
# With enough fiddling of this testcase it likely would be possible to
|
|
# find the right padding here and .eh_frame sizing to trigger an
|
|
# increase in .got to .plt gap. The point of this testcase is to show
|
|
# that the .got to .plt gap should not change after sizing.
|
|
.space 50000
|
|
|
|
# Generate some .eh_frame info that -gc-sections will trim
|
|
.macro fundef f
|
|
.section .text.\f,"ax",@progbits
|
|
.type \f,@function
|
|
\f:
|
|
.cfi_startproc
|
|
blr
|
|
.cfi_endproc
|
|
.size \f,.-\f
|
|
.endm
|
|
|
|
.irpc t2,0123456789
|
|
.irpc t1,0123456789
|
|
fundef dummy\t2\t1
|
|
.endr
|
|
.endr
|