From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9344 invoked by alias); 6 Sep 2002 20:47:36 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 9334 invoked from network); 6 Sep 2002 20:47:29 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (62.163.169.250) by sources.redhat.com with SMTP; 6 Sep 2002 20:47:29 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.5/8.12.5) with ESMTP id g86KlOo3000510; Fri, 6 Sep 2002 22:47:24 +0200 (CEST) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: from elgar.kettenis.dyndns.org (localhost [127.0.0.1]) by elgar.kettenis.dyndns.org (8.12.5/8.12.5) with ESMTP id g86KlOMU000777; Fri, 6 Sep 2002 22:47:24 +0200 (CEST) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.5/8.12.5/Submit) id g86KlBcd000771; Fri, 6 Sep 2002 22:47:11 +0200 (CEST) Date: Fri, 06 Sep 2002 13:47:00 -0000 Message-Id: <200209062047.g86KlBcd000771@elgar.kettenis.dyndns.org> From: Mark Kettenis To: gdb-patches@sources.redhat.com, thorpej@wasabisystems.com Subject: [PATCH] Multi-arch SIGTRAMP_{START|END} for FreeBSD/i386 X-SW-Source: 2002-09/txt/msg00097.txt.bz2 This removes the last #defines from i386/tm-fbsd.h. Yippie! Jason, just to be safe, I reset sigtramp_start and sigtramp_end on NetBSD. I added a FIXME too, but the obvious implementation of sigtramp_start using i386nbsd_sigtramp_offset is probably not going to work, since then very weird things happen to libc-provided signal trampolines. I need to think about that a bit more (Linux suffers from a similar problem). Mark Index: ChangeLog from Mark Kettenis * i386bsd-tdep.c (i386bsd_init_abi): Set sigtramp_start and sigtramp_end to i386bsd_sigtramp_start and i386bsd_sigtramp_end. * i386nbsd-tdep.c (i386nbsd_init_abi): Set sigtramp_start and sigtramp_end to NULL. * config/i386/tm-fbsd.h (SIGTRAMP_START, SIGTRAMP_END): Remove defines. (i386bsd_sigtramp_start, i386_sigtramp_end): Remove prototypes. Index: i386bsd-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/i386bsd-tdep.c,v retrieving revision 1.9 diff -u -p -r1.9 i386bsd-tdep.c --- i386bsd-tdep.c 1 Sep 2002 23:24:19 -0000 1.9 +++ i386bsd-tdep.c 6 Sep 2002 20:37:21 -0000 @@ -100,6 +100,10 @@ i386bsd_init_abi (struct gdbarch_info in set_gdbarch_pc_in_sigtramp (gdbarch, i386bsd_pc_in_sigtramp); + /* Allow the recognition of sigtramps as a function named . */ + set_gdbarch_sigtramp_start (gdbarch, i386bsd_sigtramp_start); + set_gdbarch_sigtramp_end (gdbarch, i386bsd_sigtramp_end); + /* Assume SunOS-style shared libraries. */ set_gdbarch_in_solib_call_trampoline (gdbarch, i386bsd_aout_in_solib_call_trampoline); Index: i386nbsd-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/i386nbsd-tdep.c,v retrieving revision 1.10 diff -u -p -r1.10 i386nbsd-tdep.c --- i386nbsd-tdep.c 6 Sep 2002 20:28:57 -0000 1.10 +++ i386nbsd-tdep.c 6 Sep 2002 20:37:21 -0000 @@ -251,6 +251,11 @@ i386nbsd_init_abi (struct gdbarch_info i /* NetBSD has different signal trampoline conventions. */ set_gdbarch_pc_in_sigtramp (gdbarch, i386nbsd_pc_in_sigtramp); + /* FIXME: kettenis/20020906: We should probably provide + NetBSD-specific versions of these functions if we want to + recognize signal trampolines that live on the stack. */ + set_gdbarch_sigtramp_start (gdbarch, NULL); + set_gdbarch_sigtramp_end (gdbarch, NULL); /* NetBSD uses -freg-struct-return by default. */ tdep->struct_return = reg_struct_return; Index: config/i386/tm-fbsd.h =================================================================== RCS file: /cvs/src/src/gdb/config/i386/tm-fbsd.h,v retrieving revision 1.9 diff -u -p -r1.9 tm-fbsd.h --- config/i386/tm-fbsd.h 30 Jun 2002 14:43:24 -0000 1.9 +++ config/i386/tm-fbsd.h 6 Sep 2002 20:37:21 -0000 @@ -27,16 +27,4 @@ #include #endif -/* These defines allow the recognition of sigtramps as a function name - . - - FIXME: kettenis/2002-05-12: Of course these defines will have to go - if we go truly "multi-arch", but I don't know yet how to get rid of - them. */ - -#define SIGTRAMP_START(pc) i386bsd_sigtramp_start (pc) -#define SIGTRAMP_END(pc) i386bsd_sigtramp_end (pc) -extern CORE_ADDR i386bsd_sigtramp_start (CORE_ADDR pc); -extern CORE_ADDR i386bsd_sigtramp_end (CORE_ADDR pc); - #endif /* TM_FBSD_H */