From: Maciej W. Rozycki Date: Fri, 20 Aug 2010 21:06:30 +0000 (+0000) Subject: * elf32-m68k.c (bfd_elf_m68k_set_target_options): Don't set GOT X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b1345da313436ded1bc8328b21a283dc4d65a9a4;p=binutils-gdb.git * elf32-m68k.c (bfd_elf_m68k_set_target_options): Don't set GOT options unless an m68k hash table has been found. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9a52165d796..cb798b336cc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-08-20 Maciej W. Rozycki + + * 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 * merge.c (sec_merge_emit): Do not zero pad sections that do not diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index c0a5ef16d73..975207fb5de 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -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; } }