From: Kristian Høgsberg Date: Tue, 26 Feb 2008 01:02:25 +0000 (-0500) Subject: Use dlsym() to avoid referencing __dri2DriverInitScreen. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=129b9ad16f95421d12f77c1bd3eca915d8768b78;p=mesa.git Use dlsym() to avoid referencing __dri2DriverInitScreen. Sort-of a stop-gap workaround. There are a couple of nicer ways to do this that doesn't require dlfcn.h, but they're more invasive. --- diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index 9928a0f0319..ce8ae5e2994 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -883,6 +883,11 @@ __DRI2_CREATE_NEW_SCREEN(int scrn, __DRIscreen *psc, static const __DRIextension *emptyExtensionList[] = { NULL }; dri_interface = interface; unsigned int *p; + __GLcontextModes *(*initScreen)(__DRIscreen *psc); + + initScreen = dlsym(NULL, __dri2DriverInitScreen); + if (initScreen == NULL) + return NULL; psp = _mesa_malloc(sizeof(*psp)); if (!psp) @@ -931,7 +936,7 @@ __DRI2_CREATE_NEW_SCREEN(int scrn, __DRIscreen *psc, psc->createNewDrawable = driCreateNewDrawable; psc->createNewContext = driCreateNewContext; - *driver_modes = __dri2DriverInitScreen(psp); + *driver_modes = initScreen(psp); if (*driver_modes == NULL) { drmBOUnmap(psp->fd, &psp->dri2.sareaBO); drmBOUnreference(psp->fd, &psp->dri2.sareaBO);