From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130052.outbound.protection.outlook.com [40.107.13.52]) by sourceware.org (Postfix) with ESMTPS id 46DBD3857357 for ; Wed, 8 Jun 2022 09:16:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 46DBD3857357 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NtKSJHitkzqpphi8ejDTCN1I2x2IgH1luUrx/aSv5K4lj8RMCEPzOjQk4jCJjaPprMjQ41XbjW3yn/1V66cRcTfJ52vN+mgHO02R2P7IHHvv/q5fWC6oQgYgU5y7ekQKGBoNLPJQHRINyF0CUREgBImQfzk7PqUJW5H2/Qr+cog/Ozqd1TUYCjzEisJyRDRnEYAk5THFEswX5TxXhU0Lo4ifHFydVdg4NP6QVoXQ+qXo0K9F4OjDCtq/7i1obD9nGcSb/djyDdLcjPaO4an9cQDPjlt9mdoYUJ6Crwmfp2k2x1OsdgmVrYBVTpuWJnio6Sefrx69NUNaB0k7NwZriw== 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=DlPBdlZ5gn7Bpp8sRMyS66DlfNiRmUVMmtKA47us6E0=; b=h0+tVl1IbGbTBCvhaM+t3FopqP+W2/WdA9OcwThAQGv7gpzXQPiHn+P8WkZVi5d/BK2klbQdEoreRCCkTacn8WRG0c6cER4MqrJsDjKoSxACkoDj4DSnp+wV8NnAT40NEgMLxewAu3L/s88RtxK+deF8TVF+yjHyXFjy1RKJm3HSpYMz4cCelfwj3hCLwgP1kUyEZySK5hpIyapuRmFUijK5jVrJTRclPtF+Y7y36wYb2A3r476fE00eC9/+gBBWdsMzminqFkyRhb7CIqCNw4GodUEjv3NVnonWOjNIlZxRxb920Ukm9RvpNERiVF5uTHVW1/IOWZKj4RPO8W+KCQ== 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 AS9PR06CA0074.eurprd06.prod.outlook.com (2603:10a6:20b:464::20) by AM6PR08MB4708.eurprd08.prod.outlook.com (2603:10a6:20b:ce::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Wed, 8 Jun 2022 09:16:22 +0000 Received: from AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:464:cafe::97) by AS9PR06CA0074.outlook.office365.com (2603:10a6:20b:464::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13 via Frontend Transport; Wed, 8 Jun 2022 09:16:22 +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 AM5EUR03FT027.mail.protection.outlook.com (10.152.16.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12 via Frontend Transport; Wed, 8 Jun 2022 09:16:21 +0000 Received: ("Tessian outbound 5b5a41c043d3:v120"); Wed, 08 Jun 2022 09:16:21 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 63a5af59df302236 X-CR-MTA-TID: 64aa7808 Received: from d780cb50f99a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AC6262CF-A692-471E-87DC-3614BAF1C836.1; Wed, 08 Jun 2022 09:16:15 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d780cb50f99a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 08 Jun 2022 09:16:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HQP8k4yO09StuuBgZDrFRr39+mooWpL9Q4BmmcvwRjsufL90r7VW2xWhE30LpwMCCnS1v2DTW6m2MMySNK/shgS/Qr5k4x4xd/Oofiz5STHySghUfJnnyDCppulgWyTiDM/eXaTv6pWN+m+sDdzzjupLyqhqrjmF4bbMVdEc06AcVa1lAyRRVtFKwD4Qkg4f4DK+hQk0zGpvx2Z6cI8/PBor6fSLxLmD6W4u2i8UZYltTSbgAPTh3RL8fN6OObQkUNTYGAR/uLVElWjoN40hOQ9dqK3Kc1SlrS0YLjX2oWCr29+1Cn5eKc3irHwnFaaRKOgoiRKPlMgtf50tGzkxCw== 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=DlPBdlZ5gn7Bpp8sRMyS66DlfNiRmUVMmtKA47us6E0=; b=S8wSV8utMXAnuDYavlyl8BzEjUvvQnaL6LVVcrq8uZhymG7Z2t/mE3KQD3JwxKQco7HAZMnf6gBue6zyxonKIRG8YzVtaUmQv29yo8H9CuzUVQJqUuqZprQHj4FzHFYhzpYaBzeFwdYPtoq7odueqS1wGUjv8/d+viihdsdNVMmTCRjhNyRY+chOefstAK+c5WMJwI5styy6m9YTHmprncaX8a1lWsbopEWjKv5y/+Tn2w9QCNVwHMHWCLgSSFXqHJkIWMISq09ptcbAQsIir3baClUfxN/xrIqCZ+ZDAVbe0RPa1XNQqJRJIBVHaZcymv3UUQ0uZ+MOWa2nyEBqyw== 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 AS8PR08MB7990.eurprd08.prod.outlook.com (2603:10a6:20b:535::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Wed, 8 Jun 2022 09:16:13 +0000 Received: from PAXPR08MB7172.eurprd08.prod.outlook.com ([fe80::8141:69f4:cc89:72f7]) by PAXPR08MB7172.eurprd08.prod.outlook.com ([fe80::8141:69f4:cc89:72f7%8]) with mapi id 15.20.5332.012; Wed, 8 Jun 2022 09:16:13 +0000 Date: Wed, 8 Jun 2022 10:15:59 +0100 From: Szabolcs Nagy To: Fangrui Song Cc: libc-alpha@sourceware.org Subject: Re: [PATCH v3] elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA Message-ID: References: <20220601175633.2407189-1-maskray@google.com> <20220607174917.56nvyqg7f5ish5ii@google.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20220607174917.56nvyqg7f5ish5ii@google.com> X-ClientProxiedBy: LO4P123CA0040.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:152::9) To PAXPR08MB7172.eurprd08.prod.outlook.com (2603:10a6:102:20a::19) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 60b1447f-c8be-4d71-fd51-08da492f8d99 X-MS-TrafficTypeDiagnostic: AS8PR08MB7990:EE_|AM5EUR03FT027:EE_|AM6PR08MB4708: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: VW466H+L6l5UOXww9NmMsBBrOeXd980R+1qwfGFIvNsTTbiwP5Yi9D90b5JH+MZkmjt7itIJ9IANCwPhSyE2aXI6GAb4OxeYGcTRBeYcL9uTX4k5kJx6cKt2mxDHKx0srLB0BzrdBSXEJTHcXZNKaS2+kmcr/H73frTap18Yu0mdQAi13RDpZiFCxqTGzLdjeTbesSiHtjB2RT++u497N9aRwkjB56AFd+TNiSHeLb9aLgec7zSMXGYWy41AvYuamjE6zKKfYwCCy4G19gppKJ34MOaDF+dOi6ZZ21iIjNK4XRdurW1sMngQ4BU/0cRIYb7E/VNlBdPodQDknK7cruUD57YmYb8p4mLPlOfRFfWpEq9xDfagMNVvrtKefv7L4NRj6b1F53RbV6W8ka4FORmjeDjO0y0NQzudyA2+QeJtjmIlPzDr/STZBidm7+wRMiijcAiHzIYmR+W/yz9hyGCa53F5RExcLd8niBC2EjIwRvYYIFY3AcMur5MdS6QDQz+al5+S+nK6SqdasFNNVZJjHAZjd5vxcD069kT7X3i2YI+TVU+3ECanrrcJq+TBY+XsGVasXt394++1XsCTZGWrlSomV6/IWDDF/ITaTVly1E2g97HDNLTGvDBuSL8dhUGXjlEts0v2R/v4yZPn4g== 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:(13230001)(4636009)(366004)(66476007)(8676002)(38100700002)(508600001)(6486002)(86362001)(36756003)(44832011)(6666004)(2906002)(2616005)(66946007)(66556008)(4326008)(8936002)(5660300002)(186003)(6506007)(26005)(6512007)(316002)(6916009); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7990 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: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 03f9b10f-16a4-448e-1413-08da492f885a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Onux1VU7PFeD0HtwFzGdDEXuF6c7YVmbwbP+TLi/bdLXr0TclnUer4MuxmczMpiZa8FlRfzSWeGPzFflC2VLjQMM1WBpQ2F3oOuZBZOTvz2MANOJeq+KRQeYgt37n1etO42TklrLdXIDr96j+gIjEzHKtngenUq5Sv/wEaa204VYtBm/y62HuRmhZSM65id7AALt/XIkzMDE5m87kNLhOvnL0YxVSdPy1QqG6iVNXf69Hv4Knqa7tizCW64YQld9IscwcOuHMmqxkJ7YkKQTSro5XzIMTLxoo9V7T4su//PRK9jgkHfEQMG8tfcb4MUtplhpK1hoj3hvmWUW7pfids9Im+Wiz/YVVjhcP4AXIne91ADJnway8ucPyaAaycIvRzvc0kQIkcTelqRI0lTmkeOpChXNRA3d6VDaL8HA9sai0KiMcAXuxbaZsHP4qcXbKWf4Wtyb7K/KWUp/p2deT69953x5HBU37J8HazNsP5KLQAY9ZAyBJ5N8L5dyeVE0nMzBe+v1Gs4gABEu/TQvRhcYXhfu2CPzqqFCeIp00duqbB6L5OxIJCxq1vv7K9AOm2RQYsWBO0kFog9Ul6NDe9fwMFspCjOUwaH9PzEIdRTETAnUg6220lmMaIx6lX4LM12xVLJ5TeNVkB9HQlS/7GO17nlqPS4Et8lJ3Wsd9ZbAAz4GvkxhWYJAPhoUPIea 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:(13230001)(4636009)(40470700004)(36840700001)(46966006)(2616005)(81166007)(47076005)(26005)(336012)(70206006)(70586007)(40460700003)(316002)(82310400005)(356005)(6486002)(6512007)(86362001)(36860700001)(44832011)(508600001)(36756003)(5660300002)(8936002)(186003)(2906002)(8676002)(6862004)(6666004)(6506007)(4326008); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2022 09:16:21.3691 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 60b1447f-c8be-4d71-fd51-08da492f8d99 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: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4708 X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2022 09:16:27 -0000 The 06/07/2022 10:49, Fangrui Song wrote: > On 2022-06-07, Szabolcs Nagy wrote: > > > - int protected = (*ref > > > - && ELFW(ST_VISIBILITY) ((*ref)->st_other) == STV_PROTECTED); > > > - if (__glibc_unlikely (protected != 0)) > > > - { > > > - /* It is very tricky. We need to figure out what value to > > > - return for the protected symbol. */ > > > - if (type_class == ELF_RTYPE_CLASS_PLT) > > > - { > > > - if (current_value.s != NULL && current_value.m != undef_map) > > > - { > > > - current_value.s = *ref; > > > - current_value.m = undef_map; > > > - } > > > - } > > > - else > > > - { > > > - struct sym_val protected_value = { NULL, NULL }; > > > - > > > - for (scope = symbol_scope; *scope != NULL; i = 0, ++scope) > > > - if (do_lookup_x (undef_name, new_hash, &old_hash, *ref, > > > - &protected_value, *scope, i, version, flags, > > > - skip_map, > > > - (ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA > > > - && ELFW(ST_TYPE) ((*ref)->st_info) == STT_OBJECT > > > - && type_class == ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA) > > > - ? ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA > > > - : ELF_RTYPE_CLASS_PLT, NULL) != 0) > > > - break; > > > - > > > - if (protected_value.s != NULL && protected_value.m != undef_map) > > > - { > > > - current_value.s = *ref; > > > - current_value.m = undef_map; > > > - } > > > - } > > > - } > > > - > > > > i think we should keep this part without the > > ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA bit. > > I have played a bit but do not find any difference (with some examples using > "canonical PLT entries") if I simply remove the whole if statement. Do you > find anything I may have missed? yes, i posted an example earlier that behaves differently. object symbol defined in exe and dso, the dso one is protected and has a GOT reloc for it. with the extra logic the GOT is resolved to the definition in the dso, without it the exe interposes the protected symbol.