> I'd say it would be better to reuse *-def.cpp files (didn't know something
> like that existed).
I've preprocessed all *-def.cpp files included in XFree86/xc/lib, gathered
all symbols currently exported from XFree86 shared libraries, all undefined symbols
in > 5800 shared libraries and binaries I found on my box which are
satisfied by one of XFree86 shared libraries and attached are results.
The first is a MUST list, symbols which are exported from XFree86 shared
libraries now when there is no anonymous version script, are not exported
when an anonymous versions script created from stock *-def.cpp file
is applied and are used by some binary or shared library (including other
shared libraries in the XFree86 collection). There is IMHO no way other
than adding these to *-def.cpp files (any issues with this)?
For libGL.so, as anonymous version scripts accept wildcards, I think
we should use gl* wildcard, as it is too error-prone to list all
the gl* functions.
For libGLU.so, I think we should export everything, no version script
on Linux.
Second is a MAY list. These are symbols ATM exported from the shared
libraries, which would be hidden by linker script but which looked to me
like they are in the standard namespace of the libraries and thus might
be good candidates for exports.
Can anyone please review these and tell me if there are some which
definitely shouldn't be exported?
I can supply a tarball with all the symbols ATM exported, exported via
*-def.cpp, used etc. to interested parties if you want to do more
investigations.
I'll follow up with a patch which exports MUST + current *-def.cpp ones
and will wait for responses about the MAY list (or candidates not even
on MAY list).
Jakub
libGL.so
XF86DRIAuthConnection
XF86DRICloseConnection
XF86DRICloseFullScreen
XF86DRICreateContext
XF86DRICreateDrawable
XF86DRIDestroyContext
XF86DRIDestroyDrawable
XF86DRIGetClientDriverName
XF86DRIGetDeviceInfo
XF86DRIGetDrawableInfo
XF86DRIOpenConnection
XF86DRIOpenFullScreen
XF86DRIQueryDirectRenderingCapable
XF86DRIQueryVersion
__glXFindDRIScreen
__glXInitialize
_gl_tls_Context
_glapi_Context
_glapi_add_entrypoint
_glapi_check_multithread
_glapi_get_context
_glapi_get_dispatch_table_size
_glapi_noop_enable_warnings
_glapi_set_context
_glapi_set_dispatch
_glthread_GetID
glColorSubTable
glColorTable
glColorTableEXT
glConvolutionFilter1D
glConvolutionFilter2D
glFogCoorddvEXT
glFogCoordfEXT
glFogCoordfvEXT
glMultiTexCoord1dvARB
glMultiTexCoord1fARB
glMultiTexCoord1fvARB
glMultiTexCoord1ivARB
glMultiTexCoord1svARB
glMultiTexCoord2dvARB
glMultiTexCoord2fARB
glMultiTexCoord2fvARB
glMultiTexCoord2ivARB
glMultiTexCoord2svARB
glMultiTexCoord3dvARB
glMultiTexCoord3fARB
glMultiTexCoord3fvARB
glMultiTexCoord3ivARB
glMultiTexCoord3svARB
glMultiTexCoord4dvARB
glMultiTexCoord4fARB
glMultiTexCoord4fvARB
glMultiTexCoord4ivARB
glMultiTexCoord4svARB
glSecondaryColor3bvEXT
glSecondaryColor3dvEXT
glSecondaryColor3fEXT
glSecondaryColor3fvEXT
glSecondaryColor3ivEXT
glSecondaryColor3svEXT
glSecondaryColor3ubEXT
glSecondaryColor3ubvEXT
glSecondaryColor3uivEXT
glSecondaryColor3usvEXT
libGLU.so export all?
libICE.so
_IceTransNoListen
libXaw.so.7
_XawTextGetSTRING
libXaw.so.6
_XawTextGetSTRING
libXcursor.so
XcursorImageHash
libXext.so
XShmAttach
XShmCreateImage
XShmCreatePixmap
XShmDetach
XShmGetEventBase
XShmGetImage
XShmPixmapFormat
XShmPutImage
XShmQueryExtension
XShmQueryVersion
libXrandr.so
XRRConfigCurrentConfiguration
XRRConfigCurrentRate
XRRConfigRates
XRRConfigRotations
XRRConfigSizes
XRRFreeScreenConfigInfo
XRRRates
XRRSelectInput
XRRSetScreenConfigAndRate
XRRUpdateConfiguration
libXrender.so
XRenderCreateAnimCursor
libXt.so
_XtCountVaList
_XtDefaultWarningMsg
_XtVaToArgList
colorConvertArgs
libGL.so
DRI_glXUseXFont
XF86DRIQueryExtension
__glFreeAttributeState
__glXClientInfo
__glXCloseDisplay
__glXDebug
__glXExtensionInfo
__glXFlushRenderBuffer
__glXFreeContext
__glXGetCurrentContext
__glXInitVertexArrayState
__glXNewIndirectAPI
__glXRegisterExtensions
__glXRegisterGLXExtensionString
__glXRegisterGLXFunction
__glXSendLargeCommand
__glXSetCurrentContext
__glXSetupForCommand
__glXmutex
__glXstrdup
_gl_tls_Dispatch
_gl_tls_GLXContext
_gl_tls_RealDispatch
_glapi_begin_dispatch_override
_glapi_check_table
_glapi_end_dispatch_override
_glapi_get_dispatch
_glapi_get_override_dispatch
_glapi_get_proc_address
_glapi_get_proc_name
_glapi_get_proc_offset
_glapi_get_version
_glthread_GetTSD
_glthread_InitTSD
_glthread_SetTSD
driCreateDisplay
glActiveTexture
glActiveTextureARB
glAreTexturesResidentEXT
glArrayElementEXT
glBindTextureEXT
glBlendColor
glBlendEquation
glBlendFuncSeparateEXT
glClientActiveTexture
glClientActiveTextureARB
glColorPointerEXT
glColorSubTableEXT
glColorTableParameterfv
glColorTableParameterfvSGI
glColorTableParameteriv
glColorTableParameterivSGI
glColorTableSGI
glCombinerInputNV
glCombinerOutputNV
glCombinerParameterfNV
glCombinerParameterfvNV
glCombinerParameteriNV
glCombinerParameterivNV
glCompressedTexImage1D
glCompressedTexImage1DARB
glCompressedTexImage2D
glCompressedTexImage2DARB
glCompressedTexImage3D
glCompressedTexImage3DARB
glCompressedTexSubImage1D
glCompressedTexSubImage1DARB
glCompressedTexSubImage2D
glCompressedTexSubImage2DARB
glCompressedTexSubImage3D
glCompressedTexSubImage3DARB
glConvolutionFilter1DEXT
glConvolutionFilter2DEXT
glConvolutionParameterf
glConvolutionParameterfEXT
glConvolutionParameterfv
glConvolutionParameterfvEXT
glConvolutionParameteri
glConvolutionParameteriEXT
glConvolutionParameteriv
glConvolutionParameterivEXT
glCopyColorSubTable
glCopyColorSubTableEXT
glCopyColorTable
glCopyColorTableSGI
glCopyConvolutionFilter1D
glCopyConvolutionFilter1DEXT
glCopyConvolutionFilter2D
glCopyConvolutionFilter2DEXT
glCopyTexImage1DEXT
glCopyTexImage2DEXT
glCopyTexSubImage1DEXT
glCopyTexSubImage2DEXT
glCopyTexSubImage3DEXT
glCullParameterdvEXT
glCullParameterfvEXT
glDeleteTexturesEXT
glDetailTexFuncSGIS
glDrawArraysEXT
glDrawRangeElementsEXT
glEdgeFlagPointerEXT
glFinalCombinerInputNV
glFlushRasterSGIX
glFlushVertexArrayRangeNV
glFogCoordPointerEXT
glFogCoorddEXT
glFragmentColorMaterialSGIX
glFragmentLightModelfSGIX
glFragmentLightModelfvSGIX
glFragmentLightModeliSGIX
glFragmentLightModelivSGIX
glFragmentLightfSGIX
glFragmentLightfvSGIX
glFragmentLightiSGIX
glFragmentLightivSGIX
glFragmentMaterialfSGIX
glFragmentMaterialfvSGIX
glFragmentMaterialiSGIX
glFragmentMaterialivSGIX
glFrameZoomSGIX
glGenTexturesEXT
glGetColorTable
glGetColorTableEXT
glGetColorTableParameterfv
glGetColorTableParameterfvEXT
glGetColorTableParameterfvSGI
glGetColorTableParameteriv
glGetColorTableParameterivEXT
glGetColorTableParameterivSGI
glGetColorTableSGI
glGetCombinerInputParameterfvNV
glGetCombinerInputParameterivNV
glGetCombinerOutputParameterfvNV
glGetCombinerOutputParameterivNV
glGetCompressedTexImage
glGetCompressedTexImageARB
glGetConvolutionFilter
glGetConvolutionFilterEXT
glGetConvolutionParameterfv
glGetConvolutionParameterfvEXT
glGetConvolutionParameteriv
glGetConvolutionParameterivEXT
glGetDetailTexFuncSGIS
glGetFinalCombinerInputParameterfvNV
glGetFinalCombinerInputParameterivNV
glGetFragmentLightfvSGIX
glGetFragmentLightivSGIX
glGetFragmentMaterialfvSGIX
glGetFragmentMaterialivSGIX
glGetHistogram
glGetHistogramEXT
glGetHistogramParameterfv
glGetHistogramParameterfvEXT
glGetHistogramParameteriv
glGetHistogramParameterivEXT
glGetInstrumentsSGIX
glGetListParameterfvSGIX
glGetListParameterivSGIX
glGetMinmax
glGetMinmaxEXT
glGetMinmaxParameterfv
glGetMinmaxParameterfvEXT
glGetMinmaxParameteriv
glGetMinmaxParameterivEXT
glGetPixelTexGenParameterfvSGIS
glGetPixelTexGenParameterivSGIS
glGetPointervEXT
glGetSeparableFilter
glGetSeparableFilterEXT
glGetSharpenTexFuncSGIS
glGetTexFilterFuncSGIS
glHintPGI
glHistogram
glHistogramEXT
glIndexFuncEXT
glIndexMaterialEXT
glIndexPointerEXT
glInstrumentsBufferSGIX
glIsTextureEXT
glLightEnviSGIX
glListParameterfSGIX
glListParameterfvSGIX
glListParameteriSGIX
glListParameterivSGIX
glLoadTransposeMatrixd
glLoadTransposeMatrixdARB
glLoadTransposeMatrixf
glLoadTransposeMatrixfARB
glLockArraysEXT
glMinmax
glMinmaxEXT
glMultTransposeMatrixd
glMultTransposeMatrixdARB
glMultTransposeMatrixf
glMultTransposeMatrixfARB
glMultiTexCoord1d
glMultiTexCoord1dARB
glMultiTexCoord1dv
glMultiTexCoord1f
glMultiTexCoord1fv
glMultiTexCoord1i
glMultiTexCoord1iARB
glMultiTexCoord1iv
glMultiTexCoord1s
glMultiTexCoord1sARB
glMultiTexCoord1sv
glMultiTexCoord2d
glMultiTexCoord2dARB
glMultiTexCoord2dv
glMultiTexCoord2f
glMultiTexCoord2fv
glMultiTexCoord2i
glMultiTexCoord2iARB
glMultiTexCoord2iv
glMultiTexCoord2s
glMultiTexCoord2sARB
glMultiTexCoord2sv
glMultiTexCoord3d
glMultiTexCoord3dARB
glMultiTexCoord3dv
glMultiTexCoord3f
glMultiTexCoord3fv
glMultiTexCoord3i
glMultiTexCoord3iARB
glMultiTexCoord3iv
glMultiTexCoord3s
glMultiTexCoord3sARB
glMultiTexCoord3sv
glMultiTexCoord4d
glMultiTexCoord4dARB
glMultiTexCoord4dv
glMultiTexCoord4f
glMultiTexCoord4fv
glMultiTexCoord4i
glMultiTexCoord4iARB
glMultiTexCoord4iv
glMultiTexCoord4s
glMultiTexCoord4sARB
glMultiTexCoord4sv
glNormalPointerEXT
glPixelTexGenParameterfSGIS
glPixelTexGenParameterfvSGIS
glPixelTexGenParameteriSGIS
glPixelTexGenParameterivSGIS
glPixelTexGenSGIX
glPointParameterfEXT
glPointParameterfSGIS
glPointParameterfvEXT
glPointParameterfvSGIS
glPollInstrumentsSGIX
glPolygonOffsetEXT
glPrioritizeTexturesEXT
glReadInstrumentsSGIX
glReferencePlaneSGIX
glResetHistogram
glResetHistogramEXT
glResetMinmax
glResetMinmaxEXT
glResizeBuffersMESA
glSampleCoverage
glSampleCoverageARB
glSampleMaskEXT
glSampleMaskSGIS
glSamplePassARB
glSamplePatternEXT
glSamplePatternSGIS
glSecondaryColor3bEXT
glSecondaryColor3dEXT
glSecondaryColor3iEXT
glSecondaryColor3sEXT
glSecondaryColor3uiEXT
glSecondaryColor3usEXT
glSecondaryColorPointerEXT
glSeparableFilter2D
glSeparableFilter2DEXT
glSharpenTexFuncSGIS
glSpriteParameterfSGIX
glSpriteParameterfvSGIX
glSpriteParameteriSGIX
glSpriteParameterivSGIX
glStartInstrumentsSGIX
glStopInstrumentsSGIX
glTagSampleBufferSGIX
glTbufferMask3DFX
glTexCoordPointerEXT
glTexFilterFuncSGIS
glTexImage3DEXT
glTexImage4DSGIS
glTexSubImage1DEXT
glTexSubImage2DEXT
glTexSubImage3DEXT
glTexSubImage4DSGIS
glUnlockArraysEXT
glVertexArrayRangeNV
glVertexPointerEXT
glVertexWeightPointerEXT
glVertexWeightfEXT
glVertexWeightfvEXT
glWindowPos2dMESA
glWindowPos2dvMESA
glWindowPos2fMESA
glWindowPos2fvMESA
glWindowPos2iMESA
glWindowPos2ivMESA
glWindowPos2sMESA
glWindowPos2svMESA
glWindowPos3dMESA
glWindowPos3dvMESA
glWindowPos3fMESA
glWindowPos3fvMESA
glWindowPos3iMESA
glWindowPos3ivMESA
glWindowPos3sMESA
glWindowPos3svMESA
glWindowPos4dMESA
glWindowPos4dvMESA
glWindowPos4fMESA
glWindowPos4fvMESA
glWindowPos4iMESA
glWindowPos4ivMESA
glWindowPos4sMESA
glWindowPos4svMESA
glXAllocateMemoryNV
glXBindChannelToWindowSGIX
glXBindSwapBarrierSGIX
glXChannelRectSGIX
glXChannelRectSyncSGIX
glXChooseFBConfig
glXChooseFBConfigSGIX
glXCopySubBufferMESA
glXCreateContextWithConfigSGIX
glXCreateGLXPbufferSGIX
glXCreateGLXPixmapMESA
glXCreateGLXPixmapWithConfigSGIX
glXCreateNewContext
glXCreatePbuffer
glXCreatePixmap
glXCreateWindow
glXCushionSGI
glXDestroyGLXPbufferSGIX
glXDestroyPbuffer
glXDestroyPixmap
glXDestroyWindow
glXFreeMemoryNV
glXGetAGPOffsetMESA
glXGetCurrentDisplayEXT
glXGetCurrentReadDrawable
glXGetCurrentReadDrawableSGI
glXGetFBConfigAttrib
glXGetFBConfigAttribSGIX
glXGetFBConfigFromVisualSGIX
glXGetFBConfigs
glXGetProcAddress
glXGetProcAddressARB
glXGetSelectedEvent
glXGetSelectedEventSGIX
glXGetTransparentIndexSUN
glXGetVideoSyncSGI
glXGetVisualFromFBConfig
glXGetVisualFromFBConfigSGIX
glXJoinSwapGroupSGIX
glXMakeContextCurrent
glXMakeCurrentReadSGI
glXQueryChannelDeltasSGIX
glXQueryChannelRectSGIX
glXQueryContext
glXQueryDrawable
glXQueryGLXPbufferSGIX
glXQueryMaxSwapBarriersSGIX
glXReleaseBuffersMESA
glXSelectEvent
glXSelectEventSGIX
glXSet3DfxModeMESA
glXSwapIntervalSGI
glXWaitVideoSyncSGI
libOSMesa.so
MESA_DEBUG_FLAGS
MESA_VERBOSE
OSMesaCreateContextExt
__glCoreCreateContext
__glCoreNopDispatch
libX11.so
KeySymToUcs4
XkbChangeKeycodeRange
Xutf8DrawImageString
Xutf8DrawString
Xutf8DrawText
Xutf8LookupString
Xutf8ResetIC
Xutf8SetWMProperties
Xutf8TextEscapement
Xutf8TextExtents
Xutf8TextPerCharExtents
libXaw.so.7
CvtEdgeTypeToString
XawAddPixmapLoader
XawBooleanExpression
XawCallProcAction
XawCreateDisplayList
XawCreateDisplayListClass
XawDeclareAction
XawDeclareDisplayListProc
XawDestroyDisplayList
XawDisplayListInitialize
XawDisplayListString
XawFindArgVal
XawFreeParamsStruct
XawGetActionResList
XawGetActionVarList
XawGetDisplayListClass
XawGetValuesAction
XawInitializeDefaultConverters
XawLoadPixmap
XawParseBoolean
XawParseParamsString
XawPixmapFromXPixmap
XawPixmapsInitialize
XawPrintActionErrorMsg
XawReshapeWidget
XawRunDisplayList
XawSetValuesAction
XawTextGetSink
XawTextLastPosition
XawTextScroll
XawTextSinkAddProperty
XawTextSinkBeginPaint
XawTextSinkCombineProperty
XawTextSinkConvertPropertyList
XawTextSinkCopyProperty
XawTextSinkDoPaint
XawTextSinkEndPaint
XawTextSinkGetProperty
XawTextSinkPreparePaint
XawTextSourceAddAnchor
XawTextSourceAddEntity
XawTextSourceAnchorAndEntity
XawTextSourceClearEntities
XawTextSourceFindAnchor
XawTextSourceNextAnchor
XawTextSourcePrevAnchor
XawTextSourceRemoveAnchor
XawTipDisable
XawTipEnable
XawTypeToStringWarning
XawVendorStructureNotifyHandler
libXaw.so.6
CvtEdgeTypeToString
XawTextGetSink
XawTextLastPosition
XawTextScroll
XawTypeToStringWarning
XawVendorStructureNotifyHandler
libXcursor.so
XcursorGetThemeCore
XcursorImagesLoadCursor
XcursorLibraryShape
XcursorNoticeCreateBitmap
XcursorNoticePutBitmap
XcursorSetThemeCore
XcursorSupportsAnim
XcursorTryShapeBitmapCursor
libXext.so
XTestFakeAckType
XTestInputActionType
libXft1.so
XftFreeTypeClose
XftFreeTypeGet
XftFreeTypeGlyphExists
XftFreeTypeOpen
XftFreeTypeQuery
XftFreeTypeSetFace
XftGlyphCheck
XftGlyphLoad
XftMatrixEqual
XftMatrixMultiply
XftMatrixRotate
XftMatrixScale
XftMatrixShear
XftPatternAddMatrix
XftPatternGetMatrix
XftRenderExtents16
XftRenderExtents32
XftRenderExtents8
XftRenderExtentsUtf8
XftRenderString16
XftRenderString32
XftRenderString8
XftRenderStringUtf8
libXi.so
XInput_find_display
libXmu.so
XmuAppendSegment
XmuAreaAnd
XmuAreaCopy
XmuAreaDup
XmuAreaNot
XmuCvtLongToString
XmuNewSegment
XmuOptimizeArea
XmuScanlineAnd
XmuScanlineAndSegment
XmuScanlineCopy
XmuScanlineEqu
XmuScanlineNot
XmuScanlineOr
XmuScanlineXorSegment
XmuValidArea
XmuValidScanline
libXp.so
XpCheckExtInit
XpGetImageResolution
libXrandr.so
XRRConfigTimes
XRRExtensionInfo
XRRExtensionName
libXrender.so
XRenderExtensionInfo
XRenderExtensionName
XRenderQueryPictIndexValues
libXt.so
XtAppPeekEvent_SkipTimer
libXtst.so
XRecordIdBaseMask
libdps.so
DPSGlobalContext
DPSLastUserObjectIndex
DPSSysNames
DPSSysNamesAux
DPSglobals
XDPSContextTimedOut
XDPSCreateStandardColormaps
XDPSQuitBlocking
XDPSconvProcs
XDPSrawProcs
gAutoFlush
gCSDPS
gForceCSDPS
gForceFlush
gForceLaunchHack
gNXSndBufSize
gNXSyncGCMode
gSecretAgentPID
gTotalPaused
gXDPSNXErrorCode
libpsres.so
CheckPSResourceTime
FreePSResourceStorage
PSResEncoding
PSResFileWarningHandler
PSResFontAFM
PSResFontBDF
PSResFontBDFSizes
PSResFontFamily
PSResFontOutline
PSResFontPrebuilt
PSResForm
PSResFree
PSResMalloc
PSResPattern
PSResProcSet
PSResRealloc