diff mbox series

[wrynose] gdb: Upgrade 17.1 -> 17.2

Message ID 20260630071906.1274019-1-Deepesh.Varatharajan@windriver.com
State New
Headers show
Series [wrynose] gdb: Upgrade 17.1 -> 17.2 | expand

Commit Message

Deepesh Varatharajan June 30, 2026, 7:19 a.m. UTC
From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

GDB 17.2 brings the following fixes and enhancements over GDB 17.1:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-17.2-release

 * PR dap/33228 ([gdb/dap] error while listing register children)

 * PR gdb/33737 (gdb --help says 'For more information, type "stream"
   from within GDB', but "stream" is not a defined command)

 * PR build/33747 (Incompatible with MUSL libc: no member named 'c_ospeed'
   in 'termios')

 * PR gdb/33748 (gdb17 regression with displaying ANSI colors)

 * PR gdb/33753 (Out-of-bounds writes in string_{v}printf -- threads
   and static data don't mix)

 * PR cli/33761 (Setting style colors is broken on MS-Windows)

 * PR gdb/33768 (Loading compressed GDB scripts from .debug_gdb_scripts fails)

 * PR symtab/33775 ([gdb/symtab] data race in
   dwarf2_per_cu::{set_addr_size,set_offset_size,set_ref_addr_size})

 * PR symtab/33777 ([gdb/symtab] dw2_get_file_names doesn't cache result
   for dummy CU)

 * PR symtab/33825 ([dwz] Extremely slow symbol lookup with DWZ-compressed
   debug info (thousands of partial units))

 * PR testsuite/33845 (gdb: There are 4 unexpected failures in
   breakpoint-in-ro-region.exp)

 * PR gdb/33872 (`skip -gfile` has inverted logic)

 * PR gdb/33926 (GDB 17.1 AArch64: redefinition of user_gcs struct on musl)

 * PR breakpoints/34112 (rbreak `file:regex` sets breakpoints for matches
   outside of `file` [reproducer attached])

Drop patches merged upstream:
  * 0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
  * 0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
---
 ...ian_17.1.bb => gdb-cross-canadian_17.2.bb} |   0
 .../{gdb-cross_17.1.bb => gdb-cross_17.2.bb}  |   0
 meta/recipes-devtools/gdb/gdb.inc             |   4 +-
 ...-ser-unix-modernize-Linux-custom-bau.patch | 248 ------------------
 ...ux-Fix-build-failure-on-musl-systems.patch | 196 --------------
 .../gdb/{gdb_17.1.bb => gdb_17.2.bb}          |   0
 6 files changed, 1 insertion(+), 447 deletions(-)
 rename meta/recipes-devtools/gdb/{gdb-cross-canadian_17.1.bb => gdb-cross-canadian_17.2.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb-cross_17.1.bb => gdb-cross_17.2.bb} (100%)
 delete mode 100644 meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
 delete mode 100644 meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
 rename meta/recipes-devtools/gdb/{gdb_17.1.bb => gdb_17.2.bb} (100%)

Comments

Yoann Congal June 30, 2026, 7:32 a.m. UTC | #1
Le mar. 30 juin 2026 à 09:19, Varatharajan, Deepesh via
lists.openembedded.org <deepesh.varatharajan=
windriver.com@lists.openembedded.org> a écrit :

> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>
> GDB 17.2 brings the following fixes and enhancements over GDB 17.1:
>
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-17.2-release


"enhancements" => That sounds like something that is *not* acceptable under
stable policy. Did you check?

>
>
>  * PR dap/33228 ([gdb/dap] error while listing register children)
>
>  * PR gdb/33737 (gdb --help says 'For more information, type "stream"
>    from within GDB', but "stream" is not a defined command)
>
>  * PR build/33747 (Incompatible with MUSL libc: no member named 'c_ospeed'
>    in 'termios')
>
>  * PR gdb/33748 (gdb17 regression with displaying ANSI colors)
>
>  * PR gdb/33753 (Out-of-bounds writes in string_{v}printf -- threads
>    and static data don't mix)
>
>  * PR cli/33761 (Setting style colors is broken on MS-Windows)
>
>  * PR gdb/33768 (Loading compressed GDB scripts from .debug_gdb_scripts
> fails)
>
>  * PR symtab/33775 ([gdb/symtab] data race in
>    dwarf2_per_cu::{set_addr_size,set_offset_size,set_ref_addr_size})
>
>  * PR symtab/33777 ([gdb/symtab] dw2_get_file_names doesn't cache result
>    for dummy CU)
>
>  * PR symtab/33825 ([dwz] Extremely slow symbol lookup with DWZ-compressed
>    debug info (thousands of partial units))
>
>  * PR testsuite/33845 (gdb: There are 4 unexpected failures in
>    breakpoint-in-ro-region.exp)
>
>  * PR gdb/33872 (`skip -gfile` has inverted logic)
>
>  * PR gdb/33926 (GDB 17.1 AArch64: redefinition of user_gcs struct on musl)
>
>  * PR breakpoints/34112 (rbreak `file:regex` sets breakpoints for matches
>    outside of `file` [reproducer attached])
>
> Drop patches merged upstream:
>   * 0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>   * 0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>
> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
> ---
>  ...ian_17.1.bb => gdb-cross-canadian_17.2.bb} |   0
>  .../{gdb-cross_17.1.bb => gdb-cross_17.2.bb}  |   0
>  meta/recipes-devtools/gdb/gdb.inc             |   4 +-
>  ...-ser-unix-modernize-Linux-custom-bau.patch | 248 ------------------
>  ...ux-Fix-build-failure-on-musl-systems.patch | 196 --------------
>  .../gdb/{gdb_17.1.bb => gdb_17.2.bb}          |   0
>  6 files changed, 1 insertion(+), 447 deletions(-)
>  rename meta/recipes-devtools/gdb/{gdb-cross-canadian_17.1.bb =>
> gdb-cross-canadian_17.2.bb} (100%)
>  rename meta/recipes-devtools/gdb/{gdb-cross_17.1.bb => gdb-cross_17.2.bb}
> (100%)
>  delete mode 100644
> meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>  delete mode 100644
> meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>  rename meta/recipes-devtools/gdb/{gdb_17.1.bb => gdb_17.2.bb} (100%)
>
> diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
> b/meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
> similarity index 100%
> rename from meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
> rename to meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
> diff --git a/meta/recipes-devtools/gdb/gdb-cross_17.1.bb
> b/meta/recipes-devtools/gdb/gdb-cross_17.2.bb
> similarity index 100%
> rename from meta/recipes-devtools/gdb/gdb-cross_17.1.bb
> rename to meta/recipes-devtools/gdb/gdb-cross_17.2.bb
> diff --git a/meta/recipes-devtools/gdb/gdb.inc
> b/meta/recipes-devtools/gdb/gdb.inc
> index d367486d02..cbb5885459 100644
> --- a/meta/recipes-devtools/gdb/gdb.inc
> +++ b/meta/recipes-devtools/gdb/gdb.inc
> @@ -13,7 +13,5 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
>             file://0006-Fix-invalid-sigprocmask-call.patch \
>
> file://0007-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
>
> file://0008-Add-fix-for-packages-that-are-not-compatible-with-C2.patch \
> -
>  file://0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch \
> -
>  file://0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch \
>             "
> -SRC_URI[sha256sum] =
> "14996f5f74c9f68f5a543fdc45bca7800207f91f92aeea6c2e791822c7c6d876"
> +SRC_URI[sha256sum] =
> "1c036c0d72e4b3d1fb5c94c88632add6f9d76f4d7c4d2ea793c12a9f19a3228c"
> diff --git
> a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
> b/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
> deleted file mode 100644
> index 30d22b21f9..0000000000
> ---
> a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
> +++ /dev/null
> @@ -1,248 +0,0 @@
> -From 1a77c71303b552140613d49595baebdff1a4716e Mon Sep 17 00:00:00 2001
> -From: Sunil Dora <sunilkumar.dora@windriver.com>
> -Date: Tue, 17 Mar 2026 01:58:55 -0700
> -Subject: [PATCH] PR gdb/33747: gdb/ser-unix: modernize Linux custom baud
> rate
> - support
> -
> -The Linux custom baud rate implementation previously accessed the
> -struct termios members c_ispeed and c_ospeed directly. These fields
> -exist in glibc but are not exposed by musl, causing builds to fail on
> -musl-based systems.
> -
> -Update set_custom_baudrate_linux to use a capability-based approach,
> -with three distinct code paths:
> -
> -1) If POSIX cfsetispeed/cfsetospeed accept arbitrary baud rates
> -   (HAVE_CFSETSPEED_ARBITRARY), use them to set input and output
> -   speeds.
> -
> -2) Else if Linux termios2 interface is available (TCGETS2/BOTHER),
> -   use it to support arbitrary baud rates.
> -
> -3) Else if legacy struct termios supports c_ispeed/c_ospeed, use
> -   the TCGETS/TCSETS fallback (primarily for glibc on older
> -   architectures).
> -
> -4) Otherwise, emit an error indicating that custom baud rates are
> -   unsupported on this platform.
> -
> -This preserves existing behavior on glibc systems while restoring
> -build compatibility with musl and other libc implementations.
> -
> -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33747
> -
> -Upstream-Status: Submitted [
> https://sourceware.org/pipermail/gdb-patches/2026-March/225952.html]
> -
> -Suggested-by: Kevin Buettner <kevinb@redhat.com>
> -Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk>
> -Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
> ----
> - gdb/config.in    |  6 ++++++
> - gdb/configure    | 52 +++++++++++++++++++++++++++++++++++++++++++++
> - gdb/configure.ac | 22 +++++++++++++++++++
> - gdb/ser-unix.c   | 55 ++++++++++++++++++++++++++++++++++--------------
> - 4 files changed, 119 insertions(+), 16 deletions(-)
> -
> -diff --git a/gdb/config.in b/gdb/config.in
> -index efc3100cb9e..b2469c8dabd 100644
> ---- a/gdb/config.in
> -+++ b/gdb/config.in
> -@@ -110,6 +110,9 @@
> -    the CoreFoundation framework. */
> - #undef HAVE_CFPREFERENCESCOPYAPPVALUE
> -
> -+/* Define if cfsetispeed/cfsetospeed accept arbitrary baud rates */
> -+#undef HAVE_CFSETSPEED_ARBITRARY
> -+
> - /* Define if compiling support to gdb compile. */
> - #undef HAVE_COMPILE
> -
> -@@ -517,6 +520,9 @@
> - /* Define to 1 if `st_blocks' is a member of `struct stat'. */
> - #undef HAVE_STRUCT_STAT_ST_BLOCKS
> -
> -+/* Define to 1 if `c_ospeed' is a member of `struct termios'. */
> -+#undef HAVE_STRUCT_TERMIOS_C_OSPEED
> -+
> - /* Define to 1 if `td_pcb' is a member of `struct thread'. */
> - #undef HAVE_STRUCT_THREAD_TD_PCB
> -
> -diff --git a/gdb/configure b/gdb/configure
> -index d0bdba6eb36..8a0e2fa2771 100755
> ---- a/gdb/configure
> -+++ b/gdb/configure
> -@@ -27336,6 +27336,58 @@ if test "$ac_res" != no; then :
> - fi
> -
> -
> -+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
> -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether
> cfsetispeed/cfsetospeed accept arbitrary baud rates" >&5
> -+$as_echo_n "checking whether cfsetispeed/cfsetospeed accept arbitrary
> baud rates... " >&6; }
> -+if ${gdb_cv_cfsetspeed_arbitrary+:} false; then :
> -+  $as_echo_n "(cached) " >&6
> -+else
> -+
> -+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> -+/* end confdefs.h.  */
> -+#include <termios.h>
> -+int
> -+main ()
> -+{
> -+
> -+       #if B9600 != 9600
> -+       #error B-constants are not numeric symbols
> -+       #endif
> -+
> -+  ;
> -+  return 0;
> -+}
> -+_ACEOF
> -+if ac_fn_c_try_compile "$LINENO"; then :
> -+  gdb_cv_cfsetspeed_arbitrary=yes
> -+else
> -+  gdb_cv_cfsetspeed_arbitrary=no
> -+fi
> -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> -+
> -+fi
> -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
> $gdb_cv_cfsetspeed_arbitrary" >&5
> -+$as_echo "$gdb_cv_cfsetspeed_arbitrary" >&6; }
> -+
> -+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
> -+
> -+$as_echo "#define HAVE_CFSETSPEED_ARBITRARY 1" >>confdefs.h
> -+
> -+fi
> -+
> -+# Check for members required by the legacy Linux custom baud rate path.
> -+ac_fn_c_check_member "$LINENO" "struct termios" "c_ospeed"
> "ac_cv_member_struct_termios_c_ospeed" "#include <termios.h>
> -+"
> -+if test "x$ac_cv_member_struct_termios_c_ospeed" = xyes; then :
> -+
> -+cat >>confdefs.h <<_ACEOF
> -+#define HAVE_STRUCT_TERMIOS_C_OSPEED 1
> -+_ACEOF
> -+
> -+
> -+fi
> -+
> -+
> -
> -
> - # Check whether --with-jit-reader-dir was given.
> -diff --git a/gdb/configure.ac b/gdb/configure.ac
> -index 52924106bca..26e8d1ee276 100644
> ---- a/gdb/configure.ac
> -+++ b/gdb/configure.ac
> -@@ -733,6 +733,28 @@ AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
> -
> - AC_SEARCH_LIBS(dlopen, dl)
> -
> -+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
> -+AC_CACHE_CHECK([whether cfsetispeed/cfsetospeed accept arbitrary baud
> rates],
> -+  [gdb_cv_cfsetspeed_arbitrary], [
> -+  AC_COMPILE_IFELSE(
> -+    [AC_LANG_PROGRAM([[#include <termios.h>]],
> -+      [[
> -+       #if B9600 != 9600
> -+       #error B-constants are not numeric symbols
> -+       #endif
> -+      ]])],
> -+    [gdb_cv_cfsetspeed_arbitrary=yes],
> -+    [gdb_cv_cfsetspeed_arbitrary=no])
> -+])
> -+
> -+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
> -+  AC_DEFINE([HAVE_CFSETSPEED_ARBITRARY], [1],
> -+           [Define if cfsetispeed/cfsetospeed accept arbitrary baud
> rates])
> -+fi
> -+
> -+# Check for members required by the legacy Linux custom baud rate path.
> -+AC_CHECK_MEMBERS([struct termios.c_ospeed], [], [], [[#include
> <termios.h>]])
> -+
> - GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
> -                 [directory to load the JIT readers from],
> -                 [${libdir}/gdb])
> -diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
> -index 6f2766518be..fbd73970dbb 100644
> ---- a/gdb/ser-unix.c
> -+++ b/gdb/ser-unix.c
> -@@ -508,36 +508,59 @@ set_baudcode_baudrate (struct serial *scb, int
> baud_code)
> -
> - #if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER)
> -
> --/* Set a custom baud rate using the termios BOTHER.  */
> -+/* Set a custom baud rate.
> -+
> -+   Prefer the POSIX cfsetispeed/cfsetospeed interface when it accepts
> -+   arbitrary baud rates.  Otherwise fall back to Linux-specific termios2
> -+   (BOTHER) or legacy termios interfaces.  */
> -
> - static void
> - set_custom_baudrate_linux (int fd, int rate)
> - {
> --#ifdef TCGETS2
> --  struct termios2 tio;
> --  const unsigned long req_get = TCGETS2;
> --  const unsigned long req_set = TCSETS2;
> --#else
> -+#if defined(HAVE_CFSETSPEED_ARBITRARY)
> -   struct termios tio;
> --  const unsigned long req_get = TCGETS;
> --  const unsigned long req_set = TCSETS;
> --#endif
> -+  if (tcgetattr (fd, &tio) < 0)
> -+    perror_with_name (_("Cannot get current baud rate"));
> -+
> -+  cfsetispeed (&tio, rate);
> -+  cfsetospeed (&tio, rate);
> -+
> -+  if (tcsetattr (fd, TCSANOW, &tio) < 0)
> -+    perror_with_name (_("Cannot set custom baud rate"));
> -+
> -+#elif defined(TCGETS2)
> -+  struct termios2 tio2;
> -+  if (ioctl (fd, TCGETS2, &tio2) < 0)
> -+    perror_with_name (_("Cannot get current baud rate"));
> -+
> -+  tio2.c_cflag &= ~CBAUD;
> -+  tio2.c_cflag |= BOTHER;
> -+  tio2.c_ospeed = rate;
> -+  tio2.c_cflag &= ~(CBAUD << IBSHIFT);
> -+  tio2.c_cflag |= BOTHER << IBSHIFT;
> -+  tio2.c_ispeed = rate;
> -
> --  if (ioctl (fd, req_get, &tio) < 0)
> --    perror_with_name (_("Can not get current baud rate"));
> -+  if (ioctl (fd, TCSETS2, &tio2) < 0)
> -+    perror_with_name (_("Cannot set custom baud rate"));
> -+
> -+#elif defined(HAVE_STRUCT_TERMIOS_C_OSPEED)
> -+  struct termios tio;
> -+  if (ioctl (fd, TCGETS, &tio) < 0)
> -+    perror_with_name (_("Cannot get current baud rate"));
> -
> --  /* Clear the current output baud rate and fill a new value.  */
> -   tio.c_cflag &= ~CBAUD;
> -   tio.c_cflag |= BOTHER;
> -   tio.c_ospeed = rate;
> --
> --  /* Clear the current input baud rate and fill a new value.  */
> -   tio.c_cflag &= ~(CBAUD << IBSHIFT);
> -   tio.c_cflag |= BOTHER << IBSHIFT;
> -   tio.c_ispeed = rate;
> -
> --  if (ioctl (fd, req_set, &tio) < 0)
> --    perror_with_name (_("Can not set custom baud rate"));
> -+  if (ioctl (fd, TCSETS, &tio) < 0)
> -+    perror_with_name (_("Cannot set custom baud rate"));
> -+
> -+#else
> -+  error (_("Custom baud rate not supported on this platform"));
> -+#endif
> - }
> -
> - #elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(IOSSIOSPEED)
> ---
> -2.49.0
> -
> diff --git
> a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
> b/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
> deleted file mode 100644
> index 2d91a351d2..0000000000
> ---
> a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
> +++ /dev/null
> @@ -1,196 +0,0 @@
> -From 654223c799910837c80d0964a971fbdf7808864a Mon Sep 17 00:00:00 2001
> -From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
> -Date: Tue, 17 Mar 2026 02:24:48 -0700
> -Subject: [PATCH] GDB: aarch64-linux: Fix build failure on musl systems
> -
> -(cherry picked from commit 02090062127d59978ccc312dabf63c6ea838cd85)
> -
> -When building against musl (e.g. on Alpine Linux), the following error
> -happens:
> -
> -    CXX    linux-aarch64-low.o
> -  In file included from
> /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc:42:
> -
> /home/bauermann/src/binutils-gdb/gdbserver/../gdb/arch/aarch64-gcs-linux.h:35:8:
> error: redefinition of 'struct user_gcs'
> -     35 | struct user_gcs
> -        |        ^~~~~~~~
> -  In file included from
> /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc:35:
> -  /usr/include/asm/ptrace.h:329:8: note: previous definition of 'struct
> user_gcs'
> -    329 | struct user_gcs {
> -        |        ^~~~~~~~
> -  make[2]: *** [Makefile:565: linux-aarch64-low.o] Error 1
> -
> -aarch64-linux-tdep.c fails to build in the same way.  This happens because
> -aarch64-gcs-linux.h uses GCS_MAGIC to see whether the system headers
> -have GCS-related definitions.  The problem is that GCS_MAGIC is defined in
> -<asm/sigcontext.h> while struct gcs_user is defined in <asm/ptrace.h>.
> -It's fine on glibc systems because in the set of system headers that
> -linux-aarch64-low.cc and aarch64-linux-tdep.c include, <asm/sigcontext.h>
> -ends up being included implicitly as well.  This doesn't happen when using
> -musl's headers though.
> -
> -There isn't a macro in <asm/ptrace.h> whose presence is correlated with
> -the presence of the struct user_gcs definition, so a configure check is
> -needed to detect it and conditionally define the struct.
> -
> -Also, this change requires aarch64-linux-tdep.c to stop using
> -struct user_gcs because target-dependent code can't include <asm/ptrace.h>
> -and thus even if HAVE_STRUCT_USER_GCS is set, the file won't have the
> -struct definition available. To fix this problem, also backport the
> -definition of AARCH64_LINUX_SIZEOF_GCS_REGSET and use it there.
> -
> -Note that there's another build issue with musl, described in
> -PR gdb/33747 affecting compilation of gdb/ser-unix.c.  In order to be
> -able to test this patch, I applied the patch in comment 11 there.
> -
> -Tested with a native build on an Alpine Linux aarch64 system, and also
> -verified that all gdb.arch/aarch64-gcs*.exp tests pass on it.
> -
> -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33926
> -
> -Upstream-Status: Submitted [
> https://sourceware.org/pipermail/gdb-patches/2026-March/226049.html]
> -
> -Co-authored-by: Chris Packham <judge.packham@gmail.com>
> -Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
> ----
> - gdb/aarch64-linux-tdep.c     |  5 +++--
> - gdb/arch/aarch64-gcs-linux.h |  8 +++++---
> - gdbsupport/config.in         |  3 +++
> - gdbsupport/configure         | 36 ++++++++++++++++++++++++++++++++++++
> - gdbsupport/configure.ac      | 19 +++++++++++++++++++
> - 5 files changed, 66 insertions(+), 5 deletions(-)
> -
> -diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
> -index 76bde85188b..6c402e7ecdd 100644
> ---- a/gdb/aarch64-linux-tdep.c
> -+++ b/gdb/aarch64-linux-tdep.c
> -@@ -1684,8 +1684,9 @@ aarch64_linux_iterate_over_regset_sections (struct
> gdbarch *gdbarch,
> -         gcs_regmap, regcache_supply_regset, regcache_collect_regset
> -       };
> -
> --      cb (".reg-aarch-gcs", sizeof (user_gcs), sizeof (user_gcs),
> --        &aarch64_linux_gcs_regset, "GCS registers", cb_data);
> -+      cb (".reg-aarch-gcs", AARCH64_LINUX_SIZEOF_GCS_REGSET,
> -+        AARCH64_LINUX_SIZEOF_GCS_REGSET, &aarch64_linux_gcs_regset,
> -+        "GCS registers", cb_data);
> -     }
> - }
> -
> -diff --git a/gdb/arch/aarch64-gcs-linux.h b/gdb/arch/aarch64-gcs-linux.h
> -index 018ca37a522..632823a8120 100644
> ---- a/gdb/arch/aarch64-gcs-linux.h
> -+++ b/gdb/arch/aarch64-gcs-linux.h
> -@@ -27,8 +27,7 @@
> - #define HWCAP_GCS (1ULL << 32)
> - #endif
> -
> --/* Make sure we only define these if the kernel header doesn't.  */
> --#ifndef GCS_MAGIC
> -+#ifndef HAVE_STRUCT_USER_GCS
> -
> - /* GCS state (NT_ARM_GCS).  */
> -
> -@@ -39,6 +38,9 @@ struct user_gcs
> -   uint64_t gcspr_el0;
> - };
> -
> --#endif /* GCS_MAGIC */
> -+#endif /* HAVE_STRUCT_USER_GCS */
> -+
> -+/* The GCS regset consists of 3 64-bit registers.  */
> -+#define AARCH64_LINUX_SIZEOF_GCS_REGSET (3 * 8)
> -
> - #endif /* GDB_ARCH_AARCH64_GCS_LINUX_H */
> -diff --git a/gdbsupport/config.in b/gdbsupport/config.in
> -index 0beacf22c05..2957ee0f030 100644
> ---- a/gdbsupport/config.in
> -+++ b/gdbsupport/config.in
> -@@ -271,6 +271,9 @@
> - /* Define to 1 if `st_blocks' is a member of `struct stat'. */
> - #undef HAVE_STRUCT_STAT_ST_BLOCKS
> -
> -+/* Define to 1 if your system has struct user_gcs. */
> -+#undef HAVE_STRUCT_USER_GCS
> -+
> - /* Define to 1 if you have the <sys/param.h> header file. */
> - #undef HAVE_SYS_PARAM_H
> -
> -diff --git a/gdbsupport/configure b/gdbsupport/configure
> -index 133ddfa7f6c..66135791aa5 100755
> ---- a/gdbsupport/configure
> -+++ b/gdbsupport/configure
> -@@ -14307,6 +14307,42 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
> -
> -
> -
> -+# Check for `struct user_gcs`
> -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct user_gcs"
> >&5
> -+$as_echo_n "checking for struct user_gcs... " >&6; }
> -+if ${gdb_cv_struct_user_gcs+:} false; then :
> -+  $as_echo_n "(cached) " >&6
> -+else
> -+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> -+/* end confdefs.h.  */
> -+#include <sys/ptrace.h>
> -+       #include <asm/ptrace.h>
> -+int
> -+main ()
> -+{
> -+struct user_gcs u;
> -+
> -+  ;
> -+  return 0;
> -+}
> -+_ACEOF
> -+if ac_fn_c_try_compile "$LINENO"; then :
> -+  gdb_cv_struct_user_gcs=yes
> -+else
> -+  gdb_cv_struct_user_gcs=no
> -+
> -+fi
> -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> -+
> -+fi
> -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
> $gdb_cv_struct_user_gcs" >&5
> -+$as_echo "$gdb_cv_struct_user_gcs" >&6; }
> -+if test "$gdb_cv_struct_user_gcs" = yes; then
> -+
> -+$as_echo "#define HAVE_STRUCT_USER_GCS 1" >>confdefs.h
> -+
> -+fi
> -+
> - # Set the 'development' global.
> - . $srcdir/../bfd/development.sh
> -
> -diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac
> -index b7ccfabd6c6..d3b4c05daeb 100644
> ---- a/gdbsupport/configure.ac
> -+++ b/gdbsupport/configure.ac
> -@@ -68,6 +68,25 @@ GDB_AC_PTRACE
> - AM_GDB_COMPILER_TYPE
> - AM_GDB_WARNINGS
> -
> -+# Check for `struct user_gcs`
> -+AC_CACHE_CHECK(
> -+  [for struct user_gcs],
> -+  [gdb_cv_struct_user_gcs],
> -+  [AC_COMPILE_IFELSE(
> -+     [AC_LANG_PROGRAM(
> -+      [#include <sys/ptrace.h>
> -+       #include <asm/ptrace.h>],
> -+      [struct user_gcs u;]
> -+      )],
> -+     [gdb_cv_struct_user_gcs=yes],
> -+     [gdb_cv_struct_user_gcs=no]
> -+  )]
> -+)
> -+if test "$gdb_cv_struct_user_gcs" = yes; then
> -+  AC_DEFINE(HAVE_STRUCT_USER_GCS, 1,
> -+          [Define to 1 if your system has struct user_gcs.])
> -+fi
> -+
> - # Set the 'development' global.
> - . $srcdir/../bfd/development.sh
> -
> ---
> -2.49.0
> -
> diff --git a/meta/recipes-devtools/gdb/gdb_17.1.bb
> b/meta/recipes-devtools/gdb/gdb_17.2.bb
> similarity index 100%
> rename from meta/recipes-devtools/gdb/gdb_17.1.bb
> rename to meta/recipes-devtools/gdb/gdb_17.2.bb
> --
> 2.49.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#239857):
> https://lists.openembedded.org/g/openembedded-core/message/239857
> Mute This Topic: https://lists.openembedded.org/mt/120043435/4316185
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> yoann.congal@smile.fr]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Deepesh Varatharajan June 30, 2026, 7:53 a.m. UTC | #2
On 30-06-2026 13:02, Yoann Congal wrote:
> **
> *CAUTION: This email comes from a non Wind River email account!*
> Do not click links or open attachments unless you recognize the sender 
> and know the content is safe.
>
>
> Le mar. 30 juin 2026 à 09:19, Varatharajan, Deepesh via 
> lists.openembedded.org 
> <https://urldefense.com/v3/__http://lists.openembedded.org__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zv1JC9NQ$> 
> <deepesh.varatharajan=windriver.com@lists.openembedded.org> a écrit :
>
>     From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>
>     GDB 17.2 brings the following fixes and enhancements over GDB 17.1:
>     https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-17.2-release
>     <https://urldefense.com/v3/__https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb*NEWS;hb=gdb-17.2-release__;Lw!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6w6DF219w$>
>
>
> "enhancements" => That sounds like something that is *not* acceptable 
> under stable policy. Did you check?
Hi Yoann,

