Mesa (master): wgl: Use a separate .DEF for MinGW

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Feb 19 11:03:27 UTC 2009


Module: Mesa
Branch: master
Commit: 65fde5be8bd5e485dd69afc244568f164cf24fa4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=65fde5be8bd5e485dd69afc244568f164cf24fa4

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Feb 19 10:57:11 2009 +0000

wgl: Use a separate .DEF for MinGW

gnu linker fails to resolve the @n symbols, unless:
- they are listed verbatim in the .def
- they are already linked.

And mingw's .def parser is slightly incompatible with MSVC in respect with
underscores. Will try to work with upstream to fix this, but for now there
is no option other to use seperate .def for mingw.

---

 src/gallium/state_trackers/wgl/opengl32.mingw.def |  387 +++++++++++++++++++++
 src/gallium/winsys/gdi/SConscript                 |   12 +-
 2 files changed, 392 insertions(+), 7 deletions(-)

diff --git a/src/gallium/state_trackers/wgl/opengl32.mingw.def b/src/gallium/state_trackers/wgl/opengl32.mingw.def
new file mode 100644
index 0000000..1f03ea3
--- /dev/null
+++ b/src/gallium/state_trackers/wgl/opengl32.mingw.def
@@ -0,0 +1,387 @@
+EXPORTS
+;	GlmfBeginGlsBlock = GlmfBeginGlsBlock at 4
+;	GlmfCloseMetaFile = GlmfCloseMetaFile at 4
+;	GlmfEndGlsBlock = GlmfEndGlsBlock at 4
+;	GlmfEndPlayback = GlmfEndPlayback at 4
+;	GlmfInitPlayback = GlmfInitPlayback at 12
+;	GlmfPlayGlsRecord = GlmfPlayGlsRecord at 16
+	glAccum = glAccum at 8
+	glAlphaFunc = glAlphaFunc at 8
+	glAreTexturesResident = glAreTexturesResident at 12
+	glArrayElement = glArrayElement at 4
+	glBegin = glBegin at 4
+	glBindTexture = glBindTexture at 8
+	glBitmap = glBitmap at 28
+	glBlendFunc = glBlendFunc at 8
+	glCallList = glCallList at 4
+	glCallLists = glCallLists at 12
+	glClear = glClear at 4
+	glClearAccum = glClearAccum at 16
+	glClearColor = glClearColor at 16
+	glClearDepth = glClearDepth at 8
+	glClearIndex = glClearIndex at 4
+	glClearStencil = glClearStencil at 4
+	glClipPlane = glClipPlane at 8
+	glColor3b = glColor3b at 12
+	glColor3bv = glColor3bv at 4
+	glColor3d = glColor3d at 24
+	glColor3dv = glColor3dv at 4
+	glColor3f = glColor3f at 12
+	glColor3fv = glColor3fv at 4
+	glColor3i = glColor3i at 12
+	glColor3iv = glColor3iv at 4
+	glColor3s = glColor3s at 12
+	glColor3sv = glColor3sv at 4
+	glColor3ub = glColor3ub at 12
+	glColor3ubv = glColor3ubv at 4
+	glColor3ui = glColor3ui at 12
+	glColor3uiv = glColor3uiv at 4
+	glColor3us = glColor3us at 12
+	glColor3usv = glColor3usv at 4
+	glColor4b = glColor4b at 16
+	glColor4bv = glColor4bv at 4
+	glColor4d = glColor4d at 32
+	glColor4dv = glColor4dv at 4
+	glColor4f = glColor4f at 16
+	glColor4fv = glColor4fv at 4
+	glColor4i = glColor4i at 16
+	glColor4iv = glColor4iv at 4
+	glColor4s = glColor4s at 16
+	glColor4sv = glColor4sv at 4
+	glColor4ub = glColor4ub at 16
+	glColor4ubv = glColor4ubv at 4
+	glColor4ui = glColor4ui at 16
+	glColor4uiv = glColor4uiv at 4
+	glColor4us = glColor4us at 16
+	glColor4usv = glColor4usv at 4
+	glColorMask = glColorMask at 16
+	glColorMaterial = glColorMaterial at 8
+	glColorPointer = glColorPointer at 16
+	glCopyPixels = glCopyPixels at 20
+	glCopyTexImage1D = glCopyTexImage1D at 28
+	glCopyTexImage2D = glCopyTexImage2D at 32
+	glCopyTexSubImage1D = glCopyTexSubImage1D at 24
+	glCopyTexSubImage2D = glCopyTexSubImage2D at 32
+	glCullFace = glCullFace at 4
+;	glDebugEntry = glDebugEntry at 8
+	glDeleteLists = glDeleteLists at 8
+	glDeleteTextures = glDeleteTextures at 8
+	glDepthFunc = glDepthFunc at 4
+	glDepthMask = glDepthMask at 4
+	glDepthRange = glDepthRange at 16
+	glDisable = glDisable at 4
+	glDisableClientState = glDisableClientState at 4
+	glDrawArrays = glDrawArrays at 12
+	glDrawBuffer = glDrawBuffer at 4
+	glDrawElements = glDrawElements at 16
+	glDrawPixels = glDrawPixels at 20
+	glEdgeFlag = glEdgeFlag at 4
+	glEdgeFlagPointer = glEdgeFlagPointer at 8
+	glEdgeFlagv = glEdgeFlagv at 4
+	glEnable = glEnable at 4
+	glEnableClientState = glEnableClientState at 4
+	glEnd = glEnd at 0
+	glEndList = glEndList at 0
+	glEvalCoord1d = glEvalCoord1d at 8
+	glEvalCoord1dv = glEvalCoord1dv at 4
+	glEvalCoord1f = glEvalCoord1f at 4
+	glEvalCoord1fv = glEvalCoord1fv at 4
+	glEvalCoord2d = glEvalCoord2d at 16
+	glEvalCoord2dv = glEvalCoord2dv at 4
+	glEvalCoord2f = glEvalCoord2f at 8
+	glEvalCoord2fv = glEvalCoord2fv at 4
+	glEvalMesh1 = glEvalMesh1 at 12
+	glEvalMesh2 = glEvalMesh2 at 20
+	glEvalPoint1 = glEvalPoint1 at 4
+	glEvalPoint2 = glEvalPoint2 at 8
+	glFeedbackBuffer = glFeedbackBuffer at 12
+	glFinish = glFinish at 0
+	glFlush = glFlush at 0
+	glFogf = glFogf at 8
+	glFogfv = glFogfv at 8
+	glFogi = glFogi at 8
+	glFogiv = glFogiv at 8
+	glFrontFace = glFrontFace at 4
+	glFrustum = glFrustum at 48
+	glGenLists = glGenLists at 4
+	glGenTextures = glGenTextures at 8
+	glGetBooleanv = glGetBooleanv at 8
+	glGetClipPlane = glGetClipPlane at 8
+	glGetDoublev = glGetDoublev at 8
+	glGetError = glGetError at 0
+	glGetFloatv = glGetFloatv at 8
+	glGetIntegerv = glGetIntegerv at 8
+	glGetLightfv = glGetLightfv at 12
+	glGetLightiv = glGetLightiv at 12
+	glGetMapdv = glGetMapdv at 12
+	glGetMapfv = glGetMapfv at 12
+	glGetMapiv = glGetMapiv at 12
+	glGetMaterialfv = glGetMaterialfv at 12
+	glGetMaterialiv = glGetMaterialiv at 12
+	glGetPixelMapfv = glGetPixelMapfv at 8
+	glGetPixelMapuiv = glGetPixelMapuiv at 8
+	glGetPixelMapusv = glGetPixelMapusv at 8
+	glGetPointerv = glGetPointerv at 8
+	glGetPolygonStipple = glGetPolygonStipple at 4
+	glGetString = glGetString at 4
+	glGetTexEnvfv = glGetTexEnvfv at 12
+	glGetTexEnviv = glGetTexEnviv at 12
+	glGetTexGendv = glGetTexGendv at 12
+	glGetTexGenfv = glGetTexGenfv at 12
+	glGetTexGeniv = glGetTexGeniv at 12
+	glGetTexImage = glGetTexImage at 20
+	glGetTexLevelParameterfv = glGetTexLevelParameterfv at 16
+	glGetTexLevelParameteriv = glGetTexLevelParameteriv at 16
+	glGetTexParameterfv = glGetTexParameterfv at 12
+	glGetTexParameteriv = glGetTexParameteriv at 12
+	glHint = glHint at 8
+	glIndexMask = glIndexMask at 4
+	glIndexPointer = glIndexPointer at 12
+	glIndexd = glIndexd at 8
+	glIndexdv = glIndexdv at 4
+	glIndexf = glIndexf at 4
+	glIndexfv = glIndexfv at 4
+	glIndexi = glIndexi at 4
+	glIndexiv = glIndexiv at 4
+	glIndexs = glIndexs at 4
+	glIndexsv = glIndexsv at 4
+	glIndexub = glIndexub at 4
+	glIndexubv = glIndexubv at 4
+	glInitNames = glInitNames at 0
+	glInterleavedArrays = glInterleavedArrays at 12
+	glIsEnabled = glIsEnabled at 4
+	glIsList = glIsList at 4
+	glIsTexture = glIsTexture at 4
+	glLightModelf = glLightModelf at 8
+	glLightModelfv = glLightModelfv at 8
+	glLightModeli = glLightModeli at 8
+	glLightModeliv = glLightModeliv at 8
+	glLightf = glLightf at 12
+	glLightfv = glLightfv at 12
+	glLighti = glLighti at 12
+	glLightiv = glLightiv at 12
+	glLineStipple = glLineStipple at 8
+	glLineWidth = glLineWidth at 4
+	glListBase = glListBase at 4
+	glLoadIdentity = glLoadIdentity at 0
+	glLoadMatrixd = glLoadMatrixd at 4
+	glLoadMatrixf = glLoadMatrixf at 4
+	glLoadName = glLoadName at 4
+	glLogicOp = glLogicOp at 4
+	glMap1d = glMap1d at 32
+	glMap1f = glMap1f at 24
+	glMap2d = glMap2d at 56
+	glMap2f = glMap2f at 40
+	glMapGrid1d = glMapGrid1d at 20
+	glMapGrid1f = glMapGrid1f at 12
+	glMapGrid2d = glMapGrid2d at 40
+	glMapGrid2f = glMapGrid2f at 24
+	glMaterialf = glMaterialf at 12
+	glMaterialfv = glMaterialfv at 12
+	glMateriali = glMateriali at 12
+	glMaterialiv = glMaterialiv at 12
+	glMatrixMode = glMatrixMode at 4
+	glMultMatrixd = glMultMatrixd at 4
+	glMultMatrixf = glMultMatrixf at 4
+	glNewList = glNewList at 8
+	glNormal3b = glNormal3b at 12
+	glNormal3bv = glNormal3bv at 4
+	glNormal3d = glNormal3d at 24
+	glNormal3dv = glNormal3dv at 4
+	glNormal3f = glNormal3f at 12
+	glNormal3fv = glNormal3fv at 4
+	glNormal3i = glNormal3i at 12
+	glNormal3iv = glNormal3iv at 4
+	glNormal3s = glNormal3s at 12
+	glNormal3sv = glNormal3sv at 4
+	glNormalPointer = glNormalPointer at 12
+	glOrtho = glOrtho at 48
+	glPassThrough = glPassThrough at 4
+	glPixelMapfv = glPixelMapfv at 12
+	glPixelMapuiv = glPixelMapuiv at 12
+	glPixelMapusv = glPixelMapusv at 12
+	glPixelStoref = glPixelStoref at 8
+	glPixelStorei = glPixelStorei at 8
+	glPixelTransferf = glPixelTransferf at 8
+	glPixelTransferi = glPixelTransferi at 8
+	glPixelZoom = glPixelZoom at 8
+	glPointSize = glPointSize at 4
+	glPolygonMode = glPolygonMode at 8
+	glPolygonOffset = glPolygonOffset at 8
+	glPolygonStipple = glPolygonStipple at 4
+	glPopAttrib = glPopAttrib at 0
+	glPopClientAttrib = glPopClientAttrib at 0
+	glPopMatrix = glPopMatrix at 0
+	glPopName = glPopName at 0
+	glPrioritizeTextures = glPrioritizeTextures at 12
+	glPushAttrib = glPushAttrib at 4
+	glPushClientAttrib = glPushClientAttrib at 4
+	glPushMatrix = glPushMatrix at 0
+	glPushName = glPushName at 4
+	glRasterPos2d = glRasterPos2d at 16
+	glRasterPos2dv = glRasterPos2dv at 4
+	glRasterPos2f = glRasterPos2f at 8
+	glRasterPos2fv = glRasterPos2fv at 4
+	glRasterPos2i = glRasterPos2i at 8
+	glRasterPos2iv = glRasterPos2iv at 4
+	glRasterPos2s = glRasterPos2s at 8
+	glRasterPos2sv = glRasterPos2sv at 4
+	glRasterPos3d = glRasterPos3d at 24
+	glRasterPos3dv = glRasterPos3dv at 4
+	glRasterPos3f = glRasterPos3f at 12
+	glRasterPos3fv = glRasterPos3fv at 4
+	glRasterPos3i = glRasterPos3i at 12
+	glRasterPos3iv = glRasterPos3iv at 4
+	glRasterPos3s = glRasterPos3s at 12
+	glRasterPos3sv = glRasterPos3sv at 4
+	glRasterPos4d = glRasterPos4d at 32
+	glRasterPos4dv = glRasterPos4dv at 4
+	glRasterPos4f = glRasterPos4f at 16
+	glRasterPos4fv = glRasterPos4fv at 4
+	glRasterPos4i = glRasterPos4i at 16
+	glRasterPos4iv = glRasterPos4iv at 4
+	glRasterPos4s = glRasterPos4s at 16
+	glRasterPos4sv = glRasterPos4sv at 4
+	glReadBuffer = glReadBuffer at 4
+	glReadPixels = glReadPixels at 28
+	glRectd = glRectd at 32
+	glRectdv = glRectdv at 8
+	glRectf = glRectf at 16
+	glRectfv = glRectfv at 8
+	glRecti = glRecti at 16
+	glRectiv = glRectiv at 8
+	glRects = glRects at 16
+	glRectsv = glRectsv at 8
+	glRenderMode = glRenderMode at 4
+	glRotated = glRotated at 32
+	glRotatef = glRotatef at 16
+	glScaled = glScaled at 24
+	glScalef = glScalef at 12
+	glScissor = glScissor at 16
+	glSelectBuffer = glSelectBuffer at 8
+	glShadeModel = glShadeModel at 4
+	glStencilFunc = glStencilFunc at 12
+	glStencilMask = glStencilMask at 4
+	glStencilOp = glStencilOp at 12
+	glTexCoord1d = glTexCoord1d at 8
+	glTexCoord1dv = glTexCoord1dv at 4
+	glTexCoord1f = glTexCoord1f at 4
+	glTexCoord1fv = glTexCoord1fv at 4
+	glTexCoord1i = glTexCoord1i at 4
+	glTexCoord1iv = glTexCoord1iv at 4
+	glTexCoord1s = glTexCoord1s at 4
+	glTexCoord1sv = glTexCoord1sv at 4
+	glTexCoord2d = glTexCoord2d at 16
+	glTexCoord2dv = glTexCoord2dv at 4
+	glTexCoord2f = glTexCoord2f at 8
+	glTexCoord2fv = glTexCoord2fv at 4
+	glTexCoord2i = glTexCoord2i at 8
+	glTexCoord2iv = glTexCoord2iv at 4
+	glTexCoord2s = glTexCoord2s at 8
+	glTexCoord2sv = glTexCoord2sv at 4
+	glTexCoord3d = glTexCoord3d at 24
+	glTexCoord3dv = glTexCoord3dv at 4
+	glTexCoord3f = glTexCoord3f at 12
+	glTexCoord3fv = glTexCoord3fv at 4
+	glTexCoord3i = glTexCoord3i at 12
+	glTexCoord3iv = glTexCoord3iv at 4
+	glTexCoord3s = glTexCoord3s at 12
+	glTexCoord3sv = glTexCoord3sv at 4
+	glTexCoord4d = glTexCoord4d at 32
+	glTexCoord4dv = glTexCoord4dv at 4
+	glTexCoord4f = glTexCoord4f at 16
+	glTexCoord4fv = glTexCoord4fv at 4
+	glTexCoord4i = glTexCoord4i at 16
+	glTexCoord4iv = glTexCoord4iv at 4
+	glTexCoord4s = glTexCoord4s at 16
+	glTexCoord4sv = glTexCoord4sv at 4
+	glTexCoordPointer = glTexCoordPointer at 16
+	glTexEnvf = glTexEnvf at 12
+	glTexEnvfv = glTexEnvfv at 12
+	glTexEnvi = glTexEnvi at 12
+	glTexEnviv = glTexEnviv at 12
+	glTexGend = glTexGend at 16
+	glTexGendv = glTexGendv at 12
+	glTexGenf = glTexGenf at 12
+	glTexGenfv = glTexGenfv at 12
+	glTexGeni = glTexGeni at 12
+	glTexGeniv = glTexGeniv at 12
+	glTexImage1D = glTexImage1D at 32
+	glTexImage2D = glTexImage2D at 36
+	glTexParameterf = glTexParameterf at 12
+	glTexParameterfv = glTexParameterfv at 12
+	glTexParameteri = glTexParameteri at 12
+	glTexParameteriv = glTexParameteriv at 12
+	glTexSubImage1D = glTexSubImage1D at 28
+	glTexSubImage2D = glTexSubImage2D at 36
+	glTranslated = glTranslated at 24
+	glTranslatef = glTranslatef at 12
+	glVertex2d = glVertex2d at 16
+	glVertex2dv = glVertex2dv at 4
+	glVertex2f = glVertex2f at 8
+	glVertex2fv = glVertex2fv at 4
+	glVertex2i = glVertex2i at 8
+	glVertex2iv = glVertex2iv at 4
+	glVertex2s = glVertex2s at 8
+	glVertex2sv = glVertex2sv at 4
+	glVertex3d = glVertex3d at 24
+	glVertex3dv = glVertex3dv at 4
+	glVertex3f = glVertex3f at 12
+	glVertex3fv = glVertex3fv at 4
+	glVertex3i = glVertex3i at 12
+	glVertex3iv = glVertex3iv at 4
+	glVertex3s = glVertex3s at 12
+	glVertex3sv = glVertex3sv at 4
+	glVertex4d = glVertex4d at 32
+	glVertex4dv = glVertex4dv at 4
+	glVertex4f = glVertex4f at 16
+	glVertex4fv = glVertex4fv at 4
+	glVertex4i = glVertex4i at 16
+	glVertex4iv = glVertex4iv at 4
+	glVertex4s = glVertex4s at 16
+	glVertex4sv = glVertex4sv at 4
+	glVertexPointer = glVertexPointer at 16
+	glViewport = glViewport at 16
+	wglChoosePixelFormat = wglChoosePixelFormat at 8
+	wglCopyContext = wglCopyContext at 12
+	wglCreateContext = wglCreateContext at 4
+	wglCreateLayerContext = wglCreateLayerContext at 8
+	wglDeleteContext = wglDeleteContext at 4
+	wglDescribeLayerPlane = wglDescribeLayerPlane at 20
+	wglDescribePixelFormat = wglDescribePixelFormat at 16
+	wglGetCurrentContext = wglGetCurrentContext at 0
+	wglGetCurrentDC = wglGetCurrentDC at 0
+;	wglGetDefaultProcAddress = wglGetDefaultProcAddress at 4
+	wglGetLayerPaletteEntries = wglGetLayerPaletteEntries at 20
+	wglGetPixelFormat = wglGetPixelFormat at 4
+	wglGetProcAddress = wglGetProcAddress at 4
+	wglMakeCurrent = wglMakeCurrent at 8
+	wglRealizeLayerPalette = wglRealizeLayerPalette at 12
+	wglSetLayerPaletteEntries = wglSetLayerPaletteEntries at 20
+	wglSetPixelFormat = wglSetPixelFormat at 12
+	wglShareLists = wglShareLists at 8
+	wglSwapBuffers = wglSwapBuffers at 4
+	wglSwapLayerBuffers = wglSwapLayerBuffers at 8
+;	wglSwapMultipleBuffers = wglSwapMultipleBuffers at 8
+	wglUseFontBitmapsA = wglUseFontBitmapsA at 16
+	wglUseFontBitmapsW = wglUseFontBitmapsW at 16
+	wglUseFontOutlinesA = wglUseFontOutlinesA at 32
+	wglUseFontOutlinesW = wglUseFontOutlinesW at 32
+	DrvCopyContext = DrvCopyContext at 12
+	DrvCreateContext = DrvCreateContext at 4
+	DrvCreateLayerContext = DrvCreateLayerContext at 8
+	DrvDeleteContext = DrvDeleteContext at 4
+	DrvDescribeLayerPlane = DrvDescribeLayerPlane at 20
+	DrvDescribePixelFormat = DrvDescribePixelFormat at 16
+	DrvGetLayerPaletteEntries = DrvGetLayerPaletteEntries at 20
+	DrvGetProcAddress = DrvGetProcAddress at 4
+	DrvRealizeLayerPalette = DrvRealizeLayerPalette at 12
+	DrvReleaseContext = DrvReleaseContext at 4
+	DrvSetCallbackProcs = DrvSetCallbackProcs at 8
+	DrvSetContext = DrvSetContext at 12
+	DrvSetLayerPaletteEntries = DrvSetLayerPaletteEntries at 20
+	DrvSetPixelFormat = DrvSetPixelFormat at 8
+	DrvShareLists = DrvShareLists at 8
+	DrvSwapBuffers = DrvSwapBuffers at 4
+	DrvSwapLayerBuffers = DrvSwapLayerBuffers at 8
+	DrvValidateVersion = DrvValidateVersion at 4
diff --git a/src/gallium/winsys/gdi/SConscript b/src/gallium/winsys/gdi/SConscript
index f9c1a34..72b5df8 100644
--- a/src/gallium/winsys/gdi/SConscript
+++ b/src/gallium/winsys/gdi/SConscript
@@ -11,12 +11,6 @@ if env['platform'] == 'windows':
 		'#src/gallium/state_trackers/wgl',
 	])
 
-	env.Append(CPPDEFINES = [
-		'__GL_EXPORTS',
-		'BUILD_GL32',
-		'_GNU_H_WINDOWS32_DEFINES',
-	])
-
 	env.Append(LIBS = [
 		'gdi32',
 		'user32',
@@ -24,9 +18,13 @@ if env['platform'] == 'windows':
 	])
 
 	sources = [
-		'#src/gallium/state_trackers/wgl/opengl32.def',
 		'gdi_softpipe_winsys.c',
 	]
+	
+	if env['toolchain'] == 'crossmingw':
+		sources += ['#src/gallium/state_trackers/wgl/opengl32.mingw.def']
+	else:
+		sources += ['#src/gallium/state_trackers/wgl/opengl32.def']
 		
 	drivers = [
 		softpipe,




More information about the mesa-commit mailing list