From 69b70cfe69b1d8ee430e1e50a20b4da9fe026d15 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Thu, 18 Nov 2010 16:00:25 +0000 Subject: [PATCH] PR gas/12181 * config/obj-elf.c (elf_adjust_symtab) [TE_SOLARIS]: Make sy weak hidden. --- gas/ChangeLog | 6 ++++++ gas/config/obj-elf.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index e3d35b68ac..cd8a7723f9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2010-11-18 Rainer Orth + + PR gas/12181 + * config/obj-elf.c (elf_adjust_symtab) [TE_SOLARIS]: Make sy + weak hidden. + 2010-11-17 Nick Clifton * input-file.c (input_file_open): Check for empty input files. diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 8eb66eda16..c6dc8d6e54 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -2142,7 +2142,14 @@ elf_adjust_symtab (void) { /* Create the symbol now. */ sy = symbol_new (group_name, now_seg, (valueT) 0, frag_now); +#ifdef TE_SOLARIS + /* Before Solaris 11 build 154, Sun ld rejects local group + signature symbols, so make them weak hidden instead. */ + symbol_get_bfdsym (sy)->flags |= BSF_WEAK; + S_SET_OTHER (sy, STV_HIDDEN); +#else symbol_get_obj (sy)->local = 1; +#endif symbol_table_insert (sy); } elf_group_id (s) = symbol_get_bfdsym (sy);