yugr / SymbolHider

A tool which hides symbols exported from shared libraries or relocatable object files
MIT License
37 stars 2 forks source link
abi shared-library visibility

License Build Status codecov Total alerts Coverity Scan

What's this?

SymbolHider is a simple tool which hides symbols in ELF shared library's public interface (by rewriting their visibility to hidden).

The tool is inspired by @EmployedRussian suggestion in Is there any way to override the -fvisibility=hidden at link time? although I also enabled it for a more common case of fully linked binaries.

How to use

To hide some symbols in a library, run tool like

$ sym-hider libxyz.so foo bar

To instead unhide some symbols, run tool like

$ sym-hider --unhide file.o foo bar

(usually this will not work for already linked files i.e. executables and shlibs).

For more details run

$ sym-hider -h

TODO