* elf32-m68k.c (bfd_elf_m68k_set_target_options): Don't set GOT

options unless an m68k hash table has been found.
This commit is contained in:
Maciej W. Rozycki
2010-08-20 21:06:30 +00:00
parent 0982e15774
commit b1345da313
2 changed files with 26 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
* elf32-m68k.c (bfd_elf_m68k_set_target_options): Don't set GOT
options unless an m68k hash table has been found.
2010-08-20 Nick Clifton <nickc@redhat.com>
* merge.c (sec_merge_emit): Do not zero pad sections that do not

View File

@ -4745,34 +4745,44 @@ void
bfd_elf_m68k_set_target_options (struct bfd_link_info *info, int got_handling)
{
struct elf_m68k_link_hash_table *htab;
htab = elf_m68k_hash_table (info);
bfd_boolean use_neg_got_offsets_p;
bfd_boolean allow_multigot_p;
bfd_boolean local_gp_p;
switch (got_handling)
{
case 0:
/* --got=single. */
htab->local_gp_p = FALSE;
htab->use_neg_got_offsets_p = FALSE;
htab->allow_multigot_p = FALSE;
local_gp_p = FALSE;
use_neg_got_offsets_p = FALSE;
allow_multigot_p = FALSE;
break;
case 1:
/* --got=negative. */
htab->local_gp_p = TRUE;
htab->use_neg_got_offsets_p = TRUE;
htab->allow_multigot_p = FALSE;
local_gp_p = TRUE;
use_neg_got_offsets_p = TRUE;
allow_multigot_p = FALSE;
break;
case 2:
/* --got=multigot. */
htab->local_gp_p = TRUE;
htab->use_neg_got_offsets_p = TRUE;
htab->allow_multigot_p = TRUE;
local_gp_p = TRUE;
use_neg_got_offsets_p = TRUE;
allow_multigot_p = TRUE;
break;
default:
BFD_ASSERT (FALSE);
return;
}
htab = elf_m68k_hash_table (info);
if (htab != NULL)
{
htab->local_gp_p = local_gp_p;
htab->use_neg_got_offsets_p = use_neg_got_offsets_p;
htab->allow_multigot_p = allow_multigot_p;
}
}