[v0,10/15] objcopy tests: copy accurately build attributes data from an object to another

Message ID 20250310175131.1217374-11-matthieu.longo@arm.com
State New
Headers
Series AArch64 AEABI build attributes (a.k.a. object attributes v2) |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Matthieu Longo March 10, 2025, 5:51 p.m. UTC
  ---
 .../binutils-all/aarch64/build-attributes.d   | 52 +++++++++++++++++++
 .../binutils-all/aarch64/build-attributes.s   | 31 +++++++++++
 2 files changed, 83 insertions(+)
 create mode 100644 binutils/testsuite/binutils-all/aarch64/build-attributes.d
 create mode 100644 binutils/testsuite/binutils-all/aarch64/build-attributes.s
  

Patch

diff --git a/binutils/testsuite/binutils-all/aarch64/build-attributes.d b/binutils/testsuite/binutils-all/aarch64/build-attributes.d
new file mode 100644
index 00000000000..a401749991d
--- /dev/null
+++ b/binutils/testsuite/binutils-all/aarch64/build-attributes.d
@@ -0,0 +1,52 @@ 
+#name: Copy AEABI build attributes from an object to another.
+#PROG: objcopy
+#source: build-attributes.s
+#readelf: -A
+
+Subsections:
+ - Name:	aeabi_feature_and_bits
+   Scope:	public
+   Length:	35
+   Optional:	True
+   Encoding:	ULEB128
+   Values:
+    Tag_Feature_BTI:	1 \(0x1\)
+    Tag_Feature_PAC:	0 \(0x0\)
+    Tag_Feature_GCS:	1 \(0x1\)
+
+ - Name:	aeabi_pauthabi
+   Scope:	public
+   Length:	23
+   Optional:	False
+   Encoding:	ULEB128
+   Values:
+    Tag_PAuth_Schema:	1 \(0x1\)
+
+ - Name:	foo_1
+   Scope:	private
+   Length:	20
+   Optional:	True
+   Encoding:	ULEB128
+   Values:
+    Tag_unknown_1:	1 \(0x1\)
+    Tag_unknown_2:	0 \(0x0\)
+    Tag_unknown_3:	0 \(0x0\)
+    Tag_unknown_4:	0 \(0x0\)
+
+ - Name:	foo_2
+   Scope:	private
+   Length:	16
+   Optional:	True
+   Encoding:	ULEB128
+   Values:
+    Tag_unknown_0:	1 \(0x1\)
+    Tag_unknown_1:	1 \(0x1\)
+
+ - Name:	foo_3
+   Scope:	private
+   Length:	26
+   Optional:	True
+   Encoding:	asciz
+   Values:
+    Tag_unknown_0:	"hello"
+    Tag_unknown_1:	"world"
diff --git a/binutils/testsuite/binutils-all/aarch64/build-attributes.s b/binutils/testsuite/binutils-all/aarch64/build-attributes.s
new file mode 100644
index 00000000000..bd9665f9f6d
--- /dev/null
+++ b/binutils/testsuite/binutils-all/aarch64/build-attributes.s
@@ -0,0 +1,31 @@ 
+.aeabi_subsection aeabi_pauthabi, required, uleb128
+.aeabi_attribute Tag_PAuth_Schema, 1
+
+.aeabi_subsection aeabi_feature_and_bits, optional, uleb128
+.aeabi_attribute Tag_Feature_BTI, 1
+.aeabi_attribute Tag_Feature_PAC, 0
+.aeabi_attribute Tag_Feature_GCS, 1
+
+.aeabi_subsection foo_1, optional, uleb128
+.aeabi_attribute 1, 1
+
+.aeabi_subsection foo_2, optional, uleb128
+.aeabi_attribute 0, 1
+.aeabi_attribute 1, 1
+
+.aeabi_subsection foo_1, optional, uleb128
+.aeabi_attribute 2, 0
+
+.aeabi_subsection foo_2, optional, uleb128
+.aeabi_attribute 1, 1
+
+.aeabi_subsection foo_1, optional, uleb128
+.aeabi_attribute 2, 0
+
+.aeabi_subsection foo_1, optional, uleb128
+.aeabi_attribute 3, 0
+.aeabi_attribute 4, 0
+
+.aeabi_subsection foo_3, optional, ntbs
+.aeabi_attribute 0, "hello"
+.aeabi_attribute 1, "world"