From patchwork Fri Jun 1 13:22:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Koning, Paul" X-Patchwork-Id: 27596 Received: (qmail 95520 invoked by alias); 1 Jun 2018 13:22:57 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 95506 invoked by uid 89); 1 Jun 2018 13:22:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-27.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: esa7.dell-outbound.iphmx.com Received: from esa7.dell-outbound.iphmx.com (HELO esa7.dell-outbound.iphmx.com) (68.232.153.96) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Jun 2018 13:22:55 +0000 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2F8AQC7RxFbh8mZ6ERcGgEBAQEBAgEBA?= =?us-ascii?q?QEIAQEBAYQXgTUKmFiBWJZlC4RsAoIGITgUAQIBAQEBAQECAQECEAEBAQgNCQg?= =?us-ascii?q?oL4I1IoJUBjo/EAIBCDYQVwIEDgWDIoIBqFKIQIFoCQGINIITgTMMgl2FP4Jkg?= =?us-ascii?q?iQChyWRRgcCjmGNFJEXgViBdHBQKgGCGIIgDgmOF2+PTYEZAQE?= X-IPAS-Result: =?us-ascii?q?A2F8AQC7RxFbh8mZ6ERcGgEBAQEBAgEBAQEIAQEBAYQXgTU?= =?us-ascii?q?KmFiBWJZlC4RsAoIGITgUAQIBAQEBAQECAQECEAEBAQgNCQgoL4I1IoJUBjo/E?= =?us-ascii?q?AIBCDYQVwIEDgWDIoIBqFKIQIFoCQGINIITgTMMgl2FP4JkgiQChyWRRgcCjmG?= =?us-ascii?q?NFJEXgViBdHBQKgGCGIIgDgmOF2+PTYEZAQE?= Received: from esa1.dell-outbound2.iphmx.com ([68.232.153.201]) by esa7.dell-outbound.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Jun 2018 08:14:24 -0500 From: Received: from ausxipps306.us.dell.com ([143.166.148.156]) by esa1.dell-outbound2.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Jun 2018 19:19:39 +0600 X-LoopCount0: from 10.166.136.214 X-DLP: DLP_GlobalPCIDSS To: CC: , Subject: Re: [PATCH] fix build failure with Python 3.7 Date: Fri, 1 Jun 2018 13:22:51 +0000 Message-ID: <44D6B060-1CF8-4285-9723-4EB503618855@dell.com> References: <96198491-96D8-42F0-9956-1C2BC9277050@dell.com> <87fu27fux2.fsf@redhat.com> <2BFDF702-C2E4-4339-ABB4-D0655063DE95@dell.com> <4e99c685-9047-bb84-8ead-ea13d4c202d3@redhat.com> <181F555B-4509-4DA2-9D10-4DF4D47D8E3F@dell.com> <1e718869-7d3d-11f3-1748-d7f34032c8d8@redhat.com> In-Reply-To: <1e718869-7d3d-11f3-1748-d7f34032c8d8@redhat.com> Content-ID: <0539151190E40B448F65197E508234BB@dell.com> MIME-Version: 1.0 Ok, here is the patch in its current state. Ok to commit? paul gdb/ChangeLog: 2018-06-01 Paul Koning * python/python.c (do_start_initialization): Avoid call to internal Python API. (init__gdb_module): New function. diff --git a/gdb/python/python.c b/gdb/python/python.c index c29e7d7a6b..dbd2f1ab2d 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -1667,6 +1667,17 @@ finalize_python (void *ignore) restore_active_ext_lang (previous_active); } +#ifdef IS_PY3K +/* This is called via the PyImport_AppendInittab mechanism called + during initialization, to make the built-in _gdb module known to + Python. */ +PyMODINIT_FUNC +init__gdb_module (void) +{ + return PyModule_Create (&python_GdbModuleDef); +} +#endif + static bool do_start_initialization () { @@ -1707,6 +1718,9 @@ do_start_initialization () remain alive for the duration of the program's execution, so it is not freed after this call. */ Py_SetProgramName (progname_copy); + + /* Define _gdb as a built-in module. */ + PyImport_AppendInittab ("_gdb", init__gdb_module); #else Py_SetProgramName (progname.release ()); #endif @@ -1716,9 +1730,7 @@ do_start_initialization () PyEval_InitThreads (); #ifdef IS_PY3K - gdb_module = PyModule_Create (&python_GdbModuleDef); - /* Add _gdb module to the list of known built-in modules. */ - _PyImport_FixupBuiltin (gdb_module, "_gdb"); + gdb_module = PyImport_ImportModule ("_gdb"); #else gdb_module = Py_InitModule ("_gdb", python_GdbMethods); #endif