Message ID | 20170120202905.12382-1-simon.marchi@ericsson.com |
---|---|
State | New, archived |
Headers |
Received: (qmail 66279 invoked by alias); 20 Jan 2017 20:33:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 66001 invoked by uid 89); 20 Jan 2017 20:32:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 20 Jan 2017 20:32:57 +0000 Received: from ESESSHC022.ericsson.se (Unknown_Domain [153.88.253.124]) by (Symantec Mail Security) with SMTP id 52.21.31857.6F372885; Fri, 20 Jan 2017 21:32:54 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.84) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 20 Jan 2017 21:29:24 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxcz23q12-y4.ca.am.ericsson.se (192.75.88.130) by DB4PR07MB394.eurprd07.prod.outlook.com (10.141.236.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.6; Fri, 20 Jan 2017 20:29:20 +0000 From: Simon Marchi <simon.marchi@ericsson.com> To: <gdb-patches@sourceware.org> CC: Simon Marchi <simon.marchi@ericsson.com> Subject: [PATCH v2] Fix python-interactive with Python 3.6 Date: Fri, 20 Jan 2017 15:29:05 -0500 Message-ID: <20170120202905.12382-1-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN1PR0701CA0012.namprd07.prod.outlook.com (10.162.96.22) To DB4PR07MB394.eurprd07.prod.outlook.com (10.141.236.17) X-MS-Office365-Filtering-Correlation-Id: 05fd2361-3bc9-4270-545f-08d441730413 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB4PR07MB394; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 3:1Qih/lcVHlCLqVNQJnyRdGSw1LgtbDJKez1qu8Fx+S0KckYQNFPQpGPQDVwnRweGhLUKpc5dTEcjruHKlD0X4ynNGrAPm36ksUUG73zVhnalFl4q1YLQG2PaDzA5UuXCS244Y7yXcEyJj69cODnBXhE52ChDGC5rZ20zpT4tDRnMjU03F5XqkqRcE/O9ojBwlpf36ufaikagiovIhYOqIOJfKv6Y7H4L1rl2EMdFjt6T42MLJzIebLCZMqiSpXbqsCXc6z0fVjzzMY8XusvB1Q== X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 25:tpoMKaA8aOosbjFx2OjJ3H8BfwklIp3KOH0gd3n33wgcgr6mebt6MnWksOVuh1qk2tt2nlCndfsThXBNI4IpWbWJTTKXUPrkjTiwUzenw36+wIYtju3NpjenJ18UNoCwI2GGrugRIBR+C1LbAIQ3CukYKtuFOfOESyGH2UVHZuMgfCONKZlOmvVGlVJgkUZlIqUrDeDO601ymG410YV9ykI2oQm7sRPABZY5E3wHL3LBx8BsFA6tfTzoohtPQurWrmStusDYd2s186a6fn4HH6uLYYqOR8dOwIb0FG+NswTsWWIc3vvwNkoMPBjqr29hMyMOMp4nNTuaUMaUMO4zh964vxj0vbdEvtX4YxmVK5CtWs2w/oPUUnzYPcwM/A9WOgwwLZ1vl4ykmwX4ntvS+WPUl+QyfcRPNyjl0K6n7SBu6ev1OYaACduDCa0UNIWuQoHvXxg7EpyCJpl3ykVQVEyMpD/AZ8MbtZ88sAwJL5JM8SV7K1re+47tHgkBkX2rf+NhPaOkiBO/lZAqYsNdKksg4AWK2b27jN/dOP1pVbnrgFPZpmVEdBIII2mctZYdgMdpRQTXriINHS7/NT4UbVj4vMkND7qVa3Eu3zjHZSKchz9pMh6kJbt1NGMLpATwUhnTpA9lz9bZn8ZtonC0gkXaaH/Ljn4LWp5Ac5jRBXu9fG1btelB8gXoj8APceUgs17cd77sjbTCpWrK4t3Nrso9XthQcULhcqIhOmQlkEOH/6tnCrGb2U1wFh6VFzqqW1DgcMUIZ2Qw10SooKy/QONnOhdii0JxW5xIjq9f3O/aFxre9916JlpKQA/l3QTnjcwjOCt9YB4WGq/fHOBbEf7d97k8/9ga58IPB9vbP4t828aNjbOEYZrHl+lqOC/XGCHVarzI0FYMWZ8OzKwZ8w== X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 31:L0qS9JOgBSXhVIQvapPAT1Hm7FnuMjfqq5ukvMHyYd0ItbexGcLxlbPnBbriyCyl0to/s0aqkMTUFawA+F0PVX6U9EGqEKIibt5/YbVDvDXAka9mOhzgxL4g62nGC3jRJdUL9WXxei2tURR6TyEqjq6Eirn8EKVh6kaLy6PqVaS28ZjP9m9aDtO+3TYb99WNsbtC9Y06kzdh+YBm0hSSWZPm3ShTurRXkQ4Obhm0xcAxSdj9q8JI7Zrl29y1u/ArUDyqJjNb/JEBktWzkGpGGA==; 20:OIp73VKgYLasifrTL0ffqRFDAdY4TRy3Y7OAexfkCC4eT/fLMF4I/4G97z/XV6qVIw9f9FmJVKoxxYW3UtHucYPGIWE9ZrJJgRQKWCXr072SKaF7h0gIlSMhnj4hRGC7ZVE2Wr29o9RzDShRL+zcIT+vMvxvKTukCWklKdlxtOdOHEyL7t74CwvQ3OROHFG+7zuXQprWy6zQNi20JRrv+eeKI7ZthMyXu7uekxEzs0Olb/fJBKuYSpsyJsWCaGw3W43EjGuUPkOG2LfY1N+wtuaSei231J6QMObabYpP7Gm5xNAIWKdewlv2jidxbgDWNgwwus1EoLN/o4ZaWGOY55+/OfuMVwOqfpBhy93Qu6jDYB8GA4VbyEWnppIvXr7UT4Qvr8NZpOIE43wNtfNL+phMRCI38zi2/NXUnGh5/L8MD0HPxBQA1JlhJfxD/waWZliWFS15F1423BlOn9eRKe0xpJt1gVygIHouxbvC1NMIRfPcFw2zQgqP4nAX3dDJ X-Microsoft-Antispam-PRVS: <DB4PR07MB3949C809CA7543A737F206FED710@DB4PR07MB394.eurprd07.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148); SRVR:DB4PR07MB394; BCL:0; PCL:0; RULEID:; SRVR:DB4PR07MB394; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 4:HGfZHu9tXbqqfRUaRrvuLPNPQagxZcPWTVAYB5cSNu30+2Y0AAV75x6QlqQFL4SUX6kn2UsOqeEACQ43OuK5mqjMQVsHyU3pE//8aOBKPqUXVd3gBRDvtoMCO1gQyBziGc9kgiV0SUpdv+lZhaSyS/2l9wzf2EGfUMWXK1xGDD07CH066XMQpBjbtAbJ+QXfO4h2j9/ZQfvpXEbsx7ulbmIkfrN76gEQA6Isd6538a5MnHrHzcbSOFEHXLbjdBAB8b86O6fjE/zaxbcN+jvL0AzVIvJ5uy+e0qMz+v9nBom1LTY+WI1uQtGQ7M8KFweyC131kX80DlOO/cnTtfHVBXu5ZM+bOuHAPkBGCATXg7JMUQX6uA/p34swzhDuYUyRQQ0nGycKN2FGej4Z1VHjDtOpGYK4kdjqHExXEaSYlvwQLVpIyyVf5c1NOJCT/AxlYWHxWp3TJ07WpQbW/XNfo38pXSeZmcy7Em26P4dKNPyGjSO0abxr52X3nO3wl12FeUt/DtUCV4+rHG8nWP8Z6Cjx8sFC4nSsjm9If2iAcXFz67AJy5Ug9IxRWlSYa5zxKgl/1kMF5I8ZsrzfbFYYGQ== X-Forefront-PRVS: 01930B2BA8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(189002)(54534003)(199003)(97736004)(107886002)(25786008)(92566002)(23676002)(47776003)(189998001)(38730400001)(6506006)(2870700001)(450100001)(106356001)(6306002)(5820100001)(66066001)(68736007)(8676002)(6666003)(6916009)(4326007)(33646002)(5660300001)(1076002)(81156014)(50466002)(6512007)(50226002)(2906002)(305945005)(86362001)(4001430100002)(36756003)(50986999)(105586002)(110136003)(42186005)(6116002)(101416001)(2351001)(53936002)(6486002)(3846002)(7736002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR07MB394; H:elxcz23q12-y4.ca.am.ericsson.se; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzOTQ7MjM6QXFPYm1sWERsWnpFZVZ2ZnllZTcvYzN6OHd2?= =?utf-8?B?ckFtazBETk40Z0JYTWIrMTVGNjRReWY1bGMyclU0MHprWGZhVDdQdE0wV3ZG?= =?utf-8?B?Z253alVBZXc4Rm9ibHhqSng4ZlBFTEZ1bC8zKzJMUWhybFZHbkUwM1I0eDZi?= =?utf-8?B?MTBmTjJvOW5EdktjOHBlSjdrWEJZRm9HVlNMM0NNOE1kcUtJQlRCbkNleFVX?= =?utf-8?B?YmU2WjdIM0MzUUJpdlFva2ViYnRwaE1KbGVENUdLdGV6c1hobnkvckNIWDN3?= =?utf-8?B?ajI4OXhKZnNKTjk3Wjc4K1J0NVNyNWVrTnJxNkFlZ3hQaWNVSHJQckUwRWhU?= =?utf-8?B?V0xXWXFZbEVub3RkeVc4RmhqdlFFa0NTVlVxQnE0QUcvamdhNW4wUWRRSzVj?= =?utf-8?B?ZU5kS3ZsYVJBRHFqbHMyam8xLzV4N3dHTGtlQVFuUVhaako0U05jVGwrWlR2?= =?utf-8?B?aU1iU2hIdytnandkdEZtcm96SWMyNlpwQ0dLaHZyNllKbkV5d01EeXNDb3dq?= =?utf-8?B?MHBiQmpsMk9jWlZ3TlZSZHlvaTFhWVpPcmJlcHpsVnN6VzNXZjUyNFdkOXhD?= =?utf-8?B?NG94bVFRUEVRQzQ0T2lXdVNsZFpiVVdRbElVWDc5aXV0UFNIREUraWlxR0F6?= =?utf-8?B?V1U1UDVMSS9jTjNtNTBXSnBRNTBwRU1QVURaak1MYkdUQjBHOUgwOWlSWlY3?= =?utf-8?B?NkR0WFRHY25PcEtMMUp1NGdqdlFqbkpOdGhuYkFhd3pwVHpDdUZUWFk2TEdr?= =?utf-8?B?NGVPSmR3eXVJVVZsMVFpMFZzT1gvMVVESnF1SVBVSE9kTGdhSlFHRC8zU1JC?= =?utf-8?B?cWh6aFE1UnhLVzBRdzIxQ3ZKT3NHNUlWMDd6OTZPT2k4dUtWemQ4eCt4YytE?= =?utf-8?B?MFhDSnh1TVFIMnZiVmoyczRiNmp0LzV3VXpiVmxEOGM3TFBkbFJmaHJ3OFlj?= =?utf-8?B?WmR4Zk5IRXpLK29kb2MzLzlZMGRJZnVvN2tJeTBVVU5Ydll4eTRRRWpuWXpO?= =?utf-8?B?UFNZaVh6WURXSWZCQUtEVWZNSWgzZXlLTWZEY3lFbVQvTVA2TTRYNmdSNENn?= =?utf-8?B?b1B4TE0zL3JDSGZLd29vdytYc3NSc1laK0Jydm4wSGlxSGFmVjBTYWhsdGNM?= =?utf-8?B?WXRkNVVnK0RtNUJrZTFCSElGeGQxSE5vckNyKzV6WE5TWWdrbUdyVGpkS0Nj?= =?utf-8?B?OVNHSjJiZFo5RjBUMWZKYjZpTDR6T2QvREVpdnNlSnhLZnFjanFkTHhGNDhF?= =?utf-8?B?dGRBajNpS0VSUVh1dzBuT1JyR05sbHZZSmtxTzhSVTY4azhjZVlyL05hSHdO?= =?utf-8?B?cUx0ZXF3dm0vaSs5bGV4cVJXM085bG9hMWZOTlpQOVl3b1FHRmNxMFZGaWR5?= =?utf-8?B?YnJjbmYxZUthbW9nQzVsNmRsT1ZBZkUzVnpPcCtqVW00dm0yTFpCdHNTd3pz?= =?utf-8?B?VUhJeGFFaDhDUW5NZHByeWhselpSUWc3VnU3U09iemZyR2QyTUsveFR5c0l5?= =?utf-8?B?TTZFaTAwU3RDMVdpVGc1SzNEWkswUzZGQmZMWTZXampzSWh3WXBKVVdBVHVG?= =?utf-8?B?YS9uanRsNmgzdmVJZjNHMjNGRFZaZFVCTXN4cEZleHByNFNwaVZka2ZycVhH?= =?utf-8?B?K2RpWS96VGRERjhGeUdmakthbS9MSG8vYmtXTFlFaU5IdjJ1bWFtQnc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 6:j31K6UwY/YCwBq7bpy4jfcYqefc3rM0q/Xsxe4hAC33Ps6O20b/RK4ktWM5HiEWYXmzI8bZU9/L/J50PmnOHrYgx22Fz0zoRj0qRMuEVzCv+7pEjq1gYwh0DBoKJ45ThEGVpJninQW5qUnj/T2Crp9Ftc8UzH4pFPAsilySdlKV3K2zFkraJLBMbrdPOlZ7ORw01VwojD8xORUHkm0riSiYOqESl+VZ6RCZsoAYDkddT+EN5MRd7kAAtGZPk+7o55eRW6wE6oJQ+iXkuJU25pU1+45Mwn+24ohfJJO6UqwELl6Kn6c3wQZFS7XVdbagPicGYRleU8VoSpZddttVkXPKoVk8wdnpCzpIDJAZC/hasBCRwOFV1Medz1fv9B245ulgHvxL6V6L4PNo/+xZtJZoIbwbK1hIzm3T4UHXVFvs=; 5:ETHc34K9fr2qF8wr7IYmd6HIjPm2xQJ4UfensJlQ3lxx0ZnMbAXQb6nI8FMaXmVaPz35IJjhOHdkYcYq0aRDxeaeEvxPH5n3brxk7ITUqtlFHNVylJZc+dtfsOwAdYFd4wmx9GOv1TmUxJNhcjJOgQ==; 24:goRM0WmFcAA0xPoY4uQI9nIY+GrJkhgM5mgdTnP9RQ6lslQr8LZxZZQSLzRKl1ALSIilgncDK3jvTYxpTjDmOm8ZfEcT7IFntlfIgUnlnHI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB394; 7:M1dCgVbSBgADstJlcGbtEIxL8AmlYbc843ctf0SbTtsA1qK79lP7YW4U+x9lViJiZKLnb0FIYytNeg+9wIM/K74PqSaitfh9YQ4AfTQ3N8YveyDuQXMr4zl6Vmko/XAOL72YF9NNHIsDLudpebQSdB+sWi668H3zsW8I2xkOzXkrH4LE2zDuAQ6tx8+Ys1iDUTeW6ZgtBr4QmrzcqdBHKpt74X4/PjSOEpbCLZLGLI4jpUqmHw/dyRTCKXrQe0AK4ON5K7Erm8KG4kHKiL60ax5JCyevFyixD7w/t6ZqqdO2E0R36P+Fi5vZ6mtEvKreFMTVdElyD6sIfz7B4T2vm3rwzhCXarF8//dpDPvMtnsEtXMxjUkRmK2Zckow0jSmJDvV/RbeuOy76EfLPPtQh0Pmr9I5Rt0/EsZ/LYiKylKnPv9b/VV/crMZYMhE98CDXeLY7mkXn9iJ1Q5AXwt0+Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2017 20:29:20.4677 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB394 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes |
Commit Message
Simon Marchi
Jan. 20, 2017, 8:29 p.m. UTC
New in v2:
- Define PyMem_RawMalloc as PyMem_Malloc for Python < 3.4 and use
PyMem_RawMalloc in the code.
Since Python 3.4, the callback installed in PyOS_ReadlineFunctionPointer
should return a value allocated with PyMem_RawMalloc instead of
PyMem_Malloc. The reason is that PyMem_Malloc must be called with the
Python Global Interpreter Lock (GIL) held, which is not the case in the
context where this function is called. PyMem_RawMalloc was introduced
for cases like this.
In Python 3.6, it looks like they added an assert to verify that
PyMem_Malloc was not called without the GIL. The consequence is that
typing anything in the python-interactive mode of gdb crashes the
process. The same behavior was observed with the official package on
Arch Linux as well as with a manual Python build on Ubuntu 14.04.
This is what is shown with a debug build of Python 3.6 (the error with a
non-debug build is far less clear):
(gdb) pi
>>> print(1)
Fatal Python error: Python memory allocator called without holding the GIL
Current thread 0x00007f1459af8780 (most recent call first):
[1] 21326 abort ./gdb
and the backtrace:
#0 0x00007ffff618bc37 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff618f028 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6b104d6 in Py_FatalError (msg=msg@entry=0x7ffff6ba15b8 "Python memory allocator called without holding the GIL") at Python/pylifecycle.c:1457
#3 0x00007ffff6a37a68 in _PyMem_DebugCheckGIL () at Objects/obmalloc.c:1972
#4 0x00007ffff6a3804e in _PyMem_DebugFree (ctx=0x7ffff6e65290 <_PyMem_Debug+48>, ptr=0x24f8830) at Objects/obmalloc.c:1994
#5 0x00007ffff6a38e1d in PyMem_Free (ptr=<optimized out>) at Objects/obmalloc.c:442
#6 0x00007ffff6b866c6 in _PyFaulthandler_Fini () at ./Modules/faulthandler.c:1369
#7 0x00007ffff6b104bd in Py_FatalError (msg=msg@entry=0x7ffff6ba15b8 "Python memory allocator called without holding the GIL") at Python/pylifecycle.c:1431
#8 0x00007ffff6a37a68 in _PyMem_DebugCheckGIL () at Objects/obmalloc.c:1972
#9 0x00007ffff6a37aa3 in _PyMem_DebugMalloc (ctx=0x7ffff6e65290 <_PyMem_Debug+48>, nbytes=5) at Objects/obmalloc.c:1980
#10 0x00007ffff6a38d91 in PyMem_Malloc (size=<optimized out>) at Objects/obmalloc.c:418
#11 0x000000000064dbe2 in gdbpy_readline_wrapper (sys_stdin=0x7ffff6514640 <_IO_2_1_stdin_>, sys_stdout=0x7ffff6514400 <_IO_2_1_stdout_>, prompt=0x7ffff4d4f7d0 ">>> ")
at /home/emaisin/src/binutils-gdb/gdb/python/py-gdb-readline.c:75
The documentation is very clear about it [1] and it was also mentioned
in the "What's New In Python 3.4" page [2].
[1] https://docs.python.org/3/c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointer
[2] https://docs.python.org/3/whatsnew/3.4.html#changes-in-the-c-api
gdb/ChangeLog:
* python/python-internal.h (PyMem_RawMalloc): Define for
Python < 3.4.
* python/py-gdb-readline.c (gdbpy_readline_wrapper): Use
PyMem_RawMalloc instead of PyMem_Malloc.
---
gdb/python/py-gdb-readline.c | 5 +++--
gdb/python/python-internal.h | 7 +++++++
2 files changed, 10 insertions(+), 2 deletions(-)
Comments
OK. How about putting this in 7.12.1 too? Thanks, Pedro Alves
On 2017-01-20 18:45, Pedro Alves wrote:
> OK. How about putting this in 7.12.1 too?
Yep. Pushed to master and 7.12. I added the reference to the PR:
https://sourceware.org/bugzilla/show_bug.cgi?id=21068
Thanks!
diff --git a/gdb/python/py-gdb-readline.c b/gdb/python/py-gdb-readline.c index 8b396db443..a02fa8ce6f 100644 --- a/gdb/python/py-gdb-readline.c +++ b/gdb/python/py-gdb-readline.c @@ -21,6 +21,7 @@ #include "python-internal.h" #include "top.h" #include "cli/cli-utils.h" + /* Readline function suitable for PyOS_ReadlineFunctionPointer, which is used for Python's interactive parser and raw_input. In both cases, sys_stdin and sys_stdout are always stdin and stdout @@ -63,7 +64,7 @@ gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout, /* Detect EOF (Ctrl-D). */ if (p == NULL) { - q = (char *) PyMem_Malloc (1); + q = (char *) PyMem_RawMalloc (1); if (q != NULL) q[0] = '\0'; return q; @@ -72,7 +73,7 @@ gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout, n = strlen (p); /* Copy the line to Python and return. */ - q = (char *) PyMem_Malloc (n + 2); + q = (char *) PyMem_RawMalloc (n + 2); if (q != NULL) { strncpy (q, p, n); diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 908a878095..e2ebc1b8a2 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -172,6 +172,13 @@ typedef unsigned long gdb_py_ulongest; typedef long Py_hash_t; #endif +/* PyMem_RawMalloc appeared in Python 3.4. For earlier versions, we can just + fall back to PyMem_Malloc. */ + +#if PY_VERSION_HEX < 0x03040000 +#define PyMem_RawMalloc PyMem_Malloc +#endif + /* Python 2.6 did not wrap Py_DECREF in 'do {...} while (0)', leading to 'suggest explicit braces to avoid ambiguous ‘else’' gcc errors. Wrap it ourselves, so that callers don't need to care. */