From fc46e8bd351bf9b4eef5110f5ef6f30f8bd57739 Mon Sep 17 00:00:00 2001 From: Nelson Chu Date: Wed, 13 May 2020 16:05:45 +0800 Subject: [PATCH] RISC-V: Add elfNN_riscv_mkobject to initialize RISC-V tdata. For now we only have one char pointer in RISC-V tdata, so it should be fine. But once we need more elements in tdata, then we may get some uninitialize or unexpected values. I do meet the same problem when extending the RISC-V tdata. bfd/ elfnn-riscv.c (elfNN_riscv_mkobject): New function. We need this to initialize RISC-V tdata. --- bfd/ChangeLog | 5 +++++ bfd/elfnn-riscv.c | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 34932e777f..06a9f125af 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2020-05-14 Nelson Chu + + * elfnn-riscv.c (elfNN_riscv_mkobject): New function. We need this + to initialize RISC-V tdata. + 2020-05-12 Gunther Nikl * aoutx.h (NAME (aout, swap_std_reloc_out)): Reject an unsupported diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 473bf50f2d..a9e8132505 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -98,6 +98,14 @@ struct _bfd_riscv_elf_obj_tdata && elf_tdata (bfd) != NULL \ && elf_object_id (bfd) == RISCV_ELF_DATA) +static bfd_boolean +elfNN_riscv_mkobject (bfd *abfd) +{ + return bfd_elf_allocate_object (abfd, + sizeof (struct _bfd_riscv_elf_obj_tdata), + RISCV_ELF_DATA); +} + #include "elf/common.h" #include "elf/internal.h" @@ -4363,6 +4371,7 @@ riscv_elf_obj_attrs_arg_type (int tag) #define elf_info_to_howto_rel NULL #define elf_info_to_howto riscv_info_to_howto_rela #define bfd_elfNN_bfd_relax_section _bfd_riscv_relax_section +#define bfd_elfNN_mkobject elfNN_riscv_mkobject #define elf_backend_init_index_section _bfd_elf_init_1_index_section