summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2011-12-05 15:24:49 -0800
committerIan Romanick <[email protected]>2011-12-13 16:07:17 -0800
commitbc35da409baff63a9928eca4c0ce673dd9288786 (patch)
tree94725d7bc931a67ae1884f814689cd3aec46b3e4
parentaf50f3bf4415c868259ce8ee5a0fe344f3539ecc (diff)
glapi/glx: Generate glapi_gentable.c so that the xserver can use it
Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Adam Jackson <[email protected]>
-rw-r--r--src/mapi/glapi/gen/gl_gentable.py38
1 files changed, 33 insertions, 5 deletions
diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py
index 814238a76e1..5657e327743 100644
--- a/src/mapi/glapi/gen/gl_gentable.py
+++ b/src/mapi/glapi/gen/gl_gentable.py
@@ -33,8 +33,20 @@ import license
import gl_XML, glX_XML
import sys, getopt
-header = """
-#if defined(DEBUG) && !defined(_WIN32_WCE)
+header = """/* GLXEXT is the define used in the xserver when the GLX extension is being
+ * built. Hijack this to determine whether this file is being built for the
+ * server or the client.
+ */
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#if (defined(GLXEXT) && defined(HAVE_BACKTRACE)) \\
+ || (!defined(GLXEXT) && defined(DEBUG) && !defined(_WIN32_WCE))
+#define USE_BACKTRACE
+#endif
+
+#ifdef USE_BACKTRACE
#include <execinfo.h>
#endif
@@ -47,11 +59,22 @@ header = """
#include "glapi.h"
#include "glapitable.h"
+#ifdef GLXEXT
+#include "os.h"
+#endif
+
static void
__glapi_gentable_NoOp(void) {
-#if defined(DEBUG) && !defined(_WIN32_WCE)
- if (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) {
- const char *fstr = "Unknown";
+ const char *fstr = "Unknown";
+
+ /* Silence potential GCC warning for some #ifdef paths.
+ */
+ (void) fstr;
+#if defined(USE_BACKTRACE)
+#if !defined(GLXEXT)
+ if (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
+#endif
+ {
void *frames[2];
if(backtrace(frames, 2) == 2) {
@@ -61,9 +84,14 @@ __glapi_gentable_NoOp(void) {
fstr = info.dli_sname;
}
+#if !defined(GLXEXT)
fprintf(stderr, "Call to unimplemented API: %s\\n", fstr);
+#endif
}
#endif
+#if defined(GLXEXT)
+ LogMessage(X_ERROR, "GLX: Call to unimplemented API: %s\\n", fstr);
+#endif
}
static void