[PATCH 13/13] [NDS32] Update and support more target features for the nds32 port

Nelson Chu nelson.chu1990@gmail.com
Wed Sep 19 10:04:00 GMT 2018


Hi, binutils maintainers and developers,

Attached is the modified patch for resolving the strip-13 test case failed.

* bfd/ChangeLog
2018-09-19  Nelson Chu  <nelson.chu@1990gmail.com>

        * reloc.c: Add TLS relocations.
        * libbfd.h: Regenerated.
        * bfd-in2.h: Regenerated.
        * elf32-nds32.h (struct section_id_list_t): New.
        (elf32_nds32_lookup_section_id, elf32_nds32_check_relax_group,
        elf32_nds32_unify_relax_group, nds32_elf_unify_tls_model):
        New prototypes.
        (elf32_nds32_compute_jump_table_size, elf32_nds32_local_tlsdesc_gotent):
        New macro.
        (nds32_insertion_sort, bfd_elf32_nds32_set_target_option,
        elf_nds32_link_hash_table): Updated.
        * elf32-nds32.c (enum elf_nds32_tls_type): New.
        (struct elf32_nds32_relax_group_t, struct relax_group_list_t): New.
        (elf32_nds32_add_dynreloc, patch_tls_desc_to_ie, get_tls_type,
        fls, ones32, list_insert, list_insert_sibling, dump_chain,
        elf32_nds32_check_relax_group, elf32_nds32_lookup_section_id,
        elf32_nds32_unify_relax_group, nds32_elf_unify_tls_model): New
functions.
        (elf_nds32_obj_tdata): Add new fields.
        (elf32_nds32_relax_group_ptr, nds32_elf_local_tlsdesc_gotent):
New macros.
        (nds32_elf_howto_table): Add TLS relocations.
        (nds32_reloc_map): Likewise.
        (nds32_elf_copy_indirect_symbol, nds32_elf_size_dynamic_sections,
        nds32_elf_finish_dynamic_symbol, elf32_nds32_allocate_local_sym_info,
        nds32_elf_relocate_section, bfd_elf32_nds32_set_target_option,
        nds32_elf_check_relocs, allocate_dynrelocs): Updated.
        (nds32_elf_relax_section): Call nds32_elf_unify_tls_model.
        (dtpoff_base): Rename it to `gottpof' and then update it.

* binutils/ChangeLog
2018-09-19  Nelson Chu  <nelson.chu@1990gmail.com>

        * testsuite/binutils-all/objcopy.exp: Set the unsupported reloc number
        from 215 to 255 for NDS32.

* gas/ChangeLog
2018-09-19  Nelson Chu  <nelson.chu@1990gmail.com>

        * configure.ac: Define NDS32_LINUX_TOOLCHAIN.
        * configure: Regenerated.
        * config.in: Regenerated.
        * config/tc-nds32.h (enum nds32_ramp): Updated.
        (enum nds32_relax_hint_type): Likewise.
        * config/tc-nds32.c: Include "errno.h" and "limits.h".
        (relax_ls_table): Add TLS relax patterns.
        (nds32_elf_append_relax_relocs): Attach BFD_RELOC_NDS32_GROUP on
        each instructions of TLS patterns.
        (nds32_elf_record_fixup_exp): Updated.
        (nds32_apply_fix): Likewise.
        (suffix_table): Add TLSDESC suffix.

* include/ChangeLog
2018-09-19  Nelson Chu  <nelson.chu@1990gmail.com>

        * elf/nds32.h: Add new relocations for TLS.

* ld/ChangeLog
2018-09-19  Nelson Chu  <nelson.chu@1990gmail.com>

        * emultempl/nds32elf.em (tls_desc_trampoline): New variable.
        * (nds32_elf_create_output_section_statements): Updated.
        * (nds32_elf_after_parse): Disable relaxations when PIC is enable.
        * (PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_OPTIONS,
        PARSE_AND_LIST_ARGS_CASES): Add new option --m[no-]tlsdesc-trampoline.

Best regards,
Nelson Ching-Yu Chu
Software R&D, Andes Technology
Nelson Chu <nelson.chu1990@gmail.com> 於 2018年9月17日 週一 上午10:07寫道:
>
> Hi, binutils maintainers and developers,
>
> Attached is the last patch,
> 0013-NDS32-Support-TLS-LE-IE-IEGP-DESC-GD-LD
>
> Best regards,
> Nelson Ching-Yu Chu
> Software R&D, Andes Technology
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0013-NDS32-Support-TLS-LE-IE-IEGP-DESC-GD-LD.patch
Type: application/octet-stream
Size: 92763 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20180919/9ba927ba/attachment.obj>


More information about the Binutils mailing list