From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 115430 invoked by alias); 17 Oct 2017 15:41:37 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 115420 invoked by uid 89); 17 Oct 2017 15:41:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=adr, (unknown), 1mb, H*r:203 X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <59E624A8.4010304@arm.com> Date: Tue, 17 Oct 2017 15:41:00 -0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Renlin Li , libc-alpha@sourceware.org CC: nd@arm.com, Marcus Shawcroft , Richard Earnshaw Subject: Re: [GLIBC][AARCH64]Rewrite elf_machine_load_address using _DYNAMIC symbol References: <581C57FF.2090901@foss.arm.com> In-Reply-To: <581C57FF.2090901@foss.arm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DB6PR06CA0005.eurprd06.prod.outlook.com (2603:10a6:6:1::18) To AM5PR0802MB2482.eurprd08.prod.outlook.com (2603:10a6:203:98::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cbf8cf58-b92d-43e7-e673-08d515758a1a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:AM5PR0802MB2482; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2482;3:cnQDzLoMH64Z6L6OHTddXbA5u1GS+S+PbE9n2ONLO7ItjFE4u7JDkne5qaOqvzUsfcobOrb6vXrWl8yZPfXMXmCOrvBZHiSwmc6jT0CNC5MFQQSdNVS6XNXb1lOdESfTb12m2EQm5IX2rUfE8s9G/r81+vBR3YeBJ0we1w7QVfySfm8VwOPWUZG+sllB4CrHscJDyhjjbEu1gk+ecEhvIhWUPOGkml4tDfbqp7vTKqClBI9zWxXbjydkJpgoK/2c;25:TUpCWRNBqt37fnANfroJibhTo8Stex6HeRtn8GHBGGxqMitqoO33JpNvc28poAWtAFQxthPhckzp3oLh3rzInNDJd3CXyYTERSkRAuTBG2DNaMJ4Nxklqx1pn+UBDbmZKGybKCN332Pu9a0zhrR8BiibsULWl9Exe67ph491m1mBc9d03jTX2rAPZ4mqeSmZTU52+g+jNc4xvkN3xx30aPwCP5eI1xdJkjVjYhwVx1t3VRpTKiljpZASSp7dQDuMUfeKrKQ0Bs6S1ohXgWZxi30KqCNBAb0RXVVTWtsTmNYmSyXlKrzj561pMJy+yC1FpG+/gbMr3qxTxBZRBg7YBg==;31:QU4k0AagCQiTl60sAwDGyWooEn98zruc/BWJq+cZVGrFkASwnSQ/BbYYKjHY59fKcNPkxZUTwc55pAquiIvFs21nZkLsZMOkwkXfxssQMLlQCkqX2LrSuyftuhqBioZmSEskq7RXUT+p2eFssVKJQTS3l/Jdl4+sQdG0EXa5pdCA97HfqB8IK3yhnvgbFCRRE2NUaukVsqtxuc8QSQr586HXXIftiQGH6+HBSdabo5g= X-MS-TrafficTypeDiagnostic: AM5PR0802MB2482: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2482;20:33WgzbE1EG2nD4HknJuCdEVyyhRYUNv6s4HU/RiHk+p6MyZVlibQmL2cyJGxXYvIENK8B1jcIYjHXO4zK0OBZvFZU8UhI+LAODS3pTR12F6doeSFUpyKWKFNM34O0ucDiCsPcjU4UKWpufc4fr8Xv0oUTBDwOb/XcVkbiY0hDdM=;4:88HrehPqrEBX5BVI3kgvNVNBIe7tQDRblDUC8hkTQFkaJp0xHG52llpUXz7d7JhytS9bRjc7czYc4HfnEAxW0sTb/H1RLyx4Cl5SUjeqr1K7hIEorUO6wyxFNaocdMd2cONZqTozbyEojhOMTK5ufo58Eg88aJ7stuxPE1QJnorFaOaLXHvX7hyMbM1HQvlbdGimlz4yDYnQJie8bOTumd7OxSbByNgaaaE0Sy6G/oh0sb6+mz6M/GopOR+8prP3/HEOkyeghb3QKbq8mpAU+pZQ/Hvey53vjjafEP0dTG0= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM5PR0802MB2482;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM5PR0802MB2482; X-Forefront-PRVS: 04631F8F77 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(39860400002)(376002)(346002)(377424004)(24454002)(54534003)(189002)(199003)(53754006)(66066001)(16576012)(53546010)(8936002)(65956001)(86362001)(65806001)(6116002)(101416001)(83506001)(305945005)(3846002)(7736002)(16526018)(53936002)(2906002)(4326008)(64126003)(316002)(47776003)(229853002)(230700001)(36756003)(58126008)(6486002)(77096006)(966005)(2950100002)(59896002)(68736007)(81156014)(81166006)(106356001)(33656002)(80316001)(6306002)(50466002)(54906003)(72206003)(8676002)(5660300001)(23676002)(65816999)(87266999)(25786009)(54356999)(76176999)(50986999)(105586002)(189998001)(6246003)(6666003)(97736004)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0802MB2482;H:[10.2.206.69];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDJNQjI0ODI7MjM6KzNYRDhHNXVIUnN2OWk5Vms1Z21KQ3lw?= =?utf-8?B?d2RCbEx2UGJNSVRLOHpSajhnTEhCVzcwZkZtclpoOTVFcDlQTjBpRWN4Vlpo?= =?utf-8?B?c0N2VmVQbHhkOEpJL0Z3bHp3dkpuNW04N3kveSs4M25vZXJMQS9SeG14RHF4?= =?utf-8?B?T1ZXeUF1bnpuVnI4Zk51aXdxbEtLM2hPV3V6SDhaRXdnVHViWVhXQzFrSCtZ?= =?utf-8?B?OXlicnV6b3pmV1FTcWJldHF1a2xDS3oxOHp3aFhKUEF0OVEvQWI2aTNBUFRt?= =?utf-8?B?VXBOSWdDMW5hTDFDRHU4RERuK0tDR1lBTUgzTncyaGhFb1RmZFlBWU0ySDQ0?= =?utf-8?B?WG00a1VUNG8vd2ZrQzhjV0tCVEs4Z3p0YVFsNnY5bGs0ZTdTb2Mxd0hsNWRJ?= =?utf-8?B?OTlPaGZXZk9KdFZRb2ljZ2MybDBSQ1g1aTBGa0dva1VhNjBtRU5GNFdCUlhR?= =?utf-8?B?MmRJcVYrWllhTjV3c1QvL29SR0VkTDhsZ3RIZHNQVE5kSG1wbXFqcGRUMSty?= =?utf-8?B?OWZEdWJLSDE5UE84UW9iK1ZKQi81UzIxUjA1MUh6OXk5TlljRFo1dDNoTFJ5?= =?utf-8?B?YzFmMzcyQjFueXRmRTFDWml5MzdodTdMSU9zRHp4cFhHVlZ2Y1UxWG9jZDF6?= =?utf-8?B?dTVxdmdndUFLQlZ3VERLdXo1VFZ1aDFDUkFVS3JYMWI3YUtKakZCUkdJUkhj?= =?utf-8?B?TUZFUzF4SVp4Wi8rN0RNcjBiTFJDcXZuTDNTcTdSMys1MEkzbGpxT1dhREFw?= =?utf-8?B?Vlpkc0VNMEFhbjhGZ3BxL2pucGM5R09mcVRwcjRtZ0dUZUNGOFV3clFOMlQ4?= =?utf-8?B?WGpKVWZXazJWUVJGVTEvbkxOaFo3YU9lUTI3bnExZ2dGRTZTUVNYbmhuZTJE?= =?utf-8?B?VjhhT3ZDQWlBWGRWVFBWNGpCS3BzeStZalUrVTcrZktXVHdjVkphVjNOdWJZ?= =?utf-8?B?cEpuMkRUejZtcmNoN1FQUWxSMW0rWEIxZ1F6TG1Fa2tXZ0xjVXJTalYyYnRw?= =?utf-8?B?Yk5mNm5UZHZrZUJ3QTNzeTRXellYckh0cytYVTFvZEpEYWZGaDJOUFBpclZV?= =?utf-8?B?Y0J6UEM2MjUxSGtScXBWS2JVMStRVHc5ZHppdE8zVTc0UXFJZTVUTnl4Slc1?= =?utf-8?B?QVdQbXQ4YzdMdUhCMmRORzlEK2ljRWVZa29VQnY5em05WUhjc0ZjWWZiQXZH?= =?utf-8?B?b0tEL3hqTHRTajUxb1lWWGxOUENMdk5zZDlwSFhFWHV1cUk3TWFCSjhDaGpL?= =?utf-8?B?UC9nem1tZE5ZOTVIRVh1aHZnVEhFcjBCY2NWZnhKalJ1eVpvVUVMdFI2NVcw?= =?utf-8?B?WXpseDJmNi9GM0xXR0NKZzJEY1NlYW1WR3UwS2JJNVVJY2hVSnkrbjFabWZP?= =?utf-8?B?K1BTRS82Y2RaanBmZGFqS2p5SHczNU9aanNzaW1XNHI5bWhYcXVyTE9YLzA2?= =?utf-8?B?dE5TUFhRQloxWkpRZC9hNEd5OFhvNEdiK1h3VkF0M3ZRWHI4YzFqdnkxeHBy?= =?utf-8?B?aW0ybWs4ZUsvOHNwbWNLbTdINE5VWEpndXlhalduYTNwVmZDd1VSWnpMVzBy?= =?utf-8?B?ak1ZaFlZc0lHRnV0Nk01dWF3ekxaaThSNi91TkpsOGprUHY0K2FNb1hDYVZW?= =?utf-8?B?QVZUSC9yNVRlZTlRRFFNMDB6aEkyTGJYR0ZMY3huYTJqNWdBRlFKR2NWWHpQ?= =?utf-8?B?MEVhU040eDBzVi94cHNkL1RZOUVYZHp2Mno0bEwvT1BoZGhvbEZaRzY1Qldv?= =?utf-8?B?MHVkNWF4cTNyNEp1N0k4eHpiRlc3L1F5c2svUDZTUk1SWEpTakpmbmlveVht?= =?utf-8?B?ZzByUHhSQ0VjT0xxVDNUYlh0WHZ4bHcwMGR1bjE3a0w0L01ZYTIvazhYNkNq?= =?utf-8?B?UkV0V08rQmNySURtVzdTOG9qSjdRdmRxWWM5VmJtejNranFucHJibCt6UnBz?= =?utf-8?B?WGNtaHVYVjlPR0FHbm9vUTIyS3FpcHhwOEZNQlA1Yjd0ZXdkL1lMMmtyeVgv?= =?utf-8?B?WkRtNk1ZTjlaYldFZU52ZlZudmZkc21kMXZkd2pnPT0=?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2482;6:yFO7Dh6g50T+k/v58l3/5gNK1PqNqH5cS8sEqKU/1X1WOY1/+d/VnXP4Vjj+U61v2tKQ6CbC0JYEfkDZzim1iPyxH83X5TXz6tppUPDrL6VmA7VPBx+iztBhVDCAEqIFeKGldm9ueSUOHekM+wGoufNMkj1b39r0BHjQGmV2GxFZKGhcbusfX6PwOLegICmfagxKjaTzkxNSnpsU4eOzjDsSfbEEZToE0/Fqqs188Txg0MSeY4J5+VxZYtd35zBFo1bds934Bg2YF2ajeXaob7XsKpBjGmwqlcedI/g5FebIcTNFZVf1kkBUP+6vwBT3bHRR0EgDkvcTOVNOBJ3vQA==;5:vBUwGH4MShRITAn5VUid8bOh4KlFCTrcqP6DxaHxgy+EiDZcwLEGDCJmNCbj+0QWCzrU0c4MAwkOfdIzhQEPvfBSiDccbdesvMAtduD4nPdianM1ByeBL8sFtWVhKiKIOsuRg65gh2qKdFA3Ng3f/Q==;24:dxw1iTgSA9LTYO1xNwcjpaBIwMAUnUrRd5yfQ65bMO+3c7ZwTdZHUmhQ6e676H0Ul9wurmQ0LaWeeFYoHFFJbESm4mmHrsdJKnMbtpz0pGo=;7:2+RgX+YghjBe+0glKliPZFK5K3aIMRHFZLEAKiu3Ok3wIhHN+ypqsqS2g7W0OiSy29ffkUppzmj+2a3mEvleDyr4OU/LXwOmfpnFpEB0gLA+iWDBQzwd+jkBw2opJhMdHJPk3idaRSibHn+uizH0WoS6FcSvOyhTjKGvbmu3e0b1JihvEzBR2qCusJd+oRJDhUcwIvKTaWC13i5O0/rbE21HGNJSYhr9NdnB9tbfU8s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2017 15:41:31.2356 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2482 X-SW-Source: 2017-10/txt/msg00758.txt.bz2 On 04/11/16 09:42, Renlin Li wrote: > Hi all, > > This patch rewrites aarch64 elf_machine_load_address to use special _DYNAMIC > symbol instead of _dl_start. > > The static address of _DYNAMIC symbol is stored in the first GOT entry. > Here is the change which makes this solution work. > https://sourceware.org/ml/binutils/2013-06/msg00248.html > > i386, x86_64 targets use the same method to do this as well. > > The original implementation relies on a trick that R_AARCH64_ABS32 relocation > being resolved at link time and the static address fits in the 32bits. > However, in LP64, normally, the address is defined to be 64 bit. > > Additionally, the original inline assembly is not optimized. It uses 4 > instructions including a jump. > > Optimally, the new implementation here is just two instructions: > ldr %1, _GLOBAL_OFFSET_TABLE_ > adr %2, _DYNAMIC > > The size of ld.so is around 130K, so it's save to use ldr, adr to get the address. > The address range for those two instruction is +/-1MB. > > And by the way, this method is ILP32 safe as well. > aarch64 linux toolchain regression test OK. OK to commit? > > Regards, > Renlin Li > > > ChangeLog: > > 2016-11-04 Renlin Li > > * sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use > _DYNAMIC symbol to calculate load address. This is OK. (Roland notes that introducing a BASE symbol with a linker script would even avoid loading GOT[0], but that can be done separately across targets)