[NDS32] Support Linux target for nds32.

Programming / Compilers / GCC - jasonwucj [138bc75d-0d04-0410-961f-82ee72b054a4] - 2 June 2018 14:22 EDT

gcc/
- config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt. (nds32le-*-*, nds32be-*-*): Integrate checking process. (nds32*-*-*): Add glibc and uclibc conditions.
- common/config/nds32/nds32-common.c (nds32_except_unwind_info): New. (TARGET_EXCEPT_UNWIND_INFO): Define.
- config/nds32/elf.h: New file.
- config/nds32/linux.h: New file.
- config/nds32/nds32-elf.opt: New file.
- config/nds32/nds32-linux.opt: New file.
- config/nds32/nds32-fp-as-gp.c (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI.
- config/nds32/nds32.c (nds32_conditional_register_usage): Consider TARGET_LINUX_ABI. (nds32_asm_file_end): Ditto. (nds32_print_operand): Ditto. (nds32_insert_attributes): Ditto. (nds32_init_libfuncs): New function. (TARGET_HAVE_TLS): Define. (TARGET_INIT_LIBFUNCS): Define.
- config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax spec content. (TARGET_ELF): Apply different mcmodel setting. (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has been migrated into elf.h and linux.h files.
- config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI.
- config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI. (mcmodel): The content has been migrated into nds32-elf.opt and nds32-linux.opt files.
- config/nds32/t-elf: New file.
- config/nds32/t-linux: New file.

libgcc/
- config.host (nds32*-linux*): New.
- config/nds32/linux-atomic.c: New file.
- config/nds32/linux-unwind.h: New file.

a5a22b4fd40 [NDS32] Support Linux target for nds32.
gcc/ChangeLog | 34 ++++
gcc/common/config/nds32/nds32-common.c | 15 +-
gcc/config.gcc | 59 +++++--
gcc/config/nds32/elf.h | 81 ++++++++++
gcc/config/nds32/linux.h | 77 +++++++++
gcc/config/nds32/nds32-elf.opt | 16 ++
gcc/config/nds32/nds32-fp-as-gp.c | 3 +-
gcc/config/nds32/nds32-linux.opt | 16 ++
gcc/config/nds32/nds32.c | 52 ++++--
gcc/config/nds32/nds32.h | 44 ++---
gcc/config/nds32/nds32.md | 2 +-
gcc/config/nds32/nds32.opt | 19 +--
gcc/config/nds32/t-elf | 42 +++++
gcc/config/nds32/t-linux | 26 +++
libgcc/ChangeLog | 7 +
libgcc/config.host | 17 ++
libgcc/config/nds32/linux-atomic.c | 282 +++++++++++++++++++++++++++++++++
libgcc/config/nds32/linux-unwind.h | 156 ++++++++++++++++++
18 files changed, 876 insertions(+), 72 deletions(-)

Upstream: gcc.gnu.org


  • Share