(elf32_hppa_set_gp): Handle weak $global$.

If $global$ referenced but not defined, set its value here.
This commit is contained in:
Alan Modra 2001-02-13 10:14:14 +00:00
parent 179ae6ea64
commit df8634e34b
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2001-02-13 Alan Modra <alan@linuxcare.com.au>
* elf32-hppa.c (elf32_hppa_set_gp): Handle weak $global$. If
$global$ referenced but not defined, set its value here.
2001-02-09 Bo Thorsen <bo@suse.de>
* elf64-x86-64.c (elf64_x86_64_check_relocs): Set .rela.got section

View File

@ -3024,7 +3024,9 @@ elf32_hppa_set_gp (abfd, info)
h = elf_link_hash_lookup (&hplink->root, "$global$",
false, false, false);
if (h != NULL && h->root.type == bfd_link_hash_defined)
if (h != NULL
&& (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak))
{
gp_val = h->root.u.def.value;
sec = h->root.u.def.section;
@ -3067,6 +3069,16 @@ elf32_hppa_set_gp (abfd, info)
sec = bfd_get_section_by_name (abfd, ".data");
}
}
if (h != NULL)
{
h->root.type = bfd_link_hash_defined;
h->root.u.def.value = gp_val;
if (sec != NULL)
h->root.u.def.section = sec;
else
h->root.u.def.section = bfd_abs_section_ptr;
}
}
if (sec != NULL)