From patchwork Wed Jan 29 11:17:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Kilroy X-Patchwork-Id: 37595 Received: (qmail 100384 invoked by alias); 29 Jan 2020 11:18:04 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 98740 invoked by uid 89); 29 Jan 2020 11:17:48 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 spammy=HReceived-SPF:client-ip, HReceived-SPF:helo, HReceived-SPF:Pass, HReceived-SPF:receiver X-HELO: EUR02-AM5-obe.outbound.protection.outlook.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=goNe/qpZbGO0aU1w87lhJVz92WRF+RclIW7yuvGqrdE=; b=D8oo0gychH4SSroV7Dg422iNrM5z67fQ/vfO9S3xHOVXblx7nDKzETQs9AjyUQRmV+I3rRSKKZD+YhBkof1zAHlvIW3FFBwR2jmRdJw2tc4fvfvyxYIEX4jOtADNVpGABkFKJ5kjofvs2F1tr242EjH5uBVkm5T4FZhaWoSR2Qo= Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; sourceware.org; dmarc=bestguesspass 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; X-CheckRecipientChecked: true X-CR-MTA-CID: 7f373970e7627dff X-CR-MTA-TID: 64aa7808 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TLOe5F7XCau839aXzHoJadQ3FXdxnlQsCinFoHF3WwMKJE13KdFjkc1gwmXt3q90utNV04v4waXyKpvnF9hVBMLCZGjh7iWXOGvgky9C1XxqFR4rrfvrUVAIhKYspFcbTXDuvUAATREa2mnJUpsl6NRDF5tstKVMZFoB3r+M60J0nDSfSucZKxFnDWpGSVasMWtHy475iks+ax/OcRs/F5EkoaYF5/5D50Q6Kouaas9uRevERDHqRDGMm0BiMVVMiz6tbsyKfW28hcIBXcKIqL+TnC3WQvecolVDWUCtYI7aHtOhqdHp+IhJXxriz+ih7bVFINxpRklMzSpcOr+FkQ== 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-SenderADCheck; bh=goNe/qpZbGO0aU1w87lhJVz92WRF+RclIW7yuvGqrdE=; b=aq4desJmyGem9YxiM9hgCQ/r0GUsO7+/XspEkgEsQa7i0b/eqVrqtERVBpCNYonIciFZ/LiQ1l/qEhkOn+jpAd9Occ8tQ8yAAjXW73jvUDczwujjmXUjxiabgx++6x3FivHALlc6tzsZ5ocKhrNTkx/dCA9Y27YoSP2ijgqTmMvh3dMBX7pJwy/xRraln7wjF5zvMg0mJviqdhkBamzLuTTZV6ZV27oxOPRPDmBYpIqBX4Vwx/OOfz0trVtrZOqzykqL+uu5ssJDo4QcNrxXxbiadl0WUnGz7lcUZk+71YelD8ohPXgW7PukHuFEudhUkMlAIZeeRJzt4Vfry7SWWw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=goNe/qpZbGO0aU1w87lhJVz92WRF+RclIW7yuvGqrdE=; b=D8oo0gychH4SSroV7Dg422iNrM5z67fQ/vfO9S3xHOVXblx7nDKzETQs9AjyUQRmV+I3rRSKKZD+YhBkof1zAHlvIW3FFBwR2jmRdJw2tc4fvfvyxYIEX4jOtADNVpGABkFKJ5kjofvs2F1tr242EjH5uBVkm5T4FZhaWoSR2Qo= From: David Kilroy To: "libc-alpha@sourceware.org" CC: nd Subject: [PATCH v4 2/3] elf: avoid redundant sort in dlopen Date: Wed, 29 Jan 2020 11:17:33 +0000 Message-ID: <1580296643-36839-3-git-send-email-david.kilroy@arm.com> References: <1580296643-36839-1-git-send-email-david.kilroy@arm.com> In-Reply-To: <1580296643-36839-1-git-send-email-david.kilroy@arm.com> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=David.Kilroy@arm.com; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(346002)(39860400002)(396003)(376002)(366004)(136003)(189003)(199004)(6486002)(7696005)(52116002)(86362001)(4326008)(8936002)(81166006)(8676002)(81156014)(478600001)(6916009)(71200400001)(316002)(2906002)(16526019)(36756003)(2616005)(26005)(66946007)(186003)(44832011)(66476007)(66556008)(64756008)(956004)(66446008)(5660300002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB3903; H:VI1PR08MB2958.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ZAxAkCJj0/0FFQ6Dky5a+lVtFWhwsU90k3KTotX5nKs109vHioPfIGURVuiyCS8GSnDoLv8Ylr550K81yuKR95XoJEiSgakdzFcbTH0XfgMDJGcOYxPXy8j0McU4IksergdhQ21W8O1600Sftm+czJSsJbPw7WX151BgQQBFVt1bFEd1Q8DbiOhIRyZAL9K8zRxC/nb/vnmCn/JCUy3HklWbyTys64AjcyCHsSYQxHCW3lo1W9M8qoZHdshNFYqjXig5uyPATb1+F9pcuph6F32WZKIzqErmrg4iPkSMF4QSbiZhQp9lNne86I6uWDaavclqgQM2Ra3dArPtPb/IR4rWoobLJsVOwAolYV93bq1vlRk5hjf5XY2Nm8H6DKkVG31sgyK03CrYXkU3NlBWCZ19r6kCLoWliTv/oeCqoR/FqyW4pTwSACP2EPn23wfy x-ms-exchange-antispam-messagedata: fu4HqtT7J3yMWS4vwB3yxGWeOEexWorIX9ik55Cj07rSDsN41mnPhXfuEwwHzsjnKDbvK88b1nCNDsQxcVmAkNTWL/CVv68V4Q9kZySEaFXJDlPP2vXaibbcLYsyJBQ70Z9iFtxKw3Bn8ticKJjHCQ== x-ms-exchange-transport-forked: True MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Kilroy@arm.com; Return-Path: David.Kilroy@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 9282eab3-0222-4f9a-0822-08d7a4acd61b l_initfini is already sorted by dependency in _dl_map_object_deps(), so avoid sorting again in dl_open_worker(). Tested by running the testsuite on x86_64. Reviewed-by: Adhemerval Zanella --- elf/dl-open.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/elf/dl-open.c b/elf/dl-open.c index ecb2ba9..314adc2 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -617,9 +617,10 @@ dl_open_worker (void *a) if (GLRO(dl_lazy)) reloc_mode |= mode & RTLD_LAZY; - /* Sort the objects by dependency for the relocation process. This - allows IFUNC relocations to work and it also means copy - relocation of dependencies are if necessary overwritten. */ + /* Objects must be sorted by dependency for the relocation process. + This allows IFUNC relocations to work and it also means copy + relocation of dependencies are if necessary overwritten. + __dl_map_object_deps has already sorted l_initfini for us. */ unsigned int nmaps = 0; unsigned int j = 0; struct link_map *l = new->l_initfini[0]; @@ -642,7 +643,6 @@ dl_open_worker (void *a) l = new->l_initfini[++j]; } while (l != NULL); - _dl_sort_maps (maps, nmaps, NULL, false); int relocation_in_progress = 0;