Exported Symbols in Embedded Libraries: Keep Internal Functions Out of the Public ABI
Define an explicit allowlist of externally bindable symbols, build the library with that policy, and compare the resulting dynamic definitions against the list. A public header alone does not prevent unrelated global functions from becoming part of an ELF shared library’s exported surface. Once consumers bind to an accidental export, removing it can become a…