diff options
author | Alan Modra <amodra@bigpond.net.au> | 2013-03-25 06:02:28 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2013-03-25 06:02:28 +0000 |
commit | 4279f79bcbb2c182a2bdadf36866d3615a00df9d (patch) | |
tree | f91ca456088cc6bc0dfb969fcb02b068bef70f48 /bfd/elflink.c | |
parent | 553bc81c7076a9bffec379cbf5b0005393545dd9 (diff) | |
download | binutils-redhat-4279f79bcbb2c182a2bdadf36866d3615a00df9d.tar.gz |
* elflink.c (_bfd_elf_merge_symbol): Don't discard TLS symbols here.
Wrap long lines.
(elf_link_add_object_symbols): Discard TLS symbols for --just-syms
early in symbol loop.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index b5d9415cf5..1e341dabb5 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -938,15 +938,6 @@ _bfd_elf_merge_symbol (bfd *abfd, sec = *psec; bind = ELF_ST_BIND (sym->st_info); - /* Silently discard TLS symbols from --just-syms. There's no way to - combine a static TLS block with a new TLS block for this executable. */ - if (ELF_ST_TYPE (sym->st_info) == STT_TLS - && sec->sec_info_type == SEC_INFO_TYPE_JUST_SYMS) - { - *skip = TRUE; - return TRUE; - } - if (! bfd_is_und_section (sec)) h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, FALSE, FALSE); else @@ -1145,19 +1136,23 @@ _bfd_elf_merge_symbol (bfd *abfd, if (tdef && ntdef) (*_bfd_error_handler) - (_("%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"), + (_("%s: TLS definition in %B section %A " + "mismatches non-TLS definition in %B section %A"), tbfd, tsec, ntbfd, ntsec, h->root.root.string); else if (!tdef && !ntdef) (*_bfd_error_handler) - (_("%s: TLS reference in %B mismatches non-TLS reference in %B"), + (_("%s: TLS reference in %B " + "mismatches non-TLS reference in %B"), tbfd, ntbfd, h->root.root.string); else if (tdef) (*_bfd_error_handler) - (_("%s: TLS definition in %B section %A mismatches non-TLS reference in %B"), + (_("%s: TLS definition in %B section %A " + "mismatches non-TLS reference in %B"), tbfd, tsec, ntbfd, h->root.root.string); else (*_bfd_error_handler) - (_("%s: TLS reference in %B mismatches non-TLS definition in %B section %A"), + (_("%s: TLS reference in %B " + "mismatches non-TLS definition in %B section %A"), tbfd, ntbfd, ntsec, h->root.root.string); bfd_set_error (bfd_error_bad_value); @@ -3976,6 +3971,13 @@ error_free_dyn: goto error_free_vers; } + /* Silently discard TLS symbols from --just-syms. There's + no way to combine a static TLS block with a new TLS block + for this executable. */ + if (ELF_ST_TYPE (isym->st_info) == STT_TLS + && sec->sec_info_type == SEC_INFO_TYPE_JUST_SYMS) + continue; + if (bfd_is_und_section (sec) || bfd_is_com_section (sec)) definition = FALSE; |