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
145 lines
6.3 KiB
ArmAsm
145 lines
6.3 KiB
ArmAsm
# REQUIRES: aarch64
|
|
|
|
# RUN: rm -rf %t && split-file %s %t && cd %t
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 %p/Inputs/shared.s -o a.o
|
|
# RUN: ld.lld -shared a.o -o a.so
|
|
|
|
#--- ok.s
|
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 ok.s -o ok.o
|
|
|
|
# RUN: ld.lld ok.o a.so -pie -o ok1
|
|
# RUN: llvm-readelf -r -S -x .got ok1 | FileCheck %s --check-prefix=OK1
|
|
|
|
# RUN: ld.lld ok.o a.o -pie -o ok2
|
|
# RUN: llvm-readelf -r -S -x .got -s ok2 | FileCheck %s --check-prefix=OK2
|
|
|
|
# OK1: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# OK1-NEXT: 0000000000020380 0000000100000412 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 bar + 0
|
|
# OK1-NEXT: 0000000000020388 0000000200000412 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 zed + 0
|
|
|
|
## Symbol's values for bar and zed are equal since they contain no content (see Inputs/shared.s)
|
|
# OK2: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# OK2-NEXT: 0000000000020320 0000000000000411 R_AARCH64_AUTH_RELATIVE 10260
|
|
# OK2-NEXT: 0000000000020328 0000000000000411 R_AARCH64_AUTH_RELATIVE 10260
|
|
|
|
# OK1: Hex dump of section '.got':
|
|
# OK1-NEXT: 0x00020380 00000000 00000080 00000000 000000a0
|
|
## ^^
|
|
## 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
|
|
## ^^
|
|
## 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
|
|
|
|
# OK2: Symbol table '.symtab' contains {{.*}} entries:
|
|
# OK2: Num: Value Size Type Bind Vis Ndx Name
|
|
# OK2: 0000000000010260 0 FUNC GLOBAL DEFAULT 6 bar
|
|
# OK2: 0000000000010260 0 NOTYPE GLOBAL DEFAULT 6 zed
|
|
|
|
# OK2: Hex dump of section '.got':
|
|
# OK2-NEXT: 0x00020320 00000000 00000080 00000000 000000a0
|
|
## ^^
|
|
## 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
|
|
## ^^
|
|
## 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
|
|
|
|
# RUN: llvm-objdump -d ok1 | FileCheck %s --check-prefix=OK1-ASM
|
|
|
|
# OK1-ASM: <_start>:
|
|
# OK1-ASM-NEXT: adrp x0, 0x20000
|
|
# OK1-ASM-NEXT: ldr x0, [x0, #0x380]
|
|
# OK1-ASM-NEXT: adrp x1, 0x20000
|
|
# OK1-ASM-NEXT: add x1, x1, #0x380
|
|
# OK1-ASM-NEXT: adrp x0, 0x20000
|
|
# OK1-ASM-NEXT: ldr x0, [x0, #0x388]
|
|
# OK1-ASM-NEXT: adrp x1, 0x20000
|
|
# OK1-ASM-NEXT: add x1, x1, #0x388
|
|
|
|
# RUN: llvm-objdump -d ok2 | FileCheck %s --check-prefix=OK2-ASM
|
|
|
|
# OK2-ASM: <_start>:
|
|
# OK2-ASM-NEXT: adrp x0, 0x20000
|
|
# OK2-ASM-NEXT: ldr x0, [x0, #0x320]
|
|
# OK2-ASM-NEXT: adrp x1, 0x20000
|
|
# OK2-ASM-NEXT: add x1, x1, #0x320
|
|
# OK2-ASM-NEXT: adrp x0, 0x20000
|
|
# OK2-ASM-NEXT: ldr x0, [x0, #0x328]
|
|
# OK2-ASM-NEXT: adrp x1, 0x20000
|
|
# OK2-ASM-NEXT: add x1, x1, #0x328
|
|
|
|
.globl _start
|
|
_start:
|
|
adrp x0, :got_auth:bar
|
|
ldr x0, [x0, :got_auth_lo12:bar]
|
|
adrp x1, :got_auth:bar
|
|
add x1, x1, :got_auth_lo12:bar
|
|
adrp x0, :got_auth:zed
|
|
ldr x0, [x0, :got_auth_lo12:zed]
|
|
adrp x1, :got_auth:zed
|
|
add x1, x1, :got_auth_lo12:zed
|
|
|
|
#--- ok-tiny.s
|
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 ok-tiny.s -o ok-tiny.o
|
|
|
|
# RUN: ld.lld ok-tiny.o a.so -pie -o tiny1
|
|
# RUN: llvm-readelf -r -S -x .got tiny1 | FileCheck %s --check-prefix=TINY1
|
|
|
|
# RUN: ld.lld ok-tiny.o a.o -pie -o tiny2
|
|
# RUN: llvm-readelf -r -S -x .got -s tiny2 | FileCheck %s --check-prefix=TINY2
|
|
|
|
# TINY1: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# TINY1-NEXT: 0000000000020368 0000000100000412 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 bar + 0
|
|
# TINY1-NEXT: 0000000000020370 0000000200000412 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 zed + 0
|
|
|
|
## Symbol's values for bar and zed are equal since they contain no content (see Inputs/shared.s)
|
|
# TINY2: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# TINY2-NEXT: 0000000000020308 0000000000000411 R_AARCH64_AUTH_RELATIVE 10248
|
|
# TINY2-NEXT: 0000000000020310 0000000000000411 R_AARCH64_AUTH_RELATIVE 10248
|
|
|
|
# TINY1: Hex dump of section '.got':
|
|
# TINY1-NEXT: 0x00020368 00000000 00000080 00000000 000000a0
|
|
## ^^
|
|
## 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
|
|
## ^^
|
|
## 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
|
|
|
|
# TINY2: Symbol table '.symtab' contains {{.*}} entries:
|
|
# TINY2: Num: Value Size Type Bind Vis Ndx Name
|
|
# TINY2: 0000000000010248 0 FUNC GLOBAL DEFAULT 6 bar
|
|
# TINY2: 0000000000010248 0 NOTYPE GLOBAL DEFAULT 6 zed
|
|
|
|
# TINY2: Hex dump of section '.got':
|
|
# TINY2-NEXT: 0x00020308 00000000 00000080 00000000 000000a0
|
|
## ^^
|
|
## 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
|
|
## ^^
|
|
## 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
|
|
|
|
# RUN: llvm-objdump -d tiny1 | FileCheck %s --check-prefix=TINY1-ASM
|
|
|
|
# TINY1-ASM: <_start>:
|
|
# TINY1-ASM-NEXT: adr x0, 0x20368
|
|
# TINY1-ASM-NEXT: ldr x1, 0x20370
|
|
|
|
# RUN: llvm-objdump -d tiny2 | FileCheck %s --check-prefix=TINY2-ASM
|
|
|
|
# TINY2-ASM: <_start>:
|
|
# TINY2-ASM-NEXT: adr x0, 0x20308
|
|
# TINY2-ASM-NEXT: ldr x1, 0x20310
|
|
|
|
.globl _start
|
|
_start:
|
|
adr x0, :got_auth:bar
|
|
ldr x1, :got_auth:zed
|
|
|
|
#--- err.s
|
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 err.s -o err.o
|
|
# RUN: not ld.lld err.o a.so -pie 2>&1 | FileCheck %s --check-prefix=ERR --implicit-check-not=error:
|
|
# ERR: error: both AUTH and non-AUTH GOT entries for 'bar' requested, but only one type of GOT entry per symbol is supported
|
|
|
|
.globl _start
|
|
_start:
|
|
adrp x0, :got_auth:bar
|
|
ldr x0, [x0, :got_auth_lo12:bar]
|
|
adrp x0, :got:bar
|
|
ldr x0, [x0, :got_lo12:bar]
|