[07/36] Make array object extern

Message ID 54F0F3E8.6010005@ericsson.com
State New, archived
Headers

Commit Message

Simon Marchi Feb. 27, 2015, 10:47 p.m. UTC
  On 02/09/2015 06:20 PM, Pedro Alves wrote:
> Compiling python.c in C++ mode, we get:
> 
>   ...src/gdb/python/python.c: At global scope:
>   ...src/gdb/python/python.c:106:31: error: storage size of ‘GdbMethods’ isn’t known
>    static PyMethodDef GdbMethods[];
> 				 ^
> 
> Fix it by making the affected array objects extern.
> 
> gdb/ChangeLog:
> 2015-02-09  Pedro Alves  <palves@redhat.com>
> 
> 	* python/python.c (GdbMethods): Rename to ...
> 	(python_GdbMethods): ... this and make extern.
> 	(GdbModuleDef): Rename to ...
> 	(python_GdbModuleDef): ... this and make extern.
> ---
>  gdb/python/python.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/gdb/python/python.c b/gdb/python/python.c
> index 9854c79..a13638f 100644
> --- a/gdb/python/python.c
> +++ b/gdb/python/python.c
> @@ -103,10 +103,10 @@ const struct extension_language_defn extension_language_python =
>  
>  int gdb_python_initialized;
>  
> -static PyMethodDef GdbMethods[];
> +extern PyMethodDef python_GdbMethods[];
>  
>  #ifdef IS_PY3K
> -static struct PyModuleDef GdbModuleDef;
> +extern struct PyModuleDef python_GdbModuleDef;
>  #endif
>  
>  PyObject *gdb_module;
> @@ -1712,11 +1712,11 @@ message == an error message without a stack will be printed."),
>    PyEval_InitThreads ();
>  
>  #ifdef IS_PY3K
> -  gdb_module = PyModule_Create (&GdbModuleDef);
> +  gdb_module = PyModule_Create (&python_GdbModuleDef);
>    /* Add _gdb module to the list of known built-in modules.  */
>    _PyImport_FixupBuiltin (gdb_module, "_gdb");
>  #else
> -  gdb_module = Py_InitModule ("_gdb", GdbMethods);
> +  gdb_module = Py_InitModule ("_gdb", python_GdbMethods);
>  #endif
>    if (gdb_module == NULL)
>      goto fail;
> @@ -1932,7 +1932,7 @@ gdbpy_initialized (const struct extension_language_defn *extlang)
>  
>  #ifdef HAVE_PYTHON
>  
> -static PyMethodDef GdbMethods[] =
> +PyMethodDef python_GdbMethods[] =
>  {
>    { "history", gdbpy_history, METH_VARARGS,
>      "Get a value from history" },
> @@ -2044,7 +2044,7 @@ Return a tuple containing all inferiors." },
>  };
>  
>  #ifdef IS_PY3K
> -static struct PyModuleDef GdbModuleDef =
> +struct PyModuleDef python_GdbModuleDef =
>  {
>    PyModuleDef_HEAD_INIT,
>    "_gdb",

Hi Pedro,

I think you forgot one instance of GdbMethods, used when building with
Python 3. This should fix it:

From 33c839c7bb4bb201fa20f22e0935831b7e1de27f Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri, 27 Feb 2015 17:40:36 -0500
Subject: [PATCH] Fix Python 3 build

Rename forgotten GdbMethods to python_GdbMethods.

gdb/ChangeLog:

	* python/python.c (python_GdbModuleDef): Rename GdbMethods to
	python_GdbMethods.
---
 gdb/python/python.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Pedro Alves Feb. 27, 2015, 10:58 p.m. UTC | #1
On 02/27/2015 10:47 PM, Simon Marchi wrote:
> On 02/09/2015 06:20 PM, Pedro Alves wrote:

> I think you forgot one instance of GdbMethods, used when building with
> Python 3. This should fix it:
> 
> From 33c839c7bb4bb201fa20f22e0935831b7e1de27f Mon Sep 17 00:00:00 2001
> From: Simon Marchi <simon.marchi@ericsson.com>
> Date: Fri, 27 Feb 2015 17:40:36 -0500
> Subject: [PATCH] Fix Python 3 build
> 
> Rename forgotten GdbMethods to python_GdbMethods.

Whoops, sorry about that.  Please push.

Thank you.
  
Simon Marchi Feb. 27, 2015, 11:04 p.m. UTC | #2
On 02/27/2015 05:58 PM, Pedro Alves wrote:
> On 02/27/2015 10:47 PM, Simon Marchi wrote:
>> On 02/09/2015 06:20 PM, Pedro Alves wrote:
> 
>> I think you forgot one instance of GdbMethods, used when building with
>> Python 3. This should fix it:
>>
>> From 33c839c7bb4bb201fa20f22e0935831b7e1de27f Mon Sep 17 00:00:00 2001
>> From: Simon Marchi <simon.marchi@ericsson.com>
>> Date: Fri, 27 Feb 2015 17:40:36 -0500
>> Subject: [PATCH] Fix Python 3 build
>>
>> Rename forgotten GdbMethods to python_GdbMethods.
> 
> Whoops, sorry about that.  Please push.
> 
> Thank you.

Done!
  

Patch

diff --git a/gdb/python/python.c b/gdb/python/python.c
index a13638f..c3ffbae 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -2050,7 +2050,7 @@  struct PyModuleDef python_GdbModuleDef =
   "_gdb",
   NULL,
   -1,
-  GdbMethods,
+  python_GdbMethods,
   NULL,
   NULL,
   NULL,