From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21456 invoked by alias); 17 Oct 2017 16:28:51 -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 21441 invoked by uid 89); 17 Oct 2017 16:28:51 -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=HX-ClientProxiedBy:sk:DB6PR02, mcmodel X-HELO: EUR02-VE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <59E62FBB.2090508@arm.com> Date: Tue, 17 Oct 2017 16:28: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 , "H.J. Lu" Subject: Re: [GLIBC][AARCH64]Rewrite elf_machine_load_address using _DYNAMIC symbol References: <581C57FF.2090901@foss.arm.com> <59E624A8.4010304@arm.com> In-Reply-To: <59E624A8.4010304@arm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DB6PR0202CA0041.eurprd02.prod.outlook.com (2603:10a6:4:a5::27) To DB6PR0802MB2488.eurprd08.prod.outlook.com (2603:10a6:4:a0::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 873c11a6-46e3-4aa9-1d43-08d5157c2360 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:DB6PR0802MB2488; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;3:ugPv+g/AFwueG48tINDRX7jrEjN1sEMYcbsc/WsK0U5/IMboOFJJVOBrVn7cOUVdHxI1yj1pg3dtoep8rEVxquVmjNFQsiFCPbMh9VylkgI/AfX3TdW/5NuzzxpNK8dWxsWSzAYlbqBRP5K/ktXcCcuW40ngXsh7aOwp2hFrH7GTFIJvWny5z62i3uhC2QNLTaCKWkhzU9ko2uIAOgCq6VQYGFerx9P+g9TM85TQySVr/iaOQBLTsXYAXVpfZtMl;25:7DaHxX6YwABUf5FAlpWHJ0ZNsK2a1s+8VP9d2P6wWMpTYP1unsaC6L0AZe86eBsCMV0tWwN+3LtYJIwEqEpIwXT0DAHjRm+mvWLTrivCxIKcdS07KVCGisxXe+Q58pNsEiNTbcfgrwSVSRGe5Lti90mobFfrMQFBJJzZNAT/R+cXNSID0UuxMxdvIW+9n4bbfuBLDh+GzOU3Wd0EjV89cohRgn7+kCERDzwiAcFFFI+zPcQI3nRhMwwCsb/chp8MRlaSK1FRoAKbr5QKWR0ZAOagzgRLo9c46E2CDW0gJFgf7ADosJleD2MsaREQz8ToV2udX4BNyYKTVQVjJeCq8w==;31:8lBvwD8aPDJP4SUW815QWoD/vCjSDenj6mn8cEaITae2+XRDE3ckkfUL9L+tE+pqekz7cAT4zO7mjnQlFDdAxmOUktVyVSoUKWPsqfslCIFyE7cIRWlTyq3/C5LB8IQ/hXJoYZ/YNr6ZKRkISasWY/biT82Wi+255f23OPm+uAwEYw005mqoYTilaMOfhLUslijB2m0qA5KULkXY8Bpmg8qxn6sLkj3I5MyEZiMF/24= X-MS-TrafficTypeDiagnostic: DB6PR0802MB2488: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;20:BRJXJZkrCjg0/7eCSugOe2YRWW0WfowfJRpwH3NL75vlsUotbexFUd0PCZmNUhx/qZC+eN92NlDbXjVsuKW4ppn+YBO8c9ahF9drhHhxyrTfLc+XG3ZpVbx5afgbD8bhHBhmPKWShWW6QNB7OWo7JfeX2EAm+n0gBFm1UCTlQDM=;4:4oyUTBbKYQgKMaq1q0Ozm2kFLl6Lq7NNUHV+Ew77dk4VmY7K90XhNvDOGn/dgyrea+m9kIe9dK7PSF1BILB16d2J+l8BXeGbd229AjRBcehhUKYrWxMA2fpG+IfGpGLr5sMxRo7DjQti8hgE7rXk2KcnsS3zWrQ4GFrUOOZlVDY6q1ykb2w/DaEx1+ev6Bd3M6zzAiejqCQ8bkfr6EsXkwZUrTlqhG3DY69UYIX1khKZ4vmEctkpvwTUsqY+TyNVSIg3j3FxclYoOb3FP11LEtZxKXMqAEd5CtnikpSVjCk= 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)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0802MB2488;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0802MB2488; X-Forefront-PRVS: 04631F8F77 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(346002)(376002)(39860400002)(189002)(53754006)(199003)(24454002)(54534003)(377424004)(105586002)(2950100002)(4326008)(53546010)(229853002)(23676002)(39060400002)(6246003)(86362001)(80316001)(189998001)(72206003)(8676002)(478600001)(106356001)(230700001)(81166006)(76176999)(65816999)(83506001)(33656002)(2906002)(8936002)(3846002)(81156014)(87266999)(47776003)(6116002)(54356999)(966005)(5660300001)(77096006)(53936002)(65956001)(66066001)(36756003)(97736004)(50986999)(65806001)(305945005)(50466002)(16526018)(59896002)(7736002)(6306002)(6486002)(101416001)(16576012)(316002)(68736007)(64126003)(25786009)(58126008)(54906003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2488;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?MTtEQjZQUjA4MDJNQjI0ODg7MjM6bW9iNisweHJSSlZpcUtBa0NsRCtMQ1pq?= =?utf-8?B?ZVhrdHhHTk1VR09CRmNWWHROV3pYUy82aXFTUFZFMlF4Y0VNaGw4aURPSitY?= =?utf-8?B?blJoRm80YVhZN2hZZEozd2dlYVlydnErKzZMeDN6bC8rdzRydHNwdkNyNlcy?= =?utf-8?B?TUxsWGJkTDVSdndGN0k5Zk5ZUE9iYWRvRHFmVURWN0xkbHQ4SGM4aXdCZ3dQ?= =?utf-8?B?RStjODlkMm1FcmVpZ0dLMGRnak92enN1b3l2TWFTY3pUNHM1VlVqRFYzQzZ5?= =?utf-8?B?bFdHTG5uWUxzK0V0K2FuaWVrTko0eXNhdGlnSkFJbm1MSE9BVUJBS0FNOUQv?= =?utf-8?B?dEJmd052ZWZ2WWl1Qklta24yN1FCSmkvMVpVUHFFK1RVc0tsbW1NQ1hETDNP?= =?utf-8?B?VlhwQnlZR2RtV201K1dMUnU3dW4zN1ZIRmNPRXZrTlVkNHE4YzdjK0VKckFi?= =?utf-8?B?aFJSbU9ZeWh5eFVMMlpzcndpQ05FRElpUk03QThZTFNYb1MxbFl2QVNOeXhh?= =?utf-8?B?OXRvZU5JOTNXZy9TTHp5bUJKNHlweWNTQzR5M2lrNzlnM0F5VlNxYVAyQXRX?= =?utf-8?B?OUZCOERweFZORUZSYS8vbjg2M0NXaEtKV0tBdWd3bzVEQUFmQTdEbGQ3bk50?= =?utf-8?B?TlpUYUp1cmVvZUZ0UzZZSmJLL2FHMDBwVjlNekpxcnZsQ2krNGZ2aFNSWGdr?= =?utf-8?B?R3JaczRTaXVTRkVMdjRodEM0UkJqNDFoTjN6enIxNFRvODFMbXFIZDJwM05U?= =?utf-8?B?UDJ4ZUpRS3BJN3FTRWFPV3h1UTg0d0p3MmY5M01NaTRkMk15dFBteUNUeUVF?= =?utf-8?B?cXIvUmhJWDd2TjE0NGs0U1NGQWdEdnY0RGVVU0VpaXZwdEpmbTAzMWMvQ3Fw?= =?utf-8?B?SSt6YWwxeGF4VlRqTTVMTmhYanRaeENpUDdHOWsra2tpT1lPQTRrMEV0YWxx?= =?utf-8?B?d1QzM0ZZR2lDZ3hsK1JiZ214OEpsQmJrRStudTY3bFFzTFBNbnZvSU90QldN?= =?utf-8?B?TmV2V3Nmdk43RnZmdk45RWtObmZIenRyZkpsaHBoaGpSK2pnTHNnK3hFT3d4?= =?utf-8?B?NnhkTVZhNzYyUVNOL2FXWExMT3hHZGh6TXNsYWNvYm1wekdSczdEckVxTEJB?= =?utf-8?B?TUtMV2pMNVVOM0hMYkRZTTgwMUFmT3d3ZndxNzdlVm92RXhQMjlLbU9UWEY4?= =?utf-8?B?YUwvRUFEUkVjSGZCYUpjOTQzbkJoSDhaV0ZrNllYRkY2VGRvZlN0Zmd5cHR2?= =?utf-8?B?N1VqYTVKeXNRYVBKeTBlbXNIbXBhd1lNN3JRendjbTFFUmFJQkIrdFRGcEI3?= =?utf-8?B?c0dvcEJrUVhFd2JWRDNORHNmaG5qbzdiajFVclRTMHczNUJMUkxVTThnbldM?= =?utf-8?B?NW1YbzUyamVTZTJpVjVHWnZmRHdqVHR6Sm5jZ2U0c2t2Y3NnQTRJS2FTUlU2?= =?utf-8?B?ck1SRTlQeXVzMmtxUWkxQU84NEFiMkZObHZPYnpicFpqSFlhSkRCQnNwNkJQ?= =?utf-8?B?dTVlSUwvaWFzc1pEcVV2Q251b0x3ZTdNakZITkFKYUpVWXpZcEFubmppKzZx?= =?utf-8?B?cWpJNDBuclN0UmU3b1dCMlNWYmNoaDEzZXI3TTYxZWVmUzEwTW5mWmJQNURY?= =?utf-8?B?NG1ORUx5akptLzl1L1Fyb1BydCtTdWJ0MFpMNUVrRUlISFJZdnQ5YVZoWXJ0?= =?utf-8?B?dXBISC81TTlCaUhRQUlVcmZLcUtyZkpnKzJUNk9sTjhwR2d1YXhkcUFvN1Fy?= =?utf-8?B?bGdCRWZkSjBHRDNXRjczbGJLaGptbjFhcGRFemRwTXZNQkQ3RGxlaGpmRjht?= =?utf-8?B?ZjZTNG8zdjRkTGU5L01NVUVXRnZLYnViTHF5TFpSM3Z2dnl4VHRNTHNtbS92?= =?utf-8?B?SUxHR2FWNmFMcmdHUnlzVjIvSDNjNUpxYUJpSU1xSkUwVkpRQ1RtdFFLMlZi?= =?utf-8?B?aUpESys0Mm1rV2Vud3VRM2lZY2tvcXZFMHU0QlJJaVpEa3A3SDZIRVBJMWov?= =?utf-8?B?UlBJNjVDWW0wTzdVN0ZHWXR0S3YraEx6ZkllbHRRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;6:eZBjTKx5SraxWfyGR9RbS7iR9WeCVRGnUA6VaWpYA2ET6iERPM0YG0gyuMgggCwYvlmizz85uZGnXQoWEvFfA21J1GRXXeznX6HN5aAG5Q2bUKLk4DMXGqfu/t2rTeTsV/bER0qrKKQcmxnnrJ0mtiPE8fMX25iXYt793CUl8/KRF+NUEl2MxujGhFzsHX+gOPJMeSREQ8yEEZyNfZ+s7XNqXEfWoZM2x2qOoSABBQpzcSECiz3OMqX1hXMhq++7EjQZ/yde5lxXwnmaKNdvXoQARi7QnEZLEh+WZ3X1oNxUHYxoiXao+BpKBi0jzyrUrUsE5/EAzP6ghaBsxW0upw==;5:Xa91lYoRqjhNI6fOvHiv40yCPAmEnD8q/fGuHbYMctQfpEXQkNIOLaxDsVEhuitR/0TU7h16/BktdtCJTy6neevfOJffRSrIykSYCe9ua3KkT3IGKbQA9/SATMIMGTQ4lsfxZ23i9K5lKLZDumr/Hw==;24:+c8FdE2vTVKmyrZYudUtSIsc1JCgQxdB9j1CKxqNLWEgGx2qjmyvSJAw90ixRBAsH6+p82GQ0JdEHWQruH3NR0WSdpUXECbwW1jPBcfcHwo=;7:3QgiJou77HWF0KYD+0BLlO6VKI2SPh2K3QlLL7USC0KQb13TkbQupiAPb4NUsnZDGcYO4ovfDk/1fsJWbj4U/9m9wthNIYBoWqkECP1qNNeOMjsSIrFix+qqbywQMTjU8mWpLoRFGEG6R4lEJblbQvrVK/K4O5nt5sq0+bjnVNfwT2NFXvA0Effj4P9Xli/wflCK+FiLfYVF1qQ9euel0Th8nViQfaKwr23kPb4p+qE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2017 16:28:45.5172 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2488 X-SW-Source: 2017-10/txt/msg00765.txt.bz2 On 17/10/17 16:41, Szabolcs Nagy wrote: > 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) > please wait with this. looking at the static pie patches, it seems that also needs to compute the base address and that cannot assume -mcmodel=tiny, i don't remember if there was a particular reason -mcmodel=large would be problematic, if inline asm was only used to save a few instructions then please resend the patch but using c code (like what x86_64 is doing), that's less fragile.