similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_16.3.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_17.1.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_16.3.bb
rename to meta/recipes-devtools/gdb/gdb-cross_17.1.bb
@@ -13,6 +13,6 @@ 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-Readline-8.3-alpha-release.patch \
+ file://0009-PR-gdb-33747-gdb-ser-unix-Avoid-musl-build-failure-w.patch \
"
-SRC_URI[sha256sum] = "bcfcd095528a987917acf9fff3f1672181694926cc18d609c99d0042c00224c5"
+SRC_URI[sha256sum] = "14996f5f74c9f68f5a543fdc45bca7800207f91f92aeea6c2e791822c7c6d876"
new file mode 100644
@@ -0,0 +1,190 @@
+From d3c2bf20ea6afc6a02151d06fa93b4c767986815 Mon Sep 17 00:00:00 2001
+From: Sunil Dora <sunilkumar.dora@windriver.com>
+Date: Mon, 23 Feb 2026 00:57:35 -0800
+Subject: [PATCH] PR gdb/33747: gdb/ser-unix: Avoid musl build failure when
+ setting custom baud rates
+
+The Linux custom baud rate implementation accessed the struct termios
+members c_ispeed and c_ospeed directly. These fields are provided by
+glibc but are not exposed by musl, which causes the build to fail on
+musl-based systems.
+
+Adjust set_custom_baudrate_linux to use a capability-based approach.
+The Autoconf check HAVE_NUMERIC_BAUD_RATES determines whether
+B-constants match numeric baud rates. If they do, use the standard
+POSIX cfsetispeed and cfsetospeed interfaces. Otherwise, fall back
+to the Linux-specific termios2 interface (TCGETS2) to support
+arbitrary baud rates.
+
+This preserves existing behavior on glibc systems while restoring
+build compatibility with musl.
+
+Upstream-Status: Submitted [https://sourceware.org/pipermail/gdb-patches/2026-February/225251.html]
+
+Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
+---
+ gdb/config.in | 3 +++
+ gdb/configure | 39 +++++++++++++++++++++++++++++++++++++++
+ gdb/configure.ac | 19 +++++++++++++++++++
+ gdb/ser-unix.c | 42 ++++++++++++++++++++++++++----------------
+ 4 files changed, 87 insertions(+), 16 deletions(-)
+
+diff --git a/gdb/config.in b/gdb/config.in
+index efc3100cb9e..a6561c03ee6 100644
+--- a/gdb/config.in
++++ b/gdb/config.in
+@@ -343,6 +343,9 @@
+ /* Define to 1 if you have the <nlist.h> header file. */
+ #undef HAVE_NLIST_H
+
++/* Define if termios B-constants match their numeric baud rate */
++#undef HAVE_NUMERIC_BAUD_RATES
++
+ /* Define to 1 if you have the `pipe' function. */
+ #undef HAVE_PIPE
+
+diff --git a/gdb/configure b/gdb/configure
+index d0bdba6eb36..407104fc420 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -27336,6 +27336,45 @@ if test "$ac_res" != no; then :
+ fi
+
+
++# Check whether termios B-constants match their numeric baud rate.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether termios B-constants are numeric" >&5
++$as_echo_n "checking whether termios B-constants are numeric... " >&6; }
++if ${gdb_cv_termios_numeric_baud+:} 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_termios_numeric_baud=yes
++else
++ gdb_cv_termios_numeric_baud=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_termios_numeric_baud" >&5
++$as_echo "$gdb_cv_termios_numeric_baud" >&6; }
++
++if test "$gdb_cv_termios_numeric_baud" = yes; then
++
++$as_echo "#define HAVE_NUMERIC_BAUD_RATES 1" >>confdefs.h
++
++fi
++
+
+
+ # Check whether --with-jit-reader-dir was given.
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index 52924106bca..ac45d22e4bf 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -733,6 +733,25 @@ AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
+
+ AC_SEARCH_LIBS(dlopen, dl)
+
++# Check whether termios B-constants match their numeric baud rate.
++AC_CACHE_CHECK([whether termios B-constants are numeric],
++ [gdb_cv_termios_numeric_baud], [
++ AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([[#include <termios.h>]],
++ [[
++ #if B9600 != 9600
++ #error B-constants are not numeric symbols
++ #endif
++ ]])],
++ [gdb_cv_termios_numeric_baud=yes],
++ [gdb_cv_termios_numeric_baud=no])
++])
++
++if test "$gdb_cv_termios_numeric_baud" = yes; then
++ AC_DEFINE([HAVE_NUMERIC_BAUD_RATES], [1],
++ [Define if termios B-constants match their numeric baud rate])
++fi
++
+ 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..abd04c898f5 100644
+--- a/gdb/ser-unix.c
++++ b/gdb/ser-unix.c
+@@ -513,31 +513,41 @@ set_baudcode_baudrate (struct serial *scb, int baud_code)
+ 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_NUMERIC_BAUD_RATES)
+ struct termios tio;
+- const unsigned long req_get = TCGETS;
+- const unsigned long req_set = TCSETS;
+-#endif
+
+- if (ioctl (fd, req_get, &tio) < 0)
++ if (tcgetattr (fd, &tio) < 0)
++ perror_with_name (_("Can not get current baud rate"));
++
++ cfsetispeed (&tio, rate);
++ cfsetospeed (&tio, rate);
++
++ if (tcsetattr (fd, TCSANOW, &tio) < 0)
++ perror_with_name (_("Can not set custom baud rate"));
++
++#elif defined (TCGETS2)
++ /* Use the kernel-level termios2 structure. */
++ struct termios2 tio2;
++
++ if (ioctl (fd, TCGETS2, &tio2) < 0)
+ perror_with_name (_("Can not 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;
++ tio2.c_cflag &= ~CBAUD;
++ tio2.c_cflag |= BOTHER;
++ tio2.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;
++ tio2.c_cflag &= ~(CBAUD << IBSHIFT);
++ tio2.c_cflag |= BOTHER << IBSHIFT;
++ tio2.c_ispeed = rate;
+
+- if (ioctl (fd, req_set, &tio) < 0)
++ if (ioctl (fd, TCSETS2, &tio2) < 0)
+ perror_with_name (_("Can not set custom baud rate"));
++
++#else
++ perror_with_name (_("Custom baud rate not supported on this platform"));
++#endif
+ }
+
+ #elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(IOSSIOSPEED)
+--
+2.49.0
+
deleted file mode 100644
@@ -1,164 +0,0 @@
-From 8807681557d9f30aac819186369ee62f4f8d1d96 Mon Sep 17 00:00:00 2001
-From: Chet Ramey <chet.ramey@case.edu>
-Date: Mon, 22 Apr 2024 10:41:37 -0400
-Subject: [PATCH] Readline-8.3-alpha release
-
-Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/readline.git/commit/tcap.h?h=readline-8.3-testing&id=69e5c5e4c9778bf86c3d1c6b058ddece70854de8]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ...ap-Add-function-parameter-prototypes.patch | 37 ++++++++++
- ...d=cef614441f99b7b6e444ba601d8465a6e88f5a98 | 67 +++++++++++++++++++
- readline/readline/tcap.h | 14 ++--
- 3 files changed, 111 insertions(+), 7 deletions(-)
- create mode 100644 readline/readline/0001-tcap-Add-function-parameter-prototypes.patch
- create mode 100644 readline/readline/index.html?id=cef614441f99b7b6e444ba601d8465a6e88f5a98
-
-diff --git a/readline/readline/0001-tcap-Add-function-parameter-prototypes.patch b/readline/readline/0001-tcap-Add-function-parameter-prototypes.patch
-new file mode 100644
-index 00000000000..f28e31fd0e0
---- /dev/null
-+++ b/readline/readline/0001-tcap-Add-function-parameter-prototypes.patch
-@@ -0,0 +1,37 @@
-+From 0c16af6ebf0bf81138c973e5e6a7c4ebf71f2489 Mon Sep 17 00:00:00 2001
-+From: Khem Raj <raj.khem@gmail.com>
-+Date: Wed, 30 Apr 2025 10:41:12 -0700
-+Subject: [PATCH] tcap: Add function parameter prototypes
-+
-+GCC-15 with C23 dilect defaults expects full function signature
-+
-+Signed-off-by: Khem Raj <raj.khem@gmail.com>
-+---
-+ readline/readline/tcap.h | 14 ++++++--------
-+ 1 file changed, 6 insertions(+), 8 deletions(-)
-+
-+diff --git a/readline/readline/tcap.h b/readline/readline/tcap.h
-+index 859e6ee..2b22ff7 100644
-+--- a/readline/readline/tcap.h
-++++ b/readline/readline/tcap.h
-+@@ -46,14 +46,12 @@ extern char *UP, *BC;
-+
-+ extern short ospeed;
-+
-+-extern int tgetent ();
-+-extern int tgetflag ();
-+-extern int tgetnum ();
-+-extern char *tgetstr ();
-+-
-+-extern int tputs ();
-+-
-+-extern char *tgoto ();
-++extern int tgetent(char*, const char*);
-++extern int tgetflag(const char*);
-++extern int tgetnum(const char*);
-++extern char *tgetstr(const char*, char**);
-++extern char *tgoto(const char*, int, int);
-++extern int tputs(const char*, int, int (*)(int));
-+
-+ #endif /* HAVE_TERMCAP_H */
-+
-diff --git a/readline/readline/index.html?id=cef614441f99b7b6e444ba601d8465a6e88f5a98 b/readline/readline/index.html?id=cef614441f99b7b6e444ba601d8465a6e88f5a98
-new file mode 100644
-index 00000000000..02e665b143b
---- /dev/null
-+++ b/readline/readline/index.html?id=cef614441f99b7b6e444ba601d8465a6e88f5a98
-@@ -0,0 +1,67 @@
-+From cef614441f99b7b6e444ba601d8465a6e88f5a98 Mon Sep 17 00:00:00 2001
-+From: Chet Ramey <chet.ramey@case.edu>
-+Date: Sun, 14 Jan 2024 15:19:37 -0500
-+Subject: Readline-8.2 patch 8: add missing function prototypes
-+
-+---
-+ bind.c | 4 +---
-+ patchlevel | 2 +-
-+ rltty.c | 3 +--
-+ text.c | 3 +--
-+ 4 files changed, 4 insertions(+), 8 deletions(-)
-+
-+diff --git a/bind.c b/bind.c
-+index 971116a..2596006 100644
-+--- a/bind.c
-++++ b/bind.c
-+@@ -1167,9 +1167,7 @@ _rl_init_file_error (va_alist)
-+ /* **************************************************************** */
-+
-+ static int
-+-parse_comparison_op (s, indp)
-+- const char *s;
-+- int *indp;
-++parse_comparison_op (const char *s, int *indp)
-+ {
-+ int i, peekc, op;
-+
-+diff --git a/patchlevel b/patchlevel
-+index e340b58..6c10f12 100644
-+--- a/patchlevel
-++++ b/patchlevel
-+@@ -1,3 +1,3 @@
-+ # Do not edit -- exists only for use by patch
-+
-+-7
-++8
-+diff --git a/rltty.c b/rltty.c
-+index 882a3d4..a4863ac 100644
-+--- a/rltty.c
-++++ b/rltty.c
-+@@ -80,8 +80,7 @@ static int ksrflow;
-+ /* Dummy call to force a backgrounded readline to stop before it tries
-+ to get the tty settings. */
-+ static void
-+-set_winsize (tty)
-+- int tty;
-++set_winsize (int tty)
-+ {
-+ #if defined (TIOCGWINSZ)
-+ struct winsize w;
-+diff --git a/text.c b/text.c
-+index 91c3f33..30fdaa1 100644
-+--- a/text.c
-++++ b/text.c
-+@@ -1764,8 +1764,7 @@ _rl_char_search (int count, int fdir, int bdir)
-+
-+ #if defined (READLINE_CALLBACKS)
-+ static int
-+-_rl_char_search_callback (data)
-+- _rl_callback_generic_arg *data;
-++_rl_char_search_callback (_rl_callback_generic_arg *data)
-+ {
-+ _rl_callback_func = 0;
-+ _rl_want_redisplay = 1;
-+--
-+cgit v1.1
-+
-diff --git a/readline/readline/tcap.h b/readline/readline/tcap.h
-index 859e6eed5aa..467ea60e903 100644
---- a/readline/readline/tcap.h
-+++ b/readline/readline/tcap.h
-@@ -1,6 +1,6 @@
- /* tcap.h -- termcap library functions and variables. */
-
--/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
-+/* Copyright (C) 1996-2015,2023 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library (Readline), a library
- for reading lines of text with interactive input and history editing.
-@@ -46,14 +46,14 @@ extern char *UP, *BC;
-
- extern short ospeed;
-
--extern int tgetent ();
--extern int tgetflag ();
--extern int tgetnum ();
--extern char *tgetstr ();
-+extern int tgetent (char *, const char *);
-+extern int tgetflag (const char *);
-+extern int tgetnum (const char *);
-+extern char *tgetstr (const char *, char **);
-
--extern int tputs ();
-+extern int tputs (const char *, int, int (*)(int));
-
--extern char *tgoto ();
-+extern char *tgoto (const char *, int, int);
-
- #endif /* HAVE_TERMCAP_H */
-
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb_16.3.bb
rename to meta/recipes-devtools/gdb/gdb_17.1.bb