Thanks for pointing this out. I had copied the commit message from the 
corresponding commit on master. I verified the changes included in GDB 
17.2 compared to 17.1, and they are all bug fixes. I've updated the 
commit message and sent v2.

Regards,
Deepesh
>
>
>
>      * PR dap/33228 ([gdb/dap] error while listing register children)
>
>      * PR gdb/33737 (gdb --help says 'For more information, type "stream"
>        from within GDB', but "stream" is not a defined command)
>
>      * PR build/33747 (Incompatible with MUSL libc: no member named
>     'c_ospeed'
>        in 'termios')
>
>      * PR gdb/33748 (gdb17 regression with displaying ANSI colors)
>
>      * PR gdb/33753 (Out-of-bounds writes in string_{v}printf -- threads
>        and static data don't mix)
>
>      * PR cli/33761 (Setting style colors is broken on MS-Windows)
>
>      * PR gdb/33768 (Loading compressed GDB scripts from
>     .debug_gdb_scripts fails)
>
>      * PR symtab/33775 ([gdb/symtab] data race in
>      dwarf2_per_cu::{set_addr_size,set_offset_size,set_ref_addr_size})
>
>      * PR symtab/33777 ([gdb/symtab] dw2_get_file_names doesn't cache
>     result
>        for dummy CU)
>
>      * PR symtab/33825 ([dwz] Extremely slow symbol lookup with
>     DWZ-compressed
>        debug info (thousands of partial units))
>
>      * PR testsuite/33845 (gdb: There are 4 unexpected failures in
>        breakpoint-in-ro-region.exp)
>
>      * PR gdb/33872 (`skip -gfile` has inverted logic)
>
>      * PR gdb/33926 (GDB 17.1 AArch64: redefinition of user_gcs struct
>     on musl)
>
>      * PR breakpoints/34112 (rbreak `file:regex` sets breakpoints for
>     matches
>        outside of `file` [reproducer attached])
>
>     Drop patches merged upstream:
>       * 0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>       * 0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>
>     Signed-off-by: Deepesh Varatharajan
>     <Deepesh.Varatharajan@windriver.com>
>     ---
>      ...ian_17.1.bb
>     <https://urldefense.com/v3/__http://ian_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yB0ZouuA$>
>     => gdb-cross-canadian_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yJe89jLA$>}
>     |   0
>      .../{gdb-cross_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yoY74hZQ$>
>     => gdb-cross_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6ylk0WWdQ$>} 
>     |   0
>      meta/recipes-devtools/gdb/gdb.inc
>     <https://urldefense.com/v3/__http://gdb.inc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x597hGWA$> 
>                |   4 +-
>      ...-ser-unix-modernize-Linux-custom-bau.patch | 248
>     ------------------
>      ...ux-Fix-build-failure-on-musl-systems.patch | 196 --------------
>      .../gdb/{gdb_17.1.bb
>     <https://urldefense.com/v3/__http://gdb_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xWLB4o5A$>
>     => gdb_17.2.bb
>     <https://urldefense.com/v3/__http://gdb_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wwl9u49Q$>} 
>             |   0
>      6 files changed, 1 insertion(+), 447 deletions(-)
>      rename meta/recipes-devtools/gdb/{gdb-cross-canadian_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yFqh5ynQ$>
>     => gdb-cross-canadian_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yJe89jLA$>}
>     (100%)
>      rename meta/recipes-devtools/gdb/{gdb-cross_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yoY74hZQ$>
>     => gdb-cross_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6ylk0WWdQ$>}
>     (100%)
>      delete mode 100644
>     meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>      delete mode 100644
>     meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>      rename meta/recipes-devtools/gdb/{gdb_17.1.bb
>     <https://urldefense.com/v3/__http://gdb_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xWLB4o5A$>
>     => gdb_17.2.bb
>     <https://urldefense.com/v3/__http://gdb_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wwl9u49Q$>}
>     (100%)
>
>     diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yFqh5ynQ$>
>     b/meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yJe89jLA$>
>     similarity index 100%
>     rename from meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yFqh5ynQ$>
>     rename to meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross-canadian_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yJe89jLA$>
>     diff --git a/meta/recipes-devtools/gdb/gdb-cross_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yoY74hZQ$>
>     b/meta/recipes-devtools/gdb/gdb-cross_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6ylk0WWdQ$>
>     similarity index 100%
>     rename from meta/recipes-devtools/gdb/gdb-cross_17.1.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yoY74hZQ$>
>     rename to meta/recipes-devtools/gdb/gdb-cross_17.2.bb
>     <https://urldefense.com/v3/__http://gdb-cross_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6ylk0WWdQ$>
>     diff --git a/meta/recipes-devtools/gdb/gdb.inc
>     <https://urldefense.com/v3/__http://gdb.inc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x597hGWA$>
>     b/meta/recipes-devtools/gdb/gdb.inc
>     <https://urldefense.com/v3/__http://gdb.inc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x597hGWA$>
>     index d367486d02..cbb5885459 100644
>     --- a/meta/recipes-devtools/gdb/gdb.inc
>     <https://urldefense.com/v3/__http://gdb.inc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x597hGWA$>
>     +++ b/meta/recipes-devtools/gdb/gdb.inc
>     <https://urldefense.com/v3/__http://gdb.inc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x597hGWA$>
>     @@ -13,7 +13,5 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
>     file://0006-Fix-invalid-sigprocmask-call.patch \
>     file://0007-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
>     \
>     file://0008-Add-fix-for-packages-that-are-not-compatible-with-C2.patch
>     \
>     -
>     file://0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>     \
>     -
>     file://0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>     \
>                 "
>     -SRC_URI[sha256sum] =
>     "14996f5f74c9f68f5a543fdc45bca7800207f91f92aeea6c2e791822c7c6d876"
>     +SRC_URI[sha256sum] =
>     "1c036c0d72e4b3d1fb5c94c88632add6f9d76f4d7c4d2ea793c12a9f19a3228c"
>     diff --git
>     a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>     b/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>     deleted file mode 100644
>     index 30d22b21f9..0000000000
>     ---
>     a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
>     +++ /dev/null
>     @@ -1,248 +0,0 @@
>     -From 1a77c71303b552140613d49595baebdff1a4716e Mon Sep 17 00:00:00
>     2001
>     -From: Sunil Dora <sunilkumar.dora@windriver.com>
>     -Date: Tue, 17 Mar 2026 01:58:55 -0700
>     -Subject: [PATCH] PR gdb/33747: gdb/ser-unix: modernize Linux
>     custom baud rate
>     - support
>     -
>     -The Linux custom baud rate implementation previously accessed the
>     -struct termios members c_ispeed and c_ospeed directly. These fields
>     -exist in glibc but are not exposed by musl, causing builds to fail on
>     -musl-based systems.
>     -
>     -Update set_custom_baudrate_linux to use a capability-based approach,
>     -with three distinct code paths:
>     -
>     -1) If POSIX cfsetispeed/cfsetospeed accept arbitrary baud rates
>     -   (HAVE_CFSETSPEED_ARBITRARY), use them to set input and output
>     -   speeds.
>     -
>     -2) Else if Linux termios2 interface is available (TCGETS2/BOTHER),
>     -   use it to support arbitrary baud rates.
>     -
>     -3) Else if legacy struct termios supports c_ispeed/c_ospeed, use
>     -   the TCGETS/TCSETS fallback (primarily for glibc on older
>     -   architectures).
>     -
>     -4) Otherwise, emit an error indicating that custom baud rates are
>     -   unsupported on this platform.
>     -
>     -This preserves existing behavior on glibc systems while restoring
>     -build compatibility with musl and other libc implementations.
>     -
>     -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33747
>     <https://urldefense.com/v3/__https://sourceware.org/bugzilla/show_bug.cgi?id=33747__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x5rToniQ$>
>     -
>     -Upstream-Status: Submitted
>     [https://sourceware.org/pipermail/gdb-patches/2026-March/225952.html
>     <https://urldefense.com/v3/__https://sourceware.org/pipermail/gdb-patches/2026-March/225952.html__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zX2Iunnw$>]
>     -
>     -Suggested-by: Kevin Buettner <kevinb@redhat.com>
>     -Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk>
>     -Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
>     ----
>     - gdb/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>       |  6 ++++++
>     - gdb/configure    | 52 +++++++++++++++++++++++++++++++++++++++++++++
>     - gdb/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     | 22 +++++++++++++++++++
>     - gdb/ser-unix.c   | 55
>     ++++++++++++++++++++++++++++++++++--------------
>     - 4 files changed, 119 insertions(+), 16 deletions(-)
>     -
>     -diff --git a/gdb/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     b/gdb/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -index efc3100cb9e..b2469c8dabd 100644
>     ---- a/gdb/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -+++ b/gdb/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -@@ -110,6 +110,9 @@
>     -    the CoreFoundation framework. */
>     - #undef HAVE_CFPREFERENCESCOPYAPPVALUE
>     -
>     -+/* Define if cfsetispeed/cfsetospeed accept arbitrary baud rates */
>     -+#undef HAVE_CFSETSPEED_ARBITRARY
>     -+
>     - /* Define if compiling support to gdb compile. */
>     - #undef HAVE_COMPILE
>     -
>     -@@ -517,6 +520,9 @@
>     - /* Define to 1 if `st_blocks' is a member of `struct stat'. */
>     - #undef HAVE_STRUCT_STAT_ST_BLOCKS
>     -
>     -+/* Define to 1 if `c_ospeed' is a member of `struct termios'. */
>     -+#undef HAVE_STRUCT_TERMIOS_C_OSPEED
>     -+
>     - /* Define to 1 if `td_pcb' is a member of `struct thread'. */
>     - #undef HAVE_STRUCT_THREAD_TD_PCB
>     -
>     -diff --git a/gdb/configure b/gdb/configure
>     -index d0bdba6eb36..8a0e2fa2771 100755
>     ---- a/gdb/configure
>     -+++ b/gdb/configure
>     -@@ -27336,6 +27336,58 @@ if test "$ac_res" != no; then :
>     - fi
>     -
>     -
>     -+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
>     -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether
>     cfsetispeed/cfsetospeed accept arbitrary baud rates" >&5
>     -+$as_echo_n "checking whether cfsetispeed/cfsetospeed accept
>     arbitrary baud rates... " >&6; }
>     -+if ${gdb_cv_cfsetspeed_arbitrary+:} false; then :
>     -+  $as_echo_n "(cached) " >&6
>     -+else
>     -+
>     -+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>     -+/* end confdefs.h.  */
>     -+#include <termios.h>
>     -+int
>     -+main ()
>     -+{
>     -+
>     -+       #if B9600 != 9600
>     -+       #error B-constants are not numeric symbols
>     -+       #endif
>     -+
>     -+  ;
>     -+  return 0;
>     -+}
>     -+_ACEOF
>     -+if ac_fn_c_try_compile "$LINENO"; then :
>     -+  gdb_cv_cfsetspeed_arbitrary=yes
>     -+else
>     -+  gdb_cv_cfsetspeed_arbitrary=no
>     -+fi
>     -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>     -+
>     -+fi
>     -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
>     $gdb_cv_cfsetspeed_arbitrary" >&5
>     -+$as_echo "$gdb_cv_cfsetspeed_arbitrary" >&6; }
>     -+
>     -+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
>     -+
>     -+$as_echo "#define HAVE_CFSETSPEED_ARBITRARY 1" >>confdefs.h
>     -+
>     -+fi
>     -+
>     -+# Check for members required by the legacy Linux custom baud
>     rate path.
>     -+ac_fn_c_check_member "$LINENO" "struct termios" "c_ospeed"
>     "ac_cv_member_struct_termios_c_ospeed" "#include <termios.h>
>     -+"
>     -+if test "x$ac_cv_member_struct_termios_c_ospeed" = xyes; then :
>     -+
>     -+cat >>confdefs.h <<_ACEOF
>     -+#define HAVE_STRUCT_TERMIOS_C_OSPEED 1
>     -+_ACEOF
>     -+
>     -+
>     -+fi
>     -+
>     -+
>     -
>     -
>     - # Check whether --with-jit-reader-dir was given.
>     -diff --git a/gdb/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     b/gdb/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -index 52924106bca..26e8d1ee276 100644
>     ---- a/gdb/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -+++ b/gdb/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -@@ -733,6 +733,28 @@ AC_CONFIG_FILES([jit-reader.h:jit-reader.in
>     <https://urldefense.com/v3/__http://jit-reader.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yfW7KtxA$>])
>     -
>     - AC_SEARCH_LIBS(dlopen, dl)
>     -
>     -+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
>     -+AC_CACHE_CHECK([whether cfsetispeed/cfsetospeed accept arbitrary
>     baud rates],
>     -+  [gdb_cv_cfsetspeed_arbitrary], [
>     -+  AC_COMPILE_IFELSE(
>     -+    [AC_LANG_PROGRAM([[#include <termios.h>]],
>     -+      [[
>     -+       #if B9600 != 9600
>     -+       #error B-constants are not numeric symbols
>     -+       #endif
>     -+      ]])],
>     -+    [gdb_cv_cfsetspeed_arbitrary=yes],
>     -+    [gdb_cv_cfsetspeed_arbitrary=no])
>     -+])
>     -+
>     -+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
>     -+  AC_DEFINE([HAVE_CFSETSPEED_ARBITRARY], [1],
>     -+           [Define if cfsetispeed/cfsetospeed accept arbitrary
>     baud rates])
>     -+fi
>     -+
>     -+# Check for members required by the legacy Linux custom baud
>     rate path.
>     -+AC_CHECK_MEMBERS([struct termios.c_ospeed], [], [], [[#include
>     <termios.h>]])
>     -+
>     - GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
>     -                 [directory to load the JIT readers from],
>     -                 [${libdir}/gdb])
>     -diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
>     -index 6f2766518be..fbd73970dbb 100644
>     ---- a/gdb/ser-unix.c
>     -+++ b/gdb/ser-unix.c
>     -@@ -508,36 +508,59 @@ set_baudcode_baudrate (struct serial *scb,
>     int baud_code)
>     -
>     - #if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER)
>     -
>     --/* Set a custom baud rate using the termios BOTHER.  */
>     -+/* Set a custom baud rate.
>     -+
>     -+   Prefer the POSIX cfsetispeed/cfsetospeed interface when it
>     accepts
>     -+   arbitrary baud rates.  Otherwise fall back to Linux-specific
>     termios2
>     -+   (BOTHER) or legacy termios interfaces.  */
>     -
>     - static void
>     - set_custom_baudrate_linux (int fd, int rate)
>     - {
>     --#ifdef TCGETS2
>     --  struct termios2 tio;
>     --  const unsigned long req_get = TCGETS2;
>     --  const unsigned long req_set = TCSETS2;
>     --#else
>     -+#if defined(HAVE_CFSETSPEED_ARBITRARY)
>     -   struct termios tio;
>     --  const unsigned long req_get = TCGETS;
>     --  const unsigned long req_set = TCSETS;
>     --#endif
>     -+  if (tcgetattr (fd, &tio) < 0)
>     -+    perror_with_name (_("Cannot get current baud rate"));
>     -+
>     -+  cfsetispeed (&tio, rate);
>     -+  cfsetospeed (&tio, rate);
>     -+
>     -+  if (tcsetattr (fd, TCSANOW, &tio) < 0)
>     -+    perror_with_name (_("Cannot set custom baud rate"));
>     -+
>     -+#elif defined(TCGETS2)
>     -+  struct termios2 tio2;
>     -+  if (ioctl (fd, TCGETS2, &tio2) < 0)
>     -+    perror_with_name (_("Cannot get current baud rate"));
>     -+
>     -+  tio2.c_cflag &= ~CBAUD;
>     -+  tio2.c_cflag |= BOTHER;
>     -+  tio2.c_ospeed = rate;
>     -+  tio2.c_cflag &= ~(CBAUD << IBSHIFT);
>     -+  tio2.c_cflag |= BOTHER << IBSHIFT;
>     -+  tio2.c_ispeed = rate;
>     -
>     --  if (ioctl (fd, req_get, &tio) < 0)
>     --    perror_with_name (_("Can not get current baud rate"));
>     -+  if (ioctl (fd, TCSETS2, &tio2) < 0)
>     -+    perror_with_name (_("Cannot set custom baud rate"));
>     -+
>     -+#elif defined(HAVE_STRUCT_TERMIOS_C_OSPEED)
>     -+  struct termios tio;
>     -+  if (ioctl (fd, TCGETS, &tio) < 0)
>     -+    perror_with_name (_("Cannot get current baud rate"));
>     -
>     --  /* Clear the current output baud rate and fill a new value.  */
>     -   tio.c_cflag &= ~CBAUD;
>     -   tio.c_cflag |= BOTHER;
>     -   tio.c_ospeed = rate;
>     --
>     --  /* Clear the current input baud rate and fill a new value.  */
>     -   tio.c_cflag &= ~(CBAUD << IBSHIFT);
>     -   tio.c_cflag |= BOTHER << IBSHIFT;
>     -   tio.c_ispeed = rate;
>     -
>     --  if (ioctl (fd, req_set, &tio) < 0)
>     --    perror_with_name (_("Can not set custom baud rate"));
>     -+  if (ioctl (fd, TCSETS, &tio) < 0)
>     -+    perror_with_name (_("Cannot set custom baud rate"));
>     -+
>     -+#else
>     -+  error (_("Custom baud rate not supported on this platform"));
>     -+#endif
>     - }
>     -
>     - #elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(IOSSIOSPEED)
>     ---
>     -2.49.0
>     -
>     diff --git
>     a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>     b/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>     deleted file mode 100644
>     index 2d91a351d2..0000000000
>     ---
>     a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
>     +++ /dev/null
>     @@ -1,196 +0,0 @@
>     -From 654223c799910837c80d0964a971fbdf7808864a Mon Sep 17 00:00:00
>     2001
>     -From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
>     -Date: Tue, 17 Mar 2026 02:24:48 -0700
>     -Subject: [PATCH] GDB: aarch64-linux: Fix build failure on musl
>     systems
>     -
>     -(cherry picked from commit 02090062127d59978ccc312dabf63c6ea838cd85)
>     -
>     -When building against musl (e.g. on Alpine Linux), the following
>     error
>     -happens:
>     -
>     -    CXX    linux-aarch64-low.o
>     -  In file included from
>     /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc
>     <https://urldefense.com/v3/__http://linux-aarch64-low.cc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xCC5mxjg$>:42:
>     -
>     /home/bauermann/src/binutils-gdb/gdbserver/../gdb/arch/aarch64-gcs-linux.h:35:8:
>     error: redefinition of 'struct user_gcs'
>     -     35 | struct user_gcs
>     -        |        ^~~~~~~~
>     -  In file included from
>     /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc
>     <https://urldefense.com/v3/__http://linux-aarch64-low.cc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xCC5mxjg$>:35:
>     -  /usr/include/asm/ptrace.h:329:8: note: previous definition of
>     'struct user_gcs'
>     -    329 | struct user_gcs {
>     -        |        ^~~~~~~~
>     -  make[2]: *** [Makefile:565: linux-aarch64-low.o] Error 1
>     -
>     -aarch64-linux-tdep.c fails to build in the same way. This happens
>     because
>     -aarch64-gcs-linux.h uses GCS_MAGIC to see whether the system headers
>     -have GCS-related definitions.  The problem is that GCS_MAGIC is
>     defined in
>     -<asm/sigcontext.h> while struct gcs_user is defined in
>     <asm/ptrace.h>.
>     -It's fine on glibc systems because in the set of system headers that
>     -linux-aarch64-low.cc
>     <https://urldefense.com/v3/__http://-linux-aarch64-low.cc__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6yxF3rpGw$>
>     and aarch64-linux-tdep.c include, <asm/sigcontext.h>
>     -ends up being included implicitly as well.  This doesn't happen
>     when using
>     -musl's headers though.
>     -
>     -There isn't a macro in <asm/ptrace.h> whose presence is
>     correlated with
>     -the presence of the struct user_gcs definition, so a configure
>     check is
>     -needed to detect it and conditionally define the struct.
>     -
>     -Also, this change requires aarch64-linux-tdep.c to stop using
>     -struct user_gcs because target-dependent code can't include
>     <asm/ptrace.h>
>     -and thus even if HAVE_STRUCT_USER_GCS is set, the file won't have the
>     -struct definition available. To fix this problem, also backport the
>     -definition of AARCH64_LINUX_SIZEOF_GCS_REGSET and use it there.
>     -
>     -Note that there's another build issue with musl, described in
>     -PR gdb/33747 affecting compilation of gdb/ser-unix.c.  In order to be
>     -able to test this patch, I applied the patch in comment 11 there.
>     -
>     -Tested with a native build on an Alpine Linux aarch64 system, and
>     also
>     -verified that all gdb.arch/aarch64-gcs*.exp tests pass on it.
>     -
>     -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33926
>     <https://urldefense.com/v3/__https://sourceware.org/bugzilla/show_bug.cgi?id=33926__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xV7oGggg$>
>     -
>     -Upstream-Status: Submitted
>     [https://sourceware.org/pipermail/gdb-patches/2026-March/226049.html
>     <https://urldefense.com/v3/__https://sourceware.org/pipermail/gdb-patches/2026-March/226049.html__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6w1KI1NIQ$>]
>     -
>     -Co-authored-by: Chris Packham <judge.packham@gmail.com>
>     -Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
>     ----
>     - gdb/aarch64-linux-tdep.c     |  5 +++--
>     - gdb/arch/aarch64-gcs-linux.h |  8 +++++---
>     - gdbsupport/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>            |  3 +++
>     - gdbsupport/configure         | 36
>     ++++++++++++++++++++++++++++++++++++
>     - gdbsupport/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>         | 19 +++++++++++++++++++
>     - 5 files changed, 66 insertions(+), 5 deletions(-)
>     -
>     -diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
>     -index 76bde85188b..6c402e7ecdd 100644
>     ---- a/gdb/aarch64-linux-tdep.c
>     -+++ b/gdb/aarch64-linux-tdep.c
>     -@@ -1684,8 +1684,9 @@ aarch64_linux_iterate_over_regset_sections
>     (struct gdbarch *gdbarch,
>     -         gcs_regmap, regcache_supply_regset, regcache_collect_regset
>     -       };
>     -
>     --      cb (".reg-aarch-gcs", sizeof (user_gcs), sizeof (user_gcs),
>     --        &aarch64_linux_gcs_regset, "GCS registers", cb_data);
>     -+      cb (".reg-aarch-gcs", AARCH64_LINUX_SIZEOF_GCS_REGSET,
>     -+        AARCH64_LINUX_SIZEOF_GCS_REGSET, &aarch64_linux_gcs_regset,
>     -+        "GCS registers", cb_data);
>     -     }
>     - }
>     -
>     -diff --git a/gdb/arch/aarch64-gcs-linux.h
>     b/gdb/arch/aarch64-gcs-linux.h
>     -index 018ca37a522..632823a8120 100644
>     ---- a/gdb/arch/aarch64-gcs-linux.h
>     -+++ b/gdb/arch/aarch64-gcs-linux.h
>     -@@ -27,8 +27,7 @@
>     - #define HWCAP_GCS (1ULL << 32)
>     - #endif
>     -
>     --/* Make sure we only define these if the kernel header doesn't.  */
>     --#ifndef GCS_MAGIC
>     -+#ifndef HAVE_STRUCT_USER_GCS
>     -
>     - /* GCS state (NT_ARM_GCS).  */
>     -
>     -@@ -39,6 +38,9 @@ struct user_gcs
>     -   uint64_t gcspr_el0;
>     - };
>     -
>     --#endif /* GCS_MAGIC */
>     -+#endif /* HAVE_STRUCT_USER_GCS */
>     -+
>     -+/* The GCS regset consists of 3 64-bit registers.  */
>     -+#define AARCH64_LINUX_SIZEOF_GCS_REGSET (3 * 8)
>     -
>     - #endif /* GDB_ARCH_AARCH64_GCS_LINUX_H */
>     -diff --git a/gdbsupport/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     b/gdbsupport/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -index 0beacf22c05..2957ee0f030 100644
>     ---- a/gdbsupport/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -+++ b/gdbsupport/config.in
>     <https://urldefense.com/v3/__http://config.in__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wtaWha9Q$>
>     -@@ -271,6 +271,9 @@
>     - /* Define to 1 if `st_blocks' is a member of `struct stat'. */
>     - #undef HAVE_STRUCT_STAT_ST_BLOCKS
>     -
>     -+/* Define to 1 if your system has struct user_gcs. */
>     -+#undef HAVE_STRUCT_USER_GCS
>     -+
>     - /* Define to 1 if you have the <sys/param.h> header file. */
>     - #undef HAVE_SYS_PARAM_H
>     -
>     -diff --git a/gdbsupport/configure b/gdbsupport/configure
>     -index 133ddfa7f6c..66135791aa5 100755
>     ---- a/gdbsupport/configure
>     -+++ b/gdbsupport/configure
>     -@@ -14307,6 +14307,42 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
>     -
>     -
>     -
>     -+# Check for `struct user_gcs`
>     -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct
>     user_gcs" >&5
>     -+$as_echo_n "checking for struct user_gcs... " >&6; }
>     -+if ${gdb_cv_struct_user_gcs+:} false; then :
>     -+  $as_echo_n "(cached) " >&6
>     -+else
>     -+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>     -+/* end confdefs.h.  */
>     -+#include <sys/ptrace.h>
>     -+       #include <asm/ptrace.h>
>     -+int
>     -+main ()
>     -+{
>     -+struct user_gcs u;
>     -+
>     -+  ;
>     -+  return 0;
>     -+}
>     -+_ACEOF
>     -+if ac_fn_c_try_compile "$LINENO"; then :
>     -+  gdb_cv_struct_user_gcs=yes
>     -+else
>     -+  gdb_cv_struct_user_gcs=no
>     -+
>     -+fi
>     -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>     -+
>     -+fi
>     -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
>     $gdb_cv_struct_user_gcs" >&5
>     -+$as_echo "$gdb_cv_struct_user_gcs" >&6; }
>     -+if test "$gdb_cv_struct_user_gcs" = yes; then
>     -+
>     -+$as_echo "#define HAVE_STRUCT_USER_GCS 1" >>confdefs.h
>     -+
>     -+fi
>     -+
>     - # Set the 'development' global.
>     - . $srcdir/../bfd/development.sh
>     <https://urldefense.com/v3/__http://development.sh__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x1YDSefg$>
>     -
>     -diff --git a/gdbsupport/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     b/gdbsupport/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -index b7ccfabd6c6..d3b4c05daeb 100644
>     ---- a/gdbsupport/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -+++ b/gdbsupport/configure.ac
>     <https://urldefense.com/v3/__http://configure.ac__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zsHPeD8A$>
>     -@@ -68,6 +68,25 @@ GDB_AC_PTRACE
>     - AM_GDB_COMPILER_TYPE
>     - AM_GDB_WARNINGS
>     -
>     -+# Check for `struct user_gcs`
>     -+AC_CACHE_CHECK(
>     -+  [for struct user_gcs],
>     -+  [gdb_cv_struct_user_gcs],
>     -+  [AC_COMPILE_IFELSE(
>     -+     [AC_LANG_PROGRAM(
>     -+      [#include <sys/ptrace.h>
>     -+       #include <asm/ptrace.h>],
>     -+      [struct user_gcs u;]
>     -+      )],
>     -+     [gdb_cv_struct_user_gcs=yes],
>     -+     [gdb_cv_struct_user_gcs=no]
>     -+  )]
>     -+)
>     -+if test "$gdb_cv_struct_user_gcs" = yes; then
>     -+  AC_DEFINE(HAVE_STRUCT_USER_GCS, 1,
>     -+          [Define to 1 if your system has struct user_gcs.])
>     -+fi
>     -+
>     - # Set the 'development' global.
>     - . $srcdir/../bfd/development.sh
>     <https://urldefense.com/v3/__http://development.sh__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6x1YDSefg$>
>     -
>     ---
>     -2.49.0
>     -
>     diff --git a/meta/recipes-devtools/gdb/gdb_17.1.bb
>     <https://urldefense.com/v3/__http://gdb_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xWLB4o5A$>
>     b/meta/recipes-devtools/gdb/gdb_17.2.bb
>     <https://urldefense.com/v3/__http://gdb_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wwl9u49Q$>
>     similarity index 100%
>     rename from meta/recipes-devtools/gdb/gdb_17.1.bb
>     <https://urldefense.com/v3/__http://gdb_17.1.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6xWLB4o5A$>
>     rename to meta/recipes-devtools/gdb/gdb_17.2.bb
>     <https://urldefense.com/v3/__http://gdb_17.2.bb__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wwl9u49Q$>
>     -- 
>     2.49.0
>
>
>     -=-=-=-=-=-=-=-=-=-=-=-
>     Links: You receive all messages sent to this group.
>     View/Reply Online (#239857):
>     https://lists.openembedded.org/g/openembedded-core/message/239857
>     <https://urldefense.com/v3/__https://lists.openembedded.org/g/openembedded-core/message/239857__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6ztvsCUVA$>
>     Mute This Topic:
>     https://lists.openembedded.org/mt/120043435/4316185
>     <https://urldefense.com/v3/__https://lists.openembedded.org/mt/120043435/4316185__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6zyaHAOsw$>
>     Group Owner: openembedded-core+owner@lists.openembedded.org
>     <mailto:openembedded-core%2Bowner@lists.openembedded.org>
>     Unsubscribe:
>     https://lists.openembedded.org/g/openembedded-core/unsub
>     <https://urldefense.com/v3/__https://lists.openembedded.org/g/openembedded-core/unsub__;!!AjveYdw8EvQ!fyAFzcZAS5SwW5I3koSFwppdXq6v4bUcjuz1Tas5CXmG1n3w5-FLW9Lt_yxEAi5CePPVtiY5U9MftNMOnk1_cOqLx6wq9xQI-g$>
>     [yoann.congal@smile.fr]
>     -=-=-=-=-=-=-=-=-=-=-=-
>
>
>
> -- 
> Yoann Congal
> Smile ECS
diff mbox series

Patch

diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_17.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_17.1.bb b/meta/recipes-devtools/gdb/gdb-cross_17.2.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_17.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross_17.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc
index d367486d02..cbb5885459 100644
--- a/meta/recipes-devtools/gdb/gdb.inc
+++ b/meta/recipes-devtools/gdb/gdb.inc
@@ -13,7 +13,5 @@  SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
            file://0006-Fix-invalid-sigprocmask-call.patch \
            file://0007-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
            file://0008-Add-fix-for-packages-that-are-not-compatible-with-C2.patch \
-           file://0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch \
-           file://0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch \
            "
-SRC_URI[sha256sum] = "14996f5f74c9f68f5a543fdc45bca7800207f91f92aeea6c2e791822c7c6d876"
+SRC_URI[sha256sum] = "1c036c0d72e4b3d1fb5c94c88632add6f9d76f4d7c4d2ea793c12a9f19a3228c"
diff --git a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch b/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
deleted file mode 100644
index 30d22b21f9..0000000000
--- a/meta/recipes-devtools/gdb/gdb/0009-PR-gdb-33747-gdb-ser-unix-modernize-Linux-custom-bau.patch
+++ /dev/null
@@ -1,248 +0,0 @@ 
-From 1a77c71303b552140613d49595baebdff1a4716e Mon Sep 17 00:00:00 2001
-From: Sunil Dora <sunilkumar.dora@windriver.com>
-Date: Tue, 17 Mar 2026 01:58:55 -0700
-Subject: [PATCH] PR gdb/33747: gdb/ser-unix: modernize Linux custom baud rate
- support
-
-The Linux custom baud rate implementation previously accessed the
-struct termios members c_ispeed and c_ospeed directly. These fields
-exist in glibc but are not exposed by musl, causing builds to fail on
-musl-based systems.
-
-Update set_custom_baudrate_linux to use a capability-based approach,
-with three distinct code paths:
-
-1) If POSIX cfsetispeed/cfsetospeed accept arbitrary baud rates
-   (HAVE_CFSETSPEED_ARBITRARY), use them to set input and output
-   speeds.
-
-2) Else if Linux termios2 interface is available (TCGETS2/BOTHER),
-   use it to support arbitrary baud rates.
-
-3) Else if legacy struct termios supports c_ispeed/c_ospeed, use
-   the TCGETS/TCSETS fallback (primarily for glibc on older
-   architectures).
-
-4) Otherwise, emit an error indicating that custom baud rates are
-   unsupported on this platform.
-
-This preserves existing behavior on glibc systems while restoring
-build compatibility with musl and other libc implementations.
-
-Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33747
-
-Upstream-Status: Submitted [https://sourceware.org/pipermail/gdb-patches/2026-March/225952.html]
-
-Suggested-by: Kevin Buettner <kevinb@redhat.com>
-Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk>
-Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
----
- gdb/config.in    |  6 ++++++
- gdb/configure    | 52 +++++++++++++++++++++++++++++++++++++++++++++
- gdb/configure.ac | 22 +++++++++++++++++++
- gdb/ser-unix.c   | 55 ++++++++++++++++++++++++++++++++++--------------
- 4 files changed, 119 insertions(+), 16 deletions(-)
-
-diff --git a/gdb/config.in b/gdb/config.in
-index efc3100cb9e..b2469c8dabd 100644
---- a/gdb/config.in
-+++ b/gdb/config.in
-@@ -110,6 +110,9 @@
-    the CoreFoundation framework. */
- #undef HAVE_CFPREFERENCESCOPYAPPVALUE
- 
-+/* Define if cfsetispeed/cfsetospeed accept arbitrary baud rates */
-+#undef HAVE_CFSETSPEED_ARBITRARY
-+
- /* Define if compiling support to gdb compile. */
- #undef HAVE_COMPILE
- 
-@@ -517,6 +520,9 @@
- /* Define to 1 if `st_blocks' is a member of `struct stat'. */
- #undef HAVE_STRUCT_STAT_ST_BLOCKS
- 
-+/* Define to 1 if `c_ospeed' is a member of `struct termios'. */
-+#undef HAVE_STRUCT_TERMIOS_C_OSPEED
-+
- /* Define to 1 if `td_pcb' is a member of `struct thread'. */
- #undef HAVE_STRUCT_THREAD_TD_PCB
- 
-diff --git a/gdb/configure b/gdb/configure
-index d0bdba6eb36..8a0e2fa2771 100755
---- a/gdb/configure
-+++ b/gdb/configure
-@@ -27336,6 +27336,58 @@ if test "$ac_res" != no; then :
- fi
- 
- 
-+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cfsetispeed/cfsetospeed accept arbitrary baud rates" >&5
-+$as_echo_n "checking whether cfsetispeed/cfsetospeed accept arbitrary baud rates... " >&6; }
-+if ${gdb_cv_cfsetspeed_arbitrary+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <termios.h>
-+int
-+main ()
-+{
-+
-+       #if B9600 != 9600
-+       #error B-constants are not numeric symbols
-+       #endif
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  gdb_cv_cfsetspeed_arbitrary=yes
-+else
-+  gdb_cv_cfsetspeed_arbitrary=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_cfsetspeed_arbitrary" >&5
-+$as_echo "$gdb_cv_cfsetspeed_arbitrary" >&6; }
-+
-+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
-+
-+$as_echo "#define HAVE_CFSETSPEED_ARBITRARY 1" >>confdefs.h
-+
-+fi
-+
-+# Check for members required by the legacy Linux custom baud rate path.
-+ac_fn_c_check_member "$LINENO" "struct termios" "c_ospeed" "ac_cv_member_struct_termios_c_ospeed" "#include <termios.h>
-+"
-+if test "x$ac_cv_member_struct_termios_c_ospeed" = xyes; then :
-+
-+cat >>confdefs.h <<_ACEOF
-+#define HAVE_STRUCT_TERMIOS_C_OSPEED 1
-+_ACEOF
-+
-+
-+fi
-+
-+
- 
- 
- # Check whether --with-jit-reader-dir was given.
-diff --git a/gdb/configure.ac b/gdb/configure.ac
-index 52924106bca..26e8d1ee276 100644
---- a/gdb/configure.ac
-+++ b/gdb/configure.ac
-@@ -733,6 +733,28 @@ AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
- 
- AC_SEARCH_LIBS(dlopen, dl)
- 
-+# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates.
-+AC_CACHE_CHECK([whether cfsetispeed/cfsetospeed accept arbitrary baud rates],
-+  [gdb_cv_cfsetspeed_arbitrary], [
-+  AC_COMPILE_IFELSE(
-+    [AC_LANG_PROGRAM([[#include <termios.h>]],
-+      [[
-+       #if B9600 != 9600
-+       #error B-constants are not numeric symbols
-+       #endif
-+      ]])],
-+    [gdb_cv_cfsetspeed_arbitrary=yes],
-+    [gdb_cv_cfsetspeed_arbitrary=no])
-+])
-+
-+if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then
-+  AC_DEFINE([HAVE_CFSETSPEED_ARBITRARY], [1],
-+           [Define if cfsetispeed/cfsetospeed accept arbitrary baud rates])
-+fi
-+
-+# Check for members required by the legacy Linux custom baud rate path.
-+AC_CHECK_MEMBERS([struct termios.c_ospeed], [], [], [[#include <termios.h>]])
-+
- GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
-                 [directory to load the JIT readers from],
-                 [${libdir}/gdb])
-diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
-index 6f2766518be..fbd73970dbb 100644
---- a/gdb/ser-unix.c
-+++ b/gdb/ser-unix.c
-@@ -508,36 +508,59 @@ set_baudcode_baudrate (struct serial *scb, int baud_code)
- 
- #if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER)
- 
--/* Set a custom baud rate using the termios BOTHER.  */
-+/* Set a custom baud rate.
-+
-+   Prefer the POSIX cfsetispeed/cfsetospeed interface when it accepts
-+   arbitrary baud rates.  Otherwise fall back to Linux-specific termios2
-+   (BOTHER) or legacy termios interfaces.  */
- 
- static void
- set_custom_baudrate_linux (int fd, int rate)
- {
--#ifdef TCGETS2
--  struct termios2 tio;
--  const unsigned long req_get = TCGETS2;
--  const unsigned long req_set = TCSETS2;
--#else
-+#if defined(HAVE_CFSETSPEED_ARBITRARY)
-   struct termios tio;
--  const unsigned long req_get = TCGETS;
--  const unsigned long req_set = TCSETS;
--#endif
-+  if (tcgetattr (fd, &tio) < 0)
-+    perror_with_name (_("Cannot get current baud rate"));
-+
-+  cfsetispeed (&tio, rate);
-+  cfsetospeed (&tio, rate);
-+
-+  if (tcsetattr (fd, TCSANOW, &tio) < 0)
-+    perror_with_name (_("Cannot set custom baud rate"));
-+
-+#elif defined(TCGETS2)
-+  struct termios2 tio2;
-+  if (ioctl (fd, TCGETS2, &tio2) < 0)
-+    perror_with_name (_("Cannot get current baud rate"));
-+
-+  tio2.c_cflag &= ~CBAUD;
-+  tio2.c_cflag |= BOTHER;
-+  tio2.c_ospeed = rate;
-+  tio2.c_cflag &= ~(CBAUD << IBSHIFT);
-+  tio2.c_cflag |= BOTHER << IBSHIFT;
-+  tio2.c_ispeed = rate;
- 
--  if (ioctl (fd, req_get, &tio) < 0)
--    perror_with_name (_("Can not get current baud rate"));
-+  if (ioctl (fd, TCSETS2, &tio2) < 0)
-+    perror_with_name (_("Cannot set custom baud rate"));
-+
-+#elif defined(HAVE_STRUCT_TERMIOS_C_OSPEED)
-+  struct termios tio;
-+  if (ioctl (fd, TCGETS, &tio) < 0)
-+    perror_with_name (_("Cannot get current baud rate"));
- 
--  /* Clear the current output baud rate and fill a new value.  */
-   tio.c_cflag &= ~CBAUD;
-   tio.c_cflag |= BOTHER;
-   tio.c_ospeed = rate;
--
--  /* Clear the current input baud rate and fill a new value.  */
-   tio.c_cflag &= ~(CBAUD << IBSHIFT);
-   tio.c_cflag |= BOTHER << IBSHIFT;
-   tio.c_ispeed = rate;
- 
--  if (ioctl (fd, req_set, &tio) < 0)
--    perror_with_name (_("Can not set custom baud rate"));
-+  if (ioctl (fd, TCSETS, &tio) < 0)
-+    perror_with_name (_("Cannot set custom baud rate"));
-+
-+#else
-+  error (_("Custom baud rate not supported on this platform"));
-+#endif
- }
- 
- #elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(IOSSIOSPEED)
--- 
-2.49.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch b/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
deleted file mode 100644
index 2d91a351d2..0000000000
--- a/meta/recipes-devtools/gdb/gdb/0010-GDB-aarch64-linux-Fix-build-failure-on-musl-systems.patch
+++ /dev/null
@@ -1,196 +0,0 @@ 
-From 654223c799910837c80d0964a971fbdf7808864a Mon Sep 17 00:00:00 2001
-From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
-Date: Tue, 17 Mar 2026 02:24:48 -0700
-Subject: [PATCH] GDB: aarch64-linux: Fix build failure on musl systems
-
-(cherry picked from commit 02090062127d59978ccc312dabf63c6ea838cd85)
-
-When building against musl (e.g. on Alpine Linux), the following error
-happens:
-
-    CXX    linux-aarch64-low.o
-  In file included from /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc:42:
-  /home/bauermann/src/binutils-gdb/gdbserver/../gdb/arch/aarch64-gcs-linux.h:35:8: error: redefinition of 'struct user_gcs'
-     35 | struct user_gcs
-        |        ^~~~~~~~
-  In file included from /home/bauermann/src/binutils-gdb/gdbserver/linux-aarch64-low.cc:35:
-  /usr/include/asm/ptrace.h:329:8: note: previous definition of 'struct user_gcs'
-    329 | struct user_gcs {
-        |        ^~~~~~~~
-  make[2]: *** [Makefile:565: linux-aarch64-low.o] Error 1
-
-aarch64-linux-tdep.c fails to build in the same way.  This happens because
-aarch64-gcs-linux.h uses GCS_MAGIC to see whether the system headers
-have GCS-related definitions.  The problem is that GCS_MAGIC is defined in
-<asm/sigcontext.h> while struct gcs_user is defined in <asm/ptrace.h>.
-It's fine on glibc systems because in the set of system headers that
-linux-aarch64-low.cc and aarch64-linux-tdep.c include, <asm/sigcontext.h>
-ends up being included implicitly as well.  This doesn't happen when using
-musl's headers though.
-
-There isn't a macro in <asm/ptrace.h> whose presence is correlated with
-the presence of the struct user_gcs definition, so a configure check is
-needed to detect it and conditionally define the struct.
-
-Also, this change requires aarch64-linux-tdep.c to stop using
-struct user_gcs because target-dependent code can't include <asm/ptrace.h>
-and thus even if HAVE_STRUCT_USER_GCS is set, the file won't have the
-struct definition available. To fix this problem, also backport the
-definition of AARCH64_LINUX_SIZEOF_GCS_REGSET and use it there.
-
-Note that there's another build issue with musl, described in
-PR gdb/33747 affecting compilation of gdb/ser-unix.c.  In order to be
-able to test this patch, I applied the patch in comment 11 there.
-
-Tested with a native build on an Alpine Linux aarch64 system, and also
-verified that all gdb.arch/aarch64-gcs*.exp tests pass on it.
-
-Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33926
-
-Upstream-Status: Submitted [https://sourceware.org/pipermail/gdb-patches/2026-March/226049.html]
-
-Co-authored-by: Chris Packham <judge.packham@gmail.com>
-Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
----
- gdb/aarch64-linux-tdep.c     |  5 +++--
- gdb/arch/aarch64-gcs-linux.h |  8 +++++---
- gdbsupport/config.in         |  3 +++
- gdbsupport/configure         | 36 ++++++++++++++++++++++++++++++++++++
- gdbsupport/configure.ac      | 19 +++++++++++++++++++
- 5 files changed, 66 insertions(+), 5 deletions(-)
-
-diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
-index 76bde85188b..6c402e7ecdd 100644
---- a/gdb/aarch64-linux-tdep.c
-+++ b/gdb/aarch64-linux-tdep.c
-@@ -1684,8 +1684,9 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
- 	  gcs_regmap, regcache_supply_regset, regcache_collect_regset
- 	};
- 
--      cb (".reg-aarch-gcs", sizeof (user_gcs), sizeof (user_gcs),
--	  &aarch64_linux_gcs_regset, "GCS registers", cb_data);
-+      cb (".reg-aarch-gcs", AARCH64_LINUX_SIZEOF_GCS_REGSET,
-+	  AARCH64_LINUX_SIZEOF_GCS_REGSET, &aarch64_linux_gcs_regset,
-+	  "GCS registers", cb_data);
-     }
- }
- 
-diff --git a/gdb/arch/aarch64-gcs-linux.h b/gdb/arch/aarch64-gcs-linux.h
-index 018ca37a522..632823a8120 100644
---- a/gdb/arch/aarch64-gcs-linux.h
-+++ b/gdb/arch/aarch64-gcs-linux.h
-@@ -27,8 +27,7 @@
- #define HWCAP_GCS (1ULL << 32)
- #endif
- 
--/* Make sure we only define these if the kernel header doesn't.  */
--#ifndef GCS_MAGIC
-+#ifndef HAVE_STRUCT_USER_GCS
- 
- /* GCS state (NT_ARM_GCS).  */
- 
-@@ -39,6 +38,9 @@ struct user_gcs
-   uint64_t gcspr_el0;
- };
- 
--#endif /* GCS_MAGIC */
-+#endif /* HAVE_STRUCT_USER_GCS */
-+
-+/* The GCS regset consists of 3 64-bit registers.  */
-+#define AARCH64_LINUX_SIZEOF_GCS_REGSET (3 * 8)
- 
- #endif /* GDB_ARCH_AARCH64_GCS_LINUX_H */
-diff --git a/gdbsupport/config.in b/gdbsupport/config.in
-index 0beacf22c05..2957ee0f030 100644
---- a/gdbsupport/config.in
-+++ b/gdbsupport/config.in
-@@ -271,6 +271,9 @@
- /* Define to 1 if `st_blocks' is a member of `struct stat'. */
- #undef HAVE_STRUCT_STAT_ST_BLOCKS
- 
-+/* Define to 1 if your system has struct user_gcs. */
-+#undef HAVE_STRUCT_USER_GCS
-+
- /* Define to 1 if you have the <sys/param.h> header file. */
- #undef HAVE_SYS_PARAM_H
- 
-diff --git a/gdbsupport/configure b/gdbsupport/configure
-index 133ddfa7f6c..66135791aa5 100755
---- a/gdbsupport/configure
-+++ b/gdbsupport/configure
-@@ -14307,6 +14307,42 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
- 
-+# Check for `struct user_gcs`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct user_gcs" >&5
-+$as_echo_n "checking for struct user_gcs... " >&6; }
-+if ${gdb_cv_struct_user_gcs+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/ptrace.h>
-+	 #include <asm/ptrace.h>
-+int
-+main ()
-+{
-+struct user_gcs u;
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  gdb_cv_struct_user_gcs=yes
-+else
-+  gdb_cv_struct_user_gcs=no
-+
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_struct_user_gcs" >&5
-+$as_echo "$gdb_cv_struct_user_gcs" >&6; }
-+if test "$gdb_cv_struct_user_gcs" = yes; then
-+
-+$as_echo "#define HAVE_STRUCT_USER_GCS 1" >>confdefs.h
-+
-+fi
-+
- # Set the 'development' global.
- . $srcdir/../bfd/development.sh
- 
-diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac
-index b7ccfabd6c6..d3b4c05daeb 100644
---- a/gdbsupport/configure.ac
-+++ b/gdbsupport/configure.ac
-@@ -68,6 +68,25 @@ GDB_AC_PTRACE
- AM_GDB_COMPILER_TYPE
- AM_GDB_WARNINGS
- 
-+# Check for `struct user_gcs`
-+AC_CACHE_CHECK(
-+  [for struct user_gcs],
-+  [gdb_cv_struct_user_gcs],
-+  [AC_COMPILE_IFELSE(
-+     [AC_LANG_PROGRAM(
-+	[#include <sys/ptrace.h>
-+	 #include <asm/ptrace.h>],
-+	[struct user_gcs u;]
-+      )],
-+     [gdb_cv_struct_user_gcs=yes],
-+     [gdb_cv_struct_user_gcs=no]
-+  )]
-+)
-+if test "$gdb_cv_struct_user_gcs" = yes; then
-+  AC_DEFINE(HAVE_STRUCT_USER_GCS, 1,
-+	    [Define to 1 if your system has struct user_gcs.])
-+fi
-+
- # Set the 'development' global.
- . $srcdir/../bfd/development.sh
- 
--- 
-2.49.0
-
diff --git a/meta/recipes-devtools/gdb/gdb_17.1.bb b/meta/recipes-devtools/gdb/gdb_17.2.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb_17.1.bb
rename to meta/recipes-devtools/gdb/gdb_17.2.bb