From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8968 invoked by alias); 7 Nov 2016 15:15:44 -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 8956 invoked by uid 89); 7 Nov 2016 15:15:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=AARCH64, mcgrath, portable, H*r:sk:mail-db X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <58209A8B.5030702@arm.com> Date: Mon, 07 Nov 2016 15:15: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: Roland McGrath , Renlin Li CC: , , Marcus Shawcroft , Richard Earnshaw Subject: Re: [GLIBC][AARCH64]Rewrite elf_machine_load_address using _DYNAMIC symbol References: <581C57FF.2090901@foss.arm.com> <20161104212440.A23F42C3AD8@topped-with-meat.com> In-Reply-To: <20161104212440.A23F42C3AD8@topped-with-meat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DBXPR04CA0051.eurprd04.prod.outlook.com (10.141.8.179) To HE1PR0802MB2154.eurprd08.prod.outlook.com (10.172.126.14) X-MS-Office365-Filtering-Correlation-Id: f149917a-4319-4942-3a88-08d40720e8d2 X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2154;2:jBxpFhjWRe2w+CK+oy5lK86EOtfFTog4QBYFWOG2/pCMbn7P5AMHsepRfNuHImoE4ECGqYeOO/d6Q0Hox2uE+afYYQzwo+BG0LK3dMTvxlLvkR6OH5mYXC8XysWA7gRmPR/fr9ix2k0tut3bkWkfRc5K5XpDad4ySGXRwpEkGwHmls/qYgCWi32Z9vcHDVboVENDVPif70OQLwFGjQkuhA==;3:d/Fuh4MO88S7qYoiIFzliflRzUifHYyShwr5X3w5SBea/dKg71WFVrjdubf8jjcd1BhowZDvAH721dqE301YpfftYZhRw5Q+Unv4mQwAhhrqV0uXTZm8Drs1T+E9jc4+P8C26s41TaezFFyV5QlWMQ==;25:FLFivJzHH30bORz0h4Mg9DdhBWzk65VJBQlAYwaseEtEKG/dT+xmruBPoyet7WUqE/FMhe31q9RUzIiiFy72wSKSnP5vL6z3N3w+uouEhbT5Min2hHfW1bnW8nNa1rUzOaPpVxKZ/D8XK3YSp3qHiajia+PzOVqpU+ULYT0lBQSER4aP0EXtkXoL4Dirq6pztX5RG+FHuuvyZf/5WDO3fjhmCwRpZ95W2fzxgmKe960cFnu69ia0IHuCc7JhbjI0zKOa2aUDLLJCxrFr0i/wLKHm7n+DsGzSA4O1fFGqTf9Tx9IPosoUNRrsRYhq3G8u3Hb2giYCTHgfHWFQYdsXfrFASJAHhYwTErmL82jMO6Eiwsbo3gQ7i8SSgOLxBETC/ta+JmfE0cjeX28CyFDFRcTN3cn8l93ZNiutU8YO0FllWas4xNSTFPlTmjVn68n2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0802MB2154; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2154;31:Y73YjmJJzdZUJyfZn40fgIuKvjK+rFr0hLDx4uHTLfnj5LcJmvWoyGziGwF/ziIy42Hwo0qTAn2SbkkK9+nwMHriHLEYHKNCdOc87FUhfgAdsADK+Sj5ipWmau4UD0NS9yXSqe0U1ghy8R7QK+stWRbU0gCRl3UB3NdHDEo1r4f7Es3+E2uu2N7q8Jher0HhwVZnqEzUeGvCJEX8VGqb9f+pZSotLPuMezMvBDVnwo2/jSweCOANznAtPAT8Iek6;20:stREZ5h48ojogc9aWsmfSIot3/rQaIQaBtozGYTcpqt11pRiOdZ7jyK+zNUZdQ/q+G0CyzR2gB4Jc71nZd63KKW6GGPn0vbZzqQUxy/mFAPQPEFpraUK9imVQuFNyhtcrKjGKqAoR7pjTJtFe22OYwfv9UbjzNdWwk/hC3YGrYo=;4:sO6wAfaw8ei/PhGoZt0B4TC+lR59IzX1Y/ZiJsv3oNPbmskLrL834yojT+DXzXiFYsBhisq94PqJ/RsCDveu/Moym1+P0caWDWiO1mjjKILIMKXuTSxMpUrREzapIs0878Hkte9ck7qzDHwrh3OXF2DaNt9Ur3NFc5jzCkC1JcIg4nQZELYVzqenAP5nxbLQNkgbcJkxNsjcnbvlsyjMHgik5zizVhu00ztgOBxXogzWj9KufhE+Sjk0vX7LJhGvFnllDnzTB7wqVjLpy/EPvNwQlP3wdww+i/1zFvDCiTWZrqExQaKRPPmOgONko4m8zE+fOUQjPhoux4P82r8Wszy9zN0g9hGuTIu6KkaGHnmY3iqRc/xaxSkVGZSgg3HXsSVskAL1/dVcmPBs7HoH4u2OPlZ4zLGH3NwOn2gP3T4= NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:HE1PR0802MB2154;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0802MB2154; X-Forefront-PRVS: 0119DC3B5E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(24454002)(199003)(189002)(97736004)(99136001)(66066001)(8676002)(19580395003)(106356001)(80316001)(77096005)(2950100002)(230700001)(6666003)(59896002)(101416001)(5660300001)(105586002)(68736007)(33656002)(64126003)(65816999)(87266999)(54356999)(42186005)(50986999)(65806001)(47776003)(76176999)(23746002)(92566002)(65956001)(7736002)(7846002)(4326007)(2906002)(81166006)(83506001)(4001350100001)(586003)(3846002)(6116002)(5001770100001)(50466002)(305945005)(189998001)(86362001)(36756003)(81156014);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0802MB2154;H:[10.2.206.73];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR0802MB2154;23:5CEEniXnbGOyWL5kEASrEvLzv/5jZ/0RwTS?= =?Windows-1252?Q?iRwJorhJCeTFZc7uRSfvEiA7wdY78fWm8xCSXwoby1SMZsc3TwaExsim?= =?Windows-1252?Q?IhBcnkVM81Vi7JPj4B/DSCPjaeA4tf0CafkjtTQERE6l4qrQZuAidT+T?= =?Windows-1252?Q?X+OJzetBG3IrFbKYD3fA5y2RYeN36/UqjT6JZo9gMxlB6FsLRkuOGeeZ?= =?Windows-1252?Q?o5ExVTOByRpVRl8Z3S1qGvjNyjYJIW/wGqMVR5nzqN2byYzykhOm2/jK?= =?Windows-1252?Q?5c9UkQ75v355rBtg4kmi7kapYDRfMLMXytb/D5rBxQCST1ExESlG2UzR?= =?Windows-1252?Q?4inbuHi5E9xCH2oU5xfi3seVM1nWJOeVTB4IGvUQpuqe3FBZfW2yc8eq?= =?Windows-1252?Q?9vL4UuvF50WrlPKarCcKsnrPCPry061dNxtHx36QGc+US9xUU9F44lMZ?= =?Windows-1252?Q?2shNbOEU0bSS1x/nIizP9NaXiHSl7Ar+q9P04FKPgbUEXEucpwGeWv5y?= =?Windows-1252?Q?Vyv3v7W6l5Q6ukQ5Ys7fIhWYi2WMkyFvnEXJquwCjmrdA/3QwIuUE5uI?= =?Windows-1252?Q?9KEKBne004HQu4OT9SMVD/9nxj/D77xFyJKgLSsbi4Gp5pZqRykkxxdd?= =?Windows-1252?Q?l9sOM4Ycq1lsHypt7+u5k3CDjTw6imcWFNz4hTXrgLpY86vzoGFpkaX+?= =?Windows-1252?Q?6pVzLM7gO6I7b8jGagbsTDyWq1fjKYN+gQ9S7CrU8Dhq+b9ne4DkUA94?= =?Windows-1252?Q?RKtwfVAS2BKmj91/kxYmThXXjPxLCuurDn+BQMUxBfe7+41ieBKtnD9n?= =?Windows-1252?Q?bmqH5yzWWalo40ZZwc2UcBTmIYjw8fodtJIvKqvIhl9jYnWlVm90equY?= =?Windows-1252?Q?tVvWkIEeH3LxnYDdhKTIp6zUDR4YdfCee22hqoQvEccSngsk+SgdHMjn?= =?Windows-1252?Q?UB/AA/57ci15a9R1aIlgfVEqfeBNvW3i/BIZbQsDUKl6csh2DpfHq41L?= =?Windows-1252?Q?9X477pwRxYwzqinHOxuZdQODDMgW0sMWNTvyCeAkrL5Twnb3lfAEeBda?= =?Windows-1252?Q?y0XGfh68X8a4DlYPtwboOnQ06fgxzXaw06cEmweegDSs8FnqY7a2FO4O?= =?Windows-1252?Q?rccpa8wAx6WajuGhUPy4g6Iq8x2KCkHiGq6jGDzQXdgHsSw8oNEnZLen?= =?Windows-1252?Q?r/k3k+uljstH8rmJMGwgMlqZ3nLH9+OmB8u4fnNdmd0xux8trOJ+3Mdo?= =?Windows-1252?Q?RokC42vW2q0G0XyAPrGcDfYOo35gbaeJvNN/uycYZpTANsXubPQAZQ4X?= =?Windows-1252?Q?I4s4NNlU7knB/6h1E07HU/PpZqohYHrJxQO0S+BUvX8HBXJ9ZfyiH/op?= =?Windows-1252?Q?/bivwZQy8VH+TH1yEwmXzeC5oXGl3arNE2QrzR5xSEUuobWdRz5lYEls?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2154;6:c6LkNXZu0tfwXCkp7JibqtQu59Jo83sr8XpcQuoF0o4ESSZXjCDhPclXQQbU3Ft87bUuvnAhZ+RRST3B4Sgw1ZdXfKv5tlvhqJoH2Att/X5WP2pY0ldNuDvq3vwVgCyhWWHSKw6TL2Or08eDGBkomJozBmHpQhMUNpIFUpCihmCKpg8dKxyLSF02OT1t2zOnGYkiWDU/HcjSB3jx2/DyDTf/tGbylFb2NANNhU+IC/40B+lh4nhKT0wYAyLV3d3TawA8+3v5qDqYRwJo36gTp27C5l8xG7x080rESvdONxzXtRqh2iEjK6WninZiPVasIY+5doQ2UHTxo1KU6dL+PTZ2f0Od8hZLEhry1AhSbVM=;5:UTA+NqG3nuypYQuw9fa+dScX0Ry4LbLu5y9B7Z6XIqj4WziPrWQSeKWdxHBeC8AmtPAlitOUoOyop9eW/uRmlQqrQWCLjnR/oKtTv5y+JAwYRNNyrjKx5zoXGnkbuVNagWoEtXbGaXwPsm5OInfhj+5W1q1WsM2IsQbj57hPuPo=;24:GSY9g1PQmHsIF/LfxK9e7h8BpFQFV3wRMDv9shab7p/tNM0wf1blp5cdXa6fYe2l8DdZVIC93iXQCsCitPzmq6iNeKz3gDvP8RJ+95l6Qv8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2154;7:XRAo7JBp3KVWnkIMv8HDH3k5qOLqSPAle3uus1y9heo+EtQ2xwDQUpm6vw5HZKPfixgVoJbiGqCpyPFNKtDCYgQZnj/NVdguapMnhfcpctfESC3B70ueAW4NKBf+7gmVOJXdKAfw+QTazvc5xQR4TouEoLuU4jDeG1xzHO6Ez9uZLg5HGvhTG8T8hoX8yPl+6VHOsHDKUDtLnXCmz9WUHkXuOzPvhnllL0ItwRFhNXEKXqzrjWUjoRxLf4q4W13IjCjBpIz3haTXep23GJk7YKjmTlcFNxYGKb1PRKK3wUY+QOZm1MqctYAh4BTux1zyBrYEYjrJ1KTflfSFRmEeD7IxJxGWSzyG3EwKF3LJ9V0= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2016 15:15:28.6584 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2154 X-SW-Source: 2016-11/txt/msg00235.txt.bz2 On 04/11/16 21:24, Roland McGrath wrote: > On many or perhaps all machines, elf_machine_load_address could now be > implemented purely in C by using a link-time trick. > > In C, just: > > static inline ElfW(Addr) __attribute__ ((unused)) > elf_machine_load_address (void) > { > extern const char _BASE[] __attribute__ ((visibility ("hidden"))); > return (ElfW(Addr)) _BASE; > } > > Then add a trivial input linker script to the ld.so link: > > PROVIDE_HIDDEN(_BASE = 0); > > I know this works for x86_64 and aarch64, and does not require a load. > (On x86_64 it's a single lea; on aarch64 it's a single adr+add pair.) > this is less maintenance work, because code can be shared, but it is not a portable solution: it relies on linker scripts and on the compiler not doing anything silly. i think asm is preferable, unless we know that all supported linkers handle this on all targets.