head 1.1;
branch 1.1.1;
access;
symbols
binutils-2-46:1.1.1.2
binutils-2-45:1.1.1.1
FSF:1.1.1;
locks; strict;
comment @# @;
1.1
date 2025.08.25.14.43.33; author christos; state Exp;
branches
1.1.1.1;
next ;
commitid aUBKFf4jmEzPv78G;
1.1.1.1
date 2025.08.25.14.43.33; author christos; state Exp;
branches;
next 1.1.1.2;
commitid aUBKFf4jmEzPv78G;
1.1.1.2
date 2026.02.11.19.50.36; author christos; state Exp;
branches;
next ;
commitid vybCSY05tblOMZtG;
desc
@@
1.1
log
@Initial revision
@
text
@/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of libctf.
libctf is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not see
. */
LIBCTF_1.0 {
global:
/* In libctf and libctf-nobfd. */
ctf_bufopen;
ctf_simple_open;
ctf_create;
ctf_close;
ctf_ref;
ctf_file_close;
ctf_cuname;
ctf_cuname_set;
ctf_parent_file;
ctf_parent_name;
ctf_parent_name_set;
ctf_type_isparent;
ctf_type_ischild;
ctf_import;
ctf_setmodel;
ctf_getmodel;
ctf_setspecific;
ctf_getspecific;
ctf_errno;
ctf_errmsg;
ctf_version;
ctf_func_info;
ctf_func_args;
ctf_func_type_info;
ctf_func_type_args;
ctf_lookup_by_name;
ctf_lookup_by_symbol;
ctf_lookup_variable;
ctf_type_resolve;
ctf_type_lname;
ctf_type_name;
ctf_type_name_raw;
ctf_type_aname;
ctf_type_aname_raw;
ctf_type_size;
ctf_type_align;
ctf_type_kind;
ctf_type_kind_forwarded;
ctf_type_reference;
ctf_type_pointer;
ctf_type_encoding;
ctf_type_visit;
ctf_type_cmp;
ctf_type_compat;
ctf_member_info;
ctf_member_next;
ctf_array_info;
ctf_member_count;
ctf_enum_name;
ctf_enum_value;
ctf_label_topmost;
ctf_label_info;
ctf_member_iter;
ctf_enum_iter;
ctf_enum_next;
ctf_type_iter;
ctf_type_next;
ctf_type_iter_all;
ctf_label_iter;
ctf_variable_iter;
ctf_variable_next;
ctf_next_create;
ctf_next_destroy;
ctf_next_copy;
ctf_add_array;
ctf_add_const;
ctf_add_enum;
ctf_add_enum_encoded;
ctf_add_float;
ctf_add_forward;
ctf_add_function;
ctf_add_integer;
ctf_add_pointer;
ctf_add_type;
ctf_add_typedef;
ctf_add_restrict;
ctf_add_slice;
ctf_add_struct;
ctf_add_union;
ctf_add_struct_sized;
ctf_add_union_sized;
ctf_add_volatile;
ctf_add_enumerator;
ctf_add_member;
ctf_add_member_offset;
ctf_add_member_encoded;
ctf_add_variable;
ctf_set_array;
ctf_update;
ctf_discard;
ctf_snapshot;
ctf_rollback;
ctf_write;
ctf_write_mem;
ctf_gzwrite;
ctf_compress_write;
ctf_getdatasect;
ctf_arc_write;
ctf_arc_write_fd;
ctf_arc_bufopen;
ctf_arc_close;
ctf_arc_open_by_name;
ctf_arc_open_by_name_sections;
ctf_archive_count;
ctf_archive_iter;
ctf_archive_next;
ctf_archive_raw_iter;
ctf_get_arc;
ctf_dump;
ctf_setdebug;
ctf_getdebug;
ctf_errwarning_next;
ctf_link_add_ctf;
ctf_link_add_cu_mapping;
ctf_link_set_memb_name_changer;
ctf_link_set_variable_filter;
ctf_link;
ctf_link_add_strtab;
ctf_link_shuffle_syms;
ctf_link_write;
local:
*;
};
LIBCTF_1.1 {
global:
ctf_dict_open;
ctf_dict_open_sections;
ctf_dict_close;
ctf_parent_dict;
ctf_symbol_next;
ctf_add_objt_sym;
ctf_add_func_sym;
ctf_link_add_linker_symbol;
ctf_arc_lookup_symbol;
ctf_arc_flush_caches;
ctf_getsymsect;
ctf_getstrsect;
ctf_symsect_endianness;
ctf_arc_symsect_endianness;
} LIBCTF_1.0;
LIBCTF_1.2 {
global:
ctf_lookup_by_symbol_name;
ctf_arc_lookup_symbol_name;
ctf_add_unknown;
} LIBCTF_1.1;
LIBCTF_1.3 {
global:
ctf_lookup_enumerator;
ctf_lookup_enumerator_next;
ctf_arc_lookup_enumerator_next;
ctf_dict_set_flag;
ctf_dict_get_flag;
} LIBCTF_1.2;
@
1.1.1.1
log
@Import binutils 2.45 (previous was 2.42)
2.45 Release Notes
------------------
Assembler:
All sframe information generated by the assembler is now in compliance
with the SFrame V2 specification.
The assembler now supports .errif and .warnif directives, permitting
user-controlled diagnostics with conditionals that are evaluated only
at the end of assembly.
The assembler predefines the symbol "GAS(version)".
The assembler now supports the generation of SFrame stack trace
information (.sframe) from CFI directives on s390 64-bit (s390x).
For RISC-V, the ".option arch, -ext" format is deprecated due to its
controversial use.
For RISC-V, stop generating mapping symbols $x and replace with $x. The
$x was defined to have the same ISA as previous $x, but now is defined
to have the same ISA as elf architecture attribute. Once both used .option
arch/rvc/norvc/push/pop directives (some code have different architectures
with file attribute) and data directives in text, then the file need to be
rebuilt since 2.45.
The assembler supports the latest architecture extensions for the
RISC-V, LoongArch and AArch64 architectures.
Linker:
The linker's --stats option can take an optional argument which if used is
interpreted as a filename into which resource usage information should be
stored. As an alternative mechanism the LD_STATS environment variable can
also be used to achieve the same results. Resource usage information for
various phases of the linking operation is now included in the report.
If a map file is being produced then the information is also included there.
The --no-stats option can be used to disable stat reporting, should it have
been enabled.
On s390 64-bit (s390x), generate SFrame stack trace information (.sframe)
for the linker generated .plt section. On s390 32-bit, generate
".eh_frame" unwind information for the linker generated .plt section.
Both features are enabled by default and can be disabled using linker
option --no-ld-generated-unwind-info.
On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and
zicfilp extensions.
On AVR, the default linker scripts now assert that the .progmem sections
don't extend past 0xffff since they are accessed by means of LPM.
For data in program memory that may be located past 0xffff, a .progmemx
section should be used.
On LoongArch, linker relaxation time complexity is no longer quadratic with
respect to relocation counts. Linking time of large software should be
improved. In addition R_LARCH_32_PCREL records are now checked for
overflow.
Other binary utilities:
New versioned release of libsframe: libsframe.so.2. This release introduces
versioned symbols with version node name LIBSFRAME_2.0. Some new symbols
have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
retrieving flags from SFrame decoder and encoder objects:
- Addition of sframe_decoder_get_flags,
sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
sframe_encoder_get_offsetof_fde_start_addr.
This release also includes backward-incompatible ABI changes:
- Removal of sframe_get_funcdesc_with_addr.
- Change in the behavior of sframe_decoder_get_funcdesc_v2,
sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
For SFrame stack trace format, the function start address in each SFrame
FDE has a changed encoding: The 32-bit signed integer now holds the offset
of the start PC of the associated function from the sfde_func_start_address
field itself (instead of the earlier where it was the offset from the start
of the SFrame section itself). All SFrame sections generated by gas and ld
now default to this new encoding, setting the (new)
SFRAME_F_FDE_FUNC_START_PCREL flag.
Relocatable SFrame links are now fixed.
Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
extensions.
The LoongArch disassembler now properly accepts multiple disassembly
options given by -M, such as "-M no-aliases,numeric". (Previously only the
first option took effect.)
2.44 Release Notes
------------------
Assembler:
Support for new architecture extensions for AArch64, Risc-V and
x86.
Linker:
The default maximum page size was changed from 16KiB to 64KiB for
LoongArch.
This now supports mixed LTO and non-LTO object files in
relocatable output.
The ELF forms of the linker support a --image-base= option
for compatibility with LLD.
The --build-id= option now accepts an argument of "xx" which
enables the use of the xxhash library. This produces a 128-bit
hash and is 2-4x faster than md5 or sha1.
The ELF linker option --package-metadata supports percent-encoded
and %[string] encoded JSON payloads.
Disassembler:
The RISC-V disassembler now supports -M,max option like QEMU to
dump instruction without checking architecture support as usual.
GprofNG:
Support added for hardware event counters for Neoverse-N1,
Ampere-1, and Appliedmicro processors.
Support for the Nios II target has been removed.
2.43 Release Notes
------------------
Assembler:
* Add a .base64 directive to the assembler which allows base64 encoded
binary data to be provided as strings.
* Assembler macros as well as the bodies of .irp / .irpc / .rept can now use
the syntax \+ to access the number of times a given macro has been executed.
This is similar to the already existing \@@ syntax, except that the count is
maintained on a per-macro basis.
* References to FB and dollar labels, when supported, are no longer permitted
in a radix other than 10. (Note that definitions of such labels were
already thus restricted, except that leading zeroes were permitted).
Linker:
* Add support for DT_RELR type compressed runtime relocations for the
AArch64 and LoongArch architectures.
* Add --rosegment option which changes the -z separate-code option so that
only one read-only segment is created (instead of two).
* Add --section-ordering-file option to add extra mapping of input
sections to output sections.
* Add -plugin-save-temps to store plugin intermediate files permanently.
Utilities:
* Readelf will now display DT_RELR relocations in full detail.
* Readelf now has a -j/--display-section option which takes the name
or index of a section and displays its contents according to its
type. The option can be used multiple times on the command line to
display multiple sections.
* When objdump or readelf are used to display the contents of a
.eh_frame section they will now also display the contents of the
.eh_frame_hdr section, if present.
Gprofng:
* Improved the support for hardware event counters:
- Re-designed and streamlined the implementation.
- Defined a common set of events for ARM processors.
- Added specific events for AMD ZEN3 / ZEN4, and Intel
Ice Lake processors.
* Added a minimal support for RISC-V.
General:
* Target specific improvements for many architectures.
@
text
@@
1.1.1.2
log
@Import binutils-2.46.0 (previous was 2.45)
Changes in 2.45:
* New versioned release of libsframe: libsframe.so.2. This release introduces
versioned symbols with version node name LIBSFRAME_2.0. Some new symbols
have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
retrieving flags from SFrame decoder and encoder objects:
- Addition of sframe_decoder_get_flags,
sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
sframe_encoder_get_offsetof_fde_start_addr.
This release also includes backward-incompatible ABI changes:
- Removal of sframe_get_funcdesc_with_addr.
- Change in the behavior of sframe_decoder_get_funcdesc_v2,
sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
* On s390 64-bit (s390x), gas, ld, objdump, and readelf now support generating
and processing SFrame V2 stack trace information (.sframe). The assembler
generates SFrame info from CFI directives with option "--gsframe". The
linker generates SFrame info for the linker-generated .plt section and merges
all .sframe sections. Both objdump and readelf dump SFrame info with option
"--sframe[=]".
* For SFrame stack trace format, the function start address in each SFrame
FDE has a changed encoding: The 32-bit signed integer now holds the offset
of the start PC of the associated function from the sfde_func_start_address
field itself (instead of the earlier where it was the offset from the start
of the SFrame section itself). All SFrame sections generated by gas and ld
now default to this new encoding, setting the (new)
SFRAME_F_FDE_FUNC_START_PCREL flag.
Relocatable SFrame links are now fixed.
* Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
extensions.
* For RISC-V dis-assembler, the definition of mapping symbol $x is changed,
so the file needs to be rebuilt since 2.45 once used .option arch directives.
* The LoongArch disassembler now properly accepts multiple disassembly
options given by -M, such as "-M no-aliases,numeric". (Previously only the
first option took effect.)
@
text
@d1 1
a1 1
/* Copyright (C) 2019-2026 Free Software Foundation, Inc.
@