From 9634ed06a66c3693045bb8b3bf86b43942239dd8 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 31 Oct 2011 22:43:49 +0000 Subject: * options.h (class General_options): Add --[no-]gnu-unique options. * symtab.cc (Symbol_table::sized_write_globals): Convert STB_GNU_UNIQUE to STB_GLOBAL if --no-gnu-unique. --- gold/symtab.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gold/symtab.cc') diff --git a/gold/symtab.cc b/gold/symtab.cc index 3b76adb..f0ba1d5 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -2814,6 +2814,12 @@ Symbol_table::sized_write_globals(const Stringpool* sympool, typename elfcpp::Elf_types::Elf_Addr sym_value = sym->value(); typename elfcpp::Elf_types::Elf_Addr dynsym_value = sym_value; elfcpp::STB binding = sym->binding(); + + // If --no-gnu-unique is set, change STB_GNU_UNIQUE to STB_GLOBAL. + if (binding == elfcpp::STB_GNU_UNIQUE + && !parameters->options().gnu_unique()) + binding = elfcpp::STB_GLOBAL; + switch (sym->source()) { case Symbol::FROM_OBJECT: -- cgit v1.1