public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: binutils@emagii.com
To: binutils@sourceware.org
Cc: nickc@redhat.com, Ulf Samuelsson <ulf@emagii.com>
Subject: [PATCH v5 10/10] DIGEST: testsuite
Date: Wed, 22 Feb 2023 17:16:09 +0100	[thread overview]
Message-ID: <20230222161609.239928-11-binutils@emagii.com> (raw)
In-Reply-To: <20230222161609.239928-1-binutils@emagii.com>

From: Ulf Samuelsson <ulf@emagii.com>

All these examples link, but fails in the make check-ld

Signed-off-by: Ulf Samuelsson <ulf@emagii.com>
---
 ld/testsuite/ld-scripts/crc32-poly.d  | 46 ++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc32-poly.s  |  9 +++++
 ld/testsuite/ld-scripts/crc32-poly.t  | 38 ++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc32-polyi.d | 45 +++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc32-polyi.s |  9 +++++
 ld/testsuite/ld-scripts/crc32-polyi.t | 38 ++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc32.d       | 37 +++++++++++++++++++++
 ld/testsuite/ld-scripts/crc32.s       |  9 +++++
 ld/testsuite/ld-scripts/crc32.t       | 39 ++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-ecma.d  | 47 +++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-ecma.s  |  9 +++++
 ld/testsuite/ld-scripts/crc64-ecma.t  | 40 +++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-iso.d   | 47 +++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-iso.s   |  9 +++++
 ld/testsuite/ld-scripts/crc64-iso.t   | 40 +++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-poly.d  | 46 ++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-poly.s  |  9 +++++
 ld/testsuite/ld-scripts/crc64-poly.t  | 40 +++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-polyi.d | 47 +++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/crc64-polyi.s |  9 +++++
 ld/testsuite/ld-scripts/crc64-polyi.t | 40 +++++++++++++++++++++++
 ld/testsuite/ld-scripts/script.exp    |  8 +++++
 22 files changed, 661 insertions(+)
 create mode 100644 ld/testsuite/ld-scripts/crc32-poly.d
 create mode 100644 ld/testsuite/ld-scripts/crc32-poly.s
 create mode 100644 ld/testsuite/ld-scripts/crc32-poly.t
 create mode 100644 ld/testsuite/ld-scripts/crc32-polyi.d
 create mode 100644 ld/testsuite/ld-scripts/crc32-polyi.s
 create mode 100644 ld/testsuite/ld-scripts/crc32-polyi.t
 create mode 100644 ld/testsuite/ld-scripts/crc32.d
 create mode 100644 ld/testsuite/ld-scripts/crc32.s
 create mode 100644 ld/testsuite/ld-scripts/crc32.t
 create mode 100644 ld/testsuite/ld-scripts/crc64-ecma.d
 create mode 100644 ld/testsuite/ld-scripts/crc64-ecma.s
 create mode 100644 ld/testsuite/ld-scripts/crc64-ecma.t
 create mode 100644 ld/testsuite/ld-scripts/crc64-iso.d
 create mode 100644 ld/testsuite/ld-scripts/crc64-iso.s
 create mode 100644 ld/testsuite/ld-scripts/crc64-iso.t
 create mode 100644 ld/testsuite/ld-scripts/crc64-poly.d
 create mode 100644 ld/testsuite/ld-scripts/crc64-poly.s
 create mode 100644 ld/testsuite/ld-scripts/crc64-poly.t
 create mode 100644 ld/testsuite/ld-scripts/crc64-polyi.d
 create mode 100644 ld/testsuite/ld-scripts/crc64-polyi.s
 create mode 100644 ld/testsuite/ld-scripts/crc64-polyi.t

