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
68 lines
2.6 KiB
ArmAsm
68 lines
2.6 KiB
ArmAsm
// REQUIRES: aarch64
|
|
|
|
// RUN: rm -rf %t && split-file %s %t && cd %t
|
|
|
|
// RUN: llvm-mc -triple=aarch64 -filetype=obj %s -o %t11.o
|
|
// RUN: llvm-mc -triple=aarch64 -filetype=obj merged-property.s -o %t12.o
|
|
// RUN: llvm-mc -triple=aarch64 -filetype=obj merged-property2.s -o %t13.o
|
|
// RUN: ld.lld -r %t11.o %t12.o %t13.o -o %t.merged1.o
|
|
// RUN: llvm-readelf -n %t.merged1.o | FileCheck %s --check-prefix=NOTE-MIXED
|
|
|
|
/// This test verifies merging of AArch64 build attributes and GNU property notes.
|
|
/// Three object files are combined: one with build attributes (PAuth information, BTI, PAC, GCS),
|
|
/// and two with GNU property notes encoding the same feature bits.
|
|
/// PAuth ABI info is provided in one of the files and it is expected to be preserved in the merged output.
|
|
|
|
// NOTE-MIXED: Displaying notes found in: .note.gnu.property
|
|
// NOTE-MIXED-NEXT: Owner Data size Description
|
|
// NOTE-MIXED-NEXT: GNU 0x00000028 NT_GNU_PROPERTY_TYPE_0 (property note)
|
|
// NOTE-MIXED-NEXT: Properties: aarch64 feature: BTI, PAC
|
|
// NOTE-MIXED-NEXT: AArch64 PAuth ABI core info: platform 0x31 (unknown), version 0x13
|
|
|
|
// CHECK: .note.gnu.property
|
|
// CHECK-NOT: .ARM.attributes
|
|
|
|
.aeabi_subsection aeabi_pauthabi, required, uleb128
|
|
.aeabi_attribute Tag_PAuth_Platform, 49
|
|
.aeabi_attribute Tag_PAuth_Schema, 19
|
|
.aeabi_subsection aeabi_feature_and_bits, optional, uleb128
|
|
.aeabi_attribute Tag_Feature_BTI, 1
|
|
.aeabi_attribute Tag_Feature_PAC, 1
|
|
.aeabi_attribute Tag_Feature_GCS, 1
|
|
|
|
|
|
//--- merged-property.s
|
|
.section ".note.gnu.property", "a"
|
|
.long 0x4 // Name length is always 4 ("GNU")
|
|
.long end - begin // Data length
|
|
.long 0x5 // Type: NT_GNU_PROPERTY_TYPE_0
|
|
.asciz "GNU" // Name
|
|
.p2align 0x3
|
|
begin:
|
|
.long 0xc0000000 // GNU_PROPERTY_AARCH64_FEATURE_1_AND
|
|
.long 0x4
|
|
.long 0x7 // pr_data: BTI (1), PAC (2), GCS (4) = 0b111 = 7
|
|
.long 0x0
|
|
// PAuth ABI property note
|
|
.long 0xc0000001 // GNU_PROPERTY_AARCH64_FEATURE_PAUTH
|
|
.long 0x10 // Data length
|
|
.quad 0x31 // PAuth ABI platform
|
|
.quad 0x13 // PAuth ABI version
|
|
.p2align 0x3 // Align to 8 byte for 64 bit
|
|
end:
|
|
|
|
//--- merged-property2.s
|
|
.section .note.gnu.property, "a"
|
|
.align 0x4
|
|
.long 0x4 // Name length is always 4 ("GNU")
|
|
.long end2 - begin2 // Data length
|
|
.long 0x5 // Type: NT_GNU_PROPERTY_TYPE_0
|
|
.asciz "GNU" // Name
|
|
begin2:
|
|
.align 0x4
|
|
.long 0xc0000000 // Type: GNU_PROPERTY_AARCH64_FEATURE_1_AND
|
|
.long 0x4 // Data length
|
|
.long 0x7 // pr_data: BTI (1), PAC (2), GCS (4) = 0b111 = 7
|
|
.long 0x0
|
|
end2:
|