[PATCH v12 24/25] gnu directives: bfd: generic tests for objcopy of gnu attributes v2

Matthieu Longo matthieu.longo@arm.com
Fri Jan 16 18:59:44 GMT 2026


---
 binutils/testsuite/binutils-all/objcopy.exp   |  1 +
 .../testsuite/binutils-all/object-attr-v2.d   | 52 +++++++++++++++++++
 .../testsuite/binutils-all/object-attr-v2.s   | 31 +++++++++++
 3 files changed, 84 insertions(+)
 create mode 100644 binutils/testsuite/binutils-all/object-attr-v2.d
 create mode 100644 binutils/testsuite/binutils-all/object-attr-v2.s

diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 459a2e6cd7e..3ad92256610 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -1329,6 +1329,7 @@ if [is_elf_format] {
 	run_dump_test "note-6-32"
     }
     run_dump_test "note-5"
+    run_dump_test "object-attr-v2"
 }
 
 run_dump_test "copy-2"
diff --git a/binutils/testsuite/binutils-all/object-attr-v2.d b/binutils/testsuite/binutils-all/object-attr-v2.d
new file mode 100644
index 00000000000..8c94b5259f3
--- /dev/null
+++ b/binutils/testsuite/binutils-all/object-attr-v2.d
@@ -0,0 +1,52 @@
+#name: Copy object attributes v2 data from an object to another.
+#PROG: objcopy
+#target: [supports_oa_v2]
+#readelf: -A
+
+Subsections:
+ - Name:[	 ]+foo_1
+   Scope:[	 ]+private
+   Length:[	 ]+20
+   Comprehension:[	 ]+optional
+   Encoding:[	 ]+ULEB128
+   Values:
+ +Tag_unknown_1:[	 ]+1 .*
+ +Tag_unknown_2:[	 ]+0 .*
+ +Tag_unknown_3:[	 ]+0 .*
+ +Tag_unknown_4:[	 ]+0 .*
+
+ - Name:[	 ]+foo_2
+   Scope:[	 ]+private
+   Length:[	 ]+16
+   Comprehension:[	 ]+optional
+   Encoding:[	 ]+ULEB128
+   Values:
+ +Tag_unknown_0:[	 ]+1 .*
+ +Tag_unknown_1:[	 ]+1 .*
+
+ - Name:[	 ]+foo_3
+   Scope:[	 ]+private
+   Length:[	 ]+26
+   Comprehension:[	 ]+optional
+   Encoding:[	 ]+NTBS
+   Values:
+ +Tag_unknown_0:[	 ]+"hello"
+ +Tag_unknown_1:[	 ]+"world"
+
+ - Name:[	 ]+gnu_bar
+   Scope:[	 ]+public
+   Length:[	 ]+20
+   Comprehension:[	 ]+optional
+   Encoding:[	 ]+ULEB128
+   Values:
+ +Tag_unknown_0:[	 ]+1 .*
+ +Tag_unknown_1:[	 ]+0 .*
+ +Tag_unknown_2:[	 ]+1 .*
+
+ - Name:[	 ]+gnu_foo
+   Scope:[	 ]+public
+   Length:[	 ]+16
+   Comprehension:[	 ]+required
+   Encoding:[	 ]+ULEB128
+   Values:
+ +Tag_unknown_1:[	 ]+1 .*
diff --git a/binutils/testsuite/binutils-all/object-attr-v2.s b/binutils/testsuite/binutils-all/object-attr-v2.s
new file mode 100644
index 00000000000..d5029503bbc
--- /dev/null
+++ b/binutils/testsuite/binutils-all/object-attr-v2.s
@@ -0,0 +1,31 @@
+	.gnu_subsection gnu_foo, required, uleb128
+	.gnu_attribute 1, 1
+
+	.gnu_subsection gnu_bar, optional, uleb128
+	.gnu_attribute 0, 1
+	.gnu_attribute 1, 0
+	.gnu_attribute 2, 1
+
+	.gnu_subsection foo_1, optional, uleb128
+	.gnu_attribute 1, 1
+
+	.gnu_subsection foo_2, optional, uleb128
+	.gnu_attribute 0, 1
+	.gnu_attribute 1, 1
+
+	.gnu_subsection foo_1, optional, uleb128
+	.gnu_attribute 2, 0
+
+	.gnu_subsection foo_2, optional, uleb128
+	.gnu_attribute 1, 1
+
+	.gnu_subsection foo_1, optional, uleb128
+	.gnu_attribute 2, 0
+
+	.gnu_subsection foo_1, optional, uleb128
+	.gnu_attribute 3, 0
+	.gnu_attribute 4, 0
+
+	.gnu_subsection foo_3, optional, ntbs
+	.gnu_attribute 0, "hello"
+	.gnu_attribute 1, "world"
-- 
2.52.0



More information about the Binutils mailing list