If you need to store a large number of CTF containers somewhere, this provides a dedicated facility for doing so: an mmappable archive format like a very simple tar or ar without all the system-dependent format horrors or need for heavy file copying, with built-in compression of files above a particular size threshold. libctf automatically mmap()s uncompressed elements of these archives, or uncompresses them, as needed. (If the platform does not support mmap(), copying into dynamically-allocated buffers is used.) Archive iteration operations are partitioned into raw and non-raw forms. Raw operations pass thhe raw archive contents to the callback: non-raw forms open each member with ctf_bufopen() and pass the resulting ctf_file_t to the iterator instead. This lets you manipulate the raw data in the archive, or the contents interpreted as a CTF file, as needed. It is not yet known whether we will store CTF archives in a linked ELF object in one of these (akin to debugdata) or whether they'll get one section per TU plus one parent container for types shared between them. (In the case of ELF objects with very large numbers of TUs, an archive of all of them would seem preferable, so we might just use an archive, and add lzma support so you can assume that .gnu_debugdata and .ctf are compressed using the same algorithm if both are present.) To make usage easier, the ctf_archive_t is not the on-disk representation but an abstraction over both ctf_file_t's and archives of many ctf_file_t's: users see both CTF archives and raw CTF files as ctf_archive_t's upon opening, the only difference being that a raw CTF file has only a single "archive member", named ".ctf" (the default if a null pointer is passed in as the name). The next commit will make use of this facility, in addition to providing the public interface to actually open archives. (In the future, it should be possible to have all CTF sections in an ELF file appear as an "archive" in the same fashion.) This machinery is also used to allow library-internal creators of ctf_archive_t's (such as the next commit) to stash away an ELF string and symbol table, so that all opens of members in a given archive will use them. This lets CTF archives exploit the ELF string and symbol table just like raw CTF files can. (All this leads to somewhat confusing type naming. The ctf_archive_t is a typedef for the opaque internal type, struct ctf_archive_internal: the non-internal "struct ctf_archive" is the on-disk structure meant for other libraries manipulating CTF files. It is probably clearest to use the struct name for struct ctf_archive_internal inside the program, and the typedef names outside.) libctf/ * ctf-archive.c: New. * ctf-impl.h (ctf_archive_internal): New type. (ctf_arc_open_internal): New declaration. (ctf_arc_bufopen): Likewise. (ctf_arc_close_internal): Likewise. include/ * ctf.h (CTFA_MAGIC): New. (struct ctf_archive): New. (struct ctf_archive_modent): Likewise. * ctf-api.h (ctf_archive_member_f): New. (ctf_archive_raw_member_f): Likewise. (ctf_arc_write): Likewise. (ctf_arc_close): Likewise. (ctf_arc_open_by_name): Likewise. (ctf_archive_iter): Likewise. (ctf_archive_raw_iter): Likewise. (ctf_get_arc): Likewise.
373 lines
11 KiB
Plaintext
373 lines
11 KiB
Plaintext
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf.h (CTFA_MAGIC): New.
|
||
(struct ctf_archive): New.
|
||
(struct ctf_archive_modent): Likewise.
|
||
* ctf-api.h (ctf_archive_member_f): New.
|
||
(ctf_archive_raw_member_f): Likewise.
|
||
(ctf_arc_write): Likewise.
|
||
(ctf_arc_close): Likewise.
|
||
(ctf_arc_open_by_name): Likewise.
|
||
(ctf_archive_iter): Likewise.
|
||
(ctf_archive_raw_iter): Likewise.
|
||
(ctf_get_arc): Likewise.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf-api.h (ctf_file_close): New declaration.
|
||
(ctf_getdatasect): Likewise.
|
||
(ctf_parent_file): Likewise.
|
||
(ctf_parent_name): Likewise.
|
||
(ctf_parent_name_set): Likewise.
|
||
(ctf_import): Likewise.
|
||
(ctf_setmodel): Likewise.
|
||
(ctf_getmodel): Likewise.
|
||
(ctf_setspecific): Likewise.
|
||
(ctf_getspecific): Likewise.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf-api.h (zlib.h): New include.
|
||
(ctf_sect_t): New.
|
||
(ctf_sect_names_t): Likewise.
|
||
(ctf_encoding_t): Likewise.
|
||
(ctf_membinfo_t): Likewise.
|
||
(ctf_arinfo_t): Likewise.
|
||
(ctf_funcinfo_t): Likewise.
|
||
(ctf_lblinfo_t): Likewise.
|
||
(ctf_snapshot_id_t): Likewise.
|
||
(CTF_FUNC_VARARG): Likewise.
|
||
(ctf_simple_open): Likewise.
|
||
(ctf_bufopen): Likewise.
|
||
(ctf_create): Likewise.
|
||
(ctf_add_array): Likewise.
|
||
(ctf_add_const): Likewise.
|
||
(ctf_add_enum_encoded): Likewise.
|
||
(ctf_add_enum): Likewise.
|
||
(ctf_add_float): Likewise.
|
||
(ctf_add_forward): Likewise.
|
||
(ctf_add_function): Likewise.
|
||
(ctf_add_integer): Likewise.
|
||
(ctf_add_slice): Likewise.
|
||
(ctf_add_pointer): Likewise.
|
||
(ctf_add_type): Likewise.
|
||
(ctf_add_typedef): Likewise.
|
||
(ctf_add_restrict): Likewise.
|
||
(ctf_add_struct): Likewise.
|
||
(ctf_add_union): Likewise.
|
||
(ctf_add_struct_sized): Likewise.
|
||
(ctf_add_union_sized): Likewise.
|
||
(ctf_add_volatile): Likewise.
|
||
(ctf_add_enumerator): Likewise.
|
||
(ctf_add_member): Likewise.
|
||
(ctf_add_member_offset): Likewise.
|
||
(ctf_add_member_encoded): Likewise.
|
||
(ctf_add_variable): Likewise.
|
||
(ctf_set_array): Likewise.
|
||
(ctf_update): Likewise.
|
||
(ctf_snapshot): Likewise.
|
||
(ctf_rollback): Likewise.
|
||
(ctf_discard): Likewise.
|
||
(ctf_write): Likewise.
|
||
(ctf_gzwrite): Likewise.
|
||
(ctf_compress_write): Likewise.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf-api.h (ctf_errno): New declaration.
|
||
(ctf_errmsg): Likewise.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf-api.h (ctf_setdebug): New.
|
||
(ctf_getdebug): Likewise.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf-api.h: New file.
|
||
|
||
2019-05-28 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* ctf.h: New file.
|
||
|
||
2019-05-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||
|
||
* elf/aarch64.h (DT_AARCH64_VARIANT_PCS): Define.
|
||
(STO_AARCH64_VARIANT_PCS): Define.
|
||
|
||
2019-05-24 Alan Modra <amodra@gmail.com>
|
||
|
||
* elf/ppc64.h (R_PPC64_PLTSEQ_NOTOC, R_PPC64_PLTCALL_NOTOC),
|
||
(R_PPC64_PCREL_OPT, R_PPC64_D34, R_PPC64_D34_LO, R_PPC64_D34_HI30),
|
||
(R_PPC64_D34_HA30, R_PPC64_PCREL34, R_PPC64_GOT_PCREL34),
|
||
(R_PPC64_PLT_PCREL34, R_PPC64_PLT_PCREL34_NOTOC),
|
||
(R_PPC64_ADDR16_HIGHER34, R_PPC64_ADDR16_HIGHERA34),
|
||
(R_PPC64_ADDR16_HIGHEST34, R_PPC64_ADDR16_HIGHESTA34),
|
||
(R_PPC64_REL16_HIGHER34, R_PPC64_REL16_HIGHERA34),
|
||
(R_PPC64_REL16_HIGHEST34, R_PPC64_REL16_HIGHESTA34),
|
||
(R_PPC64_D28, R_PPC64_PCREL28): Define.
|
||
|
||
2019-05-24 Peter Bergner <bergner@linux.ibm.com>
|
||
Alan Modra <amodra@gmail.com>
|
||
|
||
* dis-asm.h (WIDE_OUTPUT): Define.
|
||
* opcode/ppc.h (prefix_opcodes, prefix_num_opcodes): Declare.
|
||
(PPC_OPCODE_POWERXX, PPC_GET_PREFIX, PPC_GET_SUFFIX),
|
||
(PPC_PREFIX_P, PPC_PREFIX_SEG): Define.
|
||
|
||
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||
|
||
* elf/bpf.h: New file.
|
||
|
||
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
||
|
||
* elf/arm.h (Tag_MVE_arch): Define new enum value.
|
||
* opcode/arm.h (FPU_MVE, FPU_MVE_FP): New MACROs for new features.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_SHLIMM_UNPRED_22
|
||
operand.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_tsz_bhs
|
||
iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_Zm4_11_INDEX operand.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_shift_tsz_bhsd
|
||
iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_SHRIMM_UNPRED_22
|
||
operand.
|
||
(enum aarch64_insn_class): Add sve_shift_tsz_hsd iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_013 iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_bh iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_sd2 iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_ADDR_ZX operand.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_Zm3_11_INDEX operand.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_hsd2 iclass.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_IMM_ROT3 operand.
|
||
|
||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
* opcode/aarch64.h (AARCH64_FEATURE_SVE2
|
||
AARCH64_FEATURE_SVE2_AES, AARCH64_FEATURE_SVE2_BITPERM,
|
||
AARCH64_FEATURE_SVE2_SM4, AARCH64_FEATURE_SVE2_SHA3): New
|
||
feature macros.
|
||
|
||
2019-05-06 Andrew Bennett <andrew.bennett@imgtec.com>
|
||
Faraz Shahbazker <fshahbazker@wavecomp.com>
|
||
|
||
* opcode/mips.h (ASE_EVA_R6): New macro.
|
||
(M_LLWPE_AB, M_SCWPE_AB): New enum values.
|
||
|
||
2019-05-01 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* opcode/aarch64.h (AARCH64_FEATURE_TME): New.
|
||
(enum aarch64_opnd): Add AARCH64_OPND_TME_UIMM16.
|
||
|
||
2019-04-26 Andrew Bennett <andrew.bennett@imgtec.com>
|
||
Faraz Shahbazker <fshahbazker@wavecomp.com>
|
||
|
||
* opcode/mips.h (M_LLWP_AB, M_LLDP_AB): New enum values.
|
||
(M_SCWP_AB, M_SCDP_AB): Likewise.
|
||
|
||
2019-04-25 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* opcode/mips.h: Update comment for MIPS32 CODE20 operand.
|
||
|
||
2019-04-15 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF12.
|
||
|
||
2019-04-15 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF18.
|
||
|
||
2019-04-15 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF16.
|
||
|
||
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
* elf/arm.h (TAG_CPU_ARCH_V8_1M_MAIN): new macro.
|
||
(MAX_TAG_CPU_ARCH): Set value to above macro.
|
||
* opcode/arm.h (ARM_EXT2_V8_1M_MAIN): New macro.
|
||
(ARM_AEXT_V8_1M_MAIN): Likewise.
|
||
(ARM_AEXT2_V8_1M_MAIN): Likewise.
|
||
(ARM_ARCH_V8_1M_MAIN): Likewise.
|
||
|
||
2019-04-11 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rt_SP.
|
||
|
||
2019-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* elf/common.h (GNU_PROPERTY_X86_ISA_1_AVX512_BF16): New.
|
||
|
||
2019-04-07 Alan Modra <amodra@gmail.com>
|
||
|
||
Merge from gcc.
|
||
2019-04-03 Vineet Gupta <vgupta@synopsys.com>
|
||
PR89877
|
||
* longlong.h [__arc__] (add_ssaaaa): Add cc clobber.
|
||
(sub_ddmmss): Likewise.
|
||
|
||
2019-04-06 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* bfdlink.h (bfd_link_info): Remove x86-specific linker options.
|
||
|
||
2019-04-01 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
||
|
||
* opcode/arm.h (FPU_NEON_ARMV8_1): New.
|
||
(FPU_ARCH_NEON_VFP_ARMV8_1): Use FPU_NEON_ARMV8_1.
|
||
(FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): Likewise.
|
||
(FPU_ARCH_DOTPROD_NEON_VFP_ARMV8): Likewise.
|
||
(FPU_ARCH_NEON_VFP_ARMV8_2_FP16): New.
|
||
(FPU_ARCH_NEON_VFP_ARMV8_2_FP16FML): New.
|
||
(FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML): New.
|
||
(FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4): New.
|
||
|
||
2019-03-28 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 24390
|
||
* opcode/ppc.h (PPC_OPERAND_CR_REG): Comment.
|
||
|
||
2019-03-25 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* dis-asm.h (struct disassemble_info): Add stop_offset.
|
||
|
||
2019-03-13 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* elf/aarch64.h (DT_AARCH64_PAC_PLT): New.
|
||
|
||
2019-03-13 Sudakshina Das <sudi.das@arm.com>
|
||
Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||
|
||
* elf/aarch64.h (DT_AARCH64_BTI_PLT): New.
|
||
|
||
2019-03-13 Sudakshina Das <sudi.das@arm.com>
|
||
|
||
* elf/common.h (GNU_PROPERTY_AARCH64_FEATURE_1_AND): New.
|
||
(GNU_PROPERTY_AARCH64_FEATURE_1_BTI): New.
|
||
(GNU_PROPERTY_AARCH64_FEATURE_1_PAC): New.
|
||
|
||
2019-02-20 Alan Hayward <alan.hayward@arm.com>
|
||
|
||
* elf/common.h (NT_ARM_PAC_MASK): Add define.
|
||
|
||
2019-02-15 Saagar Jha <saagar@saagarjha.com>
|
||
|
||
* mach-o/loader.h: Use new OS names in comments.
|
||
|
||
2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||
|
||
* splay-tree.h (splay_tree_delete_key_fn): Update comment.
|
||
(splay_tree_delete_value_fn): Likewise.
|
||
|
||
2019-01-31 Andreas Krebbel <krebbel@linux.ibm.com>
|
||
|
||
* opcode/s390.h (enum s390_opcode_cpu_val): Add
|
||
S390_OPCODE_ARCH13.
|
||
|
||
2019-01-25 Sudakshina Das <sudi.das@arm.com>
|
||
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* opcode/aarch64.h (enum aarch64_opnd): Remove
|
||
AARCH64_OPND_ADDR_SIMPLE_2.
|
||
(enum aarch64_insn_class): Remove ldstgv_indexed.
|
||
|
||
2019-01-22 Tom Tromey <tom@tromey.com>
|
||
|
||
* coff/ecoff.h: Include coff/sym.h.
|
||
|
||
2018-06-24 Nick Clifton <nickc@redhat.com>
|
||
|
||
2.32 branch created.
|
||
|
||
2019-01-16 Kito Cheng <kito@andestech.com>
|
||
|
||
* elf/riscv.h (SHT_RISCV_ATTRIBUTES): Define.
|
||
(Tag_RISCV_arch): Likewise.
|
||
(Tag_RISCV_priv_spec): Likewise.
|
||
(Tag_RISCV_priv_spec_minor): Likewise.
|
||
(Tag_RISCV_priv_spec_revision): Likewise.
|
||
(Tag_RISCV_unaligned_access): Likewise.
|
||
(Tag_RISCV_stack_align): Likewise.
|
||
|
||
2019-01-14 Pavel I. Kryukov <kryukov@frtk.ru>
|
||
|
||
* dis-asm.h: include <string.h>
|
||
|
||
2019-01-10 Nick Clifton <nickc@redhat.com>
|
||
|
||
* Merge from GCC:
|
||
2018-12-22 Jason Merrill <jason@redhat.com>
|
||
|
||
* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
|
||
ARM, HP, and EDG demangling styles.
|
||
|
||
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
Merge from GCC:
|
||
PR other/16615
|
||
|
||
* libiberty.h: Mechanically replace "can not" with "cannot".
|
||
* plugin-api.h: Likewise.
|
||
|
||
2018-12-25 Yoshinori Sato <ysato@users.sourceforge.jp>
|
||
|
||
* elf/rx.h (EF_RX_CPU_MASK): Update new bits.
|
||
(E_FLAG_RX_V3): New RXv3 type.
|
||
* opcode/rx.h (RX_Size): Add double size.
|
||
(RX_Operand_Type): Add double FPU registers.
|
||
(RX_Opcode_ID): Add new instuctions.
|
||
|
||
2019-01-01 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2018
|
||
|
||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|