From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2592 invoked by alias); 18 Aug 2003 12:59:45 -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 2585 invoked from network); 18 Aug 2003 12:59:45 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 18 Aug 2003 12:59:45 -0000 Received: from drow by nevyn.them.org with local (Exim 4.20 #1 (Debian)) id 19ojbr-0005LR-9W; Mon, 18 Aug 2003 08:59:43 -0400 Date: Mon, 18 Aug 2003 12:59:00 -0000 From: Daniel Jacobowitz To: Michal Ludvig Cc: GDB Patches , Mark Kettenis Subject: Re: RFA: Actual support for tracing forks on GNU/Linux Message-ID: <20030818125943.GA20472@nevyn.them.org> Mail-Followup-To: Michal Ludvig , GDB Patches , Mark Kettenis References: <20030618232942.GA982@nevyn.them.org> <20030628163444.GB9716@nevyn.them.org> <20030709215713.GA25331@nevyn.them.org> <20030724184849.GC1842@nevyn.them.org> <200308101611.h7AGBfnh058626@elgar.kettenis.dyndns.org> <20030817182245.GA24800@nevyn.them.org> <3F4097E1.6000706@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F4097E1.6000706@suse.cz> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-08/txt/msg00292.txt.bz2 On Mon, Aug 18, 2003 at 11:09:53AM +0200, Michal Ludvig wrote: > Daniel Jacobowitz told me that: > > > 2003-08-17 Daniel Jacobowitz > > > > * config/i386/nm-linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR): > > Define. > > * i386-linux-nat.c: Include "linux-nat.h". > > (child_post_startup_inferior): New function. > > * i386-nat.c (child_post_startup_inferior): Wrap in #ifdef. > > * linux-nat.c (linux_enable_event_reporting): New function. > > (child_post_attach, linux_child_post_startup_inferior) > > (child_post_startup_inferior, child_follow_fork) > > (linux_handle_extended_wait, kill_inferior): New functions. > > Hi Daniel, > this change broke build on AMD64. Per-se I'm getting linker error: > > libgdb.a(linux-nat.o)(.text+0x3e8): In function > `child_post_startup_inferior': > ../../gdb-6.0/gdb/linux-nat.c:223: multiple definition of > `child_post_startup_inferior' > libgdb.a(i386-nat.o)(.text+0x52):../../gdb-6.0/gdb/i386-nat.c:238: first > defined here > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3/../../../../x86_64-suse-linux/bin/ld: > Warning: size of symbol `child_post_startup_inferior' changed from 11 in > libgdb.a(i386-nat.o) to 41 in libgdb.a(i386-nat.o) > collect2: ld returned 1 exit status > make: *** [gdb] Error 1 > > I.e. `child_post_startup_inferior' is defined twice. > > When I define LINUX_CHILD_POST_STARTUP_INFERIOR in > config/i386/nm-x86-64linux.h I get: > > libgdb.a(inftarg.o)(.text+0x692): In function `init_child_ops': > ../../gdb-6.0/gdb/inftarg.c:593: undefined reference to > `child_post_startup_inferior' > libgdb.a(lin-lwp.o)(.text+0x3f76): In function `init_lin_lwp_ops': > ../../gdb-6.0/gdb/lin-lwp.c:1675: undefined reference to > `child_post_startup_inferior' > > I.e. it's never defined. > > The problem seems to be that child_post_startup_inferior() in both > i386-nat.c and linux-nat.c is #ifNdef-ed, i.e. either both undefined or > both defined. Is that intended? Take a look at the third copy - it's in i386-linux-nat.c. Then take a look at the annoyed comment in i386/nm-linux.h. > However the proper fix for amd64 seems to be: > > Index: x86-64-linux-nat.c > =================================================================== > RCS file: /cvs/src/src/gdb/x86-64-linux-nat.c,v > retrieving revision 1.23.6.2 > diff -u -p -r1.23.6.2 x86-64-linux-nat.c > --- x86-64-linux-nat.c 17 Jul 2003 12:51:55 -0000 1.23.6.2 > +++ x86-64-linux-nat.c 18 Aug 2003 09:05:51 -0000 > @@ -347,3 +347,9 @@ ps_get_thread_area (const struct ps_proc > return PS_ERR; /* ptrace failed. */ > } > > +void > +child_post_startup_inferior (ptid_t ptid) > +{ > + i386_cleanup_dregs (); > + linux_child_post_startup_inferior (ptid); > +} > > Right? OK to apply? Along with defining LINUX_CHILD_POST_STARTUP_INFERIOR, I assume? Yes, this is OK. Sorry about breaking amd64. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer