|
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.
|