]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: add tests to check the correct merge of the GCS feature with others.
authorMatthieu Longo <matthieu.longo@arm.com>
Thu, 7 Nov 2024 10:33:45 +0000 (10:33 +0000)
committerMatthieu Longo <matthieu.longo@arm.com>
Mon, 2 Dec 2024 15:18:41 +0000 (15:18 +0000)
ld/testsuite/ld-aarch64/protections/gnu-note-properties-maskable-merged.inc
ld/testsuite/ld-aarch64/protections/gnu-note-properties-maskable-split.inc
ld/testsuite/ld-aarch64/protections/gnu-note-properties-selectable-merged.inc
ld/testsuite/ld-aarch64/protections/gnu-note-properties-selectable-split.inc
ld/testsuite/ld-aarch64/protections/gnu-properties-1-all-merged.d
ld/testsuite/ld-aarch64/protections/gnu-properties-1-all-split.d
ld/testsuite/ld-aarch64/protections/gnu-properties-all.s
ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-all.d
ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-bti-pac.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-gcs.d [new file with mode: 0644]

index 5d88a7605293822a4b1d44d5115a09cdf6b72800..ea3dd7f05134a19aca0b1cae036184624131fbfb 100644 (file)
@@ -2,6 +2,7 @@
        .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000
        .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, (0x1 << 0)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_PAC, (0x1 << 1)
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_GCS, (0x1 << 2)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, 0x0
 .ifndef __mask_property_bti__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_BTI )
@@ -9,6 +10,9 @@
 .ifndef __mask_property_pac__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_PAC )
 .endif
+.ifndef __mask_property_gcs__
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_GCS )
+.endif
 .if GNU_PROPERTY_AARCH64_FEATURE_1_VALUE
        .section ".note.gnu.property", "a"
        .p2align 3
index d575bb56b627ad688d8ba31eb55af9d191cc5a41..fdbe9706fce739c4be67f853168340b8649690af 100644 (file)
@@ -2,6 +2,7 @@
        .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000
        .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, (0x1 << 0)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_PAC, (0x1 << 1)
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_GCS, (0x1 << 2)
 
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, 0x0
 .ifndef __mask_property_bti__
@@ -10,6 +11,9 @@
 .ifndef __mask_property_pac__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_PAC )
 .endif
+.ifndef __mask_property_gcs__
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_GCS )
+.endif
 
 .if GNU_PROPERTY_AARCH64_FEATURE_1_VALUE
        .section ".note.gnu.property", "a"
 5:
 .endif
 
+.ifndef __mask_property_gcs__
+       .p2align 3
+       .long 1f - 0f                   /* name length */
+       .long 5f - 2f                   /* data length */
+       .long NT_GNU_PROPERTY_TYPE_0    /* note type */
+0:     .asciz "GNU"                    /* vendor name */
+1:
+       .p2align 3
+2:     .long GNU_PROPERTY_AARCH64_FEATURE_1_AND /* pr_type.  */
+       .long 4f - 3f                            /* pr_datasz.  */
+3:
+       .long GNU_PROPERTY_AARCH64_FEATURE_1_GCS
+4:
+       .p2align 3
+5:
+.endif
+
 .endif
index ad4c778a23c1f73de3588a0181b126cfd2a70c13..783dde0c28ce12da62622ec3c279d2a3a3c76fe7 100644 (file)
@@ -2,6 +2,7 @@
        .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000
        .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, (0x1 << 0)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_PAC, (0x1 << 1)
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_GCS, (0x1 << 2)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, 0x0
 .ifdef __property_bti__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_BTI )
@@ -9,6 +10,9 @@
 .ifdef __property_pac__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_PAC )
 .endif
+.ifdef __property_gcs__
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_GCS )
+.endif
 .if GNU_PROPERTY_AARCH64_FEATURE_1_VALUE
        .section ".note.gnu.property", "a"
        .p2align 3
index 0bc37269cb99711bb0edf0fafb6085817d2c2217..a171471990a791ef49ef2e13f472308f36ee81ea 100644 (file)
@@ -2,6 +2,7 @@
        .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000
        .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, (0x1 << 0)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_PAC, (0x1 << 1)
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_GCS, (0x1 << 2)
 
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, 0x0
 .ifndef __mask_property_bti__
@@ -10,6 +11,9 @@
 .ifndef __mask_property_pac__
        .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_PAC )
 .endif
+.ifndef __mask_property_gcs__
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_VALUE | GNU_PROPERTY_AARCH64_FEATURE_1_GCS )
+.endif
 
 .if GNU_PROPERTY_AARCH64_FEATURE_1_VALUE
        .section ".note.gnu.property", "a"
 5:
 .endif
 
