From c01cbb3d52217d404e500d11a7a4b87e87a0cd0d Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Mon, 2 Sep 2013 23:09:57 +0000 Subject: [PATCH] gdb/ * linux-tdep.c (linux_is_uclinux): New function. Code moved from linux_has_shared_address_space. (linux_has_shared_address_space): Call linux_is_uclinux. * linux-tdep.h (linux_is_uclinux): Declare. * m68klinux-tdep.c (m68k_linux_get_sigtramp_info): Call linux_is_uclinux. --- gdb/ChangeLog | 9 +++++++++ gdb/linux-tdep.c | 21 ++++++++++++--------- gdb/linux-tdep.h | 2 ++ gdb/m68klinux-tdep.c | 12 +++--------- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7a61d7a3f7..ed2acda9df 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2013-09-03 Yao Qi + + * linux-tdep.c (linux_is_uclinux): New function. Code moved + from linux_has_shared_address_space. + (linux_has_shared_address_space): Call linux_is_uclinux. + * linux-tdep.h (linux_is_uclinux): Declare. + * m68klinux-tdep.c (m68k_linux_get_sigtramp_info): Call + linux_is_uclinux. + 2013-09-03 Yao Qi * config/djgpp/fnchange.lst: Remove entry of diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c index fbdca46351..eb8ea2b664 100644 --- a/gdb/linux-tdep.c +++ b/gdb/linux-tdep.c @@ -241,19 +241,22 @@ linux_get_siginfo_type (struct gdbarch *gdbarch) return siginfo_type; } -static int -linux_has_shared_address_space (struct gdbarch *gdbarch) +/* Return true if the target is running on uClinux instead of normal + Linux kernel. */ + +int +linux_is_uclinux (void) { - /* Determine whether we are running on uClinux or normal Linux - kernel. */ CORE_ADDR dummy; - int target_is_uclinux; - target_is_uclinux - = (target_auxv_search (¤t_target, AT_NULL, &dummy) > 0 - && target_auxv_search (¤t_target, AT_PAGESZ, &dummy) == 0); + return (target_auxv_search (¤t_target, AT_NULL, &dummy) > 0 + && target_auxv_search (¤t_target, AT_PAGESZ, &dummy) == 0); +} - return target_is_uclinux; +static int +linux_has_shared_address_space (struct gdbarch *gdbarch) +{ + return linux_is_uclinux (); } /* This is how we want PTIDs from core files to be printed. */ diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h index 5841f296b1..a61c20e7b6 100644 --- a/gdb/linux-tdep.h +++ b/gdb/linux-tdep.h @@ -42,4 +42,6 @@ extern int linux_gdb_signal_to_target (struct gdbarch *gdbarch, extern void linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); +extern int linux_is_uclinux (void); + #endif /* linux-tdep.h */ diff --git a/gdb/m68klinux-tdep.c b/gdb/m68klinux-tdep.c index be90885285..0382f6853e 100644 --- a/gdb/m68klinux-tdep.c +++ b/gdb/m68klinux-tdep.c @@ -228,16 +228,10 @@ m68k_linux_get_sigtramp_info (struct frame_info *this_frame) CORE_ADDR sp; struct m68k_linux_sigtramp_info info; + /* Determine whether we are running on a uClinux or normal GNU/Linux + target so we can use the correct sigcontext layouts. */ if (target_is_uclinux == -1) - { - /* Determine whether we are running on a uClinux or normal GNU/Linux - target so we can use the correct sigcontext layouts. */ - CORE_ADDR dummy; - - target_is_uclinux - = (target_auxv_search (¤t_target, AT_NULL, &dummy) > 0 - && target_auxv_search (¤t_target, AT_PAGESZ, &dummy) == 0); - } + target_is_uclinux = linux_is_uclinux (); sp = get_frame_register_unsigned (this_frame, M68K_SP_REGNUM); -- 2.34.1