[Mesa-dev] [PATCH] libGLw: Use newly introduced GLAPIVAR for variables

Stefan Dirsch sndirsch at suse.de
Tue Jul 17 18:40:10 UTC 2018


GLAPI doesn't have an 'extern' in some circumstances. This way,
variable declarations become definitions (fdo #100916).

Signed-off-by: Stefan Dirsch <sndirsch at suse.de>
---
 GLwDrawA.h  | 10 ++++++++--
 GLwDrawAP.h |  4 ++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/GLwDrawA.h b/GLwDrawA.h
index b9711c2..316a70d 100644
--- a/GLwDrawA.h
+++ b/GLwDrawA.h
@@ -131,12 +131,18 @@
 #define GLwNaccumAlphaSize	"accumAlphaSize"
 #define GLwCAccumAlphaSize	"AccumAlphaSize"
 
+#if (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+#  define GLAPIVAR extern __attribute__((visibility("default")))
+#else
+#  define GLAPIVAR extern
+#endif
+
 #ifdef __GLX_MOTIF
 
 typedef struct _GLwMDrawingAreaClassRec	*GLwMDrawingAreaWidgetClass;
 typedef struct _GLwMDrawingAreaRec	*GLwMDrawingAreaWidget;
 
-GLAPI WidgetClass glwMDrawingAreaWidgetClass;
+GLAPIVAR WidgetClass glwMDrawingAreaWidgetClass;
 
 
 #else 
@@ -144,7 +150,7 @@ GLAPI WidgetClass glwMDrawingAreaWidgetClass;
 typedef struct _GLwDrawingAreaClassRec	*GLwDrawingAreaWidgetClass;
 typedef struct _GLwDrawingAreaRec	*GLwDrawingAreaWidget;
 
-GLAPI WidgetClass glwDrawingAreaWidgetClass;
+GLAPIVAR WidgetClass glwDrawingAreaWidgetClass;
 
 
 #endif
diff --git a/GLwDrawAP.h b/GLwDrawAP.h
index 4ff21b4..6d29849 100644
--- a/GLwDrawAP.h
+++ b/GLwDrawAP.h
@@ -59,7 +59,7 @@ typedef struct _GLwMDrawingAreaClassRec {
   } GLwMDrawingAreaClassRec;
 
 
-GLAPI GLwMDrawingAreaClassRec glwMDrawingAreaClassRec;
+GLAPIVAR GLwMDrawingAreaClassRec glwMDrawingAreaClassRec;
 
 
 /* XT */
@@ -70,7 +70,7 @@ typedef struct _GLwDrawingAreaClassRec {
   GLwDrawingAreaClassPart     glwDrawingArea_class;
   } GLwDrawingAreaClassRec;
 
-GLAPI GLwDrawingAreaClassRec glwDrawingAreaClassRec;
+GLAPIVAR GLwDrawingAreaClassRec glwDrawingAreaClassRec;
 
 
 #endif 
-- 
2.16.4



More information about the mesa-dev mailing list