fix typo breaking whole build
hide internal symbols on all GNU toolchain platforms
how did this ever work?
dedup cpp define