[PATCH, rs6000] Add ppc64*_gnu_triplet_regexp methods.
will schmidt
will_schmidt@vnet.ibm.com
Tue Jul 27 15:36:03 GMT 2021
[PATCH, rs6000] Add ppc64*_gnu_triplet_regexp methods.
Hi,
Add methods to set the target triplet so we can
find the proper gcc when our gcc is named of
the form powerpc64{le}-<foo>-gcc or ppc64{le}-<foo>-gcc.
This helps allow the gdb-compile support to function
for the powerpc targets.
OK for trunk?
Thanks
-Will
gdb/Changelog:
yyyy-mm-dd Will Schmidt <will_schmidt@vnet.ibm.com>
* gdb/ppc-linux-tdep.c (ppc64le_gnu_triplet_regexp): New
function to set triplet.
(ppc64_gnu_triplet_regexp): Same.
(ppc_linux_init_abi): Conditionally call to set the
ppc64 or ppc64le triplets.
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 1e94922f25a..de3e026a72b 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -1971,10 +1971,34 @@ ppc_floatformat_for_type (struct gdbarch *gdbarch,
}
return default_floatformat_for_type (gdbarch, name, len);
}
+/* Specify the powerpc64le target triplet.
+ This can be variations of
+ ppc64le-{distro}-linux-gcc
+ and
+ powerpc64le-{distro}-linux-gcc
+ */
+static const char *
+ppc64le_gnu_triplet_regexp (struct gdbarch *gdbarch)
+{
+ return "p(ower)*pc64le?";
+}
+
+/* Specify the powerpc64 target triplet.
+ This can be variations of
+ ppc64-{distro}-linux-gcc
+ and
+ powerpc64-{distro}-linux-gcc
+ */
+static const char *
+ppc64_gnu_triplet_regexp (struct gdbarch *gdbarch)
+{
+ return "p(ower)*pc64?";
+}
+
static void
ppc_linux_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
@@ -2101,10 +2125,15 @@ ppc_linux_init_abi (struct gdbarch_info info,
/* BFD target for core files. */
if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE)
set_gdbarch_gcore_bfd_target (gdbarch, "elf64-powerpcle");
else
set_gdbarch_gcore_bfd_target (gdbarch, "elf64-powerpc");
+ /* Set compiler triplet. */
+ if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE)
+ set_gdbarch_gnu_triplet_regexp (gdbarch, ppc64le_gnu_triplet_regexp);
+ else
+ set_gdbarch_gnu_triplet_regexp (gdbarch, ppc64_gnu_triplet_regexp);
}
set_gdbarch_core_read_description (gdbarch, ppc_linux_core_read_description);
set_gdbarch_iterate_over_regset_sections (gdbarch,
ppc_linux_iterate_over_regset_sections);
More information about the Gdb-patches
mailing list