diff --git a/ld/testsuite/ld-scripts/crc32-poly.d b/ld/testsuite/ld-scripts/crc32-poly.d
new file mode 100644
index 00000000000..70fb231e116
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-poly.d
@@ -0,0 +1,46 @@
+#source: crc32-poly.s
+#ld: -T crc32-poly.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef 712c8793 0c110000  CODE....q,......
+ 1110 10240000 04130000 deadbeef 434f4445  .$..........CODE
+ 1120 434f4445 0c110000 ffffffff ffffffff  CODE............
+ 1130 ffffffff ffffffff ffffffff ffffffff  .*
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+ 1180 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 d23cc1eb 7b04d96a a9381881  .....<..{..j.8..
+ 2010 f608b2d5 2434733e 8d0c6bbf 5f30aa54  ....$4s>..k._0.T
+ 2020 336c3f16 e150fefd 4868e67c 9a542797  3l?..P..Hh.|.T'.
+ 2030 c5648dc3 17584c28 be6054a9 6c5c9542  .d...XL..`T.l\.B
+ 2040 66d87e2c b4e4bfc7 1ddca746 cfe066ad  f.~,.......F..f.
+ 2050 90d0ccf9 42ec0d12 ebd41593 39e8d478  ....B.......9..x
+ 2060 55b4413a 878880d1 2eb09850 fc8c59bb  U.A:.......P..Y.
+ 2070 a3bcf3ef 71803204 d8b82a85 0a84eb6e  ....q.2...*....n
+ 2080 ccb0fd58 1e8c3cb3 b7b42432 6588e5d9  ...X..<...$2e...
+#...
+ 2380 bb6fab37 69536adc c06b725d 1257b3b6  .o.7iSj..kr].W..
+ 2390 4d6719e2 9f5bd809 3663c088 e45f0163  Mg...[..6c..._.c
+ 23a0 88039421 5a3f55ca f3074d4b 213b8ca0  ...!Z?U...MK!;..
+ 23b0 7e0b26f4 ac37e71f 050fff9e d7333e75  ~.&..7.......3>u
+ 23c0 ddb7d51b 0f8b14f0 a6b30c71 748fcd9a  ...........qt...
+ 23d0 2bbf67ce f983a625 50bbbea4 82877f4f  +.g....%P......O
+ 23e0 eedbea0d 3ce72be6 95df3367 47e3f28c  ....<.+...3gG...
+ 23f0 18d358d8 caef9933 63d781b2 b1eb4059  ..X....3c.....@Y
+ 2400 434f4445 deadbeef 00000000 00000000  CODE............
+#pass
diff --git a/ld/testsuite/ld-scripts/crc32-poly.s b/ld/testsuite/ld-scripts/crc32-poly.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-poly.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc32-poly.t b/ld/testsuite/ld-scripts/crc32-poly.t
new file mode 100644
index 00000000000..35224c2cff8
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-poly.t
@@ -0,0 +1,38 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc32 = .;
+      DIGEST POLY(32, 0xDEADBEEF)(ecc_start , ecc_end)
+      ecc_start = .;
+      LONG(ecc_start)
+      LONG(ecc_end);
+      LONG(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc32-polyi.d b/ld/testsuite/ld-scripts/crc32-polyi.d
new file mode 100644
index 00000000000..e3b224caeda
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-polyi.d
@@ -0,0 +1,45 @@
+#source: crc32-polyi.s
+#ld: -T crc32-polyi.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef 8d51a265 0c110000  CODE.....Q.e....
+ 1110 10240000 04130000 deadbeef 434f4445  .$..........CODE
+ 1120 434f4445 0c110000 ffffffff ffffffff  CODE............
+ 1130 ffffffff ffffffff ffffffff ffffffff  .*
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f80 ffffffff ffffffff ffffffff ffffffff  .*
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 96300777 2c610eee ba510999  .....0.w,a...Q..
+ 2010 19c46d07 8ff46a70 35a563e9 a395649e  ..m...jp5.c...d.
+ 2020 3288db0e a4b8dc79 1ee9d5e0 88d9d297  2......y........
+ 2030 2b4cb609 bd7cb17e 072db8e7 911dbf90  +L...|.~.-......
+ 2040 6410b71d f220b06a 4871b9f3 de41be84  d.... .jHq...A..
+ 2050 7dd4da1a ebe4dd6d 51b5d4f4 c785d383  }......mQ.......
+ 2060 56986c13 c0a86b64 7af962fd ecc9658a  V.l...kdz.b...e.
+ 2070 4f5c0114 d96c0663 633d0ffa f50d088d  O\...l.cc=......
+ 2080 c8206e3b 5e10694c e44160d5 727167a2  . n;^.iL.A`.rqg.
+#...
+ 2390 612667a7 f71660d0 4d476949 db776e3e  a&g...`.MGiI.wn>
+ 23a0 4a6ad1ae dc5ad6d9 660bdf40 f03bd837  Jj...Z..f..@.;.7
+ 23b0 53aebca9 c59ebbde 7fcfb247 e9ffb530  S..........G...0
+ 23c0 1cf2bdbd 8ac2baca 3093b353 a6a3b424  ........0..S...$
+ 23d0 0536d0ba 9306d7cd 2957de54 bf67d923  .6......)W.T.g.#
+ 23e0 2e7a66b3 b84a61c4 021b685d 942b6f2a  .zf..Ja...h].+o*
+ 23f0 37be0bb4 a18e0cc3 1bdf055a 8def022d  7..........Z...-
+ 2400 434f4445 deadbeef 00000000 00000000  CODE............
+ #pass
diff --git a/ld/testsuite/ld-scripts/crc32-polyi.s b/ld/testsuite/ld-scripts/crc32-polyi.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-polyi.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc32-polyi.t b/ld/testsuite/ld-scripts/crc32-polyi.t
new file mode 100644
index 00000000000..5a7e25a4a9f
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32-polyi.t
@@ -0,0 +1,38 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc32 = .;
+      DIGEST POLYI(32,0xEDB88320)(ecc_start , ecc_end)
+      ecc_start = .;
+      LONG(ecc_start)
+      LONG(ecc_end);
+      LONG(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc32.d b/ld/testsuite/ld-scripts/crc32.d
new file mode 100644
index 00000000000..4bfba79ef03
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32.d
@@ -0,0 +1,37 @@
+#source: crc32.s
+#ld: -T crc32.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef 8d51a265 0c110000  CODE.....Q.e....
+ 1110 10240000 04130000 deadbeef 434f4445  .$..........CODE
+ 1120 434f4445 0c110000 ffffffff ffffffff  CODE............
+ 1130 ffffffff ffffffff ffffffff ffffffff  .*
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 96300777 2c610eee ba510999  .....0.w,a...Q..
+ 2010 19c46d07 8ff46a70 35a563e9 a395649e  ..m...jp5.c...d.
+ 2020 3288db0e a4b8dc79 1ee9d5e0 88d9d297  2......y........
+ 2030 2b4cb609 bd7cb17e 072db8e7 911dbf90  +L...|.~.-......
+ 2040 6410b71d f220b06a 4871b9f3 de41be84  d.... .jHq...A..
+ 2050 7dd4da1a ebe4dd6d 51b5d4f4 c785d383  }......mQ.......
+ 2060 56986c13 c0a86b64 7af962fd ecc9658a  V.l...kdz.b...e.
+ 2070 4f5c0114 d96c0663 633d0ffa f50d088d  O\...l.cc=......
+ 2080 c8206e3b 5e10694c e44160d5 727167a2  . n;^.iL.A`.rqg.
+#...
+ 2390 612667a7 f71660d0 4d476949 db776e3e  a&g...`.MGiI.wn>
+ 23a0 4a6ad1ae dc5ad6d9 660bdf40 f03bd837  Jj...Z..f..@.;.7
+ 23b0 53aebca9 c59ebbde 7fcfb247 e9ffb530  S..........G...0
+ 23c0 1cf2bdbd 8ac2baca 3093b353 a6a3b424  ........0..S...$
+ 23d0 0536d0ba 9306d7cd 2957de54 bf67d923  .6......)W.T.g.#
+ 23e0 2e7a66b3 b84a61c4 021b685d 942b6f2a  .zf..Ja...h].+o*
+ 23f0 37be0bb4 a18e0cc3 1bdf055a 8def022d  7..........Z...-
+ 2400 434f4445 deadbeef 00000000 00000000  CODE............
+#pass
diff --git a/ld/testsuite/ld-scripts/crc32.s b/ld/testsuite/ld-scripts/crc32.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc32.t b/ld/testsuite/ld-scripts/crc32.t
new file mode 100644
index 00000000000..51c8f7c834e
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc32.t
@@ -0,0 +1,39 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc32 = .;
+      DIGEST "CRC32" (ecc_start , ecc_end)
+      ecc_start = .;
+      LONG(ecc_start)
+      LONG(ecc_end);
+      LONG(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc64-ecma.d b/ld/testsuite/ld-scripts/crc64-ecma.d
new file mode 100644
index 00000000000..a8d197c3323
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-ecma.d
@@ -0,0 +1,47 @@
+#source: crc-ecma.s
+#ld: -T crc-ecma.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef d89e4425 b46db823  CODE......D%.m.#
+ 1110 10110000 00000000 10280000 00000000  .*
+ 1120 00170000 00000000 deadbeef 434f4445  ............CODE
+ 1130 434f4445 10110000 ffffffff ffffffff  CODE............
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+ 1180 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f80 ffffffff ffffffff ffffffff ffffffff  .*
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 00000000 9336eaa9 ebe1f042  .........6.....B
+ 2010 266dd453 d7c3e185 b55b3efa 3c2211c7  &m.S.....[>.<"..
+ 2020 dfec420e 45663349 4cdaa8a7 ae87c30b  ..B.Ef3IL.......
+ 2030 f981965d 92a5d2cc 6ab77cf4 7944228e  ...]....j.|.yD".
+ 2040 bed9851c 8acc6692 2def6fb5 612d96d0  ......f.-.o.a-..
+ 2050 98b4514f 5d0f8717 0b82bbe6 b6ee7755  ..QO].........wU
+ 2060 6135c712 cfaa55db f2032dbb 244ba599  a5....U...-.$K..
+ 2070 47581341 1869b45e d46ef9e8 f388441c  GX.A.i.^.n....D.
+ 2080 ef85e190 ff783d66 7cb30b39 1499cd24  .....x=f|..9...$
+#...
+ 2780 d3db7c26 d56eb886 40ed968f 3e8f48c4  ..|&.n..@...>.H.
+ 2790 f5b6a875 02ad5903 668042dc e94ca941  ...u..Y.f.B..L.A
+ 27a0 0c373e28 90088bcf 9f01d481 7be97b8d  .7>.........{.{.
+ 27b0 2a5aea7b 47cb6a4a b96c00d2 ac2a9a08  *Z.{G.jJ.l...*..
+ 27c0 6d02f93a 5fa2de14 fe341393 b4432e56  m..:_....4...C.V
+ 27d0 4b6f2d69 88613f91 d859c7c0 6380cfd3  Ko-i.a?..Y..c...
+ 27e0 b2eebb34 1ac4ed5d 21d8519d f1251d1f  ...4...]!.Q..%..
+ 27f0 94836f67 cd070cd8 07b585ce 26e6fc9a  ..og........&...
+ 2800 434f4445 deadbeef 00000000 00000000  CODE............
+#pass
diff --git a/ld/testsuite/ld-scripts/crc64-ecma.s b/ld/testsuite/ld-scripts/crc64-ecma.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-ecma.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc64-ecma.t b/ld/testsuite/ld-scripts/crc64-ecma.t
new file mode 100644
index 00000000000..be50d102c2b
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-ecma.t
@@ -0,0 +1,40 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc64 = .;
+      DEBUG ON
+      DIGEST "CRC64-ECMA" (ecc_start , ecc_end)
+      DEBUG OFF
+      ecc_start = .;
+      QUAD(ecc_start)
+      QUAD(ecc_end);
+      QUAD(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc64-iso.d b/ld/testsuite/ld-scripts/crc64-iso.d
new file mode 100644
index 00000000000..1c4cae43295
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-iso.d
@@ -0,0 +1,47 @@
+#source: crc-iso.s
+#ld: -T crc-iso.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef 00000000 000000a8  CODE............
+ 1110 10110000 00000000 10280000 00000000  .*
+ 1120 00170000 00000000 deadbeef 434f4445  ............CODE
+ 1130 434f4445 10110000 ffffffff ffffffff  CODE............
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+ 1180 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f80 ffffffff ffffffff ffffffff ffffffff  .*
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 00000000 00000000 000000d8  .*
+ 2010 00000000 00000068 00000000 000000b0  .......h........
+ 2020 00000000 000000d0 00000000 00000008  .*
+ 2030 00000000 000000b8 00000000 00000060  ...............`
+ 2040 00000000 00000078 00000000 000000a0  .......x........
+ 2050 00000000 00000010 00000000 000000c8  .*
+ 2060 00000000 000000a8 00000000 00000070  ...............p
+ 2070 00000000 000000c0 00000000 00000018  .*
+ 2080 00000000 000000f0 00000000 00000028  .*
+#...
+ 2780 00000000 00000058 00000000 00000080  .......X........
+ 2790 00000000 00000030 00000000 000000e8  .......0........
+ 27a0 00000000 00000088 00000000 00000050  ...............P
+ 27b0 00000000 000000e0 00000000 00000038  ...............8
+ 27c0 00000000 00000020 00000000 000000f8  ....... ........
+ 27d0 00000000 00000048 00000000 00000090  .......H........
+ 27e0 00000000 000000f0 00000000 00000028  .*
+ 27f0 00000000 00000098 00000000 00000040  ...............@
+ 2800 434f4445 deadbeef 00000000 00000000  CODE............
+#pass
diff --git a/ld/testsuite/ld-scripts/crc64-iso.s b/ld/testsuite/ld-scripts/crc64-iso.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-iso.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc64-iso.t b/ld/testsuite/ld-scripts/crc64-iso.t
new file mode 100644
index 00000000000..8f5b85a37e7
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-iso.t
@@ -0,0 +1,40 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc64 = .;
+      DEBUG OFF
+      DIGEST "CRC64-ISO" (ecc_start , ecc_end)
+      DEBUG OFF
+      ecc_start = .;
+      QUAD(ecc_start)
+      QUAD(ecc_end);
+      QUAD(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc64-poly.d b/ld/testsuite/ld-scripts/crc64-poly.d
new file mode 100644
index 00000000000..221d61fec4a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-poly.d
@@ -0,0 +1,46 @@
+#source: crc-poly.s
+#ld: -T crc-poly.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef 5da495a3 927272b3  CODE....]....rr.
+ 1110 10110000 00000000 10280000 00000000  ................
+ 1120 00170000 00000000 deadbeef 434f4445  ............CODE
+ 1130 434f4445 10110000 ffffffff ffffffff  CODE............
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+ 1180 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 00000000 efbeadde efbeadde  .*
+ 2010 31c3f663 30c3f663 de7d5bbd df7d5bbd  1..c0..c.}[..}[.
+ 2020 6286edc7 6086edc7 8d384019 8f384019  b...`....8@..8@.
+ 2030 53451ba4 50451ba4 bcfbb67a bffbb67a  SE..PE.....z...z
+ 2040 2bb27651 2eb27651 c40cdb8f c10cdb8f  +.vQ..vQ........
+ 2050 1a718032 1e718032 f5cf2dec f1cf2dec  .q.2.q.2..-...-.
+ 2060 49349b96 4e349b96 a68a3648 a18a3648  I4..N4....6H..6H
+ 2070 78f76df5 7ef76df5 9749c02b 9149c02b  x.m.~.m..I.+.I.+
+ 2080 5664eda2 5c64eda2 b9da407c b3da407c  Vd..\d....@|..@|
+#...
+ 2780 415af2df 225af2df aee45f01 cde45f01  AZ.."Z...._..._.
+ 2790 709904bc 129904bc 9f27a962 fd27a962  p........'.b.'.b
+ 27a0 23dc1f18 42dc1f18 cc62b2c6 ad62b2c6  #...B....b...b..
+ 27b0 121fe97b 721fe97b fda144a5 9da144a5  ...{r..{..D...D.
+ 27c0 6ae8848e 0ce8848e 85562950 e3562950  j........V.P.V.P
+ 27d0 5b2b72ed 3c2b72ed b495df33 d395df33  [+r.<+r....3...3
+ 27e0 086e6949 6c6e6949 e7d0c497 83d0c497  .niIlniI........
+ 27f0 39ad9f2a 5cad9f2a d61332f4 b31332f4  9..*\..*..2...2.
+ 2800 434f4445 deadbeef 00000000 00000000  CODE............
+#pass
diff --git a/ld/testsuite/ld-scripts/crc64-poly.s b/ld/testsuite/ld-scripts/crc64-poly.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-poly.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc64-poly.t b/ld/testsuite/ld-scripts/crc64-poly.t
new file mode 100644
index 00000000000..035e79a26cf
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-poly.t
@@ -0,0 +1,40 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc64 = .;
+      DEBUG ON
+      DIGEST POLY(64,0xDEADBEEFDEADBEEF)(ecc_start , ecc_end)
+      DEBUG OFF
+      ecc_start = .;
+      QUAD(ecc_start)
+      QUAD(ecc_end);
+      QUAD(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/crc64-polyi.d b/ld/testsuite/ld-scripts/crc64-polyi.d
new file mode 100644
index 00000000000..7cbb2703d05
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-polyi.d
@@ -0,0 +1,47 @@
+#source: crc-polyi.s
+#ld: -T crc-polyi.t
+#objdump: -s -j .text
+#notarget: [is_aout_format]
+#xfail: tic4x-*-* tic54x-*-*
+
+.*:     file format .*
+
+Contents of section .text:
+ 1100 434f4445 deadbeef b7f7857f d0d5802a  CODE...........*
+ 1110 10110000 00000000 10280000 00000000  .*
+ 1120 00170000 00000000 deadbeef 434f4445  ............CODE
+ 1130 434f4445 10110000 ffffffff ffffffff  CODE............
+ 1140 ffffffff ffffffff ffffffff ffffffff  .*
+ 1150 ffffffff ffffffff ffffffff ffffffff  .*
+ 1160 ffffffff ffffffff ffffffff ffffffff  .*
+ 1170 ffffffff ffffffff ffffffff ffffffff  .*
+ 1180 ffffffff ffffffff ffffffff ffffffff  .*
+#...
+ 1f80 ffffffff ffffffff ffffffff ffffffff  .*
+ 1f90 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fa0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fb0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fc0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fd0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1fe0 ffffffff ffffffff ffffffff ffffffff  .*
+ 1ff0 ffffffff ffffffff 434f4445 deadbeef  ........CODE....
+ 2000 00000000 00000000 efbeadde efbeadde  .*
+ 2010 31c3f663 30c3f663 de7d5bbd df7d5bbd  1..c0..c.}[..}[.
+ 2020 6286edc7 6086edc7 8d384019 8f384019  b...`....8@..8@.
+ 2030 53451ba4 50451ba4 bcfbb67a bffbb67a  SE..PE.....z...z
+ 2040 2bb27651 2eb27651 c40cdb8f c10cdb8f  +.vQ..vQ........
+ 2050 1a718032 1e718032 f5cf2dec f1cf2dec  .q.2.q.2..-...-.
+ 2060 49349b96 4e349b96 a68a3648 a18a3648  I4..N4....6H..6H
+ 2070 78f76df5 7ef76df5 9749c02b 9149c02b  x.m.~.m..I.+.I.+
+ 2080 5664eda2 5c64eda2 b9da407c b3da407c  Vd..\d....@|..@|
+#...
+ 2780 415af2df 225af2df aee45f01 cde45f01  AZ.."Z...._..._.
+ 2790 709904bc 129904bc 9f27a962 fd27a962  p........'.b.'.b
+ 27a0 23dc1f18 42dc1f18 cc62b2c6 ad62b2c6  #...B....b...b..
+ 27b0 121fe97b 721fe97b fda144a5 9da144a5  ...{r..{..D...D.
+ 27c0 6ae8848e 0ce8848e 85562950 e3562950  j........V)P.V)P
+ 27d0 5b2b72ed 3c2b72ed b495df33 d395df33  [+r.<+r....3...3
+ 27e0 086e6949 6c6e6949 e7d0c497 83d0c497  .niIlniI........
+ 27f0 39ad9f2a 5cad9f2a d61332f4 b31332f4  9..*\..*..2...2.
+ 2800 434f4445 deadbeef 00000000 00000000  CODE............
+ #pass
diff --git a/ld/testsuite/ld-scripts/crc64-polyi.s b/ld/testsuite/ld-scripts/crc64-polyi.s
new file mode 100644
index 00000000000..704b492ae61
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-polyi.s
@@ -0,0 +1,9 @@
+    .extern ecc_start
+	.section .text
+main:
+	.long 0x45444F43
+	.long ecc_start
+	.section .data
+	.long 0x9abcdef0
+	.section .bss
+	.long 0
diff --git a/ld/testsuite/ld-scripts/crc64-polyi.t b/ld/testsuite/ld-scripts/crc64-polyi.t
new file mode 100644
index 00000000000..eefa3c63e68
--- /dev/null
+++ b/ld/testsuite/ld-scripts/crc64-polyi.t
@@ -0,0 +1,40 @@
+MEMORY {
+  rom : ORIGIN = 0x000000, LENGTH = 0x400000
+  ram : ORIGIN = 0x400000, LENGTH = 0x10000
+}
+
+_start = 0x000000;
+SECTIONS
+{
+  . = 0x1000 + SIZEOF_HEADERS;
+  .text ALIGN (0x100) :
+
+    {
+      FILL(0xFF)
+      QUAD(0xEFBEADDE45444F43);
+      crc64 = .;
+      DEBUG OFF
+      DIGEST POLYI(64, 0xDEADBEEFDEADBEEF)(ecc_start , ecc_end)
+      DEBUG OFF
+      ecc_start = .;
+      QUAD(ecc_start)
+      QUAD(ecc_end);
+      QUAD(ecc_end - ecc_start);
+      QUAD(0x45444F43EFBEADDE);
+      entry = .;
+      *(.text)
+      . = ALIGN(0x100);
+      BYTE(1)
+      . = ALIGN(4096) - 8;
+      QUAD(0xEFBEADDE45444F43);
+      DIGEST TABLE
+      QUAD(0xEFBEADDE45444F43);
+      QUAD(0);
+      ecc_end = .;
+    } > rom
+
+  .data : AT (0x400000) { *(.data) } >ram /* NO default AT>rom */
+  . = ALIGN(0x20);
+  .bss : { *(.bss) } >ram /* NO default AT>rom */
+  /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
index 56e12da8e61..9d606ff9008 100644
--- a/ld/testsuite/ld-scripts/script.exp
+++ b/ld/testsuite/ld-scripts/script.exp
@@ -229,6 +229,14 @@ foreach test_script $test_script_list {
 
 run_dump_test "asciz"
 run_dump_test "ascii"
+run_dump_test "crc64-ecma"
+run_dump_test "crc64-iso"
+run_dump_test "crc64-poly"
+run_dump_test "crc64-polyi"
+run_dump_test "crc32"
+run_dump_test "crc32-poly"
+run_dump_test "crc32-polyi"
+
 run_dump_test "align-with-input"
 run_dump_test "pr20302"
 run_dump_test "output-section-types"
-- 
2.34.1


  parent reply	other threads:[~2023-02-22 16:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-22 16:15 [PATCH v5 0/10 Add support for CRC64 generation in linker binutils
2023-02-22 16:16 ` [PATCH v5 01/10] TIMESTAMP: ldlang: process binutils
2023-02-22 16:16 ` [PATCH v5 02/10] DIGEST: NEWS binutils
2023-02-22 16:16 ` [PATCH v5 03/10] DIGEST: ld.texi binutils
2023-02-22 16:16 ` [PATCH v5 04/10] LIBCRC: license binutils
2023-02-22 16:16 ` [PATCH v5 05/10] DIGEST: ldlex.l binutils
2023-02-22 16:16 ` [PATCH v5 06/10] DIGEST: ldgram.y binutils
2023-02-22 16:16 ` [PATCH v5 07/10] DIGEST: Makefile.am: add new files binutils
2023-02-22 16:16 ` [PATCH v5 08/10] DIGEST: CRC-32/64 algorithms binutils
2023-02-22 16:16 ` [PATCH v5 09/10] DIGEST: ldmain.c: add CRC calculation binutils
2023-02-22 16:16 ` binutils [this message]
2023-02-22 18:23 ` [PATCH v5 0/10 Add support for CRC64 generation in linker Ulf Samuelsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230222161609.239928-11-binutils@emagii.com \
    --to=binutils@emagii.com \
    --cc=binutils@sourceware.org \
    --cc=nickc@redhat.com \
    --cc=ulf@emagii.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).