Hi All, 

Since I need to load osmesa and system GL api at the same time on Linux, I need 
to compile 10.5.9 osmesa in a mangled way. After a simple fix in glapi.h: 

/* Is this needed? It is incomplete anyway. */ 
/* 
#ifdef USE_MGL_NAMESPACE 
#define _glapi_set_dispatch _mglapi_set_dispatch 
#define _glapi_get_dispatch _mglapi_get_dispatch 
#define _glapi_set_context _mglapi_set_context 
#define _glapi_get_context _mglapi_get_context 
#define _glapi_Dispatch _mglapi_Dispatch 
#define _glapi_Context _mglapi_Context 
#endif 
*/ 

Now it compiles fine and here is my configuration: 

./configure CFLAGS="-O2" CXXFLAGS="-O2" --disable-xvmc --disable-glx 
--disable-dri --with-dri-drivers="" --with-gallium-drivers="swrast" 
--enable-texture-float --enable-shared-glapi --disable-egl --enable-mangling 
--with-egl-platforms="" --enable-gallium-osmesa --enable-gallium-llvm=yes 
--disable-llvm-shared-libs --with-osmesa-bits=32 --with-max-width=65536 
--with-max-height=65536 

But glClearColor is broken in a weird way that the value passed in is revised 
internally. Here is my call: 
mglClearColor(0.5f, 0.3f, 0.3f, 0.3f); 

But if I print out the value in _mesa_ClearColor() method of Clear.c. It shows: 
ClearColor: 0.000000, 2.000000, 2.000000, 2.000000 

I totally have no idea why this is happening while everything works fine with 
mangling disabled. 

Also, the compiler complains that mglGetString returns int instead of const 
GLubyte*: 
osdemo32.c:441:1: warning: format ‘%s’ expects argument of type ‘char *’, but 
argument 2 has type ‘int’ [-Wformat=] 
printf("Version: %s\n", mglGetString(GL_VERSION)); 

And mglGetString(GL_SHADING_LANGUAGE_VERSION) will crash the application while 
other string works fine. 

I also try to compile it with disable-shared-glapi flag, but I get errors. I am 
not sure this is because gl_mangle.h is dated. (If I manually add the following 
functions in gl_mangle.h, it compiles fine but some functions like 
glCreateShader will be totally messed up.) 

I would really appreciate it if someone have solutions because this is a very 
important project for us. 



CXXLD libMangledOSMesa32.la 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x5588):
 undefined reference to `glPointSizePointerOES' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ae8):
 undefined reference to `glPolygonOffsetClampEXT' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6b78):
 undefined reference to `glAlphaFuncx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6b90):
 undefined reference to `glClearColorx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ba8):
 undefined reference to `glClearDepthx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6bc0):
 undefined reference to `glColor4x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6bd8):
 undefined reference to `glDepthRangex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6bf0):
 undefined reference to `glFogx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c08):
 undefined reference to `glFogxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c20):
 undefined reference to `glFrustumf' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c38):
 undefined reference to `glFrustumx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c50):
 undefined reference to `glLightModelx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c68):
 undefined reference to `glLightModelxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c80):
 undefined reference to `glLightx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6c98):
 undefined reference to `glLightxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6cb0):
 undefined reference to `glLineWidthx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6cc8):
 undefined reference to `glLoadMatrixx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ce0):
 undefined reference to `glMaterialx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6cf8):
 undefined reference to `glMaterialxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d10):
 undefined reference to `glMultMatrixx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d28):
 undefined reference to `glMultiTexCoord4x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d40):
 undefined reference to `glNormal3x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d58):
 undefined reference to `glOrthof' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d70):
 undefined reference to `glOrthox' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6d88):
 undefined reference to `glPointSizex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6da0):
 undefined reference to `glPolygonOffsetx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6db8):
 undefined reference to `glRotatex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6dd0):
 undefined reference to `glSampleCoveragex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6de8):
 undefined reference to `glScalex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e00):
 undefined reference to `glTexEnvx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e18):
 undefined reference to `glTexEnvxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e30):
 undefined reference to `glTexParameterx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e48):
 undefined reference to `glTranslatex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e60):
 undefined reference to `glClipPlanef' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e78):
 undefined reference to `glClipPlanex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6e90):
 undefined reference to `glGetClipPlanef' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ea8):
 undefined reference to `glGetClipPlanex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ec0):
 undefined reference to `glGetFixedv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ed8):
 undefined reference to `glGetLightxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6ef0):
 undefined reference to `glGetMaterialxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6f08):
 undefined reference to `glGetTexEnvxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6f20):
 undefined reference to `glGetTexParameterxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6f38):
 undefined reference to `glPointParameterx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6f50):
 undefined reference to `glPointParameterxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x6f68):
 undefined reference to `glTexParameterxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9b78):
 undefined reference to `glAlphaFuncx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9b90):
 undefined reference to `glClearColorx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ba8):
 undefined reference to `glClearDepthx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9bc0):
 undefined reference to `glColor4x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9bd8):
 undefined reference to `glDepthRangex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9bf0):
 undefined reference to `glFogx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c08):
 undefined reference to `glFogxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c20):
 undefined reference to `glFrustumf' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c38):
 undefined reference to `glFrustumx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c50):
 undefined reference to `glLightModelx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c68):
 undefined reference to `glLightModelxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c80):
 undefined reference to `glLightx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9c98):
 undefined reference to `glLightxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9cb0):
 undefined reference to `glLineWidthx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9cc8):
 undefined reference to `glLoadMatrixx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ce0):
 undefined reference to `glMaterialx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9cf8):
 undefined reference to `glMaterialxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d10):
 undefined reference to `glMultMatrixx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d28):
 undefined reference to `glMultiTexCoord4x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d40):
 undefined reference to `glNormal3x' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d58):
 undefined reference to `glOrthof' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d70):
 undefined reference to `glOrthox' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9d88):
 undefined reference to `glPointSizex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9da0):
 undefined reference to `glPolygonOffsetx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9db8):
 undefined reference to `glRotatex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9dd0):
 undefined reference to `glSampleCoveragex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9de8):
 undefined reference to `glScalex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e00):
 undefined reference to `glTexEnvx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e18):
 undefined reference to `glTexEnvxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e30):
 undefined reference to `glTexParameterx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e48):
 undefined reference to `glTranslatex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e60):
 undefined reference to `glClipPlanef' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e78):
 undefined reference to `glClipPlanex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9e90):
 undefined reference to `glGetClipPlanef' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ea8):
 undefined reference to `glGetClipPlanex' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ec0):
 undefined reference to `glGetFixedv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ed8):
 undefined reference to `glGetLightxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9ef0):
 undefined reference to `glGetMaterialxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9f08):
 undefined reference to `glGetTexEnvxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9f20):
 undefined reference to `glGetTexParameterxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9f38):
 undefined reference to `glPointParameterx' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9f50):
 undefined reference to `glPointParameterxv' 
../../../../src/mapi/glapi/.libs/libglapi.a(glapi_libglapi_la-glapi_getproc.o):(.data.rel.ro+0x9f68):
 undefined reference to `glTexParameterxv' 
collect2: error: ld returned 1 exit status 



Yuzhu Lu 
Senior User Interface Developer 
Wolfram Research Inc. 


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

Reply via email to