[Mesa-dev] Name mangling in win32 build of EGL and GLESv2

Jose Fonseca jfonseca at vmware.com
Wed May 4 07:35:26 PDT 2011



----- Original Message -----
> Hi,
> 
> Looking at the Symbol table of a recent
> (66b66295d0bc856c69fdcccc22575580c7ecee16 ) libEGL.dll. I get the
> following mangled names:
> 
> eglBindAPI
> _eglBindContext
> _eglBindTexImage
> eglBindTexImage
> _eglBindWaylandDisplayWL at 8
> _eglCheckResource
> eglChooseConfig
> 
> That is stdcall and cdecl calling convention mixed?
> 
> and in libGLESv2.dll all functions are with stdcall conventions
> 
> _glActiveTexture at 4
> _glAttachShader at 8
> _glBindAttribLocation at 12
> _glBindBuffer at 8
> _glBindFramebuffer at 8
> 
> Then in libOpenVL.dll there is no mangling at all:
> vgSetf
> vgSetfv
> vgSeti
> vgSetiv
> vgShear
> vgTransformPath
> 
> Is this happening by accident or on purspose?

A bit of both.

Mesa in someplaces uses __declspec(export) attribute, other places .DEF files, and other both. Which is why you get this mixed.

IMO, we should stop using __declspec(export) attributes, and use .DEF files, which provide fine control over which symbols are public or not, and how are the names mangled.

Jose


More information about the mesa-dev mailing list