From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31626 invoked by alias); 26 Nov 2014 12:13:18 -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 31612 invoked by uid 89); 26 Nov 2014 12:13:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: na01-bl2-obe.outbound.protection.outlook.com Received: from mail-bl2on0070.outbound.protection.outlook.com (HELO na01-bl2-obe.outbound.protection.outlook.com) (65.55.169.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 26 Nov 2014 12:13:07 +0000 Received: from BL2FFO11FD041.protection.gbl (10.173.160.32) by BL2FFO11HUB059.protection.gbl (10.173.161.159) with Microsoft SMTP Server (TLS) id 15.1.6.13; Wed, 26 Nov 2014 12:13:04 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2FFO11FD041.mail.protection.outlook.com (10.173.161.137) with Microsoft SMTP Server (TLS) id 15.1.6.13 via Frontend Transport; Wed, 26 Nov 2014 12:13:04 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1XtbQX-0007tP-MT; Wed, 26 Nov 2014 04:10:33 -0800 From: Ajit Kumar Agarwal To: Pedro Alves , Joel Brobecker CC: "gdb-patches@sourceware.org" , Vinod Kathail , Vidhumouli Hunsigida , "Nagaraju Mekala" Subject: RE: [Patch] Microblaze: Port of Linux gdbserver Date: Wed, 26 Nov 2014 12:13:00 -0000 References: <25de23b98e054fd291ea232d10f2800c@BN1BFFO11FD018.protection.gbl> <5436B7D0.9060004@eagercon.com> <543E7630.5060001@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-RCIS-Action: ALLOW Message-ID: <9a56bbcc27904ea9b9485fa1c261521a@BL2FFO11FD041.protection.gbl> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(438002)(479174003)(377454003)(199003)(13464003)(24454002)(164054003)(51694002)(51704005)(189002)(377424004)(46102003)(15975445006)(4396001)(86362001)(104016003)(107046002)(95666004)(108616004)(31966008)(53416004)(21056001)(99396003)(120916001)(77156002)(19580405001)(44976005)(50986999)(92566001)(19580395003)(87936001)(106116001)(64706001)(54356999)(47776003)(6806004)(77096003)(20776003)(62966003)(50466002)(74316001)(76176999)(93886004)(2656002)(23676002)(106466001)(107986001)(24736002)(23106004);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2FFO11HUB059;H:xsj-pvapsmtpgw01;FPR:;MLV:sfv;PTR:unknown-60-83.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB059; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB059; X-Forefront-PRVS: 04073E895A Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=ajit.kumar.agarwal@xilinx.com; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB059; X-OriginatorOrg: xilinx.com X-SW-Source: 2014-11/txt/msg00664.txt.bz2 SGVsbG8gUGVkcm86DQoNCkp1c3Qgd2FudGVkIHRvIGNoZWNrICBpZiB0aGUg Y2hhbmdlcyB3ZXJlIE9rYXkgYW5kIHRoZXJlIHdlcmVuJ3QgYW55IGlzc3Vl cyBpbiBpdC4gDQpQbGVhc2UgbGV0IG1lIGtub3cgaWYgaXQncyAgZ29vZCB0 byBjb21taXQuDQoNClRoYW5rcyAmIFJlZ2FyZHMNCkFqaXQNCg0KLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEFqaXQgS3VtYXIgQWdhcndh bCANClNlbnQ6IFNhdHVyZGF5LCBPY3RvYmVyIDE4LCAyMDE0IDEyOjUyIEFN DQpUbzogJ1BlZHJvIEFsdmVzJzsgTWljaGFlbCBFYWdlcjsgSm9lbCBCcm9i ZWNrZXINCkNjOiBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZzsgVmlub2Qg S2F0aGFpbDsgVmlkaHVtb3VsaSBIdW5zaWdpZGE7IE5hZ2FyYWp1IE1la2Fs YQ0KU3ViamVjdDogUkU6IFtQYXRjaF0gTWljcm9ibGF6ZTogUG9ydCBvZiBM aW51eCBnZGJzZXJ2ZXINCg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBQZWRybyBBbHZlcyBbbWFpbHRvOnBhbHZlc0ByZWRoYXQu Y29tXQ0KU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDE1LCAyMDE0IDY6NTcg UE0NClRvOiBBaml0IEt1bWFyIEFnYXJ3YWw7IE1pY2hhZWwgRWFnZXI7IEpv ZWwgQnJvYmVja2VyDQpDYzogZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmc7 IFZpbm9kIEthdGhhaWw7IFZpZGh1bW91bGkgSHVuc2lnaWRhOyBOYWdhcmFq dSBNZWthbGENClN1YmplY3Q6IFJlOiBbUGF0Y2hdIE1pY3JvYmxhemU6IFBv cnQgb2YgTGludXggZ2Ric2VydmVyDQoNCk9uIDEwLzA5LzIwMTQgMDc6NTQg UE0sIEFqaXQgS3VtYXIgQWdhcndhbCB3cm90ZToNCj4gDQo+IFBlZHJvOg0K Pj4gPiBEaWQgdGhpcyBrZXJuZWwgcG9ydCBtYWtlIGl0IHVwc3RyZWFtIHdp dGhvdXQgUFRSQUNFX0dFVFJFR1NFVD8NCj4+ID4gSWYgdGhlcmUncyBzdXBw b3J0IGZvciB0aGF0LCBjYW4geW91IHBsZWFzZSBzd2l0Y2ggdG8gdXNpbmcg aXQ/DQo+Pj4gPj5QbGVhc2UgYW5zd2VyIGFsbCBxdWVzdGlvbnMuDQo+IFN1 cmUuICBUaGUgS2VybmVsIGNvZGUocHRyYWNlLmgpIGZvciBNaWNyb2JsYXpl IGRvZXNuJ3QgaGF2ZSB1cHN0cmVhbSBjb2RlIHdpdGhvdXQgUFRSQUNFX0dF VFJFR1NFVC4NCj4gDQo+IFBlZHJvOg0KPj4gPiBQVFJBQ0VfR0VUUkVHUyBp cyBzdXBwb3NlZCB0byBhbiBvbGQgd2F5IG9mIGRvaW5nIHRoaW5ncy4uLg0K Pj4+ID4+QW5kIGFkZHJlc3MgYWxsIGNvbW1lbnRzLg0KPiBUaGUgTWljcm9i bGF6ZSBLZXJuZWwgY29kZSBQVFJBQ0VfR0VUUkVHUyBpcyBhbHdheXMgZGVm aW5lZCBhbmQgdGhlcmUgaXMgbm8gY29uZGl0aW9uYWwgY29tcGlsYXRpb24g d2hpY2ggaXMgd2l0aG91dCB0aGUgUFRSQUNFX0dFVFJFR1MuIFNvIEkgYWdy ZWUgd2l0aCBQZWRybyBjb21tZW50IG9mIG5vdCB1c2luZyAjaWZkZWYgUFRS QUNFX0dFVFJFR1MgYW5kIGluIHRoZSBwYXRjaCBzdWJtaXR0ZWQgSSBoYXZl IHJlbW92ZWQgaWYgI2lmZGVmIFBUUkFDRV9HRVRSRUdTIHdoaWNoIGlzIG5v dCByZXF1aXJlZC4NCg0KPj5QVFJBQ0VfR0VUUkVHU0VUICE9IFBUUkFDRV9H RVRSRUdTDQoNCj4+SSdtIGFza2luZyBmb3IgdXNpbmcgdGhlIFBUUkFDRV9H RVRSRUdTRVQgaW5zdGVhZCBvZiBQVFJBQ0VfR0VUUkVHUyBpbiBuZXcgcG9y dHMuICBTZWUgYmFja2dyb3VuZCBoZXJlOg0KDQogID4+aHR0cHM6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9hcmNoZXIvMjAxMC1xMy9tc2cwMDE5My5odG1sDQoN ClRoZSBjaGFuZ2VzIGFyZSBpbmNvcnBvcmF0ZWQuDQoNCj4+ICsjZGVmaW5l IG1pY3JvYmxhemVfYnJlYWtwb2ludF9sZW4gNA0KPj4NCj4+IFVzZSBDQVBT IGZvciBtYWNyb3MuDQoNClRoZSBjaGFuZ2VzIGFyZSBpbmNvcnBvcmF0ZWQu DQoNCj4+KyAgKCp0aGVfdGFyZ2V0LT5yZWFkX21lbW9yeSkgKHdoZXJlLCAo dW5zaWduZWQgY2hhciAqKSAmaW5zbiwgNCk7DQo+PisNCj4+KyAgaWYgKGlu c24gPT0gbWljcm9ibGF6ZV9icmVha3BvaW50KQ0KDQo+PldoeSB1c2UgdGhl IGV4cGxpY2l0IGxlbmd0aCByYXRoZXIgdGhhbiB0aGUgbWFjcm8geW91IGp1 c3QgZGVmaW5lZD8NCj4+V2h5IG5vdCB1c2Ugc2l6ZW9mIChpbnNuKT8NCg0K VGhlIGNoYW5nZXMgYXJlIGluY29ycG9yYXRlZC4NCg0KVGhlIGJlbG93IHBh dGNoIGluY29ycG9yYXRlZCBhbGwgdGhlIGFib3ZlIGZlZWRiYWNrcy4NCg0K W1BBVENIXSBNaWNyb2JsYXplOiBQb3J0IG9mIExpbnV4IGdkYnNlcnZlcg0K DQpUaGlzIHBhdGNoIGlzIHRoZSBwb3J0IG9mIExpbnV4IGdkYnNlcnZlci4N ClRlc3RlZCB3aXRoIGdkYiByZWdyZXNzaW9uIHRlc3RzdWl0ZSB3aXRoIHRo aXMgcGF0Y2ggb2YgZ2Ric2VydmVyLg0KDQpnZGIvOg0KMjAxNC0xMC0xOCAg QWppdCBBZ2Fyd2FsICA8YWppdGt1bUB4aWxpbnguY29tPg0KDQogICAgICAg ICogY29uZmlndXJlLnRndCAoYnVpbGRfZ2Ric2VydmVyKTogTmV3IERlZmlu aXRpb24uDQoNCmdkYi9nZGJzZXJ2ZXIvOg0KDQogICAgICAgICogZ2Ric2Vy dmVyL01ha2VmaWxlLmluIChtaWNyb2JsYXplLWxpbnV4LmMpOiBOZXcgdGFy Z2V0Lg0KICAgICAgICAqIGdkYnNlcnZlci9jb25maWd1cmUuc3J2IChtaWNy b2JsYXplKi0qLWxpbnV4Kik6IE5ldyB0YXJnZXQuDQogICAgICAgICogZ2Ri c2VydmVyL2xpbnV4LW1pY3JvYmxhemUtbG93LmM6IE5ldyBmaWxlLg0KDQpT aWduZWQtb2ZmLWJ5OkFqaXQgQWdhcndhbCBhaml0a3VtQHhpbGlueC5jb20N Cg0KR2RiLmJhc2UgZ2RiIHRlc3RzdWl0ZSBpcyBydW4gYW5kIGhlcmUgaXMg dGhlIHN0YXR1cyBvZiBnZGIgdGVzdHN1aXRlIHJ1biBmb3IgZ2RiLmJhc2Uu DQoNCiAgICAgICAgICAgICAgICA9PT0gZ2RiIFN1bW1hcnkgPT09DQoNCiMg b2YgZXhwZWN0ZWQgcGFzc2VzICAgICAgICAgICAgNzgwNA0KIyBvZiB1bmV4 cGVjdGVkIGZhaWx1cmVzICAgICAgICAyMjYzDQojIG9mIHVuZXhwZWN0ZWQg c3VjY2Vzc2VzICAgICAgIDINCiMgb2YgZXhwZWN0ZWQgZmFpbHVyZXMgICAg ICAgICAgNQ0KIyBvZiBrbm93biBmYWlsdXJlcyAgICAgICAgICAgICAyMg0K IyBvZiB1bnJlc29sdmVkIHRlc3RjYXNlcyAgICAgICAyOQ0KIyBvZiB1bnRl c3RlZCB0ZXN0Y2FzZXMgICAgICAgICA0MQ0KIyBvZiB1bnN1cHBvcnRlZCB0 ZXN0cyAgICAgICAgICAxMjUNCg0KVGhhbmtzICYgUmVnYXJkcw0KQWppdA0K DQpUaGFua3MsDQpQZWRybyBBbHZlcw0KDQo= >From gdb-patches-return-117873-listarch-gdb-patches=sources.redhat.com@sourceware.org Wed Nov 26 13:47:40 2014 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 4166 invoked by alias); 26 Nov 2014 13:47:39 -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 Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 4155 invoked by uid 89); 26 Nov 2014 13:47:38 -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,SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg21.ericsson.net Received: from usevmg21.ericsson.net (HELO usevmg21.ericsson.net) (198.24.6.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 26 Nov 2014 13:47:35 +0000 Received: from EUSAAHC001.ericsson.se (Unknown_Domain [147.117.188.75]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id 34.CA.25146.C1E75745; Wed, 26 Nov 2014 08:15:41 +0100 (CET) Received: from simark-hp.mo.ca.am.ericsson.se (147.117.188.8) by smtps-am.internal.ericsson.com (147.117.188.75) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 26 Nov 2014 08:47:20 -0500 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH] Fix build with Python 3.4 (PR python/16784) Date: Wed, 26 Nov 2014 13:47:00 -0000 Message-ID: <1417009634-2356-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2014-11/txt/msg00665.txt.bz2 Content-length: 7085 The type of the function pointer PyOS_ReadlineFunctionPointer (part of the Python C API), which we use, slightly changed starting with Python 3.4. The signature when from PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, char *); to PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *); The parameter that changed is the prompt text. This commits adjusts gdb accordingly by making the prompt_arg parameter const, as well as the fallouts. Because of that, I needed to rework a bit how annotations are added to the prompt. If they are enabled, a copy of the prompt is made (as before) but then the prompt_arg argument is overwritten to point to the annotated prompt. Otherwise, no copy is done and the original prompt_arg is passed to called functions. I changed the signature of deprecated_readline_hook. I would've changed any user of it, but it seems like nothing is using it, Built-tested with Python 2.7.8, 3.3.6 and 3.4.2. I ran the tests in gdb.base and gdb.python before and after with Python 2.7.8 and there was no difference in the results. gdb/ChangeLog: * defs.h (gdb_readline): Constify argument. (gdb_readline_wrapper): Same. (command_line_input): Same. (deprecated_readline_hook): Same. * top.c (deprecated_readline_hook): Same. (gdb_readline): Same. (gdb_readline_wrapper): Same. (command_line_input): Constify argument. Pass prompt_arg to called functions instead of local_prompt, overwriting prompt_arg if necessary. * event-top.h (display_gdb_prompt): Constify argument. * event-top.c (display_gdb_prompt): Same. * python/py-gdb-readline.c (gdbpy_readline_wrapper): Constify argument if building with Python 3.4 and up. --- gdb/defs.h | 8 ++++---- gdb/event-top.c | 2 +- gdb/event-top.h | 2 +- gdb/python/py-gdb-readline.c | 5 ++++- gdb/top.c | 20 +++++++++++--------- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/gdb/defs.h b/gdb/defs.h index 6b63b6a..24e1e3b 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -259,11 +259,11 @@ extern void print_transfer_performance (struct ui_file *stream, typedef void initialize_file_ftype (void); -extern char *gdb_readline (char *); +extern char *gdb_readline (const char *); -extern char *gdb_readline_wrapper (char *); +extern char *gdb_readline_wrapper (const char *); -extern char *command_line_input (char *, int, char *); +extern char *command_line_input (const char *, int, char *); extern void print_prompt (void); @@ -636,7 +636,7 @@ extern void (*deprecated_warning_hook) (const char *, va_list) extern void (*deprecated_interactive_hook) (void); extern void (*deprecated_readline_begin_hook) (char *, ...) ATTRIBUTE_FPTR_PRINTF_1; -extern char *(*deprecated_readline_hook) (char *); +extern char *(*deprecated_readline_hook) (const char *); extern void (*deprecated_readline_end_hook) (void); extern void (*deprecated_register_changed_hook) (int regno); extern void (*deprecated_context_hook) (int); diff --git a/gdb/event-top.c b/gdb/event-top.c index cb438ac..55caf72 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -288,7 +288,7 @@ gdb_rl_callback_handler_reinstall (void) 3. On prompting for pagination. */ void -display_gdb_prompt (char *new_prompt) +display_gdb_prompt (const char *new_prompt) { char *actual_gdb_prompt = NULL; struct cleanup *old_chain; diff --git a/gdb/event-top.h b/gdb/event-top.h index 919287e..0c8baae 100644 --- a/gdb/event-top.h +++ b/gdb/event-top.h @@ -27,7 +27,7 @@ struct cmd_list_element; /* Exported functions from event-top.c. FIXME: these should really go into top.h. */ -extern void display_gdb_prompt (char *new_prompt); +extern void display_gdb_prompt (const char *new_prompt); void gdb_setup_readline (void); void gdb_disable_readline (void); extern void async_init_signals (void); diff --git a/gdb/python/py-gdb-readline.c b/gdb/python/py-gdb-readline.c index d98a196..7aa5436 100644 --- a/gdb/python/py-gdb-readline.c +++ b/gdb/python/py-gdb-readline.c @@ -26,10 +26,13 @@ cases, sys_stdin and sys_stdout are always stdin and stdout respectively, as far as I can tell; they are ignored and command_line_input is used instead. */ - static char * gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout, +#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 4 + const char *prompt) +#else char *prompt) +#endif { int n; char *p = NULL, *q; diff --git a/gdb/top.c b/gdb/top.c index 83d858a..ce29553 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -215,7 +215,7 @@ void (*deprecated_warning_hook) (const char *, va_list); window and it can close it. */ void (*deprecated_readline_begin_hook) (char *, ...); -char *(*deprecated_readline_hook) (char *); +char *(*deprecated_readline_hook) (const char *); void (*deprecated_readline_end_hook) (void); /* Called as appropriate to notify the interface that we have attached @@ -620,7 +620,7 @@ prevent_dont_repeat (void) A NULL return means end of file. */ char * -gdb_readline (char *prompt_arg) +gdb_readline (const char *prompt_arg) { int c; char *result; @@ -812,7 +812,7 @@ gdb_readline_wrapper_cleanup (void *arg) } char * -gdb_readline_wrapper (char *prompt) +gdb_readline_wrapper (const char *prompt) { struct cleanup *back_to; struct gdb_readline_wrapper_cleanup *cleanup; @@ -912,14 +912,14 @@ gdb_rl_operate_and_get_next (int count, int key) simple input as the user has requested. */ char * -command_line_input (char *prompt_arg, int repeat, char *annotation_suffix) +command_line_input (const char *prompt_arg, int repeat, char *annotation_suffix) { static char *linebuffer = 0; static unsigned linelength = 0; char *p; char *p1; char *rl; - char *local_prompt = prompt_arg; + char *local_prompt; char *nline; char got_eof = 0; @@ -938,6 +938,8 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix) strcat (local_prompt, "\n\032\032"); strcat (local_prompt, annotation_suffix); strcat (local_prompt, "\n"); + + prompt_arg = local_prompt; } if (linebuffer == 0) @@ -979,15 +981,15 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix) /* Don't use fancy stuff if not talking to stdin. */ if (deprecated_readline_hook && input_from_terminal_p ()) { - rl = (*deprecated_readline_hook) (local_prompt); + rl = (*deprecated_readline_hook) (prompt_arg); } else if (command_editing_p && input_from_terminal_p ()) { - rl = gdb_readline_wrapper (local_prompt); + rl = gdb_readline_wrapper (prompt_arg); } else { - rl = gdb_readline (local_prompt); + rl = gdb_readline (prompt_arg); } if (annotation_level > 1 && instream == stdin) @@ -1021,7 +1023,7 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix) break; p--; /* Put on top of '\'. */ - local_prompt = (char *) 0; + prompt_arg = NULL; } #ifdef STOP_SIGNAL -- 2.1.3