From patchwork Mon Mar 6 13:31:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Samuelsson X-Patchwork-Id: 64657 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1844248wrd; Mon, 6 Mar 2023 05:37:00 -0800 (PST) X-Google-Smtp-Source: AK7set+we3evtTGYT2bPKDLW4a6lbSy+mDRJddL2G05FTj9DqR2eQMwoRHWIO7ZdId0tfMOWB1Tg X-Received: by 2002:aa7:d1cc:0:b0:4af:70a5:560b with SMTP id g12-20020aa7d1cc000000b004af70a5560bmr12484379edp.9.1678109819987; Mon, 06 Mar 2023 05:36:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678109819; cv=none; d=google.com; s=arc-20160816; b=jEeoZFEeXvbW/Di3ji4wfQX6ie4q1TqX/LDLpFnbMfyb/AEtNjUXl/NJagT716dsf8 G1lXV2oWOSbNkUaWBQSpKUL8KbirvVhwNsrkInlq4w7b40GE2IZWV+awl/MifOtxykLE eg3SV11g4bY/j6iseAxg+AZkvAjkHk5qeitAYs6Uzh7y6prEuyHlaiKP/jLeWADJkGHc MSaU2pQgv/EXrjakS4V7iFzqmSXBVLi1fF++oSl96M6sXiuUmvmGu9UrJi8FY2Upg5zs boliK/HeLs1rY0IOykxPQPSY8V71Px5tULsCbzqOF+VVxS4wObCFCJNIsynIEfDbrq2e vyFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=UaxI5SSs0edD18cLkYdWi0/RCOX03p8NnY/jH+rB4pc=; b=dM9POUN8HiSbk1XLilAu86jW8GWx8jr6ypQepPjdNsMlaGQA9Hq2dvPl0k1a+J+0Bh HiXFveM7hZGLDm+oDf3YzzSHVyK1GOYt78IARuHrBJ3zAb93RARP+hyecY8Hp3qtpMWq vdevNfmJDbeUu9ks32YWsYtYrXC6TdSeJb0l5/o9aN9dKidRWVgM2KTON/EyACbXL/GA yZBKKLucNYr2kFBPJVmzRz7FpF8A3rajNhV5r9dsjgAROwN1OdqQgExTaCLECE2uhEai vBR4jQlxPsoiLNDUscSfapYkABSnxWnPivSjeCrbXwmjd44gPRdtFyQXrensoumif9qZ utlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=ltxvC+PV; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id w4-20020aa7da44000000b004c698b50189si9605837eds.341.2023.03.06.05.36.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Mar 2023 05:36:59 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=ltxvC+PV; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4D15A3850221 for ; Mon, 6 Mar 2023 13:35:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D15A3850221 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1678109727; bh=UaxI5SSs0edD18cLkYdWi0/RCOX03p8NnY/jH+rB4pc=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=ltxvC+PVdFOCkb4lZsC4FHOv9mv2BVljTjD3E0qGyJ3wzY2HfCB8YGaEWwavd1d8M XKzP7pLVZAn/LtNPQCgS5qBKMzYPN+OYA7pCiI2kxelInFayNuRc3zGT+BZEGja6qt rjECW864GauTj3UYtMgOIN8cbHccOZZqfMY0jRZA= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from emagii.se (www.emagii.com [185.133.207.17]) by sourceware.org (Postfix) with ESMTPS id 3DDBE3857838 for ; Mon, 6 Mar 2023 13:32:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3DDBE3857838 Received: from valinor.ownit.se (84-55-68-216.customers.ownit.se [84.55.68.216]) by emagii.se (Postfix) with ESMTPSA id A9FB812016A; Mon, 6 Mar 2023 14:32:14 +0100 (CET) Received-SPF: pass (emagii.beebytevps.io: connection is authenticated) To: binutils@sourceware.org Cc: nickc@redhat.com, Ulf Samuelsson Subject: [PATCH v12 04/11] DIGEST: testsuite Date: Mon, 6 Mar 2023 14:31:51 +0100 Message-Id: <20230306133158.91917-5-binutils@emagii.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230306133158.91917-1-binutils@emagii.com> References: <20230306133158.91917-1-binutils@emagii.com> MIME-Version: 1.0 X-PPP-Message-ID: <167810953516.340146.4591523091225297165@localhost.localdomain> X-PPP-Vhost: emagii.com X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_FAIL, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Ulf Samuelsson via Binutils From: Ulf Samuelsson Reply-To: binutils@emagii.com Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759625682905154367?= X-GMAIL-MSGID: =?utf-8?q?1759625682905154367?= From: Ulf Samuelsson Signed-off-by: Ulf Samuelsson --- ld/testsuite/ld-scripts/begin_tag.inc | 9 +++ ld/testsuite/ld-scripts/crc32-poly.d | 26 +++++++++ ld/testsuite/ld-scripts/crc32-poly.s | 21 +++++++ ld/testsuite/ld-scripts/crc32-poly.t | 42 ++++++++++++++ ld/testsuite/ld-scripts/crc32.d | 26 +++++++++ ld/testsuite/ld-scripts/crc32.s | 21 +++++++ ld/testsuite/ld-scripts/crc32.t | 41 ++++++++++++++ .../ld-scripts/crc64-bad-endian-contents.d | 6 ++ .../ld-scripts/crc64-bad-endian-contents.s | 21 +++++++ .../ld-scripts/crc64-bad-endian-contents.t | 44 +++++++++++++++ .../ld-scripts/crc64-bad-endian-size.d | 6 ++ .../ld-scripts/crc64-bad-endian-size.s | 21 +++++++ .../ld-scripts/crc64-bad-endian-size.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc64-bad-label-2.d | 6 ++ ld/testsuite/ld-scripts/crc64-bad-label-2.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-bad-label-2.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc64-bad-label.d | 6 ++ ld/testsuite/ld-scripts/crc64-bad-label.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-bad-label.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc64-ecma.d | 26 +++++++++ ld/testsuite/ld-scripts/crc64-ecma.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-ecma.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc64-in-section.d | 6 ++ ld/testsuite/ld-scripts/crc64-in-section.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-in-section.t | 45 +++++++++++++++ ld/testsuite/ld-scripts/crc64-iso.d | 26 +++++++++ ld/testsuite/ld-scripts/crc64-iso.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-iso.t | 43 ++++++++++++++ ld/testsuite/ld-scripts/crc64-iso_be.d | 26 +++++++++ ld/testsuite/ld-scripts/crc64-iso_be.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-iso_be.t | 43 ++++++++++++++ .../ld-scripts/crc64-multiple-digest.d | 6 ++ .../ld-scripts/crc64-multiple-digest.s | 21 +++++++ .../ld-scripts/crc64-multiple-digest.t | 45 +++++++++++++++ ld/testsuite/ld-scripts/crc64-poly-size.d | 6 ++ ld/testsuite/ld-scripts/crc64-poly-size.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-poly-size.t | 43 ++++++++++++++ ld/testsuite/ld-scripts/crc64-poly.d | 26 +++++++++ ld/testsuite/ld-scripts/crc64-poly.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-poly.t | 43 ++++++++++++++ ld/testsuite/ld-scripts/crc64-reverse-area.d | 6 ++ ld/testsuite/ld-scripts/crc64-reverse-area.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-reverse-area.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc64-same-section.d | 6 ++ ld/testsuite/ld-scripts/crc64-same-section.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-same-section.t | 47 ++++++++++++++++ ld/testsuite/ld-scripts/crc64-section.d | 26 +++++++++ ld/testsuite/ld-scripts/crc64-section.s | 21 +++++++ ld/testsuite/ld-scripts/crc64-section.t | 56 +++++++++++++++++++ .../ld-scripts/crc64-unknown-digest.d | 6 ++ .../ld-scripts/crc64-unknown-digest.s | 21 +++++++ .../ld-scripts/crc64-unknown-digest.t | 44 +++++++++++++++ ld/testsuite/ld-scripts/crc_data.inc | 9 +++ ld/testsuite/ld-scripts/digest_table.inc | 6 ++ ld/testsuite/ld-scripts/digest_table_be.inc | 6 ++ ld/testsuite/ld-scripts/end_tag.inc | 9 +++ ld/testsuite/ld-scripts/script.exp | 17 ++++++ 57 files changed, 1411 insertions(+) create mode 100644 ld/testsuite/ld-scripts/begin_tag.inc 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.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-bad-endian-contents.d create mode 100644 ld/testsuite/ld-scripts/crc64-bad-endian-contents.s create mode 100644 ld/testsuite/ld-scripts/crc64-bad-endian-contents.t create mode 100644 ld/testsuite/ld-scripts/crc64-bad-endian-size.d create mode 100644 ld/testsuite/ld-scripts/crc64-bad-endian-size.s create mode 100644 ld/testsuite/ld-scripts/crc64-bad-endian-size.t create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label-2.d create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label-2.s create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label-2.t create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label.d create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label.s create mode 100644 ld/testsuite/ld-scripts/crc64-bad-label.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-in-section.d create mode 100644 ld/testsuite/ld-scripts/crc64-in-section.s create mode 100644 ld/testsuite/ld-scripts/crc64-in-section.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-iso_be.d create mode 100644 ld/testsuite/ld-scripts/crc64-iso_be.s create mode 100644 ld/testsuite/ld-scripts/crc64-iso_be.t create mode 100644 ld/testsuite/ld-scripts/crc64-multiple-digest.d create mode 100644 ld/testsuite/ld-scripts/crc64-multiple-digest.s create mode 100644 ld/testsuite/ld-scripts/crc64-multiple-digest.t create mode 100644 ld/testsuite/ld-scripts/crc64-poly-size.d create mode 100644 ld/testsuite/ld-scripts/crc64-poly-size.s create mode 100644 ld/testsuite/ld-scripts/crc64-poly-size.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-reverse-area.d create mode 100644 ld/testsuite/ld-scripts/crc64-reverse-area.s create mode 100644 ld/testsuite/ld-scripts/crc64-reverse-area.t create mode 100644 ld/testsuite/ld-scripts/crc64-same-section.d create mode 100644 ld/testsuite/ld-scripts/crc64-same-section.s create mode 100644 ld/testsuite/ld-scripts/crc64-same-section.t create mode 100644 ld/testsuite/ld-scripts/crc64-section.d create mode 100644 ld/testsuite/ld-scripts/crc64-section.s create mode 100644 ld/testsuite/ld-scripts/crc64-section.t create mode 100644 ld/testsuite/ld-scripts/crc64-unknown-digest.d create mode 100644 ld/testsuite/ld-scripts/crc64-unknown-digest.s create mode 100644 ld/testsuite/ld-scripts/crc64-unknown-digest.t create mode 100644 ld/testsuite/ld-scripts/crc_data.inc create mode 100644 ld/testsuite/ld-scripts/digest_table.inc create mode 100644 ld/testsuite/ld-scripts/digest_table_be.inc create mode 100644 ld/testsuite/ld-scripts/end_tag.inc diff --git a/ld/testsuite/ld-scripts/begin_tag.inc b/ld/testsuite/ld-scripts/begin_tag.inc new file mode 100644 index 00000000000..ef395bbe717 --- /dev/null +++ b/ld/testsuite/ld-scripts/begin_tag.inc @@ -0,0 +1,9 @@ + BYTE(0x43); + BYTE(0x4F); + BYTE(0x44); + BYTE(0x45); + BYTE(0xDE); + BYTE(0xAD); + BYTE(0xBE); + BYTE(0xEF); + QUAD(0); diff --git a/ld/testsuite/ld-scripts/crc32-poly.d b/ld/testsuite/ld-scripts/crc32-poly.d new file mode 100644 index 00000000000..726534d32d9 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32-poly.d @@ -0,0 +1,26 @@ +#source: crc32-poly.s +#ld: -T crc32-poly.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 cbf43926 00000000 00000000 00000000 ..9&............ + 1220 cbf43926 00000000 00000000 00000000 ..9&............ + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 1c00 454e4420 5441424c 45000000 00000000 END TABLE....... + 1c10 00000000 00000000 deadbeef 434f4445 ............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..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32-poly.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .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..a2b7d130ba7 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32-poly.t @@ -0,0 +1,42 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0xCB); + BYTE(0xF4); + BYTE(0x39); + BYTE(0x26); + LONG(0x0); + QUAD(0x0); + + + crc32 = .; + DIGEST "_CRC32#BE" POLY(32, 0x04C11DB7, 0xFFFFFFFF,0xFFFFFFFF,1,1,0 )(ecc_start , ecc_end) + LONG(0); + QUAD(0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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..e35eaf8e53e --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32.d @@ -0,0 +1,26 @@ +#source: crc32.s +#ld: -T crc32.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 cbf43926 00000000 00000000 00000000 ..9&............ + 1220 cbf43926 00000000 00000000 00000000 ..9&............ + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 1c00 454e4420 5441424c 45000000 00000000 END TABLE....... + 1c10 00000000 00000000 deadbeef 434f4445 ............CODE +#pass diff --git a/ld/testsuite/ld-scripts/crc32.s b/ld/testsuite/ld-scripts/crc32.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .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..b218ef1424f --- /dev/null +++ b/ld/testsuite/ld-scripts/crc32.t @@ -0,0 +1,41 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0xCB); + BYTE(0xF4); + BYTE(0x39); + BYTE(0x26); + LONG(0x0); + QUAD(0x0); + + crc32 = .; + DIGEST "_CRC32#BE" "CRC32" (ecc_start , ecc_end); + LONG(0); + QUAD(0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-contents.d b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.d new file mode 100644 index 00000000000..09df3cb2bbf --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.d @@ -0,0 +1,6 @@ +#source: crc64-bad-endian-size.s +#ld: -T crc64-bad-endian-size.t +# error: .*: bad 'endian' .* in digest label.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-contents.s b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-contents.t b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.t new file mode 100644 index 00000000000..8eecaf06dc8 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-contents.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#NE" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-size.d b/ld/testsuite/ld-scripts/crc64-bad-endian-size.d new file mode 100644 index 00000000000..09df3cb2bbf --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-size.d @@ -0,0 +1,6 @@ +#source: crc64-bad-endian-size.s +#ld: -T crc64-bad-endian-size.t +# error: .*: bad 'endian' .* in digest label.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-size.s b/ld/testsuite/ld-scripts/crc64-bad-endian-size.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-size.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-bad-endian-size.t b/ld/testsuite/ld-scripts/crc64-bad-endian-size.t new file mode 100644 index 00000000000..8f9cd600773 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-endian-size.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BEG" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-bad-label-2.d b/ld/testsuite/ld-scripts/crc64-bad-label-2.d new file mode 100644 index 00000000000..8e9d1604470 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label-2.d @@ -0,0 +1,6 @@ +#source: crc64-bad-label-2.s +#ld: -T crc64-bad-label-2.t +# error: .*: Illegal label .* in digest command.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-bad-label-2.s b/ld/testsuite/ld-scripts/crc64-bad-label-2.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label-2.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-bad-label-2.t b/ld/testsuite/ld-scripts/crc64-bad-label-2.t new file mode 100644 index 00000000000..19782bf827d --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label-2.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC^64#BE" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-bad-label.d b/ld/testsuite/ld-scripts/crc64-bad-label.d new file mode 100644 index 00000000000..9215a10fc8f --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label.d @@ -0,0 +1,6 @@ +#source: crc64-bad-label.s +#ld: -T crc64-bad-label.t +# error: .*: Illegal label .* in digest command.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-bad-label.s b/ld/testsuite/ld-scripts/crc64-bad-label.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-bad-label.t b/ld/testsuite/ld-scripts/crc64-bad-label.t new file mode 100644 index 00000000000..8c0941c674b --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-bad-label.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "0_CRC64#BE" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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..06b0476e627 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-ecma.d @@ -0,0 +1,26 @@ +#source: crc64-ecma.s +#ld: -T crc64-ecma.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1220 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 2000 454e4420 5441424c 45000000 00000000 END TABLE....... + 2010 00000000 00000000 deadbeef 434f4445 ............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..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-ecma.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .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..2a82039a93e --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-ecma.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-in-section.d b/ld/testsuite/ld-scripts/crc64-in-section.d new file mode 100644 index 00000000000..6f9d678b7fc --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-in-section.d @@ -0,0 +1,6 @@ +#source: crc64-in-section.s +#ld: -T crc64-in-section.t +#error: .*: CRC located inside checked area +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-in-section.s b/ld/testsuite/ld-scripts/crc64-in-section.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-in-section.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-in-section.t b/ld/testsuite/ld-scripts/crc64-in-section.t new file mode 100644 index 00000000000..e2e8cd99e8b --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-in-section.t @@ -0,0 +1,45 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + bad_start = .; + DIGEST "_CRC64#BE" "CRC64-ECMA" (bad_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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..11f85c18adf --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso.d @@ -0,0 +1,26 @@ +#source: crc64-iso.s +#ld: -T crc64-iso.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 b90956c7 75a41001 00000000 00000000 ..V.u........... + 1220 b90956c7 75a41001 00000000 00000000 ..V.u........... + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 2000 454e4420 5441424c 45000000 00000000 END TABLE....... + 2010 00000000 00000000 deadbeef 434f4445 ............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..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .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..20dedc47d12 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso.t @@ -0,0 +1,43 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0xb9); + BYTE(0x09); + BYTE(0x56); + BYTE(0xc7); + BYTE(0x75); + BYTE(0xa4); + BYTE(0x10); + BYTE(0x01); + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" "CRC64-GO-ISO" (ecc_start , ecc_end) + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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_be.d b/ld/testsuite/ld-scripts/crc64-iso_be.d new file mode 100644 index 00000000000..e256b414c5d --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso_be.d @@ -0,0 +1,26 @@ +#source: crc64-iso_be.s +#ld: -T crc64-iso_be.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 0110a475 c75609b9 00000000 00000000 ...u.V.......... + 1220 0110a475 c75609b9 00000000 00000000 ...u.V.......... + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 2000 454e4420 5441424c 45000000 00000000 END TABLE....... + 2010 00000000 00000000 deadbeef 434f4445 ............CODE +#pass diff --git a/ld/testsuite/ld-scripts/crc64-iso_be.s b/ld/testsuite/ld-scripts/crc64-iso_be.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso_be.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-iso_be.t b/ld/testsuite/ld-scripts/crc64-iso_be.t new file mode 100644 index 00000000000..22cc37ca304 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-iso_be.t @@ -0,0 +1,43 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x01); + BYTE(0x10); + BYTE(0xa4); + BYTE(0x75); + BYTE(0xc7); + BYTE(0x56); + BYTE(0x09); + BYTE(0xb9); + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64" "CRC64-GO-ISO" (ecc_start , ecc_end) + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table_be.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-multiple-digest.d b/ld/testsuite/ld-scripts/crc64-multiple-digest.d new file mode 100644 index 00000000000..5a1e5ccf3ca --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-multiple-digest.d @@ -0,0 +1,6 @@ +#source: crc64-multiple-digest.s +#ld: -T crc64-multiple-digest.t +# error: .*: Duplicate digest .* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-multiple-digest.s b/ld/testsuite/ld-scripts/crc64-multiple-digest.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-multiple-digest.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-multiple-digest.t b/ld/testsuite/ld-scripts/crc64-multiple-digest.t new file mode 100644 index 00000000000..49c1119ad1c --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-multiple-digest.t @@ -0,0 +1,45 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64A#BE" "CRC64-ECMA" (ecc_start , ecc_end); + DIGEST "_CRC64B#BE" "CRC64-ISO" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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-size.d b/ld/testsuite/ld-scripts/crc64-poly-size.d new file mode 100644 index 00000000000..841dd830ff0 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly-size.d @@ -0,0 +1,6 @@ +#source: crc64-poly-size.s +#ld: -T crc64-poly-size.t +# error: .*: Illegal Size in DIGEST: .* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-poly-size.s b/ld/testsuite/ld-scripts/crc64-poly-size.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly-size.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-poly-size.t b/ld/testsuite/ld-scripts/crc64-poly-size.t new file mode 100644 index 00000000000..8dad7186b9f --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly-size.t @@ -0,0 +1,43 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" POLY(80,0x42F0E1EBA9EA3693,0,0,0,0,0)(ecc_start , ecc_end) + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.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..6be05b6aed8 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly.d @@ -0,0 +1,26 @@ +#source: crc64-poly.s +#ld: -T crc64-poly.t +#objdump: -s -j .text +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .text: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1220 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 2000 454e4420 5441424c 45000000 00000000 END TABLE....... + 2010 00000000 00000000 deadbeef 434f4445 ............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..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .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..fb357caedf9 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-poly.t @@ -0,0 +1,43 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" POLY(64,0x42F0E1EBA9EA3693,0,0,0,0,0)(ecc_start , ecc_end) + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-reverse-area.d b/ld/testsuite/ld-scripts/crc64-reverse-area.d new file mode 100644 index 00000000000..344e8d28ed9 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-reverse-area.d @@ -0,0 +1,6 @@ +#source: crc64-reverse-area.s +#ld: -T crc64-reverse-area.t +# error: .*: CRC area starts after its end location.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-reverse-area.s b/ld/testsuite/ld-scripts/crc64-reverse-area.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-reverse-area.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-reverse-area.t b/ld/testsuite/ld-scripts/crc64-reverse-area.t new file mode 100644 index 00000000000..27aef4413a0 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-reverse-area.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" "CRC64-ECMA" (ecc_end, ecc_start); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-same-section.d b/ld/testsuite/ld-scripts/crc64-same-section.d new file mode 100644 index 00000000000..787145a6432 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-same-section.d @@ -0,0 +1,6 @@ +#source: crc64-same-section.s +#ld: -T crc64-same-section.t +#error: .*: The CRC digest and table should be inside the .* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-same-section.s b/ld/testsuite/ld-scripts/crc64-same-section.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-same-section.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-same-section.t b/ld/testsuite/ld-scripts/crc64-same-section.t new file mode 100644 index 00000000000..47c96f556a7 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-same-section.t @@ -0,0 +1,47 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .crc ALIGN (0x200) : + { + crc64 = .; + DIGEST "_CRC64#BE" "CRC64-ECMA" (ecc_start , ecc_end); + } > rom + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-section.d b/ld/testsuite/ld-scripts/crc64-section.d new file mode 100644 index 00000000000..16e625b71c9 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-section.d @@ -0,0 +1,26 @@ +#source: crc64-section.s +#ld: -T crc64-section.t +#objdump: -s -j .foo +#target: [is_elf_format] [is_coff_format] +#notarget: [is_aout_format] +#xfail: tic4x-*-* tic54x-*-* +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff + +.*: file format .* + +Contents of section .foo: + 1200 434f4445 deadbeef 00000000 00000000 CODE............ + 1210 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1220 6c40df5f 0b497347 00000000 00000000 l@._.IsG........ + 1230 00000000 00000000 deadbeef 434f4445 ............CODE + 1240 31323334 35363738 3900ffff ffffffff 123456789....... + 1250 434f4445 00000000 00000000 00000000 CODE............ + 1260 ffffffff ffffffff ffffffff ffffffff .* +#... + 17e0 434f4445 deadbeef 00000000 00000000 CODE............ + 17f0 44494745 53542054 41424c45 00000000 DIGEST TABLE.... +#... + 2000 454e4420 5441424c 45000000 00000000 END TABLE....... + 2010 00000000 00000000 deadbeef 434f4445 ............CODE +#pass diff --git a/ld/testsuite/ld-scripts/crc64-section.s b/ld/testsuite/ld-scripts/crc64-section.s new file mode 100644 index 00000000000..99ff9f84960 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-section.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .foo +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-section.t b/ld/testsuite/ld-scripts/crc64-section.t new file mode 100644 index 00000000000..7cfcdf7beb4 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-section.t @@ -0,0 +1,56 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .foo ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" "CRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + ecc_start = .; + ASCIZ "123456789" + ecc_end = . - 1; + . = ALIGN(0x10); + + entry = .; + *(.foo) + . = ALIGN(0x100); + BYTE(1); + INCLUDE "digest_table.inc" + } > rom + .text ALIGN (0x200) : + { + *(.text) + QUAD(0x0) + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc64-unknown-digest.d b/ld/testsuite/ld-scripts/crc64-unknown-digest.d new file mode 100644 index 00000000000..051b06c8879 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-unknown-digest.d @@ -0,0 +1,6 @@ +#source: crc64-unknown-digest.s +#ld: -T crc64-unknown-digest.t +# error: .*: Unknown digest.* +#skip: tic4x-coff, tic54x-cof +#skip: ns32k-pc532-macho, pdp11-dec-aout, powerpc-ibm-aix5.2.0 +#skip: rs6000-aix4.3.3, alpha-linuxecoff diff --git a/ld/testsuite/ld-scripts/crc64-unknown-digest.s b/ld/testsuite/ld-scripts/crc64-unknown-digest.s new file mode 100644 index 00000000000..e4ffb15af62 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-unknown-digest.s @@ -0,0 +1,21 @@ + .extern ecc_start + .section .text +main: + .byte 0x43 + .byte 0x4F + .byte 0x44 + .byte 0x45 + .long 0 + .long 0 + .long 0 + .section .data + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xde + .byte 0xad + .byte 0xbe + .byte 0xef + .section .bss + .long 0 diff --git a/ld/testsuite/ld-scripts/crc64-unknown-digest.t b/ld/testsuite/ld-scripts/crc64-unknown-digest.t new file mode 100644 index 00000000000..9f4c900924c --- /dev/null +++ b/ld/testsuite/ld-scripts/crc64-unknown-digest.t @@ -0,0 +1,44 @@ +MEMORY { + rom : ORIGIN = 0x000000, LENGTH = 0x4000 + ram : ORIGIN = 0x008000, LENGTH = 0x1000 +} + +_start = 0x000000; +SECTIONS +{ + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x200) : + + { + FILL(0xFF) + header = .; + INCLUDE "begin_tag.inc" + + expected = .; + BYTE(0x6C); + BYTE(0x40); + BYTE(0xDF); + BYTE(0x5F); + BYTE(0x0B); + BYTE(0x49); + BYTE(0x73); + BYTE(0x47); + + QUAD(0x0); + + crc64 = .; + DIGEST "_CRC64#BE" "TCRC64-ECMA" (ecc_start , ecc_end); + QUAD(0x0); + + INCLUDE "end_tag.inc" + + INCLUDE "crc_data.inc" + + INCLUDE "digest_table.inc" + } > rom + + .data : AT (0x008000) { *(.data) } >ram /* NO default AT>rom */ + . = ALIGN(0x20); + .bss : { *(.bss) } >ram /* NO default AT>rom */ + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-scripts/crc_data.inc b/ld/testsuite/ld-scripts/crc_data.inc new file mode 100644 index 00000000000..176a4689493 --- /dev/null +++ b/ld/testsuite/ld-scripts/crc_data.inc @@ -0,0 +1,9 @@ + ecc_start = .; + ASCIZ "123456789" + ecc_end = . - 1; + . = ALIGN(0x10); + + entry = .; + *(.text) + . = ALIGN(0x100); + BYTE(1); diff --git a/ld/testsuite/ld-scripts/digest_table.inc b/ld/testsuite/ld-scripts/digest_table.inc new file mode 100644 index 00000000000..fb40a4fa024 --- /dev/null +++ b/ld/testsuite/ld-scripts/digest_table.inc @@ -0,0 +1,6 @@ + . = ALIGN(2048) - 32; + INCLUDE "begin_tag.inc" + ASCII (16) "DIGEST TABLE" + DIGEST TABLE "CRCTAB" + ASCII (16) "END TABLE" + INCLUDE "end_tag.inc" diff --git a/ld/testsuite/ld-scripts/digest_table_be.inc b/ld/testsuite/ld-scripts/digest_table_be.inc new file mode 100644 index 00000000000..eec712d9eff --- /dev/null +++ b/ld/testsuite/ld-scripts/digest_table_be.inc @@ -0,0 +1,6 @@ + . = ALIGN(2048) - 32; + INCLUDE "begin_tag.inc" + ASCII (16) "DIGEST TABLE" + DIGEST TABLE "CRCTAB.BE" + ASCII (16) "END TABLE" + INCLUDE "end_tag.inc" diff --git a/ld/testsuite/ld-scripts/end_tag.inc b/ld/testsuite/ld-scripts/end_tag.inc new file mode 100644 index 00000000000..4c80854b062 --- /dev/null +++ b/ld/testsuite/ld-scripts/end_tag.inc @@ -0,0 +1,9 @@ + QUAD(0); + BYTE(0xDE); + BYTE(0xAD); + BYTE(0xBE); + BYTE(0xEF); + BYTE(0x43); + BYTE(0x4F); + BYTE(0x44); + BYTE(0x45); diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp index 56e12da8e61..64767d87f83 100644 --- a/ld/testsuite/ld-scripts/script.exp +++ b/ld/testsuite/ld-scripts/script.exp @@ -229,6 +229,23 @@ 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-iso_be" +run_dump_test "crc64-poly" +run_dump_test "crc32" +run_dump_test "crc32-poly" +run_dump_test "crc64-reverse-area" +run_dump_test "crc64-in-section" +run_dump_test "crc64-same-section" +run_dump_test "crc64-multiple-digest" +run_dump_test "crc64-unknown-digest" +run_dump_test "crc64-poly-size" +run_dump_test "crc64-bad-label" +run_dump_test "crc64-bad-label-2" +run_dump_test "crc64-bad-endian-size" +run_dump_test "crc64-bad-endian-contents" + run_dump_test "align-with-input" run_dump_test "pr20302" run_dump_test "output-section-types"