diff options
-rw-r--r-- | bfd/version.h | 2 | ||||
-rw-r--r-- | binutils/README-how-to-make-a-release | 54 | ||||
-rw-r--r-- | gdb/cli/cli-cmds.c | 5 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 7 | ||||
-rw-r--r-- | gdb/inflow.c | 23 | ||||
-rw-r--r-- | gdb/mingw-hdep.c | 5 | ||||
-rw-r--r-- | gdb/solib-frv.h | 2 | ||||
-rw-r--r-- | gdb/svr4-tls-tdep.c | 2 | ||||
-rw-r--r-- | gdb/terminal.h | 15 | ||||
-rw-r--r-- | libsframe/doc/sframe-spec.texi | 20 | ||||
-rw-r--r-- | opcodes/sparc-dis.c | 40 |
11 files changed, 99 insertions, 76 deletions
diff --git a/bfd/version.h b/bfd/version.h index ca90452..beed058 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -16,7 +16,7 @@ In releases, the date is not included in either version strings or sonames. */ -#define BFD_VERSION_DATE 20250725 +#define BFD_VERSION_DATE 20250727 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release index 0604a56..7ab4c69 100644 --- a/binutils/README-how-to-make-a-release +++ b/binutils/README-how-to-make-a-release @@ -232,6 +232,10 @@ If this is an ODD numbered release: For the next few weeks, monitor the mailing list for new translations and respond to any requests to have patches applied to the branch. +Also - expect to receive lots of new/updated translations from the +Translation Project. These all need to be checked in to both the +mainline and the branch. + ============================================================================== ============================================================================== @@ -253,7 +257,7 @@ How to create the release. 21. a. Update the release number in bfd/version.m4 on the release branch to a whole new minor version number, without a point - value. Eg "2.44.90" becomes "2.45". NB/ Not: "2.45.00" + value. Eg "2.45.90" becomes "2.46". NB/ Not: "2.46.00" b. Change bfd/development.sh to set all values to "false". @@ -280,11 +284,10 @@ How to create the release. to exist in the master repository, and that the GDB project would need to agree to have it there. - e. Add ChangeLog entries for all of the updates and add a - "this-is-the-2.43-release" comment and commit. + e. Commit. git add . - git commit -m "This is the 2.45 release" + git commit -m "This is the 2.46 release" git push 22. Check that your file creation mask will create the @@ -311,17 +314,15 @@ How to create the release. If this is an EVEN numbered release: - ./src-release.sh -b -g -l -x -z binutils_with_gold + ./src-release.sh -b -g -l -x -z \ + -r `git log -1 --format=%cd --date=format:%F bfd/version.m4` \ + binutils_with_gold If this is an ODD numbered release: - ./src-release.sh -b -g -l -x -z binutils - - OR ... for a more reproducible tarball: - ./src-release.sh -b -g -l -x -z \ -r `git log -1 --format=%cd --date=format:%F bfd/version.m4` \ - [binutils | binutils_with_gold] + binutils 24. Check that the files in the tarballs have the correct permissions. @@ -330,7 +331,7 @@ How to create the release. Also check that the man files are not empty. (cf PR 28144). - tar tvf binutils-*.tar | grep -e "\.1" + tar tvf binutils-*.tar | grep -e "\.1" (look for zero sized files) 25. Sanity check the release on x86_64-pc-linux-gnu by building and running the testsuites (gas, gold, binutils and ld). @@ -365,21 +366,23 @@ How to create the release. popd 26. Tag the branch with the new release number: - [optional: add "-u XXXXX" to sign with a gpg key] - enter a tag message such as: "Official GNU Binutils 2.4x release" + [Optional: add "-u XXXXX" to sign with a gpg key. + Note: This may require changing the setting of [gpg] in your .gitconfig file] + + Enter a tag message such as: "Official GNU Binutils 2.4x release" git tag -a <TAG> -u <Your Key> eg: - git tag -a binutils-2_44 -u DD9E3C4F <=== Be careful to get the tag right + git tag -a binutils-2_46 -u DD9E3C4F <=== Be careful to get the tag right or: - git tag -a binutils-2_44 -u DD9E3C4F -m "Official GNU Binutils 2.44 release" + git tag -a binutils-2_46 -u DD9E3C4F -m "Official GNU Binutils 2.46 release" NB/ If you do sign the binaries make sure to use a key that has been published with the FSF. Then push the release: - git push origin binutils-2_44 + git push origin binutils-2_46 If you get an error message along the lines of: "Invalid revision range ..." @@ -387,11 +390,11 @@ How to create the release. 27. Upload the tarballs to ftp.gnu.org. - gnupload --to ftp.gnu.org:binutils binutils-2.44.tar.* + gnupload --to ftp.gnu.org:binutils binutils-2.46.tar.* Be prepared to provide the password for the key, if you signed the binaries. - + The gnupload script is in the build-aux/ directory of the gnulib project's srouces. It uses the ncftp package for transmitting the files. @@ -420,8 +423,8 @@ How to create the release. Create a new docs sub-directory and move into it: cd binutils-htdocs - mkdir docs-2.45 - cd docs-2.45 + mkdir docs-2.46 + cd docs-2.46 Copy the index.html from the previous release @@ -457,8 +460,8 @@ How to create the release. cp <build-dir>/ld/ld.pdf . [NB/ Path not like others] [NB/ The gprofng documentation does not have a node-per-page selection] - cp <build-dir>/gprofng/doc/gprof.html . - cp <build-dir>/gprofng/doc/gprof.pdf . + cp <build-dir>/gprofng/gprof.html . + cp <build-dir>/gprofng/gprof.pdf . cp <build-dir>/libctf/doc/ctf-spec.html . cp <build-dir>/libctf/doc/ctf-spec.pdf . @@ -470,19 +473,20 @@ How to create the release. cd .. [Should now be in be in binutils-htdocs/ ] rm docs - ln -s docs-2.45 docs + ln -s docs-2.46 docs Edit index.html file to change the links to point to the new release, mention any new features, update dates and so on. - Check that the new web page is correct: + Check that the new web page is correct by opening it in a browser: file:///<path-to-binutils-htdocs>/index.html Add the new directories and files, commit and push the changes: + get add docs-2.46 git add . - git commit -m"Update documenation for the 2.45 release" + git commit -m"Update documenation for the 2.46 release" git push diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 5e887f5..a15a04a 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -51,6 +51,7 @@ #include "cli/cli-cmds.h" #include "cli/cli-style.h" #include "cli/cli-utils.h" +#include "terminal.h" #include "extension.h" #include "gdbsupport/pathstuff.h" @@ -949,6 +950,9 @@ shell_escape (const char *arg, int from_tty) static void shell_command (const char *arg, int from_tty) { + scoped_gdb_ttystate save_restore_gdb_ttystate; + restore_initial_gdb_ttystate (); + shell_escape (arg, from_tty); } @@ -2898,6 +2902,7 @@ This can be changed using \"set listsize\", and the current value\n\ can be shown using \"show listsize\".")); add_com_alias ("l", list_cmd, class_files, 1); + set_cmd_completer(list_cmd, location_completer); c = add_com ("disassemble", class_vars, disassemble_command, _("\ Disassemble a specified section of memory.\n\ diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index a9f38cf..634d67a 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -9971,7 +9971,12 @@ handle_member_location (struct die_info *die, struct dwarf2_cu *cu, CORE_ADDR offset; if (decode_locdesc (data_member_location_attr->as_block (), cu, &offset)) - field->set_loc_bitpos (offset * bits_per_byte); + { + field->set_loc_bitpos (offset * bits_per_byte); + + if (has_bit_offset) + apply_bit_offset_to_field (*field, bit_offset, anonymous_size); + } else { dwarf2_per_objfile *per_objfile = cu->per_objfile; diff --git a/gdb/inflow.c b/gdb/inflow.c index 31e1565..4f1c8ef 100644 --- a/gdb/inflow.c +++ b/gdb/inflow.c @@ -55,6 +55,20 @@ static void child_terminal_ours_1 (target_terminal_state); static struct serial *stdin_serial; +/* See terminal.h. */ + +scoped_gdb_ttystate::scoped_gdb_ttystate () +{ + m_ttystate = serial_get_tty_state (stdin_serial); +} + +/* See terminal.h. */ + +scoped_gdb_ttystate::~scoped_gdb_ttystate () +{ + serial_set_tty_state (stdin_serial, m_ttystate); +} + /* Terminal related info we need to keep track of. Each inferior holds an instance of this structure --- we save it whenever the corresponding inferior stops, and restore it to the terminal when @@ -163,6 +177,15 @@ set_initial_gdb_ttystate (void) } } +/* See terminal.h. */ + +void +restore_initial_gdb_ttystate () +{ + if (initial_gdb_ttystate != nullptr) + serial_set_tty_state (stdin_serial, initial_gdb_ttystate); +} + /* Does GDB have a terminal (on stdin)? */ static int diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c index 481bd41..a4e9cf5 100644 --- a/gdb/mingw-hdep.c +++ b/gdb/mingw-hdep.c @@ -493,10 +493,7 @@ show_maint_console_translation_mode (struct ui_file *file, int from_tty, console_translation_mode.c_str ()); } -extern void _initialize_mingw_hdep (); - -void -_initialize_mingw_hdep () +INIT_GDB_FILE (mingw_hdep) { add_setshow_string_cmd ("console-translation-mode", class_maintenance, diff --git a/gdb/solib-frv.h b/gdb/solib-frv.h index 710a424..a2f3558 100644 --- a/gdb/solib-frv.h +++ b/gdb/solib-frv.h @@ -1,5 +1,5 @@ /* Handle FR-V (FDPIC) shared libraries for GDB, the GNU Debugger. - Copyright (C) 2024 Free Software Foundation, Inc. + Copyright (C) 2025 Free Software Foundation, Inc. This file is part of GDB. diff --git a/gdb/svr4-tls-tdep.c b/gdb/svr4-tls-tdep.c index 75d06a4..1f36d57 100644 --- a/gdb/svr4-tls-tdep.c +++ b/gdb/svr4-tls-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for GNU/Linux, architecture independent. - Copyright (C) 2009-2024 Free Software Foundation, Inc. + Copyright (C) 2009-2025 Free Software Foundation, Inc. This file is part of GDB. diff --git a/gdb/terminal.h b/gdb/terminal.h index 54e5e98..720fd4a 100644 --- a/gdb/terminal.h +++ b/gdb/terminal.h @@ -19,6 +19,8 @@ #ifndef GDB_TERMINAL_H #define GDB_TERMINAL_H +#include "serial.h" + struct inferior; extern void new_tty_prefork (std::string ttyname); @@ -43,4 +45,17 @@ extern void gdb_save_tty_state (void); have had a chance to alter it. */ extern void set_initial_gdb_ttystate (void); +/* Restore initial tty state. */ +extern void restore_initial_gdb_ttystate (void); + +/* An RAII-based object that saves the tty state, and then restores it again + when this object is destroyed. */ +class scoped_gdb_ttystate +{ +public: + scoped_gdb_ttystate (); + ~scoped_gdb_ttystate (); +private: + serial_ttystate m_ttystate; +}; #endif /* GDB_TERMINAL_H */ diff --git a/libsframe/doc/sframe-spec.texi b/libsframe/doc/sframe-spec.texi index 7307789..f25791e 100644 --- a/libsframe/doc/sframe-spec.texi +++ b/libsframe/doc/sframe-spec.texi @@ -20,7 +20,7 @@ License''. @titlepage @title The SFrame Format -@subtitle Version 2 +@subtitle Version 2 (Errata 1) @sp 15 @center @today{} @author Indu Bhagat @@ -35,9 +35,9 @@ License''. @node Top @top The SFrame format -This manual describes version 2 of the SFrame file format. SFrame stands for -Simple Frame. The SFrame format keeps track of the minimal necessary -information needed for generating stack traces: +This manual describes version 2 (errata 1) of the SFrame file format. SFrame +stands for Simple Frame. The SFrame format keeps track of the minimal +necessary information needed for generating stack traces: @itemize @minus @item @@ -130,9 +130,9 @@ the data structure. The above two imply that each SFrame function descriptor entry has a fixed size of 20 bytes instead of its size of 17 bytes in SFrame format version 1. @item -Add a new flag SFRAME_F_FDE_FUNC_START_PCREL, as an erratum to SFrame -Version 2, to indicate the encoding of the SFrame FDE function start address -field: +[Errata 1] Add a new flag SFRAME_F_FDE_FUNC_START_PCREL, as an erratum to +SFrame Version 2, to indicate the encoding of the SFrame FDE function start +address field: @itemize @minus @item if set, @code{sfde_func_start_address} field contains the offset in bytes to the start PC of the associated function from the field itself. @@ -141,8 +141,8 @@ bytes to the start PC of the associated function from the start of the SFrame section. @end itemize @item -Add a new ABI/arch identifier SFRAME_ABI_S390X_ENDIAN_BIG for the s390 -architecture (64-bit) s390x ABI. Other s390x-specific backward compatible +[Errata 1] Add a new ABI/arch identifier SFRAME_ABI_S390X_ENDIAN_BIG for the +s390 architecture (64-bit) s390x ABI. Other s390x-specific backward compatible changes including the following helper definitions have been incrementally added to SFrame version 2 only: @itemize @minus @@ -165,6 +165,8 @@ CFA offset adjustment and then scale down by CFA offset alignment factor). @item SFRAME_V2_S390X_CFA_OFFSET_DECODE: Decode CFA offset (i.e., scale up by CFA offset alignment factor and then revert CFA offset adjustment). @end itemize +@item +[Errata 1] An ELF SFrame section has the type SHT_GNU_SFRAME. @end itemize SFrame version 1 is now obsolete and should not be used. diff --git a/opcodes/sparc-dis.c b/opcodes/sparc-dis.c index 1138136..f935783 100644 --- a/opcodes/sparc-dis.c +++ b/opcodes/sparc-dis.c @@ -387,40 +387,12 @@ compare_opcodes (const void * a, const void * b) return length_diff; } - /* Put 1+i before i+1. */ - { - char *p0 = (char *) strchr (op0->args, '+'); - char *p1 = (char *) strchr (op1->args, '+'); - - if (p0 && p1) - { - /* There is a plus in both operands. Note that a plus - sign cannot be the first character in args, - so the following [-1]'s are valid. */ - if (p0[-1] == 'i' && p1[1] == 'i') - /* op0 is i+1 and op1 is 1+i, so op1 goes first. */ - return 1; - if (p0[1] == 'i' && p1[-1] == 'i') - /* op0 is 1+i and op1 is i+1, so op0 goes first. */ - return -1; - } - } - - /* Put 1,i before i,1. */ - { - int i0 = strncmp (op0->args, "i,1", 3) == 0; - int i1 = strncmp (op1->args, "i,1", 3) == 0; - - if (i0 ^ i1) - return i0 - i1; - } - - /* They are, as far as we can tell, identical. - Since qsort may have rearranged the table partially, there is - no way to tell which one was first in the opcode table as - written, so just say there are equal. */ - /* ??? This is no longer true now that we sort a vector of pointers, - not the table itself. */ + /* They are, as far as we can tell, identical. Keep the order in + the sparc_opcodes table. */ + if (op0 < op1) + return -1; + if (op0 > op1) + return 1; return 0; } |