From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27604 invoked by alias); 15 Feb 2018 11:08:34 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 27595 invoked by uid 89); 15 Feb 2018 11:08:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0063.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.63) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 15 Feb 2018 11:08:31 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Received: from [10.2.206.230] (217.140.96.140) by HE1PR0802MB2489.eurprd08.prod.outlook.com (2603:10a6:3:d8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Thu, 15 Feb 2018 11:08:25 +0000 Cc: nd@arm.com, gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Handle PowerPC64 ELFv1 function descriptors in libbacktrace (PR other/82368) To: Jakub Jelinek , Ian Lance Taylor , Segher Boessenkool , David Edelsohn , Alan Modra References: <20180214114138.GX5867@tucnak> From: Szabolcs Nagy Message-ID: Date: Thu, 15 Feb 2018 11:08:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20180214114138.GX5867@tucnak> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM5P194CA0002.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::12) To HE1PR0802MB2489.eurprd08.prod.outlook.com (2603:10a6:3:d8::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 51d03d77-a692-4b72-354c-08d574646f54 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020);SRVR:HE1PR0802MB2489; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2489;3:hCmUiDHyq/r71Voh+kj/OIU0QiXIMgraCTHfUvbOB6xUFtxSg8Tnlbt89LPL7zyceE6yxQzF627qv+n3mLV+TOWCnZ3pN/HMuIaySbq2KAQIHfOniJkA5FSXzH0xtrKSi1iIFwCtwXuPvzqJL1EBdrZ+AFzTic7czqm22yVMbuMuxNdY+m3IWH4dK1RDsvJigSZYKy7tmPGNSw8oI3roXbwAudtRksKYwvlKAxLUblCClkipv7calbUh6rsjPEtK;25:V3tJWQdV+/bB65K5DmWUHH/lBlA6PAPdrzyQlHfLj5BCXGfrDWnVtWuiSam7TtaCViOgz4kLVJjBjcF5ivVWivP2dHyM14mjXWcTBVhgOQC+C4EFb6WgxzFS5wjuXGNZWH/yf0QqyLUAbHk1u+w1n5AeFkbW0IMQe22+bhZc+Q0cQhfV7lGlswsMr6k+BnVuaczEd+XE3HfG9vP7RFLspxieRXtwRUbJjWSFnqAyuwsyugEw+HuQNEYsumjfvhf+C+izFLrcGKCnMZL5c4AQZi1oUjZ843hF2Btbc/uRr6r9HfwckskVWdBRJLIKuocZy/sVGukB/calphMuW/NS0A==;31:TjFgTC7eR2eGo2WI0gesWmjcUWE+ngSkxYVrx2T/8WaCvVoAOxJuzl9db61Ahh6S20tWz+/ReBUiD5JlQ/5Wb7LEgl42V6cEplmMt+ycDsqWsWpwNumF4StVHJVs3sByVqPauB72Q4RqDCt6m+vAHv8WGr4rNYqoba0lNxiKh7XYsRmNeMiDVziV2gBXWZerSh1ywOyWQclKTkWda1i7Ku03YuLlwRkdu32eRuUDf0w= X-MS-TrafficTypeDiagnostic: HE1PR0802MB2489: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2489;20:N2/EN7sUBRXGEiwPLt9oo+F/t9bZJL3QTSiqG7bWWrziw7ykxGasN8mjjkZz1TeXCOCFnVZI8AD9kbcJghaWc8TAoTg6BQuNAYSrIICV8xR9TkgfUfSlHBhFGazz3cffCm0gUYdduvzLcdXJxsvs92g7ULyGOb5spVE1AFSJT8c=;4:vHsoWWvDSPWG/DKf8gQFfiLVeEr1kLYwlSLvnCDgBjYSfNIaqBNb3f9DSWHL3aR0lWqeM2Ory4sWiFO1IOMQVoY0cofaFUCcYfRmwVkyTV2n1NaOBOqxV06Izux5FQfw0cNQD92KA63YXwL7uGIIZrsbp2stjkhGlTCQVyTxw4h6TOUk2j6XsxNFtC6YnZNoOElNLT7BQMUHKKA9NkPLJzWvtZxa0hbX8H47rmbtWFY//1azfFdlmrkL9Q68rE4l7wfnDwHYIfhEa+Va3LKgNA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231101)(944501161)(6055026)(6041288)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:HE1PR0802MB2489;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0802MB2489; X-Forefront-PRVS: 058441C12A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(376002)(366004)(39380400002)(39860400002)(396003)(346002)(199004)(189003)(377424004)(83506002)(31686004)(97736004)(230700001)(305945005)(5660300001)(229853002)(6246003)(2950100002)(7736002)(6666003)(53546011)(65826007)(66066001)(4326008)(53936002)(50466002)(6486002)(25786009)(36756003)(52146003)(2486003)(65806001)(47776003)(52116002)(59450400001)(23676004)(386003)(2906002)(16576012)(64126003)(65956001)(39060400002)(72206003)(77096007)(76176011)(26005)(106356001)(478600001)(58126008)(110136005)(81166006)(105586002)(8676002)(316002)(16526019)(86362001)(186003)(3846002)(67846002)(81156014)(68736007)(31696002)(6116002)(8936002);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0802MB2489;H:[10.2.206.230];FPR:;SPF:None;PTR:InfoNoRecords;A:3;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDJNQjI0ODk7MjM6clg3RW1qYUt5RzU1U2IwYk5Ld3Rodnc4?= =?utf-8?B?TklCVmlLdjBDVy9RVzg0c081dy82WlhpekNIRHNJcVdMdzJtK0hLRFpmMEd0?= =?utf-8?B?NlNBYzVCOE01blJzTXBqSUFyMm8vWEE0ZUlGTlE4NUUvTHFwQ1hWMXJMWStm?= =?utf-8?B?eDJRdU1zenovTkZzeVZEaVVNejUzR3JRVUZvb3I3R3pBRC9UNldYS2x2NTA2?= =?utf-8?B?ZC9oc2RPcDlQMDZjQ0pERnkzdjBYa2R1TVRsOVBKbWhVbnlQMEpEN01tU2Fl?= =?utf-8?B?a0tRT2MxMStSRWdTR2NTVkRhb1VSMWlONDJVK1FjaUFGV2szOGpJSnhxc281?= =?utf-8?B?UnpZV2xrTEJpd25KOWV4ZUIvcmY3OEp5eE01RjVYTURqbU0zMHdUbmtDdU5r?= =?utf-8?B?VkFNaG9DS3Uya1NjMTd0Qk1ydE56VDRIb3p4T2ZPWmY5Nit0SytPdC9xTDBy?= =?utf-8?B?YUplUHRCNm1oV2NKQU1xUVo5WFdrbEhXeVVoL1VXZndKYVdsOTE2c1pTRERn?= =?utf-8?B?SVdrUGd0Szg4NURVblY3bFdBQVQ3YmJYS3UxL25FZWRrQ2hMTkdZbjB6aTlq?= =?utf-8?B?SmpEbnFwbzFoSWRsNDBnMFFWekhwbFpxZjFKZlNob2kyZWZ5OHhBWE9IYTM2?= =?utf-8?B?NDd6cmIvYnNMWjdQdCtibHlLZ0tkYlRCRjdCQnBpc2lnb0lMaDdGOEtsN2FX?= =?utf-8?B?ZjlDRTk2TkdTV0Z4cWY2QXQyUzk5aC9qZ0xiSDFYbE9XamE1dURGb3JBUFNT?= =?utf-8?B?dVJtMWdUVGUzQnNKNEVPQ0RpdVp2LzV3TUpyTVNXa3Z1WEp1WnRONmhEa0V5?= =?utf-8?B?d1lzd0VoU2QwSk1hVDVyaDFDNDNOM3BKV0FJVy80S2crU1hycXVaUGNnR20w?= =?utf-8?B?dEtNWXhiM2lqRXNVZlZWa3cwNkJncTRxbk1nNUFON0xvQldoNTlPa3hvN1Jy?= =?utf-8?B?N20yOXhoQ25iUjZPQWpiYklGTkxYM05nQVZsWTNpMEVxZjhJNDhUZTNLWkh6?= =?utf-8?B?ZWJma3dRUXk2N3dSaWxyTHNIT3RxWTVIWUVEUlpBNzFFdWw3RlhKbmw0M2lO?= =?utf-8?B?RURyV3pDaU04SEdNTjI3WmJGVnpZdGExRzU1S05INnpWdGZnY0xsQjlVeUkr?= =?utf-8?B?WExrTWc4VFh3Y0luVndVWUNZVktCUVhRYVk4cGpVcTJpZVNQNmVwNm1uQUpO?= =?utf-8?B?VDVhd3RFckNXVjY4SzJCVExHWHRCc2JXRVlFVDhTNjdtWlJpK3JJWVJ4aTRr?= =?utf-8?B?MFVCemhEd2dmaDFlQTRrclcwQ3M0bFhhYndyN1hIQVBxRE85bGkwdFh2R3Y5?= =?utf-8?B?QTJvTFdGUytHZ05mSWJaRUtMdkVPa3FGOGZxYmxHa1JMR2pzTW51ZTVSTFN1?= =?utf-8?B?RmJVMlcyMzgyYlkzbnhJZkg1YUtCQ2JvanZuL0R2TStjZUUzRUVTSXZHc0pW?= =?utf-8?B?aElFamhLaVZpRVlHVjliU3JhbHFtUzd2ZmtxbE5IdmtXeitkRktZZ3Vva1Jh?= =?utf-8?B?Y1JKdzZCODhYVDZod2txTnJoK2gvbS9yZzkveERLeWFTMXk0UE5NK3Y4RjBo?= =?utf-8?B?b2RuQVRPNllhb2lobFZWRC8zcStqblhDdXRYVzlEbjJsTDYzZFkydUNDeWZN?= =?utf-8?B?UzhZRlo2bDNYTHc3T215Uk5HNGZnTExsV3EwSmhjZkhQc2wwNWhNVlNlRXdm?= =?utf-8?B?Q3RHMThIZm5xeFdoV2V3bDNyQnZraTV5T1JOU2NWWTh4eE5IS1hjTlJFNzlt?= =?utf-8?B?NTdPendLb1QrOTNjZGFZeVJuTVpoRDJ3aWl1TWljbU9aUjZieVA4TUp0aFJv?= =?utf-8?B?TmRpSk9Rek5ZZ3pYY3VBWnlRcDR5ZVlHQjBrRndiYUo0ZEh2UTRzZXlhaEZ3?= =?utf-8?B?RHNPOTVGSkFlMkFiZEtnMnZabmIzZWd4V0RvL1Z4WUJ6bGw2aHNiRmszaGw0?= =?utf-8?B?NEYzSGYzVVlBaXNvMFlSOGJPemdHR2ZHb1Azek5EajZidVdoY2wzK3JOWWJi?= =?utf-8?B?bWc3aVZNSFExenlZbzIyd3JUZTZiYWNqRWxqZlZBPT0=?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0802MB2489;6:BKfANgzlipBkNBkQ4mIRljDJUKK3ujC+9PauPacSmb537MDmXZ2Jx0NjXFXkC+CvTDJ2lhjIebV45RgQSk0h7CAUzuoOLP8qjhpQOVy7+4FrWKYe6myAtrQL1+9leb0UdVLeEFRtOliwt7XBN6008cb/DQIGfPdLo8+6miRjtmzo7pg8UC69UYZFm6nt+nZp/85Z4tlY3od7nnWz1eRBfXHN8+gj0+S2CPY/WbOqToarAqUArIm01gi0CNei1zZ1/dwlsHPFOyQIqLcO7OUt8MroYPVKoP0LkRgmO+y628jiI7UoegTQlJp/cYxTlOLy60pSBX9YWj12d6O9x3Q+yqzPwwH1E6uWEQiiyZryPiI=;5:Ma6V3z5Voi/24COPtoz82trwSbrLqBX3tbR9GbrecqazdyMoMuMVeavZC+9Zz+W3r1b6fsSOjotNE8DYUeKzIpKmI3bdeON/9CrtVeW8TUxvXU7TOwGONAHZwpLqfON+NtmPQB9G9q5dSnPPAYNf2E1GbqYZOMn5odeS5Q2rC10=;24:xrDJi+p2rjWQnYp6yLDBIoQLH32SghKc7YFd8RWgQdAfWi1Gu1g4aRmDtwySUanSgtRz+jtb5ed/mj0xYMi5ZYndT4N3/UKEOyPRyMhc+ss=;7:vemGwrgmPax/hl/1slFh8+WGiDKzwD3AL6z0p3eBUTsFMuVMJB7Ko0gFWb7LQDFk15G8Hl97XW/te+Gqzn/YIqSwJmiDt2YuPsVTcljQE7JBRcov/XSx/fLwCWJu0bpreeLvBwNjDf7rVCRl0NTSh7hpFMnXpUqhhT+fJsWsecCeF4ZCtpTcSQnMH5acR12aGo5fN72UOox4Lu8iQWToBju9clW/6LbP4luNlEcCyhcHlRzbv3FpdK8SFvvxlbhk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2018 11:08:25.1290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 51d03d77-a692-4b72-354c-08d574646f54 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2489 X-IsSubscribed: yes X-SW-Source: 2018-02/txt/msg00900.txt.bz2 On 14/02/18 11:41, Jakub Jelinek wrote: > Hi! > > As mentioned in detail in the PR, PowerPC64 ELFv1 function symbols > point to function descriptors in .opd section rather than actual > code, and one needs to read the code address from the .opd section > in order to associate symbols with .text addresses. > > Fixed thusly, bootstrapped/regtested on powerpc64-linux (-m32/-m64 > testing) and powerpc64le-linux, ok for trunk? > > 2018-02-14 Jakub Jelinek > > PR other/82368 > * elf.c (EM_PPC64, EF_PPC64_ABI): Undefine and define. > (struct elf_ppc64_opd_data): New type. > (elf_initialize_syminfo): Add opd argument, handle symbols > pointing into the PowerPC64 ELFv1 .opd section. > (elf_add): Read .opd section on PowerPC64 ELFv1, pass pointer > to structure with .opd data to elf_initialize_syminfo. > > --- libbacktrace/elf.c.jj 2018-02-08 20:46:10.671242369 +0000 > +++ libbacktrace/elf.c 2018-02-14 08:39:06.674088951 +0000 ... > @@ -2857,6 +2889,23 @@ elf_add (struct backtrace_state *state, > debuglink_crc = *(const uint32_t*)(debuglink_data + crc_offset); > } > } > + > + /* Read the .opd section on PowerPC64 ELFv1. */ > + if (ehdr.e_machine == EM_PPC64 > + && (ehdr.e_flags & EF_PPC64_ABI) < 2 > + && shdr->sh_type == SHT_PROGBITS this broke baremetal arm targets (e.g. aarch64-none-elf with newlib) ...src/gcc/libbacktrace/elf.c: In function 'elf_add': ...src/gcc/libbacktrace/elf.c:2896:24: error: 'SHT_PROGBITS' undeclared (first use in this function) && shdr->sh_type == SHT_PROGBITS ^~~~~~~~~~~~ > + && strcmp (name, ".opd") == 0) > + { > + if (!backtrace_get_view (state, descriptor, shdr->sh_offset, > + shdr->sh_size, error_callback, data, > + &opd_data.view)) > + goto fail; > + > + opd = &opd_data; > + opd->addr = shdr->sh_addr; > + opd->data = (const char *) opd_data.view.data; > + opd->size = shdr->sh_size; > + } > } > > if (symtab_shndx == 0)