aboutsummaryrefslogtreecommitdiffstats
path: root/libopenal.version
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-04-10 12:37:06 -0700
committerChris Robinson <[email protected]>2023-04-10 15:52:26 -0700
commit31f33369135c80cfceec9765b73fa6556641cd2e (patch)
treedcec2d30a57719db9c4d32b8154118c2661c2d07 /libopenal.version
parent3853e31feb6662fa592b7f88ed5f09fee99db12e (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.version192
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: *;
+};