LD discards ELF visibility attributes when making relocateable objects. Example: a.s == .protected symbol b.s == dummy: --- as -o a.o a.s as -o b.o b.s ld -r -o c.o a.o b.o a.o: 4: 00000000 0 NOTYPE GLOBAL PROTECTED UND symbol c.o: 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND symbol -- mailto:malc@pulsesoft.com