Use gcc visibility to avoid exporting unnecessary symbols.