Review: Inital pass at GCC visibility


Malcolm Humphreys <malcolmh...@...>
 

- Inital pass at GCC visibility http://gcc.gnu.org/wiki/Visibility
to hide unnecessary public symbols in an effort to maintain ABI
- Added -fvisibility-inlines-hidden and -fvisibility=hidden to the yaml-cpp patch, YAML::* symbols should now be hidden in libOpenColorIO.so
- Added export/OpenColorIO/OpenColorABI.h
- Added some '#pragma GCC visibility' for some external libs

Before Visibility:
:nm -C -D src/core/libOpenColorIO.so | grep " T " | wc -l
958

After Visibility:
:nm -C -D src/core/libOpenColorIO.so | grep " T " | wc -l
306

http://github.com/malcolmhumphreys/OpenColorIO/commit/aa888b4d4f969e6c903eb73d7c20a9d9f546298f
http://github.com/malcolmhumphreys/OpenColorIO/commit/08b4208717221426ba90058b6324e3358930d376
http://github.com/malcolmhumphreys/OpenColorIO/commit/3ec1be5204291aaf40e56cdbdb1c7c0f757664eb

.malcolm


Jeremy Selan <jeremy...@...>
 

Looks good to me.
(I tested this, as well as all the related post-email updates).

-- Jeremy

On Thu, Oct 21, 2010 at 1:44 PM, Malcolm Humphreys
<malcolmh...@mac.com> wrote:
- Inital pass at GCC visibility http://gcc.gnu.org/wiki/Visibility
 to hide unnecessary public symbols in an effort to maintain ABI
- Added -fvisibility-inlines-hidden and -fvisibility=hidden to the yaml-cpp patch, YAML::* symbols should now be hidden in libOpenColorIO.so
- Added export/OpenColorIO/OpenColorABI.h
- Added some '#pragma GCC visibility' for some external libs

Before Visibility:
:nm -C -D src/core/libOpenColorIO.so | grep " T " | wc -l
958

After Visibility:
:nm -C -D src/core/libOpenColorIO.so | grep " T " | wc -l
306

http://github.com/malcolmhumphreys/OpenColorIO/commit/aa888b4d4f969e6c903eb73d7c20a9d9f546298f
http://github.com/malcolmhumphreys/OpenColorIO/commit/08b4208717221426ba90058b6324e3358930d376
http://github.com/malcolmhumphreys/OpenColorIO/commit/3ec1be5204291aaf40e56cdbdb1c7c0f757664eb

.malcolm