diff options
author | Chris Robinson <[email protected]> | 2023-04-10 12:37:06 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2023-04-10 15:52:26 -0700 |
commit | 31f33369135c80cfceec9765b73fa6556641cd2e (patch) | |
tree | dcec2d30a57719db9c4d32b8154118c2661c2d07 /libopenal.version | |
parent | 3853e31feb6662fa592b7f88ed5f09fee99db12e (diff) |
Add a version script for non-Windows/macOS systems
To more aggressively control library exports. Despite the -fvisibility=hidden
flag that should hide everything by default, GNU's libstdc++ forces default
visibility for generated std namespace symbols (from template functions that
don't inline, for example), adding some standard C++ symbols to the exported
symbol list. This can cause ABI problems if an app links to OpenAL and uses one
of those symbols, as a future internal change can cause the function to not be
generated and make the symbol no longer available. There seems to be no way to
prevent this, aside from this version script.
This has the added advantage of ensuring future extension functions don't
accidentally get exported due to the ALC_API or AL_API macros making them
visible.
Diffstat (limited to 'libopenal.version')
-rw-r--r-- | libopenal.version | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/libopenal.version b/libopenal.version new file mode 100644 index 00000000..dd998e14 --- /dev/null +++ b/libopenal.version @@ -0,0 +1,192 @@ +{ +global: +alBuffer3f; +alBuffer3i; +alBufferData; +alBufferf; +alBufferfv; +alBufferi; +alBufferiv; +alcCaptureCloseDevice; +alcCaptureOpenDevice; +alcCaptureSamples; +alcCaptureStart; +alcCaptureStop; +alcCloseDevice; +alcCreateContext; +alcDestroyContext; +alcGetContextsDevice; +alcGetCurrentContext; +alcGetEnumValue; +alcGetError; +alcGetIntegerv; +alcGetProcAddress; +alcGetString; +alcIsExtensionPresent; +alcMakeContextCurrent; +alcOpenDevice; +alcProcessContext; +alcSuspendContext; +alDeleteBuffers; +alDeleteSources; +alDisable; +alDistanceModel; +alDopplerFactor; +alEnable; +alGenBuffers; +alGenSources; +alGetBoolean; +alGetBooleanv; +alGetBuffer3f; +alGetBuffer3i; +alGetBufferf; +alGetBufferfv; +alGetBufferi; +alGetBufferiv; +alGetDouble; +alGetDoublev; +alGetEnumValue; +alGetError; +alGetFloat; +alGetFloatv; +alGetInteger; +alGetIntegerv; +alGetListener3f; +alGetListener3i; +alGetListenerf; +alGetListenerfv; +alGetListeneri; +alGetListeneriv; +alGetProcAddress; +alGetSource3f; +alGetSource3i; +alGetSourcef; +alGetSourcefv; +alGetSourcei; +alGetSourceiv; +alGetString; +alIsBuffer; +alIsEnabled; +alIsExtensionPresent; +alIsSource; +alListener3f; +alListener3i; +alListenerf; +alListenerfv; +alListeneri; +alListeneriv; +alSource3f; +alSource3i; +alSourcef; +alSourcefv; +alSourcei; +alSourceiv; +alSourcePause; +alSourcePausev; +alSourcePlay; +alSourcePlayv; +alSourceQueueBuffers; +alSourceRewind; +alSourceRewindv; +alSourceStop; +alSourceStopv; +alSourceUnqueueBuffers; +alSpeedOfSound; + +# Deprecated in AL 1.1, kept for compatibility. +alDopplerVelocity; + +# EFX, effectively standard at this point. +alAuxiliaryEffectSlotf; +alAuxiliaryEffectSlotfv; +alAuxiliaryEffectSloti; +alAuxiliaryEffectSlotiv; +alDeleteAuxiliaryEffectSlots; +alDeleteEffects; +alDeleteFilters; +alEffectf; +alEffectfv; +alEffecti; +alEffectiv; +alFilterf; +alFilterfv; +alFilteri; +alFilteriv; +alGenAuxiliaryEffectSlots; +alGenEffects; +alGenFilters; +alGetAuxiliaryEffectSlotf; +alGetAuxiliaryEffectSlotfv; +alGetAuxiliaryEffectSloti; +alGetAuxiliaryEffectSlotiv; +alGetEffectf; +alGetEffectfv; +alGetEffecti; +alGetEffectiv; +alGetFilterf; +alGetFilterfv; +alGetFilteri; +alGetFilteriv; +alIsAuxiliaryEffectSlot; +alIsEffect; +alIsFilter; + +# Non-standard +alsoft_get_version; + +# These extension functions shouldn't be exported here, but they were exported +# by mistake in previous releases, so need to stay for compatibility with apps +# that may have directly linked to them. Remove them if it can be done without +# breaking anything. +alAuxiliaryEffectSlotPlaySOFT; +alAuxiliaryEffectSlotPlayvSOFT; +alAuxiliaryEffectSlotStopSOFT; +alAuxiliaryEffectSlotStopvSOFT; +alBufferCallbackSOFT; +alBufferSamplesSOFT; +alBufferStorageSOFT; +alBufferSubDataSOFT; +alBufferSubSamplesSOFT; +alcDevicePauseSOFT; +alcDeviceResumeSOFT; +alcGetInteger64vSOFT; +alcGetStringiSOFT; +alcGetThreadContext; +alcIsRenderFormatSupportedSOFT; +alcLoopbackOpenDeviceSOFT; +alcRenderSamplesSOFT; +alcResetDeviceSOFT; +alcSetThreadContext; +alDeferUpdatesSOFT; +alEventCallbackSOFT; +alEventControlSOFT; +alFlushMappedBufferSOFT; +alGetBuffer3PtrSOFT; +alGetBufferPtrSOFT; +alGetBufferPtrvSOFT; +alGetBufferSamplesSOFT; +alGetInteger64SOFT; +alGetInteger64vSOFT; +alGetPointerSOFT; +alGetPointervSOFT; +alGetSource3dSOFT; +alGetSource3i64SOFT; +alGetSourcedSOFT; +alGetSourcedvSOFT; +alGetSourcei64SOFT; +alGetSourcei64vSOFT; +alGetStringiSOFT; +alIsBufferFormatSupportedSOFT; +alMapBufferSOFT; +alProcessUpdatesSOFT; +alSource3dSOFT; +alSource3i64SOFT; +alSourcedSOFT; +alSourcedvSOFT; +alSourcei64SOFT; +alSourcei64vSOFT; +alSourceQueueBufferLayersSOFT; +alUnmapBufferSOFT; + +local: *; +}; |