------- Additional Comments From jakub at gcc dot gnu dot org 2005-02-28 14:49 ------- .hidden is intentionally emitted only at the definitions, not for the undefs. Otherwise a header with 1000 prototypes with __attribute__((visibility ("hidden"))) would result in 1000 STV_HIDDEN SHN_UNDEF symbols, even when they aren't used at all in the file at all.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218