* gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 @ 2007-12-19 17:42 H.J. Lu 2007-12-19 17:51 ` H.J. Lu 0 siblings, 1 reply; 6+ messages in thread From: H.J. Lu @ 2007-12-19 17:42 UTC (permalink / raw) To: GDB When building gdb 6.7.50.20071219-cvs on Linux/ia64, I got /net/gnu-6/export/gnu/src/gdb/gdb/gdb/gdbserver/linux-low.c:1751: undefined reference to `clone' linux-low.o: In function `linux_test_for_tracefork': /net/gnu-6/export/gnu/src/gdb/gdb/gdb/gdbserver/linux-low.c:1784: undefined reference to `clone' there is no clone, only clone2, on Linux/ia64. H.J. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 2007-12-19 17:42 gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 H.J. Lu @ 2007-12-19 17:51 ` H.J. Lu 2007-12-19 18:41 ` Daniel Jacobowitz 0 siblings, 1 reply; 6+ messages in thread From: H.J. Lu @ 2007-12-19 17:51 UTC (permalink / raw) To: GDB; +Cc: drow On Wed, Dec 19, 2007 at 09:42:32AM -0800, H.J. Lu wrote: > When building gdb 6.7.50.20071219-cvs on Linux/ia64, I got > > /net/gnu-6/export/gnu/src/gdb/gdb/gdb/gdbserver/linux-low.c:1751: > undefined reference to `clone' > linux-low.o: In function `linux_test_for_tracefork': > /net/gnu-6/export/gnu/src/gdb/gdb/gdb/gdbserver/linux-low.c:1784: > undefined reference to `clone' > > there is no clone, only clone2, on Linux/ia64. > This regression was introduced by 2007-11-01 Daniel Jacobowitz <dan@codesourcery.com> * linux-low.c (linux_tracefork_grandchild): New. (linux_tracefork_child): Use clone. (linux_test_for_tracefork): Use clone; allocate and free a stack. Daniel, can you look into it? Thanks. H.J. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 2007-12-19 17:51 ` H.J. Lu @ 2007-12-19 18:41 ` Daniel Jacobowitz 2007-12-19 21:08 ` Andreas Schwab 0 siblings, 1 reply; 6+ messages in thread From: Daniel Jacobowitz @ 2007-12-19 18:41 UTC (permalink / raw) To: H.J. Lu; +Cc: GDB On Wed, Dec 19, 2007 at 09:50:49AM -0800, H.J. Lu wrote: > This regression was introduced by > > 2007-11-01 Daniel Jacobowitz <dan@codesourcery.com> > > * linux-low.c (linux_tracefork_grandchild): New. > (linux_tracefork_child): Use clone. > (linux_test_for_tracefork): Use clone; allocate and free a > stack. > > Daniel, can you look into it? It is an otherwise trivial use of clone. Could someone with access to an ia64-linux system try adding a clone2 case? -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 2007-12-19 18:41 ` Daniel Jacobowitz @ 2007-12-19 21:08 ` Andreas Schwab 2007-12-21 15:47 ` H.J. Lu 0 siblings, 1 reply; 6+ messages in thread From: Andreas Schwab @ 2007-12-19 21:08 UTC (permalink / raw) To: H.J. Lu; +Cc: GDB Daniel Jacobowitz <drow@false.org> writes: > On Wed, Dec 19, 2007 at 09:50:49AM -0800, H.J. Lu wrote: >> This regression was introduced by >> >> 2007-11-01 Daniel Jacobowitz <dan@codesourcery.com> >> >> * linux-low.c (linux_tracefork_grandchild): New. >> (linux_tracefork_child): Use clone. >> (linux_test_for_tracefork): Use clone; allocate and free a >> stack. >> >> Daniel, can you look into it? > > It is an otherwise trivial use of clone. Could someone with access > to an ia64-linux system try adding a clone2 case? This seems to work: 2007-12-19 Andreas Schwab <schwab@suse.de> * linux-low.c (STACK_SIZE): Define. (linux_tracefork_child): Use it. Use __clone2 on ia64. (linux_test_for_tracefork): Likewise. --- linux-low.c 19 Dez 2007 21:34:04 +0100 1.68 +++ linux-low.c 19 Dez 2007 22:05:14 +0100 @@ -1743,12 +1743,20 @@ linux_tracefork_grandchild (void *arg) _exit (0); } +#define STACK_SIZE 4096 + static int linux_tracefork_child (void *arg) { ptrace (PTRACE_TRACEME, 0, 0, 0); kill (getpid (), SIGSTOP); - clone (linux_tracefork_grandchild, arg, CLONE_VM | SIGCHLD, NULL); +#ifdef __ia64__ + __clone2 (linux_tracefork_grandchild, arg, STACK_SIZE, + CLONE_VM | SIGCHLD, NULL); +#else + clone (linux_tracefork_grandchild, (char *) arg + STACK_SIZE, + CLONE_VM | SIGCHLD, NULL); +#endif _exit (0); } @@ -1776,13 +1784,18 @@ linux_test_for_tracefork (void) { int child_pid, ret, status; long second_pid; - char *stack = malloc (8192); + char *stack = malloc (STACK_SIZE * 4); linux_supports_tracefork_flag = 0; /* Use CLONE_VM instead of fork, to support uClinux (no MMU). */ - child_pid = clone (linux_tracefork_child, stack + 2048, - CLONE_VM | SIGCHLD, stack + 6144); +#ifdef __ia64__ + child_pid = __clone2 (linux_tracefork_child, stack, STACK_SIZE, + CLONE_VM | SIGCHLD, stack + STACK_SIZE * 2); +#else + child_pid = clone (linux_tracefork_child, stack + STACK_SIZE, + CLONE_VM | SIGCHLD, stack + STACK_SIZE * 2); +#endif if (child_pid == -1) perror_with_name ("clone"); Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, MaxfeldstraÃe 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 2007-12-19 21:08 ` Andreas Schwab @ 2007-12-21 15:47 ` H.J. Lu 2007-12-21 15:56 ` Daniel Jacobowitz 0 siblings, 1 reply; 6+ messages in thread From: H.J. Lu @ 2007-12-21 15:47 UTC (permalink / raw) To: Andreas Schwab; +Cc: GDB On Wed, Dec 19, 2007 at 10:08:03PM +0100, Andreas Schwab wrote: > Daniel Jacobowitz <drow@false.org> writes: > > > On Wed, Dec 19, 2007 at 09:50:49AM -0800, H.J. Lu wrote: > >> This regression was introduced by > >> > >> 2007-11-01 Daniel Jacobowitz <dan@codesourcery.com> > >> > >> * linux-low.c (linux_tracefork_grandchild): New. > >> (linux_tracefork_child): Use clone. > >> (linux_test_for_tracefork): Use clone; allocate and free a > >> stack. > >> > >> Daniel, can you look into it? > > > > It is an otherwise trivial use of clone. Could someone with access > > to an ia64-linux system try adding a clone2 case? > > This seems to work: > > 2007-12-19 Andreas Schwab <schwab@suse.de> > > * linux-low.c (STACK_SIZE): Define. > (linux_tracefork_child): Use it. Use __clone2 on ia64. > (linux_test_for_tracefork): Likewise. > It works for me. Can we check it in? Thanks. H.J. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 2007-12-21 15:47 ` H.J. Lu @ 2007-12-21 15:56 ` Daniel Jacobowitz 0 siblings, 0 replies; 6+ messages in thread From: Daniel Jacobowitz @ 2007-12-21 15:56 UTC (permalink / raw) To: H.J. Lu; +Cc: Andreas Schwab, GDB On Fri, Dec 21, 2007 at 07:47:42AM -0800, H.J. Lu wrote: > > This seems to work: > > > > 2007-12-19 Andreas Schwab <schwab@suse.de> > > > > * linux-low.c (STACK_SIZE): Define. > > (linux_tracefork_child): Use it. Use __clone2 on ia64. > > (linux_test_for_tracefork): Likewise. > > > > It works for me. Can we check it in? > > Thanks. Yes, the patch is OK. Thanks, Andreas. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-12-21 15:56 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-12-19 17:42 gdb 6.7.50.20071219-cvs doesn't build on Linux/ia64 H.J. Lu 2007-12-19 17:51 ` H.J. Lu 2007-12-19 18:41 ` Daniel Jacobowitz 2007-12-19 21:08 ` Andreas Schwab 2007-12-21 15:47 ` H.J. Lu 2007-12-21 15:56 ` Daniel Jacobowitz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox