https://git.openembedded.org/openembedded-core/commit/?id=f24c2bf93a9549ae5a21ce378a7bf47ef052ad65

I realize these are in master-next and haven't been merged to master yet. 
Richard mentioned there are some issues with one of the autobuilder nodes 
and hence master-next is taking longer to test lately.

I don't believe bombarding Richard with duplicate patches improves his 
productivity. :) On his behalf I'm asking for a bit more patience and 
understanding...


On Wed, Feb 02, 2022 at 07:27:28PM +0100, Alexander Kanavin wrote:
> Simplyfy .inc structure: merge gdb.inc into gdb_11.2.bb, rename
> gdb-${PV}.inc to gdb.inc. This will allow easier automatic updates.
> 
> Drop upstreamed patch.
> 
> Signed-off-by: Alexander Kanavin <a...@linutronix.de>
> ---
>  meta/recipes-devtools/gdb/gdb-11.1.inc        |  19 --
>  ...ian_11.1.bb => gdb-cross-canadian_11.2.bb} |   2 +-
>  .../{gdb-cross_11.1.bb => gdb-cross_11.2.bb}  |   2 +-
>  meta/recipes-devtools/gdb/gdb.inc             |  27 +-
>  ...erver-register-set-selection-dynamic.patch | 317 ------------------
>  .../gdb/{gdb_11.1.bb => gdb_11.2.bb}          |  13 +-
>  6 files changed, 31 insertions(+), 349 deletions(-)
>  delete mode 100644 meta/recipes-devtools/gdb/gdb-11.1.inc
>  rename meta/recipes-devtools/gdb/{gdb-cross-canadian_11.1.bb => 
> gdb-cross-canadian_11.2.bb} (71%)
>  rename meta/recipes-devtools/gdb/{gdb-cross_11.1.bb => gdb-cross_11.2.bb} 
> (50%)
>  delete mode 100644 
> meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
>  rename meta/recipes-devtools/gdb/{gdb_11.1.bb => gdb_11.2.bb} (80%)
> 
> diff --git a/meta/recipes-devtools/gdb/gdb-11.1.inc 
> b/meta/recipes-devtools/gdb/gdb-11.1.inc
> deleted file mode 100644
> index 5364a880e3..0000000000
> --- a/meta/recipes-devtools/gdb/gdb-11.1.inc
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
> -                 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
> -                 file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
> -                 file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
> -
> -SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
> -           file://0001-make-man-install-relative-to-DESTDIR.patch \
> -           file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
> -           
> file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
> -           
> file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
> -           file://0006-use-asm-sgidefs.h.patch \
> -           file://0007-Change-order-of-CFLAGS.patch \
> -           file://0008-resolve-restrict-keyword-conflict.patch \
> -           file://0009-Fix-invalid-sigprocmask-call.patch \
> -           file://0010-gdbserver-ctrl-c-handling.patch \
> -           
> file://0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch \
> -           "
> -SRC_URI[sha256sum] = 
> "cccfcc407b20d343fb320d4a9a2110776dd3165118ffd41f4b1b162340333f94"
> diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb 
> b/meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb
> similarity index 71%
> rename from meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb
> rename to meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb
> index 301035940c..4ab2b7156d 100644
> --- a/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb
> +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb
> @@ -1,3 +1,3 @@
>  require gdb-common.inc
>  require gdb-cross-canadian.inc
> -require gdb-${PV}.inc
> +require gdb.inc
> diff --git a/meta/recipes-devtools/gdb/gdb-cross_11.1.bb 
> b/meta/recipes-devtools/gdb/gdb-cross_11.2.bb
> similarity index 50%
> rename from meta/recipes-devtools/gdb/gdb-cross_11.1.bb
> rename to meta/recipes-devtools/gdb/gdb-cross_11.2.bb
> index 50cf159fdb..3b654a2f0d 100644
> --- a/meta/recipes-devtools/gdb/gdb-cross_11.1.bb
> +++ b/meta/recipes-devtools/gdb/gdb-cross_11.2.bb
> @@ -1,2 +1,2 @@
>  require gdb-cross.inc
> -require gdb-${PV}.inc
> +require gdb.inc
> diff --git a/meta/recipes-devtools/gdb/gdb.inc 
> b/meta/recipes-devtools/gdb/gdb.inc
> index 2c95ed3ca0..cf801b192b 100644
> --- a/meta/recipes-devtools/gdb/gdb.inc
> +++ b/meta/recipes-devtools/gdb/gdb.inc
> @@ -1,11 +1,18 @@
> -require gdb-common.inc
> -
> -inherit gettext pkgconfig
> -
> -#LDFLAGS:append = " -s"
> -#export CFLAGS:append=" -L${STAGING_LIBDIR}"
> -
> -# cross-canadian must not see this
> -PACKAGES =+ "gdbserver"
> -FILES:gdbserver = "${bindir}/gdbserver"
> +LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
> +                 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
> +                 file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
> +                 file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
>  
> +SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
> +           file://0001-make-man-install-relative-to-DESTDIR.patch \
> +           file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
> +           
> file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
> +           
> file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
> +           file://0006-use-asm-sgidefs.h.patch \
> +           file://0007-Change-order-of-CFLAGS.patch \
> +           file://0008-resolve-restrict-keyword-conflict.patch \
> +           file://0009-Fix-invalid-sigprocmask-call.patch \
> +           file://0010-gdbserver-ctrl-c-handling.patch \
> +           "
> +SRC_URI[sha256sum] = 
> "1497c36a71881b8671a9a84a0ee40faab788ca30d7ba19d8463c3cc787152e32"
> diff --git 
> a/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
>  
> b/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
> deleted file mode 100644
> index 6fc1859391..0000000000
> --- 
> a/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch
> +++ /dev/null
> @@ -1,317 +0,0 @@
> -From eb79b2318066cafb75ffdce310e3bbd44f7c79e3 Mon Sep 17 00:00:00 2001
> -From: Luis Machado <luis.mach...@linaro.org>
> -Date: Fri, 29 Oct 2021 14:54:36 -0300
> -Subject: [PATCH] [AArch64] Make gdbserver register set selection dynamic
> -
> -The current register set selection mechanism for AArch64 is static, based
> -on a pre-populated array of register sets.
> -
> -This means that we might potentially probe register sets that are not
> -available. This is OK if the kernel errors out during ptrace, but probing the
> -tag_ctl register, for example, does not result in a ptrace error if the 
> kernel
> -supports the tagged address ABI but not MTE (PR 28355).
> -
> -Making the register set selection dynamic, based on feature checks, solves
> -this and simplifies the code a bit. It allows us to list all of the register
> -sets only once, and pick and choose based on HWCAP/HWCAP2 or other 
> properties.
> -
> -gdb/ChangeLog:
> -
> -2021-11-03  Luis Machado  <luis.mach...@linaro.org>
> -
> -     PR gdb/28355
> -
> -     * arch/aarch64.h (struct aarch64_features): New struct.
> -
> -gdbserver/ChangeLog:
> -
> -2021-11-03  Luis Machado  <luis.mach...@linaro.org>
> -
> -     PR gdb/28355
> -
> -     * linux-aarch64-low.cc (is_sve_tdesc): Remove.
> -     (aarch64_target::low_arch_setup): Rework to adjust the register sets.
> -     (aarch64_regsets): Update to list all register sets.
> -     (aarch64_regsets_info, regs_info_aarch64): Replace NULL with nullptr.
> -     (aarch64_sve_regsets, aarch64_sve_regsets_info)
> -     (regs_info_aarch64_sve): Remove.
> -     (aarch64_adjust_register_sets): New.
> -     (aarch64_target::get_regs_info): Remove references to removed structs.
> -     (initialize_low_arch): Likewise.
> -
> -[ChangeLog entry stripped so that patch applies cleanly]
> -Upstream-Status: Accepted
> ----
> -
> -diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h
> -index 0eb702c5b5e..95edb664b55 100644
> ---- a/gdb/arch/aarch64.h
> -+++ b/gdb/arch/aarch64.h
> -@@ -22,6 +22,15 @@
> - 
> - #include "gdbsupport/tdesc.h"
> - 
> -+/* Holds information on what architectural features are available.  This is
> -+   used to select register sets.  */
> -+struct aarch64_features
> -+{
> -+  bool sve = false;
> -+  bool pauth = false;
> -+  bool mte = false;
> -+};
> -+
> - /* Create the aarch64 target description.  A non zero VQ value indicates 
> both
> -    the presence of SVE and the Vector Quotient - the number of 128bit 
> chunks in
> -    an SVE Z register.  HAS_PAUTH_P indicates the presence of the PAUTH
> -diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
> -index daccfef746e..9a8cb4169a7 100644
> ---- a/gdbserver/linux-aarch64-low.cc
> -+++ b/gdbserver/linux-aarch64-low.cc
> -@@ -196,16 +196,6 @@ is_64bit_tdesc (void)
> -   return register_size (regcache->tdesc, 0) == 8;
> - }
> - 
> --/* Return true if the regcache contains the number of SVE registers.  */
> --
> --static bool
> --is_sve_tdesc (void)
> --{
> --  struct regcache *regcache = get_thread_regcache (current_thread, 0);
> --
> --  return tdesc_contains_feature (regcache->tdesc, 
> "org.gnu.gdb.aarch64.sve");
> --}
> --
> - static void
> - aarch64_fill_gregset (struct regcache *regcache, void *buf)
> - {
> -@@ -680,40 +670,6 @@ aarch64_target::low_new_fork (process_info *parent,
> -   *child->priv->arch_private = *parent->priv->arch_private;
> - }
> - 
> --/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h. 
>  */
> --#define AARCH64_HWCAP_PACA (1 << 30)
> --
> --/* Implementation of linux target ops method "low_arch_setup".  */
> --
> --void
> --aarch64_target::low_arch_setup ()
> --{
> --  unsigned int machine;
> --  int is_elf64;
> --  int tid;
> --
> --  tid = lwpid_of (current_thread);
> --
> --  is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine);
> --
> --  if (is_elf64)
> --    {
> --      uint64_t vq = aarch64_sve_get_vq (tid);
> --      unsigned long hwcap = linux_get_hwcap (8);
> --      unsigned long hwcap2 = linux_get_hwcap2 (8);
> --      bool pauth_p = hwcap & AARCH64_HWCAP_PACA;
> --      /* MTE is AArch64-only.  */
> --      bool mte_p = hwcap2 & HWCAP2_MTE;
> --
> --      current_process ()->tdesc
> --    = aarch64_linux_read_description (vq, pauth_p, mte_p);
> --    }
> --  else
> --    current_process ()->tdesc = aarch32_linux_read_description ();
> --
> --  aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
> --}
> --
> - /* Wrapper for aarch64_sve_regs_copy_to_reg_buf.  */
> - 
> - static void
> -@@ -730,21 +686,36 @@ aarch64_sve_regs_copy_from_regcache (struct regcache 
> *regcache, void *buf)
> -   return aarch64_sve_regs_copy_from_reg_buf (regcache, buf);
> - }
> - 
> -+/* Array containing all the possible register sets for AArch64/Linux.  
> During
> -+   architecture setup, these will be checked against the HWCAP/HWCAP2 bits 
> for
> -+   validity and enabled/disabled accordingly.
> -+
> -+   Their sizes are set to 0 here, but they will be adjusted later depending
> -+   on whether each register set is available or not.  */
> - static struct regset_info aarch64_regsets[] =
> - {
> -+  /* GPR registers.  */
> -   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS,
> --    sizeof (struct user_pt_regs), GENERAL_REGS,
> -+    0, GENERAL_REGS,
> -     aarch64_fill_gregset, aarch64_store_gregset },
> -+  /* Floating Point (FPU) registers.  */
> -   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_FPREGSET,
> --    sizeof (struct user_fpsimd_state), FP_REGS,
> -+    0, FP_REGS,
> -     aarch64_fill_fpregset, aarch64_store_fpregset
> -   },
> -+  /* Scalable Vector Extension (SVE) registers.  */
> -+  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE,
> -+    0, EXTENDED_REGS,
> -+    aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache
> -+  },
> -+  /* PAC registers.  */
> -   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK,
> --    AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS,
> --    NULL, aarch64_store_pauthregset },
> -+    0, OPTIONAL_REGS,
> -+    nullptr, aarch64_store_pauthregset },
> -+  /* Tagged address control / MTE registers.  */
> -   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL,
> --    AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset,
> --    aarch64_store_mteregset },
> -+    0, OPTIONAL_REGS,
> -+    aarch64_fill_mteregset, aarch64_store_mteregset },
> -   NULL_REGSET
> - };
> - 
> -@@ -752,47 +723,95 @@ static struct regsets_info aarch64_regsets_info =
> -   {
> -     aarch64_regsets, /* regsets */
> -     0, /* num_regsets */
> --    NULL, /* disabled_regsets */
> -+    nullptr, /* disabled_regsets */
> -   };
> - 
> - static struct regs_info regs_info_aarch64 =
> -   {
> --    NULL, /* regset_bitmap */
> --    NULL, /* usrregs */
> -+    nullptr, /* regset_bitmap */
> -+    nullptr, /* usrregs */
> -     &aarch64_regsets_info,
> -   };
> - 
> --static struct regset_info aarch64_sve_regsets[] =
> -+/* Given FEATURES, adjust the available register sets by setting their
> -+   sizes.  A size of 0 means the register set is disabled and won't be
> -+   used.  */
> -+
> -+static void
> -+aarch64_adjust_register_sets (const struct aarch64_features &features)
> - {
> --  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS,
> --    sizeof (struct user_pt_regs), GENERAL_REGS,
> --    aarch64_fill_gregset, aarch64_store_gregset },
> --  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE,
> --    SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE), EXTENDED_REGS,
> --    aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache
> --  },
> --  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK,
> --    AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS,
> --    NULL, aarch64_store_pauthregset },
> --  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL,
> --    AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset,
> --    aarch64_store_mteregset },
> --  NULL_REGSET
> --};
> -+  struct regset_info *regset;
> - 
> --static struct regsets_info aarch64_sve_regsets_info =
> --  {
> --    aarch64_sve_regsets, /* regsets.  */
> --    0, /* num_regsets.  */
> --    NULL, /* disabled_regsets.  */
> --  };
> -+  for (regset = aarch64_regsets; regset->size >= 0; regset++)
> -+    {
> -+      switch (regset->nt_type)
> -+    {
> -+    case NT_PRSTATUS:
> -+      /* General purpose registers are always present.  */
> -+      regset->size = sizeof (struct user_pt_regs);
> -+      break;
> -+    case NT_FPREGSET:
> -+      /* This is unavailable when SVE is present.  */
> -+      if (!features.sve)
> -+        regset->size = sizeof (struct user_fpsimd_state);
> -+      break;
> -+    case NT_ARM_SVE:
> -+      if (features.sve)
> -+        regset->size = SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE);
> -+      break;
> -+    case NT_ARM_PAC_MASK:
> -+      if (features.pauth)
> -+        regset->size = AARCH64_PAUTH_REGS_SIZE;
> -+      break;
> -+    case NT_ARM_TAGGED_ADDR_CTRL:
> -+      if (features.mte)
> -+        regset->size = AARCH64_LINUX_SIZEOF_MTE;
> -+      break;
> -+    default:
> -+      gdb_assert_not_reached ("Unknown register set found.");
> -+    }
> -+    }
> -+}
> - 
> --static struct regs_info regs_info_aarch64_sve =
> --  {
> --    NULL, /* regset_bitmap.  */
> --    NULL, /* usrregs.  */
> --    &aarch64_sve_regsets_info,
> --  };
> -+/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h. 
>  */
> -+#define AARCH64_HWCAP_PACA (1 << 30)
> -+
> -+/* Implementation of linux target ops method "low_arch_setup".  */
> -+
> -+void
> -+aarch64_target::low_arch_setup ()
> -+{
> -+  unsigned int machine;
> -+  int is_elf64;
> -+  int tid;
> -+
> -+  tid = lwpid_of (current_thread);
> -+
> -+  is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine);
> -+
> -+  if (is_elf64)
> -+    {
> -+      struct aarch64_features features;
> -+
> -+      uint64_t vq = aarch64_sve_get_vq (tid);
> -+      features.sve = (vq > 0);
> -+      /* A-profile PAC is 64-bit only.  */
> -+      features.pauth = linux_get_hwcap (8) & AARCH64_HWCAP_PACA;
> -+      /* A-profile MTE is 64-bit only.  */
> -+      features.mte = linux_get_hwcap2 (8) & HWCAP2_MTE;
> -+
> -+      current_process ()->tdesc
> -+    = aarch64_linux_read_description (vq, features.pauth, features.mte);
> -+
> -+      /* Adjust the register sets we should use for this particular set of
> -+     features.  */
> -+      aarch64_adjust_register_sets (features);
> -+    }
> -+  else
> -+    current_process ()->tdesc = aarch32_linux_read_description ();
> -+
> -+  aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
> -+}
> - 
> - /* Implementation of linux target ops method "get_regs_info".  */
> - 
> -@@ -802,9 +821,7 @@ aarch64_target::get_regs_info ()
> -   if (!is_64bit_tdesc ())
> -     return &regs_info_aarch32;
> - 
> --  if (is_sve_tdesc ())
> --    return &regs_info_aarch64_sve;
> --
> -+  /* AArch64 64-bit registers.  */
> -   return &regs_info_aarch64;
> - }
> - 
> -@@ -3294,5 +3311,4 @@ initialize_low_arch (void)
> -   initialize_low_arch_aarch32 ();
> - 
> -   initialize_regsets_info (&aarch64_regsets_info);
> --  initialize_regsets_info (&aarch64_sve_regsets_info);
> - }
> --- 
> -2.27.0
> -
> diff --git a/meta/recipes-devtools/gdb/gdb_11.1.bb 
> b/meta/recipes-devtools/gdb/gdb_11.2.bb
> similarity index 80%
> rename from meta/recipes-devtools/gdb/gdb_11.1.bb
> rename to meta/recipes-devtools/gdb/gdb_11.2.bb
> index e73e3a2c5c..9c6db4ca2c 100644
> --- a/meta/recipes-devtools/gdb/gdb_11.1.bb
> +++ b/meta/recipes-devtools/gdb/gdb_11.2.bb
> @@ -1,5 +1,15 @@
> +require gdb-common.inc
> +
> +inherit gettext pkgconfig
> +
> +#LDFLAGS:append = " -s"
> +#export CFLAGS:append=" -L${STAGING_LIBDIR}"
> +
> +# cross-canadian must not see this
> +PACKAGES =+ "gdbserver"
> +FILES:gdbserver = "${bindir}/gdbserver"
> +
>  require gdb.inc
> -require gdb-${PV}.inc
>  
>  inherit python3-dir
>  
> @@ -26,3 +36,4 @@ EOF
>               chmod +x ${WORKDIR}/python
>       fi
>  }
> +
> -- 
> 2.20.1
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#161265): 
https://lists.openembedded.org/g/openembedded-core/message/161265
Mute This Topic: https://lists.openembedded.org/mt/88865277/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to