+.ifdef __property_gcs__
+       .p2align 3
+       .long 1f - 0f                   /* name length */
+       .long 5f - 2f                   /* data length */
+       .long NT_GNU_PROPERTY_TYPE_0    /* note type */
+0:     .asciz "GNU"                    /* vendor name */
+1:
+       .p2align 3
+2:     .long GNU_PROPERTY_AARCH64_FEATURE_1_AND /* pr_type.  */
+       .long 4f - 3f                            /* pr_datasz.  */
+3:
+       .long GNU_PROPERTY_AARCH64_FEATURE_1_GCS
+4:
+       .p2align 3
+5:
+.endif
+
 .endif
index cad64c4b184dfb92095814db7eb3160be4ca5c0f..adeaba33753bff1169b21af93047e1f29d0e84b5 100644 (file)
@@ -8,4 +8,4 @@
 Displaying notes found in: .note.gnu.property
 [      ]+Owner[        ]+Data size[    ]+Description
   GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
-      Properties: AArch64 feature: BTI, PAC
+      Properties: AArch64 feature: BTI, PAC, GCS
index c9a447e9edd4cf85da1e9d8f02cbdaf4c53b05db..57aaf921e709702c17e26ce3d47c901210b9ce78 100644 (file)
@@ -8,4 +8,4 @@
 Displaying notes found in: .note.gnu.property
 [      ]+Owner[        ]+Data size[    ]+Description
   GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
-      Properties: AArch64 feature: BTI, PAC
+      Properties: AArch64 feature: BTI, PAC, GCS
index 2b52eccf15e88791b4567026032cf6cc5afac6e4..0ae0410f6281c36188d1458d2007c186afc1bae7 100644 (file)
@@ -9,7 +9,8 @@ _start:
        .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000
        .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, (0x1 << 0)
        .set GNU_PROPERTY_AARCH64_FEATURE_1_PAC, (0x1 << 1)
-       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_BTI | GNU_PROPERTY_AARCH64_FEATURE_1_PAC )
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_GCS, (0x1 << 2)
+       .set GNU_PROPERTY_AARCH64_FEATURE_1_VALUE, ( GNU_PROPERTY_AARCH64_FEATURE_1_BTI | GNU_PROPERTY_AARCH64_FEATURE_1_PAC | GNU_PROPERTY_AARCH64_FEATURE_1_GCS )
 
        .section ".note.gnu.property", "a"
        .p2align 3
index af95020d9b9060c37367552281431c1d3f7b2b24..c18ec13e1b5bb4b041f73215cd3220f6a9bb5e76 100644 (file)
@@ -1,7 +1,7 @@
 #name: GNU Property: readelf (combine 2 object files: all + all)
 #source: gnu-properties-all.s
 #source: gnu-properties-selectable.s
-#as: -mabi=lp64 -defsym __property_bti__=1 -defsym __property_pac__=1
+#as: -mabi=lp64 -defsym __property_bti__=1 -defsym __property_pac__=1 -defsym __property_gcs__=1
 #ld: -e _start
 #readelf: -n
 #target: *linux*
@@ -9,4 +9,4 @@
 Displaying notes found in: .note.gnu.property
 [      ]+Owner[        ]+Data size[    ]+Description
   GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
-      Properties: AArch64 feature: BTI, PAC
+      Properties: AArch64 feature: BTI, PAC, GCS
diff --git a/ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-bti-pac.d b/ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-bti-pac.d
new file mode 100644 (file)
index 0000000..1e96f6f
--- /dev/null
@@ -0,0 +1,12 @@
+#name: GNU Property: readelf (combine 2 object files: all + BTI + PAC)
+#source: gnu-properties-all.s
+#source: gnu-properties-selectable.s
+#as: -mabi=lp64 -defsym __property_bti__=1 -defsym __property_pac__=1
+#ld: -e _start
+#readelf: -n
+#target: *linux*
+
+Displaying notes found in: .note.gnu.property
+[      ]+Owner[        ]+Data size[    ]+Description
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: AArch64 feature: BTI, PAC
diff --git a/ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-gcs.d b/ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-gcs.d
new file mode 100644 (file)
index 0000000..c05e920
--- /dev/null
@@ -0,0 +1,12 @@
+#name: GNU Property: readelf (combine 2 object files: all + GCS only)
+#source: gnu-properties-all.s
+#source: gnu-properties-selectable.s
+#as: -mabi=lp64 -defsym __property_gcs__=1
+#ld: -e _start
+#readelf: -n
+#target: *linux*
+
+Displaying notes found in: .note.gnu.property
+[      ]+Owner[        ]+Data size[    ]+Description
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: AArch64 feature: GCS