On 13.01.2018 12:36, Samuel Thibault wrote:
glXGetDriverConfig parameters do not provide a context to dynamically
check for the presence of the function, so the dispatcher directly calls
glXGetDriverConfig, but in non-dri builds dri_glx.c didn't provide
glXGetDriverConfig.

This change makes it provide a NULL-returning stub in non-dri builds.

Fixes: 84f764a7591 "glxglvnddispatch: Add missing dispatch for GetDriverConfig"

Would it be possible to instead modify dispatch_GetDriverConfig with an:

#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
   ...
#else
   return NULL;
#endif

That seems a lighter-weight approach to fixing the build error.

Cheers,
Nicolai



---
Compiling dri_glx.c in non-dri builds might be frowned upon. I'll be
happy to move the glXGetDriverConfig to another file if somebody tells
me which file would be the proper place.
---
  src/glx/Makefile.am |  2 +-
  src/glx/dri_glx.c   | 11 ++++++++++-
  src/glx/glxclient.h |  4 ++--
  3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
index 5448a0907..0ae403403 100644
--- a/src/glx/Makefile.am
+++ b/src/glx/Makefile.am
@@ -59,6 +59,7 @@ libglx_la_SOURCES = \
        clientinfo.c \
        compsize.c \
        create_context.c \
+       dri_glx.c \
        eval.c \
        glxclient.h \
        glxcmds.c \
@@ -123,7 +124,6 @@ libglx_la_SOURCES += \
        dri2_glx.c \
        dri2.h \
        dri2_priv.h \
-       dri_glx.c \
        dri_sarea.h \
        XF86dri.c \
        xf86dri.h \
diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c
index 5c4346cec..893cb4acd 100644
--- a/src/glx/dri_glx.c
+++ b/src/glx/dri_glx.c
@@ -32,12 +32,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   *
   */
+#include "glxclient.h"
+
  #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
#include <X11/Xlib.h>
  #include <X11/extensions/Xfixes.h>
  #include <X11/extensions/Xdamage.h>
-#include "glxclient.h"
  #include "xf86dri.h"
  #include "dri2.h"
  #include "dri_sarea.h"
@@ -1020,4 +1021,12 @@ driCreateDisplay(Display * dpy)
     return &pdpyp->base;
  }
+#else /* GLX_DIRECT_RENDERING */
+
+_GLX_PUBLIC const char *
+glXGetDriverConfig(const char *driverName)
+{
+  return NULL;
+}
+
  #endif /* GLX_DIRECT_RENDERING */
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index f3a36cf10..a1925a5fe 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -169,10 +169,10 @@ extern unsigned dri2GetSwapEventType(Display *dpy, XID 
drawable);
  */
  extern const char *glXGetScreenDriver(Display * dpy, int scrNum);
-extern const char *glXGetDriverConfig(const char *driverName);
-
  #endif
+extern const char *glXGetDriverConfig(const char *driverName);
+
  /************************************************************************/
#define __GL_CLIENT_ATTRIB_STACK_DEPTH 16


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to