Line 1... |
Line 1... |
/* Renesas / SuperH SH specific support for 32-bit ELF
|
/* Renesas / SuperH SH specific support for 32-bit ELF
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
Contributed by Ian Lance Taylor, Cygnus Support.
|
Contributed by Ian Lance Taylor, Cygnus Support.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
|
|
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
Line 2975... |
Line 2975... |
struct elf_sh_dyn_relocs *p;
|
struct elf_sh_dyn_relocs *p;
|
|
|
if (h->root.type == bfd_link_hash_indirect)
|
if (h->root.type == bfd_link_hash_indirect)
|
return TRUE;
|
return TRUE;
|
|
|
if (h->root.type == bfd_link_hash_warning)
|
|
/* When warning symbols are created, they **replace** the "real"
|
|
entry in the hash table, thus we never get to see the real
|
|
symbol in a hash traversal. So look at it now. */
|
|
h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
|
|
|
info = (struct bfd_link_info *) inf;
|
info = (struct bfd_link_info *) inf;
|
htab = sh_elf_hash_table (info);
|
htab = sh_elf_hash_table (info);
|
if (htab == NULL)
|
if (htab == NULL)
|
return FALSE;
|
return FALSE;
|
|
|
Line 3319... |
Line 3313... |
readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
{
|
{
|
struct elf_sh_link_hash_entry *eh;
|
struct elf_sh_link_hash_entry *eh;
|
struct elf_sh_dyn_relocs *p;
|
struct elf_sh_dyn_relocs *p;
|
|
|
if (h->root.type == bfd_link_hash_warning)
|
|
h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
|
|
|
eh = (struct elf_sh_link_hash_entry *) h;
|
eh = (struct elf_sh_link_hash_entry *) h;
|
for (p = eh->dyn_relocs; p != NULL; p = p->next)
|
for (p = eh->dyn_relocs; p != NULL; p = p->next)
|
{
|
{
|
asection *s = p->sec->output_section;
|
asection *s = p->sec->output_section;
|
|
|