[geany/geany-plugins] add447: GeanyPy: Fix build with -fno-common: use extern and NO_IMPORT_PYGOBJECT
Enrico Tröger
git-noreply at xxxxx
Wed Nov 13 03:02:35 UTC 2013
Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger at uvena.de>
Committer: Matthew Brush <matt at geany.org>
Date: Wed, 13 Nov 2013 03:02:35 UTC
Commit: add44778fd12390b57b5f8741aa6e4ebd23c85d5
https://github.com/geany/geany-plugins/commit/add44778fd12390b57b5f8741aa6e4ebd23c85d5
Log Message:
-----------
GeanyPy: Fix build with -fno-common: use extern and NO_IMPORT_PYGOBJECT
Define global variables as extern in the header files to fix build with the gcc
option -fno-common.
Also, define NO_IMPORT_PYGOBJECT and NO_IMPORT_PYGTK for PyGTK
as this also fails to build with linker errors if the headers are included multiple
times.
Closes #120
Modified Paths:
--------------
geanypy/src/geanypy-editor.h
geanypy/src/geanypy-encoding.h
geanypy/src/geanypy-plugin.c
geanypy/src/geanypy-project.h
geanypy/src/geanypy-scintilla.h
geanypy/src/geanypy-uiutils.h
geanypy/src/geanypy.h
Modified: geanypy/src/geanypy-editor.h
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -1,7 +1,7 @@
#ifndef GEANYPY_EDITOR_H__
#define GEANYPY_EDITOR_H__
-PyTypeObject IndentPrefsType;
+extern PyTypeObject IndentPrefsType;
typedef struct
{
Modified: geanypy/src/geanypy-encoding.h
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -1,7 +1,7 @@
#ifndef GEANYPY_ENCODING_H__
#define GEANYPY_ENCODING_H__
-PyTypeObject EncodingType;
+extern PyTypeObject EncodingType;
typedef struct
{
Modified: geanypy/src/geanypy-plugin.c
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -19,6 +19,8 @@
* MA 02110-1301, USA.
*/
+#define INCLUDE_PYGOBJECT_ONCE_FULL
+
#include "geanypy.h"
G_MODULE_EXPORT GeanyPlugin *geany_plugin;
Modified: geanypy/src/geanypy-project.h
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -1,7 +1,7 @@
#ifndef GEANYPY_PROJECT_H__
#define GEANYPY_PROJECT_H__
-PyTypeObject ProjectType;
+extern PyTypeObject ProjectType;
typedef struct
{
Modified: geanypy/src/geanypy-scintilla.h
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
#ifndef GEANYPY_SCINTILLA_H__
#define GEANYPY_SCINTILLA_H__
-PyTypeObject NotificationType;
-PyTypeObject NotifyHeaderType;
+extern PyTypeObject NotificationType;
+extern PyTypeObject NotifyHeaderType;
typedef struct
{
Modified: geanypy/src/geanypy-uiutils.h
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
#ifndef GEANYPY_UI_UTILS_H__
#define GEANYPY_UI_UTILS_H__
-PyTypeObject InterfacePrefsType;
-PyTypeObject MainWidgetsType;
+extern PyTypeObject InterfacePrefsType;
+extern PyTypeObject MainWidgetsType;
typedef struct
{
Modified: geanypy/src/geanypy.h
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -75,6 +75,15 @@
#include <string.h>
#include <gtk/gtk.h>
+
+/* necessary for compilation with -fno-common,
+ * see https://bugzilla.gnome.org/show_bug.cgi?id=610657 for details,
+ * INCLUDE_PYGOBJECT_ONCE_FULL is set only once in geanypy-plugin.c */
+#ifndef INCLUDE_PYGOBJECT_ONCE_FULL
+# define NO_IMPORT_PYGOBJECT
+# define NO_IMPORT_PYGTK
+#endif
+
#include <pygobject.h>
#ifndef GEANYPY_WINDOWS
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list