- allows portable use of __attribute__((visibility("hidden")))
- atm consists of portability wrappers to various gcc extensions like __attribute__() to provide additional warnings and checks - copied from glib to avoid an extra build dependency just for the silly macros, renamed to avoid namespace clashing