This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 12/14] -Wmissing-prototypes: Hook linux_has_shared_address_space.
$ make -j8 1>/dev/null
../../src/gdb/linux-tdep.c:177:1: error: no previous prototype for âlinux_has_shared_address_spaceâ [-Werror=missing-prototypes]
cc1: all warnings being treated as errors
This function isn't used today, but only because I had missed hooking
it, it seems. This should make GDB handle multi-process breakpoints
better on non-MMU systems, though I haven't tried this in years. Let
me know if you want to test this, or if this ends up causing any
trouble. I ran the testsuite on x86_64 Fedora, with
linux_has_shared_address_space force-hacked to return 1, and
watchpoint-multi showed regressions, which were actually expected, as
they were caused by GDB thinking watchpoints on both processes only
needed to be inserted once (because they were at the same addresses),
which should be true on a non-MMU system.
2012-02-29 Pedro Alves <palves@redhat.com>
* linux-tdep.c (linux_has_shared_address_space): Make static. Add
gdbarch parameter.
(linux_init_abi): Install it as has_shared_address_space gdbarch
callback.
---
gdb/linux-tdep.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 3ab98c7..1aee071 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -173,8 +173,8 @@ linux_get_siginfo_type (struct gdbarch *gdbarch)
return siginfo_type;
}
-int
-linux_has_shared_address_space (void)
+static int
+linux_has_shared_address_space (struct gdbarch *gdbarch)
{
/* Determine whether we are running on uClinux or normal Linux
kernel. */
@@ -860,6 +860,8 @@ linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_info_proc (gdbarch, linux_info_proc);
set_gdbarch_find_memory_regions (gdbarch, linux_find_memory_regions);
set_gdbarch_make_corefile_notes (gdbarch, linux_make_corefile_notes_1);
+ set_gdbarch_has_shared_address_space (gdbarch,
+ linux_has_shared_address_space);
}
void