- if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym)) \
- || (S_GET_SEGMENT (sym) == &bfd_abs_section \
- && ! S_IS_EXTERNAL (sym)) \
- || strcmp (S_GET_NAME (sym), "$global$") == 0) \
+ if ((S_GET_SEGMENT (sym) == bfd_und_section_ptr \
+ && ! symbol_used_p (sym) \
+ && ELF_ST_VISIBILITY (S_GET_OTHER (sym)) == STV_DEFAULT) \
+ || strcmp (S_GET_NAME (sym), "$global$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$segrel$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$PIC_pcrel$0") == 0 \
+ || strcmp (S_GET_NAME (sym), "$tls_gdidx$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$tls_ldidx$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$tls_dtpoff$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$tls_ieoff$") == 0 \
+ || strcmp (S_GET_NAME (sym), "$tls_leoff$") == 0) \