-
Notifications
You must be signed in to change notification settings - Fork 535
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
- Loading branch information
Showing
2 changed files
with
204 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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: *; | ||
}; |