From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx08-00376f01.pphosted.com (mx08-00376f01.pphosted.com [91.207.212.86]) by sourceware.org (Postfix) with ESMTPS id 56BC83858015 for ; Tue, 30 Jan 2024 18:21:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 56BC83858015 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=imgtec.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=imgtec.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 56BC83858015 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=91.207.212.86 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706638896; cv=pass; b=pvbRGZjoW1GdCOxhcRSocThaLO8Wg71J3PERmJuALIlsrfA4zYb0lZyhVNGP9oAoB9tstCJ1XKEYv70FqJF1zKgyJXMz6t5GCcR6BcZXnk8GAR5I6W9XSC0a4GL6N9j4d+rdg+cPaUPZ9mi93Eb5VJzO876AdzIE09CwD7cX4ys= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706638896; c=relaxed/simple; bh=yKqCmGqoGBVvp8lMVLtb9IQqjlGtElvY4txgiO8DDvU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=q15Zr9MDRhD3IWVwoT4+f1mCT91kHGdZ2rf/BkVapZo8xD/G2o+cinPUSFYX2KpsZt8hUEDTXvtfopeKQq6s/bcj29EVLJSd6QnHk52AUQWWVVmtg5mgO4cTYev9uwxJaWa45DT4e9y1OIAWiJSNMsEbDxI2xnfGbrWKPRfsjfs= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0168888.ppops.net [127.0.0.1]) by mx08-00376f01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 40UDVQTk009595; Tue, 30 Jan 2024 18:21:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imgtec.com; h= from:to:cc:subject:date:message-id:content-type:mime-version; s= dk201812; bh=ziWus1KDr8+Iw1lACfYtQ3UVBbFbORL3my5fuYt0Ifc=; b=yqP 4vNJr5dLRW00ImSRCOuvgy/9Y8zOaQlivV/7DuIsmgwBLUTjfTGslQ7zG1GcOUw/ 3y4gcxhJo6VYfwfjIXAJxSpwikVJdyAuHD9qkP5/62tsE8j9dgb+0S8bB7UXbdwW Pcdsh3s1L/bslSYzetQpoZVmuWZq5S+W1fM8iCZXYaQHMkgEJ9UJ0ewwUBnS6Fpf Bf97aEplwjiD98Y//jWa4EVDd1VT7BiUyoogZGDUy60cRSldevZ/+atQHySmUa5U pa2FrnzNz5JC137fxhxlU05oXoV2UtUaO5KJz47hzSg8SrIC2IttvQlg+2o+B89Z V796/nBLP+zCb7fCJ4g== Received: from hhmail04.hh.imgtec.org ([217.156.249.195]) by mx08-00376f01.pphosted.com (PPS) with ESMTPS id 3vvrys2qa7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 30 Jan 2024 18:21:29 +0000 (GMT) Received: from HHMAIL04.hh.imgtec.org (10.100.10.119) by HHMAIL04.hh.imgtec.org (10.100.10.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 18:21:28 +0000 Received: from GBR01-LO4-obe.outbound.protection.outlook.com (104.47.85.104) by email.imgtec.com (10.100.10.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 30 Jan 2024 18:21:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OFtsiLCkfqX4L4vDwFqyqiX55ybpJWNZt8apec/THzElMQNd93qeTStaw/3WfWZA9jZoteDI9HIdzHH0lrvr8TvTT51Xk0oGRS3lfJfV8u/pjBTk+bJLm+ozmmryBonIhzgQXwdf3mintl5sYZCCx7QUVBAzkzTzi6hj2N7pngEX1rq1QQVHD4O8o8wFQO0xP6Iqzpm8lft0LJQZwGA2cIwPGZ/b9SUWTKr5mibcHFKUZJwub2hXB7cGGXGuQhoyRlNcOkxrhPHMG+O0IodEqvATN8Ls4WrPsVGaOUZ1/X3RI2DB+cKWCXCZJEuYPE1yNaY/DoLxVS2xU2U4byGcfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ziWus1KDr8+Iw1lACfYtQ3UVBbFbORL3my5fuYt0Ifc=; b=eZene3qykZcq9zNsl7zMZj5Cxw+UXcLOJA0XYjzT54pY4J3gD9/HPGrAjdBPWHH6Agl5wTPIEzPUz9Blr/b4AWsXxhHPG/RlZ1bp0qVY3dtJax9nC6tvjpVpHEVwu5iGO6pMBn015lrvMO31ZSboyyoeUDic9AMWJZbi+14z+i8lLgNyKxvUKL7ls5shqvH188Y/le2f4q06/Jrzww7vRwmy37c0h2ipMDcuNN3jIRrGvvz9MojdusrW3ye8WPJwQ0zl8n1Chj0tYVRZ6IkKDIl2vsVJRBX3j2kP5aTmETcesmoSXTqnNHPLBJY64djGUiDe0WKxsZQyjPAfEsepLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=imgtec.com; dmarc=pass action=none header.from=imgtec.com; dkim=pass header.d=imgtec.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=IMGTecCRM.onmicrosoft.com; s=selector2-IMGTecCRM-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ziWus1KDr8+Iw1lACfYtQ3UVBbFbORL3my5fuYt0Ifc=; b=cLZYX94pyxlLMzrBLHUcreOIHY4pweaEYVjOr0MO7CjuTFlPTajLWxGCIAXcBR8YxKfRmGwKdkaGUZrR6kSJaqqnwSobfoqaQd3RHyptuOnbwX9DG/JuybXRwqoqg2tYqjPdHtvR6iCL5hsrsxaxx8C5qiKSFY73l8vxKQvRQz0= Received: from LO4P265MB5914.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:29f::11) by LO4P265MB6204.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:278::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Tue, 30 Jan 2024 18:21:25 +0000 Received: from LO4P265MB5914.GBRP265.PROD.OUTLOOK.COM ([fe80::d26e:fda5:26c6:6cbf]) by LO4P265MB5914.GBRP265.PROD.OUTLOOK.COM ([fe80::d26e:fda5:26c6:6cbf%4]) with mapi id 15.20.7228.029; Tue, 30 Jan 2024 18:21:25 +0000 From: Joseph Faulls To: "binutils@sourceware.org" CC: "nelson@rivosinc.com" , "palmer@rivosinc.com" Subject: [PATCH] bfd: check for truncation with R_RISCV_32 relocations Thread-Topic: [PATCH] bfd: check for truncation with R_RISCV_32 relocations Thread-Index: AdpTqRYPZ5AHtJbtTYS17vOpoVG5Pw== Date: Tue, 30 Jan 2024 18:21:25 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LO4P265MB5914:EE_|LO4P265MB6204:EE_ x-ms-office365-filtering-correlation-id: 7a2ee4cf-3feb-44cd-6ea1-08dc21c04512 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: D1TKnWb/6w5dX3iX6LbQiNEo/AgRAL3tYiu1vrkUmiodWSgXHO7dNtrwzEBMeGYSmXC/2nczrFhvjBGATcUYCn71rEYmI0CEkOC2wogaCUf/9ZTuguEYN6qDkeLMC0EFkREtzMFt2n5xPHtzuL5ChnPwKpSISmJBgR4a2qF7Icpvi3VJx26Kkv9TANWkGkCZlkTCOdUsZmA5CGRIg2BTi9FwqqLDPyxrn1EoExCLodvfy9JkAS2FHiLDTN7nS+htEtgBXEc/QiLumcAWdpOrH69ZyXK6z5Uy1NdqQ+cZNa7GzXPiftfvHW06X/w0TQkaIWbe0Co/frmwPUVQD+OOh6g9CXflbe63i90oA9vzR2BYrgDjx+vESWs77Ex3LlFuKKPQ0Y10H5xXzyoV5o64VjiFU5UU5uS9F2voh8wmdS0hHIcFTOfx7SPgfowJGCkKyFCJWwShX+Rmb5oP8GSj8v+8CVZ3bVgAVywZ33HCzSL3TLx4nky8FWxKa8oPdScKMIh0sYKt1bk/yghStiI9PwtvXA+0P6rx4rQIY56kXpH/NBLzTCjmVIzFGzxOhxLoTzWedI9PfZkiiLRp8hWw48oxcFP5tDrFgF/wIOixJGA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO4P265MB5914.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(366004)(376002)(396003)(136003)(39850400004)(346002)(230922051799003)(186009)(451199024)(64100799003)(1800799012)(8936002)(8676002)(4326008)(52536014)(33656002)(5660300002)(86362001)(2906002)(66446008)(64756008)(66946007)(66556008)(66476007)(316002)(6916009)(38070700009)(26005)(54906003)(166002)(38100700002)(76116006)(122000001)(9686003)(478600001)(71200400001)(6506007)(7696005)(83380400001)(966005)(41300700001)(55016003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?bwaOs/m4m77ghG8JC3HorJWoGNOhwyBFndC+Dd0vSL1gj3nqZ2R7bfkHk8Ta?= =?us-ascii?Q?v9cfzX5s/noJBKV9AYe+F/QNTgwNO3YRJ1anynY987KI5EIbBNYo6qqNAEbC?= =?us-ascii?Q?svQctlrb1ofttyuKngxGDFJ1cle81AhvVLcSG+9RU0YzR4cX0YnbtC3FFR86?= =?us-ascii?Q?x3dG72cfyJHzksonCreTCBtRfvp6IzD0Wf23UTmpvyUCYkjWoIE94GDAlZHK?= =?us-ascii?Q?hoGjFy29tTE1+IzZRYGd43uf1XC1jLzfTagQQgZkacgKenQA0njqEgh4abDU?= =?us-ascii?Q?O8RD9rqaBI8w9riVbt/piYyvK4i6oQVPnVwyyzfbfMYIeqidrEti+LueS2ZO?= =?us-ascii?Q?Ft/wyOMiBqkqGxVeQjEvG4z91WtBSg3Ysh5rPEiB/HsgTy2hICkh/hXWITSX?= =?us-ascii?Q?tu8t00FZUnL0801WUUSf6jpJk0alyOovcnRPBFXbkNMQLLHcIueE3vbb+46K?= =?us-ascii?Q?RoFQrzGM4neBpP3R5plSisFCjZabXFKspHR9Es3ykiIaca4PGG5TIl40mXah?= =?us-ascii?Q?3reSO71QozSLJ8QBZvWeI8gu1H5A3OxY8RO0vc34RTb5Wv3W3qSIIPC+vd1j?= =?us-ascii?Q?Vm5zfKI5mY9LxZe7BCEUNqL6ZFlvDeAKumNwKWuGHOWlNpYNlTdAgYjQ5XoV?= =?us-ascii?Q?25srogGsi7iv5rM9NvrKjsctYugp4eGNuoTtDdCFsK5yietkW8fbbAZitAKc?= =?us-ascii?Q?21fxhSWHLL160JloGyT4IN6mb3y9flJs2r2BrznJQImBoS0ejn7tMMKO45xb?= =?us-ascii?Q?LiWO+KD4tKzEuQnmAqBXgF15dJn+Nun8Nv/mBN6FbgUbOJF72gaSPTsHwZCF?= =?us-ascii?Q?ubm53Oqj84xiEs4tkws6vzh3aFXzQXmT4+qp9fParf4HxKcLTQPW0egIft4E?= =?us-ascii?Q?Hy3hKHN+hrstze81jnrGcoEZUT7hsFxyrD7RJ44MzHnCfE7r4WsxcfxNZx/9?= =?us-ascii?Q?1WDHnm5udgpCvrbTs0gvveZLr9TIpJf9DjqbhcjqVPtGuy2AFx3O8kOCWIzg?= =?us-ascii?Q?dIwiSHp8Ns9gCwriLnj32cmPA74uL5a3pVKnNNYKqPbCHT46O73yGwxnjbHI?= =?us-ascii?Q?+YyEiwRZnFf2rpsmqTQL6wAipno6CLAarJvO7ONqfomkP4aLWP9tpaOdBogx?= =?us-ascii?Q?7r5wkzA6jsb940jCAY/4femXQ2CXrMURqVPGNY3MBRwtr1IY7wStmj5O3ozQ?= =?us-ascii?Q?dRjpEB+VipJy+N+LG3K7MekveaHykNtgW7IkdbB0LKIUqaytb0X51TdOfQ+J?= =?us-ascii?Q?tH996Zpm+fEPziFEGgCioBxt4pjxJT8dzWefTkHoNjiycBIUoVA5jclDoOK1?= =?us-ascii?Q?tMsQ6b5mOfewqhOz8vmNaQxPB/zzdIkm/51ZjwtSivG1ijYESV64Ai0SKz80?= =?us-ascii?Q?TxXsNGm8WVIdCqsSwY7kxbVWhO+Qd+TL8HjBG70fVwL4hYdJYeBNrO2ZXKK3?= =?us-ascii?Q?txq6/G/8r6YCjxBuzhXwXdpJZX7nKgnw7tPD6O16fTCmEIwwmlCXPGA3L2Cz?= =?us-ascii?Q?Lfzd8mpMlhrqhzJlq2EElP74bHivvqyjENdXecL2Jvl3LasV0/swzl66Ewe6?= =?us-ascii?Q?XxCIef8Qn8S0rMgIIGLBmEj2w3z5DEZ4452apuyv?= Content-Type: multipart/alternative; boundary="_000_LO4P265MB59148A03F40658E472D79B60807D2LO4P265MB5914GBRP_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LO4P265MB5914.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 7a2ee4cf-3feb-44cd-6ea1-08dc21c04512 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2024 18:21:25.5488 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d5fd8bb-e8c2-4e0a-8dd5-2c264f7140fe X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2FkQzUaHM0SuY++AAFw6jQ3VYHKs61/nFKgPz9tuCkYh8gAL5Rownd25GvWuMAhocIgTjleVR92/KmktxsT8zIHxjygbrTmu4lU9T6q8t5o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB6204 X-OriginatorOrg: imgtec.com X-EXCLAIMER-MD-CONFIG: 15a78312-3e47-46eb-9010-2e54d84a9631 X-Proofpoint-GUID: 1KcQL7py2OGRizRkNYGOh3jsWHs_Dth4 X-Proofpoint-ORIG-GUID: 1KcQL7py2OGRizRkNYGOh3jsWHs_Dth4 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_LO4P265MB59148A03F40658E472D79B60807D2LO4P265MB5914GBRP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Relevant bug report: https://sourceware.org/bugzilla/show_bug.cgi?id=3D31318 With high addresses, these relocations can be truncated. In these cases, throw an error instead of silently truncating. bfd/ * elfnn-riscv.c (perform_relocation): Check for overflow. ld/ * ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated. * ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncation.d: New test case. --- bfd/elfnn-riscv.c | 3 +++ ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncation.d | 4 ++++ ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 1 + 3 files changed, 8 insertions(+) create mode 100644 ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncati= on.d diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 8b27e3b8d6a..975b40e5f53 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -1865,6 +1865,9 @@ perform_relocation (const reloc_howto_type *howto, } case R_RISCV_32: + if (value & ~howto->dst_mask) + return bfd_reloc_overflow; + break; case R_RISCV_64: case R_RISCV_ADD8: case R_RISCV_ADD16: diff --git a/ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncation.d b= /ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncation.d new file mode 100644 index 00000000000..925d1cdb662 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/data-reloc-rv64-abs32-truncation.d @@ -0,0 +1,4 @@ +#source: data-reloc.s +#as: -march=3Drv64i -mabi=3Dlp64 -defsym __abs__=3D1 +#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=3D0x0 --defs= ym abs=3D0xc00000100 --defsym abs_local=3D0x200 +#error: .*relocation truncated to fit: R_RISCV_32 diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-r= iscv-elf/ld-riscv-elf.exp index 7e1281d826b..5a4d8728366 100644 --- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp +++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp @@ -175,6 +175,7 @@ if [istarget "riscv*-*-*"] { run_dump_test "uleb128" run_dump_test "pr31179" run_dump_test "pr31179-r" + run_dump_test "data-reloc-rv64-abs32-truncation" run_ld_link_tests [list \ [list "Weak reference 32" "-T weakref.ld -m[riscv_choose_ilp32_emul= ]" "" \ "-march=3Drv32i -mabi=3Dilp32" {weakref32.s} \ -- 2 --_000_LO4P265MB59148A03F40658E472D79B60807D2LO4P265MB5914GBRP_--