* elf32-arc.c (elf_ARC_link_hash_entry): Dissolve union u,
        make its members into direct members.  Changed all users.
        Add member force_got.
        (elf_ARC_link_hash_table): Rename {first,last}_deferred_tls_got
        to {first,last}_deferred_got.  Changed all users.
        (elf_arc_first_deferred_tls_got): Rename to ..
        (elf_arc_first_deferred_got) .. this.  Changed all users.
        (elf_arc_last_deferred_tls_got): Rename to ..
        (elf_arc_last_deferred_got) .. this.  Changed all users.
        (elf_ARC_link_hash_newfunc): Initialize force_got.
        (elf_ARC_discard_copies): Use SYMBOLS_CALL_LOCAL.
        (arc_got_to_pcrel): New function.
        (elf_arc_check_relocs): Defer normal GOT allocations.
        (elf_arc_relocate_section): Use arc_got_to_pcrel to resolve
        GOT relocs against local symbols directly.
        (arc_allocate_tls_got) Rename to ..
        (arc_allocate_got) .. this.  Changed caller.
        Process normal GOT allocations.
        * elf32-arc.c (elf_backend_copy_indirect_symbol): Define.
        (elf_ARC_link_hash_entry): New member got_alloc.
        (elf_ARC_link_hash_newfunc): Initialize got_alloc.
        (elf_ARC_copy_indirect_symbol): New function.
        (arc_got_to_pcrel): Add error on failure.
        (elf_arc_check_relocs): Set got_alloc.
        (arc_copy_got_alloc): New function.
        (arc_allocate_got): Call arc_copy_got_alloc via
        elf_ARC_link_hash_traverse.