From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20054.outbound.protection.outlook.com [40.107.2.54]) by sourceware.org (Postfix) with ESMTPS id C68613857B9E for ; Thu, 23 Jun 2022 08:00:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C68613857B9E ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=ZcWdxiAilh6/e5xQWMcES1ZMy5VIMJmT41kgzKvVho22f4nPe2Dy3NORT59WvCQ5icUakqlpc6tX8+hN3j9bVF3GsMTlrUJ4DmsbhGmybpXAsju+sKfBE8wKWUdIUUdJhQhCeSTsYWw4Mqnin8VB96EMfPnO+2/EcPu+W0knCdOHc5h5lkT5T+SCPiJqIKjMlnzYzf4DKbGgUlfC5J0bCk6+TeGjPWRO/bmnbL4YEZvdwwiPuqwH+KJEcWVRnab+F3vOr73JZLsAixoJhznapTs4pA2Xs+Ej3Y953NW3f8kiHLaRKv4xOV0BE/lK4jMZykudTsGK2DWkR3Z7R8gl3A== ARC-Message-Signature: i=2; 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=ny1W5H5IojnniFlJD5+gESydrBqAejAQ304z65NJoXg=; b=IEjMxwt849hFGpVtvhuPtTD/tPyWg+4jYp/EMEhOz+JOxOIxmZ7wxKLWYBiQ15bWcSdbOFuX49PAXG5hBbIyNUrhGZdo1asM9lQRmHKO/Nf3n5xz03Sn8YrqIhiVT2dzIPeARnGI4SB+0DTDQGQXz7HITta7nMUf0+w5FrNtfJ6PB8M+VchxcSVppJPu2bprsa1zN0umyTIcs6USHabLO93FzyCz1jATcDSIw+dGdApidtU5DNriKLjw1TcGN5/UzAAJdHkx695VT0nOsMQCI58JPFOqbvdo16h1CVnXi8prjwp4JH1YgArmRllCNQbinnk9pBwT2+OTfsaO3KGpkw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DU2PR04CA0211.eurprd04.prod.outlook.com (2603:10a6:10:2b1::6) by DB8PR08MB3995.eurprd08.prod.outlook.com (2603:10a6:10:b2::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.16; Thu, 23 Jun 2022 08:00:28 +0000 Received: from DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:2b1:cafe::3d) by DU2PR04CA0211.outlook.office365.com (2603:10a6:10:2b1::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15 via Frontend Transport; Thu, 23 Jun 2022 08:00:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT045.mail.protection.outlook.com (100.127.142.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15 via Frontend Transport; Thu, 23 Jun 2022 08:00:28 +0000 Received: ("Tessian outbound 4ab5a053767b:v120"); Thu, 23 Jun 2022 08:00:28 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1d00b354de6fcd9b X-CR-MTA-TID: 64aa7808 Received: from f7b95c9d0357.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 89A3701B-C2F0-437C-A1C9-8D9259FB9D65.1; Thu, 23 Jun 2022 08:00:21 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f7b95c9d0357.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 23 Jun 2022 08:00:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QM0eNAV8EKFwlW2SUYev9y4vf9MoqrpqXbNP8uTy+IqitjzlaFQ2boxiJa2YU61FdqGqSsUOf5ScIlXvsqjS6gWuYixOHBFW8nfgMcasRQe3QBkqAvxcU2XEfG2rSQyvLLNbSgUpjVDXUu0ccsnCQzKfxa5V0JIoex6FVeaQyphe/Bm1pSrZCjhMZS9nJulKWyH2H2HMjIN9qAiEyTku1gT+/0EfAM93gp3KCrZ8l56wbpZDxyP4+p25kO66qT6+XF6oL80N/9E3due8xSGs+pBpLLgCFFQfEOLxWy47BMaw4b+IKl8+Dwe6hVjjKlYH1OVrgWIPKphmT6KjnrnuvA== 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=ny1W5H5IojnniFlJD5+gESydrBqAejAQ304z65NJoXg=; b=nRHIEvKsjwfhtABbWkYQHXrc0oKFa5qrOz6VmZObDIUsQ8/lOJRvq4gh2zHEZIQ23If6C2ri8uY+x5/ndGlJ9rb1w1pz/u52PsO9anjbnGcPwelPrFVdOFQi6QNqPiPov85r6X4/fgD8bcheNZ5vYF8PmJGcbyRHLELreuXkiiVCwyr4Mfwg7yJqoK/eow7ShhhCMm292OTyfz8h9klWXNImXbbdUmYIZF4SJAcroS7p7gW5+Kcvs8edHUI1ugni3ZpDNRqwDti7RhVe3CxiNXD65QsIYLw28pRwBr2XxU2pXf3YXVwlaz33R4iQPfHlG27RQ1Gg7vqqTPT0fWk30A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PAXPR08MB7172.eurprd08.prod.outlook.com (2603:10a6:102:20a::19) by DB6PR0801MB1797.eurprd08.prod.outlook.com (2603:10a6:4:32::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.20; Thu, 23 Jun 2022 08:00:19 +0000 Received: from PAXPR08MB7172.eurprd08.prod.outlook.com ([fe80::d4b6:3f55:466e:4f86]) by PAXPR08MB7172.eurprd08.prod.outlook.com ([fe80::d4b6:3f55:466e:4f86%5]) with mapi id 15.20.5373.016; Thu, 23 Jun 2022 08:00:19 +0000 Date: Thu, 23 Jun 2022 09:00:01 +0100 From: Szabolcs Nagy To: Fangrui Song Cc: binutils@sourceware.org Subject: Re: [PATCH] aarch64: Allow PC-relative relocations against protected STT_FUNC Message-ID: References: <20220602065038.3198997-1-maskray@google.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20220602065038.3198997-1-maskray@google.com> X-ClientProxiedBy: SN4PR0501CA0085.namprd05.prod.outlook.com (2603:10b6:803:22::23) To PAXPR08MB7172.eurprd08.prod.outlook.com (2603:10a6:102:20a::19) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c3e855d5-d884-4926-b2a2-08da54ee6fe3 X-MS-TrafficTypeDiagnostic: DB6PR0801MB1797:EE_|DBAEUR03FT045:EE_|DB8PR08MB3995:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 0eb0OIOUGs3db7+ie3+n+pJXrPo15Yo1FE4aNq8w27EouN1TLNSeCxWLzIpaiXm2eFt9xdIiNHODG9gPN8tGFapPlZjk2qaklUc112DQdmErGxBbh7ax5LzKApBLa8X/C+SifbhKM11CZCIUnhcg1eSg7PcWuSXdCcNLWEMnWp4xDI5HJlvr5gNYI0BiNy7LDXELCw1zYsrQGF4Vv49Q6+zvi7R0we1uCBicxcQxqIS/67vPxkYFGN6q+s/fx1OMTuCMvosP0d1cUf64IE18PBfW6DUWeHfNjNxG8/T2kIBtNWHp+kLHuMu8SzVbdpwZx3LN5mcftt1r87wNbpqDpCeW+CDsA8vuYrSHIo+sY2nalCJZe80LSwXqrmFEdQGTNTSAdoEzSNlITKQtuYmy65wYsi8XhtEByOyo0/dbgLHoV62OafAHvM24H/2Wn/VnmoB18AFJLeyQijWkUNtiehU3p/wvPhzCQhSRBcMqNbUBKeCrPebBXIrVYC5wJmhROoRJRHMCMgIyL5ZKKM9JDvVOD8G+dp3uvnEERLVz6nRVH6PPGc+TBlkJ9apBak3yn1TtQOskGtggWaUomrUW1ugPrxMVNWmr3Ch+Rg/T0LpXnQYG365H7KcqRPKUlWPPBEO5TVfK3/ggmWuW5mm2Gx0+bWEQUTH6TloY5z3oBgCFsWVXZznJYYbCTWg4GGLJkreEQ5nEX/IYmUzYm+EQew== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB7172.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(366004)(376002)(396003)(136003)(39860400002)(6666004)(26005)(6486002)(316002)(6506007)(8936002)(6512007)(83380400001)(186003)(6916009)(38100700002)(66556008)(41300700001)(36756003)(478600001)(66476007)(66946007)(2616005)(86362001)(44832011)(2906002)(8676002)(4326008)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1797 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 5b182a4d-0cd0-41ae-6d11-08da54ee6a4b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AcgR5nCbBuuooF0h5RMgbbJ6Esicz7qj2swpp4xR6Tw9vZsR42/wo72ZUFKsoPvv6OSvKfIBHZt+YG1uk3O/oar76h/5LwPZxc43ZI5s/n2r8Zjju9vTZ+ifVSANPX33IrMFqWFvIWjCwXd55e1VC+lA7UbsLiyJK2QTAP7FbackJ06BfoVgW0N+uObypcwybMiM1q+so0v8oJXdW0LETgnG0Pv7vRq2FhdalxGXgu41uu5Zv9wVbl6zyWReykGOr5hLj1af0Dq1Vic51CmPkyZ1/MBewiuCbsTYHwJXYrPqRMPzZSl5twBjEBBezkLqHnbttSxgVPsS5Am+OL5DmktrPyV1a36SZ48paGP7O2iBdslqYE78hPLJ/3g32ako+xV0U3WkgA5T48tQVauKpIrGDTmHgNZNF1SnatbGCvICiD1xk6NZTw5avzpIEwDZ1ua0Ltg191Yp1Kbfxw4sGn7JQfKjcWltsvcPxDb+rxkU1jY+vFcGaaVwh4XBOCDy3+R1BjHXVVXSGrWZIxSlwjlpBmxP20SJwTPMXEpR716/NabzvqmemH9AMibBjKJhI5gWqSSltOE8Ft4SSeEoGlBa2hpEttbRS6cvDyL8uAOVhAi3FWuOGD14IlfQUNCyjLZrm5fuHqj4B18s8qRgNjPNxtxH6tPmSDaKniZ0Ps1yW7jEBmIslQ+JTZ4yTN1JwcfW+/9gBQw8zW4ujwbrtktxprKphP12hgmwACEcTJGLWq/QsfsDqVYNDFr4HheiPn1t71zr9F0Q/6DXlHAJ7w== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(136003)(396003)(376002)(346002)(39860400002)(40470700004)(46966006)(36840700001)(83380400001)(44832011)(5660300002)(40480700001)(4326008)(478600001)(36860700001)(70206006)(36756003)(6486002)(316002)(8936002)(70586007)(8676002)(6862004)(81166007)(41300700001)(86362001)(2906002)(26005)(2616005)(6512007)(186003)(47076005)(6666004)(336012)(6506007)(40460700003)(82310400005)(356005)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 08:00:28.2489 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c3e855d5-d884-4926-b2a2-08da54ee6fe3 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB3995 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY 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-List-Received-Date: Thu, 23 Jun 2022 08:00:39 -0000 The 06/01/2022 23:50, Fangrui Song wrote: > __attribute__((visibility("protected"))) void *foo() { > return (void *)foo; > } > > gcc -fpic -shared incorrectly fails with: > > relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `foo' which may bind externally can not be used when making a shared object; recompile with -fPIC > > Call _bfd_elf_symbol_refs_local_p with local_protected==true to suppress > the error. The new behavior matches gold and ld.lld. > > Note: if some code tries to use direct access relocations to take the > address of foo (likely due to -fno-pic), the pointer equality will > break, but the error should be reported on that link. This patch looks good to me. Thanks. > --- > bfd/elfnn-aarch64.c | 2 +- > ld/testsuite/ld-aarch64/aarch64-elf.exp | 1 + > ld/testsuite/ld-aarch64/pcrel-protected.s | 13 +++++++++++++ > ld/testsuite/ld-aarch64/pcrel_pic_protected.d | 7 +++++++ > 4 files changed, 22 insertions(+), 1 deletion(-) > create mode 100644 ld/testsuite/ld-aarch64/pcrel-protected.s > create mode 100644 ld/testsuite/ld-aarch64/pcrel_pic_protected.d > > diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c > index cb316a928ef..2c8e3439d43 100644 > --- a/bfd/elfnn-aarch64.c > +++ b/bfd/elfnn-aarch64.c > @@ -5878,7 +5878,7 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto, > if (bfd_link_pic (info) > && (input_section->flags & SEC_ALLOC) != 0 > && (input_section->flags & SEC_READONLY) != 0 > - && !SYMBOL_REFERENCES_LOCAL (info, h)) > + && !_bfd_elf_symbol_refs_local_p (h, info, 1)) > { > int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START; > > diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp > index 64476f111e0..565a67aa9aa 100644 > --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp > +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp > @@ -248,6 +248,7 @@ run_dump_test_lp64 "local-addend-r" > # test error handling on pcrel relocation for shared libraries. > run_dump_test_lp64 "pcrel_pic_undefined" > run_dump_test_lp64 "pcrel_pic_defined" > +run_dump_test_lp64 "pcrel_pic_protected" > > run_dump_test "limit-b" > run_dump_test "limit-bl" > diff --git a/ld/testsuite/ld-aarch64/pcrel-protected.s b/ld/testsuite/ld-aarch64/pcrel-protected.s > new file mode 100644 > index 00000000000..ce2a92851ad > --- /dev/null > +++ b/ld/testsuite/ld-aarch64/pcrel-protected.s > @@ -0,0 +1,13 @@ > +.protected protected_a > +.protected protected_b > +.type protected_b, %object > +.protected protected_c > +.type protected_c, %function > + > +.text > + adrp x0, protected_a > + add x0, x0, :lo12:protected_a > + adrp x0, protected_b > + add x0, x0, :lo12:protected_b > + adrp x0, protected_c > + add x0, x0, :lo12:protected_c > diff --git a/ld/testsuite/ld-aarch64/pcrel_pic_protected.d b/ld/testsuite/ld-aarch64/pcrel_pic_protected.d > new file mode 100644 > index 00000000000..1b6f24cf2fb > --- /dev/null > +++ b/ld/testsuite/ld-aarch64/pcrel_pic_protected.d > @@ -0,0 +1,7 @@ > +#name: PC-Rel relocation against protected > +#source: pcrel-protected.s > +#target: [check_shared_lib_support] > +#ld: -shared -e0 --defsym protected_a=0x1000 --defsym protected_b=0x1010 --defsym protected_c=0x1020 > +#readelf: -r -W > +#... > +There are no relocations in this file. > -- > 2.36.1.255.ge46751e96f-goog >