From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28623 invoked by alias); 7 Mar 2017 19:55:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 28604 invoked by uid 89); 7 Mar 2017 19:55:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=massage, 1024-bit, 1024bit X-HELO: NAM03-BY2-obe.outbound.protection.outlook.com Received: from mail-by2nam03on0058.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 07 Mar 2017 19:55:35 +0000 Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by CY1PR07MB2444.namprd07.prod.outlook.com (10.166.195.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Tue, 7 Mar 2017 19:55:32 +0000 Message-ID: <1488916527.22552.8.camel@caviumnetworks.com> Subject: Re: [Patch v2 1/2] Enable ILP32 mode in gdb on aarch64 From: Steve Ellcey To: Yao Qi Cc: gdb-patches Date: Tue, 07 Mar 2017 19:55:00 -0000 In-Reply-To: <867f41wfph.fsf@gmail.com> References: <1488837762.2866.268.camel@caviumnetworks.com> <867f41wfph.fsf@gmail.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: DM5PR2001CA0018.namprd20.prod.outlook.com (10.172.43.28) To CY1PR07MB2444.namprd07.prod.outlook.com (10.166.195.21) X-MS-Office365-Filtering-Correlation-Id: b15c5838-1ca0-474e-cdb8-08d46593e9d0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR07MB2444; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2444;3:aFB2HxeqXbzNyC9EfeywFCZch/vry98tXKQGN7nvHmdL4PT5ocBMUn7IQ9gPutdH9u9c63UnaN1Rr1b9wRWKnVWDa1NQwtAYzbzuZlg0DSznoCAiMab4hMcu1RKMj9zr96jPeV0HpSAqnGg9CJxQnRi1vcNRMyisAQvkHg3Xg3nfkolmySjaTFK2GbtPRV9Dr/ZCMf2JAnpmvJisAhvvTF8AVLw+xdjqMw624DutgpdQeXJ9MYj2h54pa+0QLhtd97Scl6SSt2zVNB5pDeGkrA==;25:5gLxfJuWh5ts29UXyWI6q8R9greI1TiTFkSSLo6sso9pzUKZIODdkKhiENkti6ngY+qaSB2H5SUnA8QMUUeby4UStG7lF4LYfdIPKXE1TvfR0dGuSoCOpL33C3C2JOKzqQhusFnz1HkQSwvgnIm9pzikYHIKqezyNHkmBz5TdVibZr/ttXJPpd9aUMSDG7LH7CYhfauggSVLTpq0NQbU3gVud7mJbkA0fajU/CIVlDeaFm6UY8QcHE7Zx1yZqszxFoBkA+bnaKCIXAGBruz4Et1U6Lt5oE9my/jSdTHVchmFxMoPvSDyae3tcNMpB+lMkU3yuGUGWgPdWDfV4ED+qW7XvMPJfJqxAYjq/K7SshPm3SXE/sGpie/hMbFDYnbe6YIFLbSVxlEZ57vVH6UaafvYkdh8P5oo6Fp3mB4FhXElEuHJYHv9P9w/TQ4o3eR/OszksLJF10nxoj84IKuVhQ== X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2444;31:3IyBwF+7GYFhtmvl36iMepivRlBlWeI3YnF0YvmCx/xgQ/D8PAeUXeaFJbb4AiU3sLDJ36njUHvJZlirdIpvUEwNcvguYy5nL6DnsMEdsYZz4VWeq3i+ZaS5a5zftKHbtV6veLZXJVVXHlnDB0kG1I/nHtp29WMAeQOnGneF7O0g8N+067DeVPqt2PWB+phIx/wVlSp32D5UXDLlsEiml2V2fy4ncTu4+cnUcebFAQrnA8AA7nhUlH2MY1KpdBLVLqFrdcO1OWkbk8NRtE6h/g==;20:BwUpScfx/7TF3t7XjL959Lp/dftR8hfgqq4sCjvNyk4tm/MKnrn7QWQO9S9W/1umfHT7XyzlK5asXF/poPDcZVwpHTiIWe5YCQZjPEB/4NuGtE0TGzRGwKWosyeUYuQ/jKlNItoUahIbbe1nImFJGAtOjYa8NwaB/H0yWgryqn6DWha5nbKIiLce07NwfYne+7WJUFcwLfqbV4w5B6txRvKqxtqek2YZng/TP+y49pIa6J3CwRpr/uoVWzL1JU7fnfq9PcpHXcc0ISHCj8McFT1CqXMHhK56Tohv32OcEnYztZKchDsdxmJBJ2ci14PosLOv82mtcUbI17hF7GQltbHVS4P5nBfMpeRJGoICHcyUM9r46lRTktGXSIHJb91WXjw8/CVH9s0oJa/grQU8hGmPMFpP5ce24qEJ0QVIxWTxjZ+CvvHYbHQaMrP303sBSRwxLRhvYngmLxyCm/yqfW9GDDpmGRXbKzQgc6YML0Qtxz8jWmAS18NWJjV2kbTqVf9AM7V+LeyQe6K22CHUVywkrNgSDTiRkvqdW7TydCYivq9Ow3YQpKVenfy/bwMJt8HpDG0CedlT+HDwMkZYjpsE2ND0PQKFkyEPuDkabbs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123562025)(20161123558025)(20161123555025)(20161123560025)(20161123564025)(6072148);SRVR:CY1PR07MB2444;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2444; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2444;4:vgVc2ySbSES72LnFOmpkiTmkF9S4Ou/7WgjKpUWSoT+tU0KDAOFg0+cQs/c0EdTVmmqPlYY30QnkGM80zMwO9GEZzmx1S7gkeznWMoWEuRyBxa3NfIm9Kogyg3BdSOtmXpfS74opnV+Tvvkj+HmAlmCIcT78v0If/+eZc/ddLyi4xz/b9XlK6pO64j10bYl4H5cbHWpYifIlhzZ/8oah7xOf0C/Zo6rjp6SG8WvqI3LZU7d2ziXcW6ssOQmlwh6DcFypQqfLGDuD2cRXvMIBFyNgLJoQzF60TqVx/4oN18yMIKmNI1dAxrYXrhmwKXG4/ygXLt4WlSa788oh4rdcE/FjBIrS6/0s2rX8QY4f3g9J0uINSXylGPcHnoh/ZFsVcwlvWzLlhib42JDFgdqHcLm9YXyKVrGvCtCtVOXP4na/+3/mAxN5cZrgwK9x1t8mkRVjlNEiE9+tN2eB6SFAQ1k36M9xee8Yv6yNyQsUP0LgYY46Vbib2zbgkgR8Oo5sPbcSpvnMzoxu0J1hdVotByf3GbW6MsEY+D4WUo8VsZwkGDJBxveehri9YP5tLfB7EFLXppUHj/lfQZjrPZ+M/0AMRa3xP7pIwfHuRvrwRWBVYhU2amM+KTVAGDAExXebGZPYpStoSjz87+eHpd5xdQ== X-Forefront-PRVS: 0239D46DB6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39450400003)(24454002)(377424004)(2870700001)(305945005)(76176999)(50986999)(38730400002)(6246003)(1411001)(103116003)(4326008)(53936002)(23676002)(2906002)(6486002)(6506006)(25786008)(6666003)(42882006)(2950100002)(6916009)(66066001)(6512007)(229853002)(110136004)(36756003)(6306002)(53416004)(50466002)(3846002)(5820100001)(5660300001)(50226002)(47776003)(42186005)(189998001)(7736002)(8676002)(6116002)(33646002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR07MB2444;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjA3TUIyNDQ0OzIzOjlicUlCb0pGTzlUZDJSRDhHNlF5MEpLaDVk?= =?utf-8?B?VDhIU2VsMW9NZExPbWMxeUJ5UGRBVEcrM3laRXRKOW5JSDY5VWkyOS9oamNO?= =?utf-8?B?SUVwUXpPaXAwRUE0aTlocXcxcitwVDBmcEk3c2Z2THdDakhSM3h0NW9WTTZM?= =?utf-8?B?UG5OSW5laXZqU256WXpST3ZKQnZUb1pndkpBcHJLaGZkTi9sa0VNZlpuUzBE?= =?utf-8?B?N2lhZ0pqbU90MGZNSmIwTDhtRSs1Q05HbkNRS0R2MXVLdU1Uc05lb1I5bVVQ?= =?utf-8?B?d2hVbTAwOW5vcitiV0Q2VGhlM05URGI3R1dpVXdOU3lzY0VVSm9pS3N4OHQx?= =?utf-8?B?dG1IM3lPYkd5dm5pcm4zVis4bE1CY1loazNUOHA1TlNiZ0x1bWI0eWR3M3V1?= =?utf-8?B?M1RnenJnc0M2WlNacysxbTdkcnIxby84QzlTbGE3UUI4WmZlRWVKT0xaank4?= =?utf-8?B?aGtrWmZlekh5eDNuOGFtQnZ3azlXVzFOeVpzTlVkTmJrYTJ3b2FoY3NQQkti?= =?utf-8?B?d2VSSUxYbFlEYVlrRW1taWNhSmtBVUIwNW0ybHFtV0NkTVVFWXFycTQ3ekNq?= =?utf-8?B?M2VndlR2TE04bnlIQ2tmMkhFK0VqeFloUDcweEY3TWlpdFl2ekZ2SnBVdVM1?= =?utf-8?B?cUxhZjhXUEFOaWNkd0ZUUkNDNDRXVUN4OEZFa2JjeVB2SFZ2K1lRL3B4b05W?= =?utf-8?B?RTh0YTliYzN4SkFmUlBxeThaWjdJWWQ4U29aV1JuZWI5ZVdVclBUa2tIZisy?= =?utf-8?B?eHI5MjJXbWRYaGFGYlVsYzI0dEVBaFhGeTRNMHM0TldtNVQvMDY2QW53UWl4?= =?utf-8?B?MXlxRUJUWTYwK2M1STJBc245SmlGL2JBQ1YvMmJCUjBQWlNnMngzVi83M0My?= =?utf-8?B?L1V6TVg5Wm9ldGxVOVFrS1c4bmdoeEd4RXZxWmNDWkY0VGhMdU1ubGd5aGN3?= =?utf-8?B?eTFQbnRaSCs0bFd0alVNbyttNlJ5cG9zdGMveDhTOCs3VVNqQi9JK3c4UGRV?= =?utf-8?B?V3QvcVpHY1hxWjZDdW9FMEkwQ2lycHlCOHpNa2pqSkNxTTduTm1jTVpzMFdD?= =?utf-8?B?NFJhODgrQnIwbkdaRmZGWC8xbHo1UjhtWWMweit6VjgvWnZHNjFTYkFPU25l?= =?utf-8?B?SWpHRURudWk5WFIxTWg3Y29BcGtscjBuWUNLdWUvc0dDSEZLY2lQYWJicXEx?= =?utf-8?B?WUErVVV4bmhLcS9rRXlzTC9haCtienpCZ0gxbERFaE5IRS9yNEVQSThVVlh0?= =?utf-8?B?SjJMbU5MMmFzQ0ErOUJKNUxsdjZNdVVyemNpYTdrVlpRa0J5MDh5Z0RSa2Jm?= =?utf-8?B?T2NNV0tJemY1NklBbFRmdGhUa3dtRkZJNURjeHo2VWJJR1dpS3FlT1VPU3I1?= =?utf-8?B?Q3pQZmRjN1lPMDZQWmdLNENMRnh3aFJ3amdIK2MvajRRdi8wN3ErK2ttaHFj?= =?utf-8?Q?OzHJSE=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2444;6:Gk4fwT8v+BqSWn+elkVZbc6YFHQT7t333qivReiTk3lvRGGUJdNR4nPT3e5/FnBin35vsjoDjd6BdiYfgCBDU7AG5WsPlVhIy6OGwK8lcwotWwykboLXlqvUa/mrvhlNUYfbJe1Kj9BrfrO0d3NqxjUmV1mFXmU5XJO77beN3xDMjHlE8KhgJlPA3FNSCBqK9+HrnXyH++1lbLZOhRr3heN9Ek9xLW0MDYwQpitwR0ZJ1oQ/rj9EmNUhzDkEU0KvMVZ9O5jvv7bQ3M5eiQpBmPfvR69fJIqXklhZbS4wceloSLZoHf8pZH6LpQ8rd1Z0N3+qEcK/vV5IjW1YxmwFPtzzEw5Hmt4AnzuGtMnhXl+f1wFpzVk6m+xV5LJYzTagUfEg91x+H+/lvj9NwCOvtw==;5:fB2NJBTLv6CjgwZD9ynvryJQB6L6gJWFvQrEWWT9zGTgBAteiKTF4em07nhUHbvIpPTkBRkBqEW6v+KIOhL0VpMv/qMspYQKZTleqY/l/CgHxTb9G54vy3DTMLmXiFxSCj9eoHeR7V0AaZBr5emvPmc9/J+TQiVikhQP6aF75gE=;24:Jndm0yJvGMYyreGn/lqjFJPNIQxz3P5v1nNXBmgX9P1fAzK7J5J35OLcg4bL8SPu0n02Nj7Fgi8+aBP6M/Zv0FPHPDzlV7hsz6Ll7MQY/cA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2444;7:jNWjUg8TxjUwAcNZp+7wpby2ay8Ve2+W/Xr1N/T6qQ7TSmwoHqXpKxldqssqqnLCE1+cIHAomRV2dHmJzAx1lp4Flmsguuhes7tdrDs1M4hgVyFq5QM9WRys5FtF25iFfDu6B26QAN3aO5Q5Ldxblqbr/A5udu+A62TRop8GVnVz3cLKaTzCSVDE2b9v19tmrSA0krC8/uobhN/9TJvxLAOt1d9aVYNkiT5GAJhdKVkb3+KOhp09OdOCK8QfcImTnpCxJJN+yLfRlSpAaNHAVpGYjOFW8kIauP/JmhQeN8R/Cwg4ct7SEzJtNW+h9Pusog4g/t3R1pcxLt+/sIUQLA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2017 19:55:32.0487 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2444 X-SW-Source: 2017-03/txt/msg00078.txt.bz2 On Tue, 2017-03-07 at 10:20 +0000, Yao Qi wrote: >  > > I believe most of the new failures are due to two problems.  One is > > unwinding through signal handlers and the other is accessing thread > Do the answers in this thread help? > https://sourceware.org/ml/gdb/2017-02/msg00056.html I have been looking at the code and offsets used in aarch64_linux_sigframe_init but I haven't had much luck in understanding the layout of the frames or the changes needed between the 32 and 64 bit ABIs. The code has these magic numbers: /* These magic numbers need to reflect the layout of the kernel    defined struct rt_sigframe and ucontext.  */ #define AARCH64_SIGCONTEXT_REG_SIZE             8 #define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET     128 #define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET      176 #define AARCH64_SIGCONTEXT_XO_OFFSET            8 I think AARCH64_SIGCONTEXT_REG_SIZE is OK, registers are still 8 bytes long in ILP32 mode. I am not sure what AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET is supposed to represent.  Is it the size of the rt_sigframe structure?  Or the offset from rt_sigframe to the sigframe structure inside of rt_sigframe? (i.e. the size of sigframe).  I have the same problem with the other magic numbers, I am just not sure what they represent.  I am also not sure if just changing the offset numbers is all that is needed or if there is some copying that needs to be done to massage the ILP32 formats into the expected layout.  I have never done any kernel work and was not around when the original aarch64 ILP32 work was done so I am not very familiar with the history of all this. arch/arm64/kernel/signal.c has: struct rt_sigframe {         struct siginfo info;         struct sigframe sig; }; but arch/arm64/kernel/signal_ilp32.c (this is part of the kernel patch set that has been submitted but not yet checked in) has: struct ilp32_rt_sigframe {         struct compat_siginfo info;         struct ilp32_sigframe sig; }; I think the definitions of siginfo (in LP64 mode from  include/uapi/asm-generic/siginfo.h and compat_siginfo from arch/arm64/include/asm/compat.h match up.  So that should not be different. sigframe (LP64) is defined in signal.c as: struct sigframe {         struct ucontext uc;         u64 fp;         u64 lr; }; struct ucontext {         unsigned long     uc_flags;         struct ucontext  *uc_link;         stack_t           uc_stack;         struct sigcontext uc_mcontext;         sigset_t          uc_sigmask;   /* mask last for extensibility */ }; and ilp32_sigframe is: struct ilp32_sigframe {         struct ilp32_ucontext uc;         u64 fp;         u64 lr; }; struct ilp32_ucontext {         u32             uc_flags;         u32             uc_link;         compat_stack_t  uc_stack;         compat_sigset_t uc_sigmask;         /* glibc uses a 1024-bit sigset_t */         __u8            __unused[1024 / 8 - sizeof(compat_sigset_t)];         /* last for future expansion */         struct sigcontext uc_mcontext; }; These context structures have differences but I don't know what to do with them. Steve Ellcey sellcey@cavium.com