From patchwork Fri Mar 1 18:07:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Lapshin X-Patchwork-Id: 208992 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp53877dyc; Fri, 1 Mar 2024 10:07:37 -0800 (PST) X-Forwarded-Encrypted: i=4; AJvYcCVHpJqjhNcTTw+h91COW08YF99pttlz1g3ICR8tQRxgFkHwJhO9kch6ectnWn5ejxDTcV11QnBFUU2QOOHOajME9GnAqA== X-Google-Smtp-Source: AGHT+IFyZV4+rPQ9cd1x+tRgWLSPtQ4VnMNZs4g5eCsvTO2D/eIBCfqaTWTm6GL6D+ASBQ/dxfAw X-Received: by 2002:a05:622a:1746:b0:42e:8c8f:42f6 with SMTP id l6-20020a05622a174600b0042e8c8f42f6mr2552364qtk.40.1709316457241; Fri, 01 Mar 2024 10:07:37 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1709316457; cv=pass; d=google.com; s=arc-20160816; b=z6Yv9qsgd4dYIgQCI2DA+WVFu6+NCbxEu/Xqs8NIvoYnnB2Mc38sK86+6FpqCwhXsU OXuwGAwSTRXaeqfpehcfvvqvoWBmCyKs22Ehj1nchdTKzJLcL5gTCv56QlpqpWtjaYwf AbCL0ixTiNIVgcesTDDy0/AulYqrBFlWJ293U7OrkxDmmu9vCZbMd0Ha/u0uN7BSwfIp igGag6r56J5myJ7X+igFJSbxleDLGbFNTR9LH8DyvWs1uFd/YaYbpwgrEzz2M2anxPl1 mLiVzp/cXYUNyTMMKfWi2PwW03r/lk3B4hqr6XSj4eZhheXL/b9g0YqJ9EnyiMyNKC38 bJnA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version :content-transfer-encoding:content-id:content-language :accept-language:message-id:date:thread-index:thread-topic:subject :to:from:dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=06gkQKc5FQkmJ/OXXvqjac1zhSiGUlj9AbQTnH4jFaM=; fh=ipFxUfquLfSt0bvRPChyTtD5g+XFsy6I50qGPbUfk+c=; b=DHxpW4+N3ZIiEHD2KLTINn5uUJNMOwxjP+pstFWG7kb8OaEIpBgfBqcGDfq1Vxx6BN u/SZzWx+qtpdLpq+ml8/okENszs6nV/eupr6dLcCkOpUzj7Dq/xyscmvPjTC5maU3NNx Nr3tHSWH7SCtjwQAW3L6G83UfQzBe+0ymRXao5YEaH2NcYK1SWv/B215FoLgLZaJwZah KZcRkNn7NMvJDQiJK+o9o1kvIq0I0ymIOlx4uvXlgh+vJhysZgcby7pp2ixQLZIFvSUs 8/OP+Mj7xF68k5VcJOttWZa0wmpXH+zxsosWNH4Ql+rNCvcUJO7fXYdfwa/pmdy6LMX4 muXw==; dara=google.com ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@espressifsystems.onmicrosoft.com header.s=selector1-espressifsystems-onmicrosoft-com header.b="eKR5/hMt"; arc=pass (i=2); 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=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=espressif.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id o16-20020ac87c50000000b0042ed28db1f5si703511qtv.727.2024.03.01.10.07.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 10:07:37 -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=@espressifsystems.onmicrosoft.com header.s=selector1-espressifsystems-onmicrosoft-com header.b="eKR5/hMt"; arc=pass (i=2); 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=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=espressif.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DB4453858402 for ; Fri, 1 Mar 2024 18:07:36 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2125.outbound.protection.outlook.com [40.107.117.125]) by sourceware.org (Postfix) with ESMTPS id 4F7653858C5F for ; Fri, 1 Mar 2024 18:07:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4F7653858C5F Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=espressif.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=espressif.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4F7653858C5F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.117.125 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709316443; cv=pass; b=HjlN2olSu/PFAOdvfMldoBD5yjF/oww8oWbI7FzkjJOabREu4VFz0+RENGr3CYgKGXPwzG4wxL831z8ToShI6ASnb66jTMKO2pm5p4pc3PfTJ1KjmWS0WJEnYdw2Q4Dqa9dQtBSKlVlXodza+9IPPqt4cG8THdFi01QL+wGBQYc= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709316443; c=relaxed/simple; bh=06gkQKc5FQkmJ/OXXvqjac1zhSiGUlj9AbQTnH4jFaM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=txFtHUFUQeHp4nI29emxFQm9pTbkV1AwT+s+s8oiVK98QM4+sraYypKRlimNgTlrxdVAZJqFcLv4MZviqm+4EVd7tlscB7iOrvVJfMx4oCGeFe5ooN4DLo2fRaO5f79dsg+XZ8LFUnRLu12bhHWT5Crc8VBUdo0KAaV+siaEvbk= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ko9NlOipMP3FrZr0hj9ygpvyv2cqLmqMui+EpiHJMmSUkKB5KeZEebRVx4Gwgy1XCRYRZ0EQ5UB+66bI7JDL2tJbpwxqRavp7bFALig9oP85nM0C9Jgg8CjW4XwQBbeDpUDH5qmpRd8TWCr+5IHOJkhbjZm6Ap7P08/Rt8kZvknxGoIvVtuCUfH4BsjQ5fgojci0G3U2ghIw3lthiaaSPZl7WNUkW7HtOPbXAb5Qk06CNcT1Qjytn/axMCPWUJWIKgXn1A8wS4PkJsPk6xaGNFKt5zUtEVsJ8j1fIwYdRl7Z9aI+LTzBAh+y7Bo6tEsIw0Z+z7nj8CbJ+/UwvcXAsA== 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=06gkQKc5FQkmJ/OXXvqjac1zhSiGUlj9AbQTnH4jFaM=; b=b5QPI6jTuNiIDM60XKyjXP67geqMUxXGSEfuXs6YzAyEU04dJj5kB6JJGms5MFrQPdBqJhmiWxqNzGTZUHruCCKbEOvzD0GM7qkcfxSYe7YD9FX/o2iXnqocysSB0KyuKOJbotYRA7kZrJ3mvBkpYSzQMME5zfArqEI3xbGBGpGo1/Gk/VmbUsgGqKklGJ17+dyVbDPw5OygabqeuWthQ8u5miJpQELFPH8mwAnRBjmgkIKX2tjbBx3UQVzl111qwiG1k618MEKnST7X9KkpABoIbeHgSm59UjqPOdRNvzkw6Dnz/z1ML4oOdIJaGucPc3CgQLBpbTeLe3CAd3VPDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=espressif.com; dmarc=pass action=none header.from=espressif.com; dkim=pass header.d=espressif.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=espressifsystems.onmicrosoft.com; s=selector1-espressifsystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=06gkQKc5FQkmJ/OXXvqjac1zhSiGUlj9AbQTnH4jFaM=; b=eKR5/hMtJIt72F411lzyZhBh91dBS4izICVtAUL6J23ywMQXeMWrNUgm+S+3vEljbXn16KDzRF24f6FuNKjgyea7Mf03FUWf5P5JQC/LU4iqUyRRmoDiqqcZJTofIwrvnhXAcAX+ssEdp3LZ6L2iQmvLH62DWtrokS+kJ7k0b3A= Received: from TYZPR04MB5736.apcprd04.prod.outlook.com (2603:1096:400:1fa::7) by TYZPR04MB8093.apcprd04.prod.outlook.com (2603:1096:405:a8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.39; Fri, 1 Mar 2024 18:07:15 +0000 Received: from TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::fc7a:91b4:c862:25f0]) by TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::fc7a:91b4:c862:25f0%5]) with mapi id 15.20.7316.039; Fri, 1 Mar 2024 18:07:15 +0000 From: Alexey Lapshin To: "binutils@sourceware.org" Subject: [RFC] ld: fix --non-contiguous-regions error checks Thread-Topic: [RFC] ld: fix --non-contiguous-regions error checks Thread-Index: AQHabANK+RqB1LuubUu8iGwEY6P2Tg== Date: Fri, 1 Mar 2024 18:07:14 +0000 Message-ID: <58723310fe4171a607475930ffd35fbba7ca8aaf.camel@espressif.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=espressif.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR04MB5736:EE_|TYZPR04MB8093:EE_ x-ms-office365-filtering-correlation-id: 003fbf96-a521-426b-319b-08dc3a1a6caf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KEgORp8qXhSvADDeGrq0wWTc5EhwCP3VNtCwJ2cGRIZ4sEKwqIY5Ji9uDTLtd/Dpy9873LeQ4kdU2IHacIxH84uLEXJ7T5ujPyWSWRap1UMCIuaIM9Kr79GaUChSQeyIuIBsDG1nlI83nX+qRvMZLkGHlWQrGgLhoErXEDCZ8ogZW0OLTXFV5WuJJggtjFaNQ4YDEsJoirVQacm6wZVgrU2qs0AwVJg4OFu/4JQOM3pDV19D7md+OgkJwwvIvQGujLEmAZSpOI3zPnYtJTDpTEJie6OWBEyZ7cvKJ6aH4JmtU9Oret2Q2fbXRPiyVb5omMZsffAc2BJE/TIhHsMf8gomZYsrhEHIsfdBAlzXULygkyPrKOliK0+/Wx/hv75Aymdv92NvROYS2iNvmZ22LwSG6BAX77JuqoAurCjd5YEOIhSzzF5Y9p5CtmDL49QlVOUU5bQT/mho9VjHAyeqecue7ceQliKy29xZ+EMZNALjvv5asn3IOhXZo2LzHqD7a51Vqb1T7rrL12eEiChXM2QRyuavKfNwOsNJ5ldr2VnkePuppAaIgNa4X1aJ43feQwrNOyVlPSoUsrpxlZQutWy1SSFQdiIxXxFT9/Iu9+wBJ16FLDse/UfyF3zqYG5aXlvOt5ormcwBxWYvKNMG1MGe0iDPWQHLBd8yACAZ0nU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR04MB5736.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?cvf/c93FICrO+k2GBcr3wQVGSbTi?= =?utf-8?q?5Mm8k0j6hDnTRv3iFmWadrR8y4gNgKIBDdebTwGNTcBa63Gl+AsxVbAlTWBPb2Obv?= =?utf-8?q?zJ/+wqJekhZl7eosW0AfhWQdXTHcNmoYjHvVLjDahLs9CWvkV79kfXq+5byX5M/bU?= =?utf-8?q?Yu2SUvkddFVSt/QKHHt9yPTFvZ/enNCJ9RaBc2bTZBluBWsEobYTdxUPhAAf56l/1?= =?utf-8?q?cA9JDQpueofOrLh8kZBlZhNxK5jTF/UMdChj4zAvLdr++mA58gfROWWP2eIJJi+YQ?= =?utf-8?q?Rlij5X0NgKU92uxPJZNL3CJBqXqWGvAMFzsBEIpA43JmBqPLe5Gyfj4AelXUA+3AI?= =?utf-8?q?PrRQ6t5d6hgtfChyzVAqqTGJ7htHuFXtF20pr4ySQoFWq4yfi7lX5vhPB5ExNgImC?= =?utf-8?q?knNJRLg+NDzHAPvTVnRIcFqXXxrwE8MQtl/2dH5VtZIfC+hllGmb0n6wB+UjaFoMR?= =?utf-8?q?LsOkMLaH+JPdqiwzhT7B2wS/us8YSXesnvt7ODqhZLx1xSoCKYkuQ1jUEljvsfz9e?= =?utf-8?q?pmSUmkASXfj6czJO7sudqz83DGOAaNVa6iBPWD3z+e6mxedn577ir9IWzAuEG2/EY?= =?utf-8?q?aCi1wcXvMpioIu/D4jP5rlqs2Z9v2FIIwOG8LXfGOhJ4yeySzf5JwmQs/OVvK+hTf?= =?utf-8?q?zsy+nLUFZrgt5Z0aTTxmAeAmOw60lTvkdGrDDXukOS0/BGqcPa8AdoeV9YFVcGPpQ?= =?utf-8?q?Mce4qAhGyTiimbSAQv/tOuDd0WMNyrm51hPByoOcOUip0KG145ULWMgc6lJolWR80?= =?utf-8?q?oD/u6UDpz42WB1kH/Zo4BnlqVJMKI7YRd/wEqhpNvUYWOcFdoyte3RkeGwpglmV27?= =?utf-8?q?rhor+maGCM6BiYneok3DLv5vjcItp66bWkeWGZFNae9cPi8Vod1SatvUwlFgD1qGz?= =?utf-8?q?XGzXwWTTZGBIk3AiwrE06/dPFc+IMkLpOuy1neOCqtbA9VVZ09MljVAnaDaJvhKvU?= =?utf-8?q?fDiyh8BnTvcPQm9g8Un9Sdw8gJo9EczAsgh8CfNm4MMpte9+lUoqzSiWwLIl6uhjK?= =?utf-8?q?ChAD4NjOKruYH22yFNYjmtLZmnDEWanRO78Iz0uFOyrelo3CA94z3o/WveGqK7kOj?= =?utf-8?q?+cAtieM0Nkqigzw3sSuoRYeZgP6L0M2Ws+1PoH4gaNC4dThrun0kvOnLsFHVLZiJn?= =?utf-8?q?9NdKGpVZ398S1+FLxg72/kxE2tP3JNM7iXtX1VA/nRn/Dhrw9Sq484As2ABxYN8tJ?= =?utf-8?q?hjc9vn6lyRL3bsCybcq+HrvyTpVnYUfxT5w35r/ZvltoGZE7iwd9/c7cfdAt0wpm0?= =?utf-8?q?+kzdjCA25cTW4DMrXVV4nZXVG5JttzHrf0WRf5G9Ch//Dle4lJocxPlJdwKqNkyUk?= =?utf-8?q?gd1o4AlTInknztZIZ7rMsJLE3iKWIEuG9g13NDhsP4kNpwbDDB9BFVXfq9igb0BvM?= =?utf-8?q?N8hsbsHEE8Tr1gL7gmn+TmIEufCHaPERJJ0Kj+Ox46llja87J9XwSbJaeSAA/aHXu?= =?utf-8?q?RDgx1wirfIRdoWSCLXS7S3r6ChxXKJ0tMCuEff5CNalBx75Zjg1d0g74GeQUoplQC?= =?utf-8?q?VTE9EucQb8hgdfKSDKJp1k+F+94LSCF7YMeO295g9vBUBapi+4Vj+Mk=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: espressif.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR04MB5736.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 003fbf96-a521-426b-319b-08dc3a1a6caf X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2024 18:07:14.6565 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5faf27fd-3557-4294-9545-8ea74a409f39 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: t8RuV3WLJw9wqlYOnnwGDw07ohMPLBuSc3S9tLdl6eriMAsm4AJHB9s+piVbsB/3xHX9nqITlOpdiyoLxEANGlxe5KOAtDzJW4MWSx/Vu80= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB8093 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792348213224079077 X-GMAIL-MSGID: 1792348213224079077 - Fix segmentation fault in _bfd_riscv_relax_section(): sym_sec->output_sectioin nullptr dereference https://github.com/bminor/binutils-gdb/blob/binutils-2_41-release/bfd/elfnn-riscv.c#L5207 - Fatal error only for sections that has SEC_RELOC flag when a segment overflows. It allows to write sections with SEC_MERGE flag to next segment. In case changes are good to go there are also some workarounds in the code these should be removed. Like this: https://github.com/bminor/binutils-gdb/blob/binutils-2_41-release/bfd/elf32-arm.c#L5052-L5058 --- ld/ldlang.c | 22 ++++++++++++------- ld/testsuite/ld-arm/non-contiguous-arm.d | 2 +- ld/testsuite/ld-arm/non-contiguous-arm7.err | 3 +-- .../non-contiguous-merged-sections.d | 9 ++++++++ .../non-contiguous-merged-sections.ld | 18 +++++++++++++++ .../non-contiguous-merged-sections.s | 7 ++++++ ld/testsuite/ld-powerpc/powerpc.exp | 1 + 7 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 ld/testsuite/ld-powerpc/non-contiguous-merged-sections.d create mode 100644 ld/testsuite/ld-powerpc/non-contiguous-merged-sections.ld create mode 100644 ld/testsuite/ld-powerpc/non-contiguous-merged-sections.s -- 2.34.1 diff --git a/ld/ldlang.c b/ld/ldlang.c index 54d1af62ebe..f2b2a9bf356 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -5506,7 +5506,7 @@ size_input_section "the linker-created stubs section `%pA'.\n"), i->output_section, i); - if (i->rawsize && i->rawsize != i->size) + if (i->flags & SEC_RELOC && i->rawsize && i->rawsize != i->size) einfo (_("%F%P: Relaxation not supported with " "--enable-non-contiguous-regions (section `%pA' " "would overflow `%pA' after it changed size).\n"), @@ -8094,8 +8094,9 @@ lang_propagate_lma_regions (void) } static void -warn_non_contiguous_discards (void) +lang_check_non_contiguous_discards (void) { + unsigned long discard = 0; LANG_FOR_EACH_INPUT_STATEMENT (file) { if ((file->the_bfd->flags & (BFD_LINKER_CREATED | DYNAMIC)) != 0 @@ -8104,11 +8105,16 @@ warn_non_contiguous_discards (void) for (asection *s = file->the_bfd->sections; s != NULL; s = s->next) if (s->output_section == NULL - && (s->flags & SEC_LINKER_CREATED) == 0) - einfo (_("%P: warning: --enable-non-contiguous-regions " + && (s->flags & SEC_LINKER_CREATED) == 0) { + einfo (_("%P: error: --enable-non-contiguous-regions " "discards section `%pA' from `%pB'\n"), s, file->the_bfd); + discard += s->size; + } } + if (discard > 0) + einfo ("%F%P: error: Total discarded sections size is %lu bytes\n", + discard); } static void @@ -8436,6 +8442,10 @@ lang_process (void) /* Size up the sections. */ lang_size_sections (NULL, !RELAXATION_ENABLED); + /* Check if has no discarded sections. */ + if (link_info.non_contiguous_regions) + lang_check_non_contiguous_discards (); + /* See if anything special should be done now we know how big everything is. This is where relaxation is done. */ ldemul_after_allocation (); @@ -8459,10 +8469,6 @@ lang_process (void) if (command_line.check_section_addresses) lang_check_section_addresses (); - if (link_info.non_contiguous_regions - && link_info.non_contiguous_regions_warnings) - warn_non_contiguous_discards (); - /* Check any required symbols are known. */ ldlang_check_require_defined_symbols (); diff --git a/ld/testsuite/ld-arm/non-contiguous-arm.d b/ld/testsuite/ld-arm/non-contiguous-arm.d index 3479778991e..98140e4dd01 100644 --- a/ld/testsuite/ld-arm/non-contiguous-arm.d +++ b/ld/testsuite/ld-arm/non-contiguous-arm.d @@ -1,4 +1,4 @@ #name: non-contiguous-arm #source: non-contiguous-arm.s #ld: --enable-non-contiguous-regions -T non-contiguous-arm.ld -# error: .*Could not assign .?\.code\.4.? to an output section. Retry without --enable-non-contiguous-regions\. +#error_output: non-contiguous-arm.err diff --git a/ld/testsuite/ld-arm/non-contiguous-arm7.err b/ld/testsuite/ld-arm/non-contiguous-arm7.err index 7b3a3d8c3c9..14cef67e0df 100644 --- a/ld/testsuite/ld-arm/non-contiguous-arm7.err +++ b/ld/testsuite/ld-arm/non-contiguous-arm7.err @@ -1,5 +1,4 @@ .* may change behaviour for section .?\.bss.? from .* .* may change behaviour for section .?\.bss\.MY_BUF.? from .* .* discards section .?\.bss\.MY_BUF.? from .* -.* unresolvable R_ARM_ABS32 relocation against symbol .?MY_BUF.? -.* final link failed +.* Total discarded sections size is [0-9]+ bytes diff --git a/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.d b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.d new file mode 100644 index 00000000000..e01b5151085 --- /dev/null +++ b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.d @@ -0,0 +1,9 @@ +#name: non-contiguous-merged-sections +#source: non-contiguous-merged-sections.s +#ld: --enable-non-contiguous-regions -T non-contiguous-merged-sections.ld +#readelf: -l --wide + +#... + +LOAD +0x[0-9a-f]+ +0x[0-9a-f]+ +0x[0-9a-f]+ 0x00012 0x00012 .* +#... + +00 +\.rodata_ram2 diff --git a/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.ld b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.ld new file mode 100644 index 00000000000..79c4ae89cb8 --- /dev/null +++ b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.ld @@ -0,0 +1,18 @@ +MEMORY +{ + RAM1 (xrw) : ORIGIN = 0x10000000, LENGTH = 4b + RAM2 (xrw) : ORIGIN = 0x20000000, LENGTH = 1K +} + +SECTIONS +{ + .rodata_ram1 : + { + *(.rodata) *(.rodata*); + } >RAM1 + + .rodata_ram2 : + { + *(.rodata) *(.rodata*); + } >RAM2 +} diff --git a/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.s b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.s new file mode 100644 index 00000000000..49832b3b514 --- /dev/null +++ b/ld/testsuite/ld-powerpc/non-contiguous-merged-sections.s @@ -0,0 +1,7 @@ + .file "" + .section .rodata.str1.8,"aMS",@progbits,1 +.LC0: + .string "string_1" + .section .rodata.str2.8,"aMS",@progbits,1 +.LC1: + .string "string_2" diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp index 9989f5a329d..fc42118d862 100644 --- a/ld/testsuite/ld-powerpc/powerpc.exp +++ b/ld/testsuite/ld-powerpc/powerpc.exp @@ -519,6 +519,7 @@ run_dump_test "ppc476-shared" run_dump_test "ppc476-shared2" run_dump_test "non-contiguous-powerpc" +run_dump_test "non-contiguous-merged-sections" run_dump_test "tprel32" run_dump_test "tprelbad"