From owner-freebsd-ppc@FreeBSD.ORG Sun Sep 27 22:35:18 2009 Return-Path: Delivered-To: powerpc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1667E1065670; Sun, 27 Sep 2009 22:35:18 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id D36F68FC18; Sun, 27 Sep 2009 22:35:17 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.3/8.14.3) with ESMTP id n8RMZHtS088297; Sun, 27 Sep 2009 18:35:17 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.3/8.14.3/Submit) id n8RMZH34088284; Sun, 27 Sep 2009 22:35:17 GMT (envelope-from tinderbox@freebsd.org) Date: Sun, 27 Sep 2009 22:35:17 GMT Message-Id: <200909272235.n8RMZH34088284@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Sep 2009 22:35:18 -0000 TB --- 2009-09-27 22:12:35 - tinderbox 2.6 running on freebsd-current.sentex.ca TB --- 2009-09-27 22:12:35 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2009-09-27 22:12:35 - cleaning the object tree TB --- 2009-09-27 22:16:49 - cvsupping the source tree TB --- 2009-09-27 22:16:49 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2009-09-27 22:18:49 - building world TB --- 2009-09-27 22:18:49 - MAKEOBJDIRPREFIX=/obj TB --- 2009-09-27 22:18:49 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2009-09-27 22:18:49 - TARGET=powerpc TB --- 2009-09-27 22:18:49 - TARGET_ARCH=powerpc TB --- 2009-09-27 22:18:49 - TZ=UTC TB --- 2009-09-27 22:18:49 - __MAKE_CONF=/dev/null TB --- 2009-09-27 22:18:49 - cd /src TB --- 2009-09-27 22:18:49 - /usr/bin/make -B buildworld >>> World build started on Sun Sep 27 22:18:50 UTC 2009 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] sh /src/tools/install.sh -o root -g wheel -m 444 ca_ES.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/ca_ES.ISO8859-1/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 de_DE.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/de_DE.ISO8859-1/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 el_GR.ISO8859-7.cat /obj/powerpc/src/tmp/usr/share/nls/el_GR.ISO8859-7/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 es_ES.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/es_ES.ISO8859-1/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 fi_FI.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/fi_FI.ISO8859-1/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 fr_FR.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/fr_FR.ISO8859-1/libc.cat sh /src/tools/install.sh -o root -g wheel -m 444 gl_ES.ISO8859-1.cat /obj/powerpc/src/tmp/usr/share/nls/gl_ES.ISO8859-1/libc.cat install: /obj/powerpc/src/tmp/usr/share/nls/gl_ES.ISO8859-1/libc.cat: No such file or directory *** Error code 71 Stop in /src/lib/libc. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2009-09-27 22:35:17 - WARNING: /usr/bin/make returned exit code 1 TB --- 2009-09-27 22:35:17 - ERROR: failed to build world TB --- 2009-09-27 22:35:17 - 519.66 user 108.44 system 1361.67 real http://tinderbox.des.no/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-ppc@FreeBSD.ORG Mon Sep 28 11:07:01 2009 Return-Path: Delivered-To: freebsd-ppc@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8BA2106566B for ; Mon, 28 Sep 2009 11:07:01 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 958E98FC21 for ; Mon, 28 Sep 2009 11:07:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n8SB71Ru064123 for ; Mon, 28 Sep 2009 11:07:01 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n8SB71da064119 for freebsd-ppc@FreeBSD.org; Mon, 28 Sep 2009 11:07:01 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 28 Sep 2009 11:07:01 GMT Message-Id: <200909281107.n8SB71da064119@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-ppc@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-ppc@FreeBSD.org X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Sep 2009 11:07:01 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o power/139154 ppc Patch for Altivec sysctl o power/135576 ppc gdb cannot debug threaded programs on ppc o power/133503 ppc [sound] Sound stutter after switching ttys o power/133383 ppc firefox thr_kill crash with heavy vm load o power/133382 ppc [install] Installer gets signal 11 o power/131548 ppc ofw_syscons no longer supports 32-bit framebuffer a power/121407 ppc [panic] Won't boot up; strange error message. o power/111296 ppc [kernel] [patch] [request] Support IMISS, DLMISS an DS o power/93203 ppc FreeBSD PPC Can't Write to Partitions. 9 problems total. From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 13:47:42 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56881106566B; Tue, 29 Sep 2009 13:47:42 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from argol.doit.wisc.edu (argol.doit.wisc.edu [144.92.197.212]) by mx1.freebsd.org (Postfix) with ESMTP id 291B68FC16; Tue, 29 Sep 2009 13:47:41 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=ISO-8859-1; format=flowed Received: from avs-daemon.smtpauth3.wiscmail.wisc.edu by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7.0-5.01 32bit (built Feb 19 2009)) id <0KQQ0041EJNH6F00@smtpauth3.wiscmail.wisc.edu>; Tue, 29 Sep 2009 08:47:41 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.73.164]) by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7.0-5.01 32bit (built Feb 19 2009)) with ESMTPSA id <0KQQ0009RJNE3270@smtpauth3.wiscmail.wisc.edu>; Tue, 29 Sep 2009 08:47:39 -0500 (CDT) Date: Tue, 29 Sep 2009 08:47:37 -0500 From: Nathan Whitehorn In-reply-to: <4ABA8D7B.8070706@fgznet.ch> To: Andreas Tobler Message-id: <4AC20FF9.9080702@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.73.164 X-Spam-PmxInfo: Server=avs-11, Version=5.5.5.374460, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2009.9.29.133622, SenderIP=76.210.73.164 References: <4AB6966E.60808@fgznet.ch> <4ABA415F.9060800@freebsd.org> <4ABA8D7B.8070706@fgznet.ch> User-Agent: Thunderbird 2.0.0.23 (X11/20090905) Cc: Peter Grehan , FreeBSD PowerPC ML Subject: Re: thunderbird port X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 13:47:42 -0000 Andreas Tobler wrote: > Hi Peter, > > Peter Grehan wrote: >>> in case someone is interested.... >> >> Certainly am ! I'll give it a try. > > Please follow the thread, > > http://lists.freebsd.org/pipermail/freebsd-gecko/2009-September/000350.html > > > The bsd.gecko.mk is not needed for this build if you apply the above > patch to the toplevel Makefile in thunderbird. > > Btw, firefox35 should also build and run. Already committed to ports > by beat. Thanks so much for this! It's very nice to have thunderbird and recent firefox running on my laptop. -Nathan From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 15:35:09 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5911106568D; Tue, 29 Sep 2009 15:35:09 +0000 (UTC) (envelope-from andreast-list@fgznet.ch) Received: from smtp.fgznet.ch (mail.fgznet.ch [81.92.96.47]) by mx1.freebsd.org (Postfix) with ESMTP id 3F0058FC0C; Tue, 29 Sep 2009 15:35:08 +0000 (UTC) Received: from deuterium.andreas.nets ([91.190.8.131]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id n8TFZ7Jj082333; Tue, 29 Sep 2009 17:35:07 +0200 (CEST) (envelope-from andreast-list@fgznet.ch) Message-ID: <4AC22929.4020408@fgznet.ch> Date: Tue, 29 Sep 2009 17:35:05 +0200 From: Andreas Tobler User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: Nathan Whitehorn References: <4AB6966E.60808@fgznet.ch> <4ABA415F.9060800@freebsd.org> <4ABA8D7B.8070706@fgznet.ch> <4AC20FF9.9080702@freebsd.org> In-Reply-To: <4AC20FF9.9080702@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Peter Grehan , FreeBSD PowerPC ML Subject: Re: thunderbird port X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 15:35:10 -0000 Nathan Whitehorn wrote: > Andreas Tobler wrote: >> Hi Peter, >> >> Peter Grehan wrote: >>>> in case someone is interested.... >>> Certainly am ! I'll give it a try. >> Please follow the thread, >> >> http://lists.freebsd.org/pipermail/freebsd-gecko/2009-September/000350.html >> >> >> The bsd.gecko.mk is not needed for this build if you apply the above >> patch to the toplevel Makefile in thunderbird. >> >> Btw, firefox35 should also build and run. Already committed to ports >> by beat. > Thanks so much for this! It's very nice to have thunderbird and recent > firefox running on my laptop. Btw, both are in the ports-tree now. Happy to see people using it! Andreas From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 21:01:01 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D6D31065670 for ; Tue, 29 Sep 2009 21:01:01 +0000 (UTC) (envelope-from andreast-list@fgznet.ch) Received: from smtp.fgznet.ch (mail.fgznet.ch [81.92.96.47]) by mx1.freebsd.org (Postfix) with ESMTP id 926888FC13 for ; Tue, 29 Sep 2009 21:01:00 +0000 (UTC) Received: from deuterium.andreas.nets ([91.190.8.131]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id n8TL0wY7008638; Tue, 29 Sep 2009 23:00:58 +0200 (CEST) (envelope-from andreast-list@fgznet.ch) Message-ID: <4AC2758A.8030708@fgznet.ch> Date: Tue, 29 Sep 2009 23:00:58 +0200 From: Andreas Tobler User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: FreeBSD PowerPC ML , Andreas Tobler Content-Type: multipart/mixed; boundary="------------040809070802050101090502" Cc: Subject: RFC/H gdb6 port for powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 21:01:01 -0000 This is a multi-part message in MIME format. --------------040809070802050101090502 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi all, I sent this mail out to Marcel but I did not get any feedback. Might be due to mailer issues, I do not know. I learned today, that I do not receive all mails directed to me. So I try to spread some request for comment/help here. I recently tried to get thunderbird working on powerpc. I was blocked and I needed a debugger. The current gdb in base terminates immediatley if I try to debug such a beast as thunderbird. So I went ahead and tried to bring gdb6 (from ports, 6.6.1) into a working state. I think I succeeded somehow, but I need some more help. Attached you'll find two files which you can put into the ports files directory of gdb6. (files) My issues I have are seen when you run 'gmake check' inside the gdb build directory. There are a lot of signal stuff which does not work. Also unwinding seems not in good shape. My request here on this list is, can anybody help guiding me on the missing bits? I'd appreciate any comments here, from gth to 'you could do this better' or anything else, but please respond. TIA, Andreas P.S, here the summary of gmake check: === gdb Summary === # of expected passes 10484 # of unexpected failures 196 # of expected failures 41 # of known failures 62 # of unresolved testcases 1 # of untested testcases 13 # of unsupported tests 14 --------------040809070802050101090502 Content-Type: text/plain; x-mac-type="54455854"; x-mac-creator="74657874"; name="patch-powerpc-gdb6.6-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-powerpc-gdb6.6-1" --- ./gdb/ppcfbsd-nat.c.orig 2009-09-14 10:22:36.000000000 +0200 +++ ./gdb/ppcfbsd-nat.c 2009-09-14 10:22:36.000000000 +0200 @@ -0,0 +1,159 @@ +/* Native-dependent code for PowerPC's running FreeBSD, for GDB. + Copyright 2002, 2004 Free Software Foundation, Inc. + Contributed by Wasabi Systems, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include +#include + +#include "defs.h" +#include "inferior.h" +#include "inf-ptrace.h" +#include "gdb_assert.h" +#include "gdbcore.h" +#include "regcache.h" + +#include "ppc-tdep.h" +#include "ppcfbsd-tdep.h" + + +static int +getfpregs_supplies (int regno) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); + + /* FIXME: jimb/2004-05-05: Some PPC variants don't have floating + point registers. Traditionally, GDB's register set has still + listed the floating point registers for such machines, so this + code is harmless. However, the new E500 port actually omits the + floating point registers entirely from the register set --- they + don't even have register numbers assigned to them. + + It's not clear to me how best to update this code, so this assert + will alert the first person to encounter the NetBSD/E500 + combination to the problem. */ + gdb_assert (ppc_floating_point_unit_p (current_gdbarch)); + + return ((regno >= tdep->ppc_fp0_regnum + && regno < tdep->ppc_fp0_regnum + ppc_num_fprs) + || regno == tdep->ppc_fpscr_regnum); +} + +static void +ppcfbsd_fetch_inferior_registers (int regno) +{ + struct reg regs; + + if (ptrace (PT_GETREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); + + ppc_supply_gregset (&ppcfbsd_gregset, current_regcache, regno, + ®s, sizeof regs); + + if (regno == -1 || getfpregs_supplies (regno)) + { + struct fpreg fpregs; + + if (ptrace (PT_GETFPREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't get FP registers")); + + ppc_supply_fpregset (&ppcfbsd_fpregset, current_regcache, regno, + &fpregs, sizeof fpregs); + } +} + +static void +ppcfbsd_store_inferior_registers (int regno) +{ + struct reg regs; + + if (ptrace (PT_GETREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); + + ppc_collect_gregset (&ppcfbsd_gregset, current_regcache, + regno, ®s, sizeof regs); + + if (ptrace (PT_SETREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't write registers")); + + + if (regno == -1 || getfpregs_supplies (regno)) + { + struct fpreg fpregs; + + if (ptrace (PT_GETFPREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't get FP registers")); + + ppc_collect_fpregset (&ppcfbsd_fpregset, current_regcache, + regno, &fpregs, sizeof fpregs); + + if (ptrace (PT_SETFPREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't set FP registers")); + } +} + +/* Provide a prototype to silence -Wmissing-prototypes. */ +void _initialize_ppcfbsd_nat (void); + +void +_initialize_ppcfbsd_nat (void) +{ + struct target_ops *t; + /* Support debugging kernel virtual memory images. */ + /* bsd_kvm_add_target (ppcnbsd_supply_pcb); */ + + /* Add in local overrides. */ + t = inf_ptrace_target (); + t->to_fetch_registers = ppcfbsd_fetch_inferior_registers; + t->to_store_registers = ppcfbsd_store_inferior_registers; + add_target (t); + + /* General-purpose registers. */ + ppcfbsd_reg_offsets.r0_offset = offsetof (struct reg, fixreg); + ppcfbsd_reg_offsets.lr_offset = offsetof (struct reg, lr); + ppcfbsd_reg_offsets.cr_offset = offsetof (struct reg, cr); + /* ppcfbsd_reg_offsets.ps_offset = offsetof (struct reg, ps); */ + ppcfbsd_reg_offsets.xer_offset = offsetof (struct reg, xer); + ppcfbsd_reg_offsets.ctr_offset = offsetof (struct reg, ctr); + ppcfbsd_reg_offsets.pc_offset = offsetof (struct reg, pc); + + /* ppcfbsd_reg_offsets.mq_offset = offsetof (struct reg, mq); */ + + /* Floating-point registers. */ + /* ppcfbsd_reg_offsets.f0_offset = offsetof (struct reg, fpreg); */ + /* ppcfbsd_reg_offsets.fpscr_offset = -1; */ + +#ifdef PT_GETFPREGS + ppcfbsd_fpreg_offsets.f0_offset = offsetof (struct fpreg, fpreg); + ppcfbsd_fpreg_offsets.fpscr_offset = offsetof (struct fpreg, fpscr); +#endif + + /* AltiVec registers. */ + /* ppcfbsd_reg_offsets.vr0_offset = offsetof (struct vreg, vreg); */ + /* ppcfbsd_reg_offsets.vscr_offset = offsetof (struct vreg, vscr); */ + /* ppcfbsd_reg_offsets.vrsave_offset = offsetof (struct vreg, vrsave); */ +} --- ./gdb/ppcfbsd-tdep.h.orig 2009-09-14 10:22:36.000000000 +0200 +++ ./gdb/ppcfbsd-tdep.h 2009-09-14 10:22:36.000000000 +0200 @@ -0,0 +1,37 @@ +/* Common target dependent code for GDB on PowerPC systems running FreeBSD. + Copyright 2002 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef PPCFBSD_TDEP_H +#define PPCFBSD_TDEP_H + +#include + +struct regset; +struct regcache; + +/* Register offsets for FreeBSD/powerpc. */ +extern struct ppc_reg_offsets ppcfbsd_reg_offsets; +extern struct ppc_reg_offsets ppcfbsd_fpreg_offsets; + +/* Register sets for FreeBSD/powerpc. */ +extern struct regset ppcfbsd_gregset; +extern struct regset ppcfbsd_fpregset; + +#endif /* PPCFBSD_TDEP_H */ --- ./gdb/ppcfbsd-tdep.c.orig 2009-09-14 10:22:36.000000000 +0200 +++ ./gdb/ppcfbsd-tdep.c 2009-09-14 10:22:36.000000000 +0200 @@ -0,0 +1,233 @@ +/* Target-dependent code for PowerPC systems running FreeBSD. + + Copyright 2002, 2003, 2004 Free Software Foundation, Inc. + + Contributed by Wasabi Systems, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include "defs.h" +#include "arch-utils.h" +#include "floatformat.h" +#include "frame.h" +#include "trad-frame.h" +#include "osabi.h" +#include "regcache.h" +#include "regset.h" +#include "symtab.h" +#include "frame-unwind.h" +#include "tramp-frame.h" + +#include "gdb_assert.h" +#include "gdb_string.h" + +#include "ppc-tdep.h" +#include "ppcfbsd-tdep.h" +#include "solib-svr4.h" + +/* Register offsets from . */ +struct ppc_reg_offsets ppcfbsd_reg_offsets; +struct ppc_reg_offsets ppcfbsd_fpreg_offsets; + +/* FreeBSD/powerpc register set. */ + +struct regset ppcfbsd_gregset = +{ + &ppcfbsd_reg_offsets, + ppc_supply_gregset +}; + +struct regset ppcfbsd_fpregset = +{ + &ppcfbsd_fpreg_offsets, + ppc_supply_fpregset +}; + +/* Return the appropriate register set for the core section identified + by SECT_NAME and SECT_SIZE. */ + +static const struct regset * +ppcfbsd_regset_from_core_section (struct gdbarch *gdbarch, + const char *sect_name, size_t sect_size) +{ + if (strcmp (sect_name, ".reg") == 0 && sect_size >= 148) + return &ppcfbsd_gregset; + + if (strcmp (sect_name, ".reg2") == 0 && sect_size >= 264) + return &ppcfbsd_fpregset; + + return NULL; +} + +/* Default page size. */ +static const int ppcfbsd_page_size = 2048; + +/* Offset for sigreturn(2). */ +static const int ppcfbsd_sigreturn_offset[] = { + 0x0c, /* FreeBSD */ + -1 +}; + +static int +ppcfbsd_sigtramp_p (struct frame_info *next_frame) +{ + CORE_ADDR pc = frame_pc_unwind (next_frame); + CORE_ADDR start_pc = (pc & ~(ppcfbsd_page_size - 1)); + const int *offset; + char *name; + + find_pc_partial_function (pc, &name, NULL, NULL); + if (name) + return 0; + + for (offset = ppcfbsd_sigreturn_offset; *offset != -1; offset++) + { + gdb_byte buf[2 * PPC_INSN_SIZE]; + unsigned long insn; + + if (!safe_frame_unwind_memory (next_frame, start_pc + *offset, + buf, sizeof buf)) + continue; + + /* Check for "li r0,SYS_sigreturn". */ + insn = extract_unsigned_integer (buf, PPC_INSN_SIZE); + if (insn != 0x380001a1) + continue; + + /* Check for "sc". */ + insn = extract_unsigned_integer (buf + PPC_INSN_SIZE, PPC_INSN_SIZE); + if (insn != 0x44000002) + continue; + + return 1; + } + + return 0; +} + +/* Signal trampolines. */ + +static void +ppcfbsd_sigtramp_cache_init (const struct tramp_frame *self, + struct frame_info *next_frame, + struct trad_frame_cache *this_cache, + CORE_ADDR func) +{ + struct gdbarch *gdbarch = get_frame_arch (next_frame); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + CORE_ADDR addr, base; + int i; + + base = frame_unwind_register_unsigned (next_frame, SP_REGNUM); + addr = base + 0x10 + 2 * tdep->wordsize; + for (i = 0; i < ppc_num_gprs; i++, addr += tdep->wordsize) + { + int regnum = i + tdep->ppc_gp0_regnum; + trad_frame_set_reg_addr (this_cache, regnum, addr); + } + trad_frame_set_reg_addr (this_cache, tdep->ppc_lr_regnum, addr); + addr += tdep->wordsize; + trad_frame_set_reg_addr (this_cache, tdep->ppc_cr_regnum, addr); + addr += tdep->wordsize; + trad_frame_set_reg_addr (this_cache, tdep->ppc_xer_regnum, addr); + addr += tdep->wordsize; + trad_frame_set_reg_addr (this_cache, tdep->ppc_ctr_regnum, addr); + addr += tdep->wordsize; + trad_frame_set_reg_addr (this_cache, PC_REGNUM, addr); /* SRR0? */ + addr += tdep->wordsize; + + /* Construct the frame ID using the function start. */ + trad_frame_set_id (this_cache, frame_id_build (base, func)); +} + +static const struct tramp_frame ppcfbsd_sigtramp = +{ + SIGTRAMP_FRAME, + 4, + { + { 0x3821fff0, -1 }, /* add r1,r1,-16 */ + { 0x4e800021, -1 }, /* blrl */ + { 0x38610018, -1 }, /* addi r3,r1,24 */ + { 0x380001a1, -1 }, /* li r0,417 */ + { 0x44000002, -1 }, /* sc */ + { 0x38000001, -1 }, /* li r0,1 */ + { 0x44000002, -1 }, /* sc */ + { TRAMP_SENTINEL_INSN, -1 } + }, + ppcfbsd_sigtramp_cache_init +}; + +static void +ppcfbsd_init_abi (struct gdbarch_info info, + struct gdbarch *gdbarch) +{ + + /* FreeBSD doesn't support the 128-bit `long double' from the psABI. */ + set_gdbarch_long_double_bit (gdbarch, 64); + set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big); + + /* FreeBSD currently uses a broken GCC. */ + set_gdbarch_return_value (gdbarch, ppc_sysv_abi_broken_return_value); + + set_solib_svr4_fetch_link_map_offsets (gdbarch, + svr4_ilp32_fetch_link_map_offsets); + set_gdbarch_regset_from_core_section + (gdbarch, ppcfbsd_regset_from_core_section); + + tramp_frame_prepend_unwinder (gdbarch, &ppcfbsd_sigtramp); + + +} + +/* Provide a prototype to silence -Wmissing-prototypes. */ +void _initialize_ppcfbsd_tdep (void); + +void +_initialize_ppcfbsd_tdep (void) +{ + gdbarch_register_osabi (bfd_arch_rs6000, 0, GDB_OSABI_FREEBSD_ELF, + ppcfbsd_init_abi); + gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_FREEBSD_ELF, + ppcfbsd_init_abi); + + /* Avoid initializing the register offsets again if they were + already initailized by ppcnbsd-nat.c. */ + if (ppcfbsd_reg_offsets.pc_offset == 0) + { + /* General-purpose registers. */ + ppcfbsd_reg_offsets.r0_offset = 0; + ppcfbsd_reg_offsets.lr_offset = 128; + ppcfbsd_reg_offsets.cr_offset = 132; + ppcfbsd_reg_offsets.xer_offset = 136; + ppcfbsd_reg_offsets.ctr_offset = 140; + ppcfbsd_reg_offsets.pc_offset = 144; + ppcfbsd_reg_offsets.ps_offset = -1; + ppcfbsd_reg_offsets.mq_offset = -1; + + if (ppcfbsd_fpreg_offsets.fpscr_offset == 0) + { + /* Floating-point registers. */ + ppcfbsd_reg_offsets.f0_offset = 0; + ppcfbsd_reg_offsets.fpscr_offset = 256; + } + /* AltiVec registers. */ + ppcfbsd_reg_offsets.vr0_offset = -1; + ppcfbsd_reg_offsets.vrsave_offset = -1; + ppcfbsd_reg_offsets.vscr_offset = -1; + } +} --- ./gdb/config/powerpc/nm-fbsd.h.orig 2009-09-14 10:24:03.000000000 +0200 +++ ./gdb/config/powerpc/nm-fbsd.h 2009-09-14 10:24:03.000000000 +0200 @@ -0,0 +1,20 @@ +/* GNU GPL */ + +#ifndef NM_FBSD_H +#define NM_FBSD_H + +/* Type of the third argument to the `ptrace' system call. */ +/* #define PTRACE_ARG3_TYPE caddr_t */ + +/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ +/* #define FETCH_INFERIOR_REGISTERS */ + +/* We can attach and detach. */ +/* #define ATTACH_DETACH */ + +/* Override child_pid_to_exec_file in 'inftarg.c'. */ +/*#define CHILD_PID_TO_EXEC_FILE */ + +#define TEXT_SEGMENT_BASE 0x10000000 + +#endif /* NM_FBSD_H */ --- ./gdb/config/powerpc/fbsd.mh.orig 2009-09-14 10:23:26.000000000 +0200 +++ ./gdb/config/powerpc/fbsd.mh 2009-09-14 10:23:26.000000000 +0200 @@ -0,0 +1,6 @@ +# Host: FreeBSD/powerpc +NATDEPFILES= fork-child.o gcore.o \ + inf-ptrace.o ppcfbsd-nat.o bsd-kvm.o + +NAT_FILE = nm-fbsd.h +LOADLIBES= -lkvm --- ./gdb/config/powerpc/fbsd.mt.orig 2009-09-14 10:23:25.000000000 +0200 +++ ./gdb/config/powerpc/fbsd.mt 2009-09-14 10:23:26.000000000 +0200 @@ -0,0 +1,5 @@ +# Target: FreeBSD/powerpc +TDEPFILES= rs6000-tdep.o ppc-sysv-tdep.o ppcfbsd-tdep.o \ + corelow.o solib.o solib-svr4.o + +TM_FILE= tm-ppc-eabi.h \ No newline at end of file --------------040809070802050101090502 Content-Type: text/plain; x-mac-type="54455854"; x-mac-creator="74657874"; name="patch-configure-ppc-gdb6.6-0" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-configure-ppc-gdb6.6-0" --- ./gdb/configure.host.orig 2006-11-24 20:54:15.000000000 +0100 +++ ./gdb/configure.host 2009-09-14 10:13:50.000000000 +0200 @@ -109,6 +109,7 @@ mips64*-*-openbsd*) gdb_host=obsd64 ;; powerpc-*-aix*) gdb_host=aix ;; +powerpc-*-freebsd*) gdb_host=fbsd ;; powerpc-*-linux*) gdb_host=linux ;; powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu) gdb_host=nbsd ;; --- ./gdb/configure.tgt.orig 2006-11-24 21:11:07.000000000 +0100 +++ ./gdb/configure.tgt 2009-09-14 10:13:27.000000000 +0200 @@ -155,6 +155,7 @@ mt-*-*) gdb_target=mt ;; +powerpc-*-freebsd*) gdb_target=fbsd ;; powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu) gdb_target=nbsd ;; powerpc-*-openbsd*) gdb_target=obsd ;; --- gdb/Makefile.in.orig 2009-09-14 19:56:00.000000000 +0200 +++ gdb/Makefile.in 2009-09-14 19:56:09.000000000 +0200 @@ -766,6 +766,7 @@ osabi_h = osabi.h parser_defs_h = parser-defs.h $(doublest_h) p_lang_h = p-lang.h +ppcfbsd_tdep_h = ppcfbsd-tdep.h ppcnbsd_tdep_h = ppcnbsd-tdep.h ppcobsd_tdep_h = ppcobsd-tdep.h ppc_tdep_h = ppc-tdep.h @@ -1478,6 +1479,7 @@ somread.c solib-som.c $(HPREAD_SOURCE) \ posix-hdep.c \ ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c \ + ppcfbsd-nat.c ppcfbsd-tdep.c \ ppcnbsd-nat.c ppcnbsd-tdep.c \ ppcobsd-nat.c ppcobsd-tdep.c \ procfs.c \ @@ -2456,6 +2458,13 @@ $(objfiles_h) $(regcache_h) $(value_h) $(osabi_h) $(regset_h) \ $(solib_svr4_h) $(ppc_tdep_h) $(trad_frame_h) $(frame_unwind_h) \ $(tramp_frame_h) +ppcfbsd-nat.o: ppcfbsd-nat.c $(defs_h) $(inferior_h) $(gdb_assert_h) \ + $(gdbcore_h) $(regcache_h) $(bsd_kvm_h) $(ppc_tdep_h) \ + $(ppcfbsd_tdep_h) $(inf_ptrace_h) +ppcfbsd-tdep.o: ppcfbsd-tdep.c $(defs_h) $(gdbcore_h) $(gdb_types_h) \ + $(osabi_h) $(regcache_h) $(regset_h) $(trad_frame_h) \ + $(tramp_frame_h) $(gdb_assert_h) $(gdb_string_h) \ + $(ppc_tdep_h) $(ppcfbsd_tdep_h) $(solib_svr4_h) ppcnbsd-nat.o: ppcnbsd-nat.c $(defs_h) $(inferior_h) $(gdb_assert_h) \ $(gdbcore_h) $(regcache_h) $(bsd_kvm_h) $(ppc_tdep_h) \ $(ppcnbsd_tdep_h) $(inf_ptrace_h) --------------040809070802050101090502-- From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 21:13:26 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D3881065670 for ; Tue, 29 Sep 2009 21:13:26 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.245]) by mx1.freebsd.org (Postfix) with ESMTP id 555328FC1D for ; Tue, 29 Sep 2009 21:13:26 +0000 (UTC) Received: by an-out-0708.google.com with SMTP id d14so1951758and.13 for ; Tue, 29 Sep 2009 14:13:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type; bh=WTMgcJDhi43DtlMdRpa7fhnimh3W7MRpQW0Fm8qNZ80=; b=oBZQMI+3C4uAqoBIkRaZXANigp1Qn3wjyWnsJdUaleZjVHm2htuVp2CTz1fIdNriwE 191TA5XeuaXDYVW2o2AN+8CVQ8Fy0IGrI5bBayOHJwwalPU+1XjgJ4Km245PIBgx0PsG tQmEd/OnCUal3UCkyuxB43TQnoMZgeiUakXtk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=R1fFw6YeK1uqZU6w09FUB/MseNjXj4wp4Il2xaO+nhPo2lDWho+NjGa3b0Fs8XNsQo +i4w7ur3YZ/E9ylIrjLSIwWiI/hDVnLFZBs5eSC2Uk4IJJf/DRGaI8u66ftP6i/n2cL/ cSB1mWsL6sRDlzhhRY6I2ls/V/ley8FraoLaU= MIME-Version: 1.0 Sender: chmeeedalf@gmail.com Received: by 10.101.44.1 with SMTP id w1mr5182216anj.113.1254258805589; Tue, 29 Sep 2009 14:13:25 -0700 (PDT) In-Reply-To: <4AC2758A.8030708@fgznet.ch> References: <4AC2758A.8030708@fgznet.ch> Date: Tue, 29 Sep 2009 17:13:25 -0400 X-Google-Sender-Auth: 564534ee8ea0e009 Message-ID: From: Justin Hibbits To: Andreas Tobler Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Andreas Tobler , FreeBSD PowerPC ML Subject: Re: RFC/H gdb6 port for powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 21:13:26 -0000 On Tue, Sep 29, 2009 at 5:00 PM, Andreas Tobler wrote: > Hi all, > > I sent this mail out to Marcel but I did not get any feedback. Might be due > to mailer issues, I do not know. > > I learned today, that I do not receive all mails directed to me. So I try > to spread some request for comment/help here. > > I recently tried to get thunderbird working on powerpc. I was blocked and I > needed a debugger. The current gdb in base terminates immediatley if I try > to debug such a beast as thunderbird. > > So I went ahead and tried to bring gdb6 (from ports, 6.6.1) into a working > state. > > I think I succeeded somehow, but I need some more help. > > Attached you'll find two files which you can put into the ports files > directory of gdb6. (files) > > > My issues I have are seen when you run 'gmake check' inside the gdb build > directory. > There are a lot of signal stuff which does not work. Also unwinding seems > not in good shape. > > My request here on this list is, can anybody help guiding me on the missing > bits? > > I'd appreciate any comments here, from gth to 'you could do this better' or > anything else, but please respond. > > TIA, > Andreas > Hi Andreas, Thanks for taking on this port, maybe it'll fix the bug I filed against the base gdb. I'll give it a shot when I get some time to test it. Have you looked at any of the other BSDs for the necessary missing pieces? - Justin From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 21:27:50 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 63696106566C for ; Tue, 29 Sep 2009 21:27:50 +0000 (UTC) (envelope-from andreast-list@fgznet.ch) Received: from smtp.fgznet.ch (mail.fgznet.ch [81.92.96.47]) by mx1.freebsd.org (Postfix) with ESMTP id 0293B8FC1D for ; Tue, 29 Sep 2009 21:27:49 +0000 (UTC) Received: from deuterium.andreas.nets ([91.190.8.131]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id n8TLRh7n049725; Tue, 29 Sep 2009 23:27:43 +0200 (CEST) (envelope-from andreast-list@fgznet.ch) Message-ID: <4AC27BCE.9090502@fgznet.ch> Date: Tue, 29 Sep 2009 23:27:42 +0200 From: Andreas Tobler User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: Justin Hibbits References: <4AC2758A.8030708@fgznet.ch> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Andreas Tobler , FreeBSD PowerPC ML Subject: Re: RFC/H gdb6 port for powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 21:27:50 -0000 Hi Justin, Justin Hibbits wrote: > Thanks for taking on this port, maybe it'll fix the bug I filed against > the base gdb. I'll give it a shot when I get some time to test it. > Have you looked at any of the other BSDs for the necessary missing pieces? > yes, I did, and it was quite irritating to rely either on obsd or nbsd. Obsd has a different ABI here, and nbsd too, we, fbsd lack the altivec regs in reg(s).h. My questions are in terms of signal handling and stack unwinding. How do we do that, what are the 'correct' entry points etc. I have to admit, I solved my thunderbird issue :) I could step into the functions, even assembler stuff. But the confusing part is the testsuite which makes me unsure and the fact that we do not store/giving access to altivec regs, Nathan? Thanks for the response, Andreas From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 29 23:03:13 2009 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B157E1065676 for ; Tue, 29 Sep 2009 23:03:13 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtpout026.mac.com (asmtpout026.mac.com [17.148.16.101]) by mx1.freebsd.org (Postfix) with ESMTP id A060C8FC17 for ; Tue, 29 Sep 2009 23:03:13 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=us-ascii; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp026.mac.com (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTPSA id <0KQR00IDF9D7Z370@asmtp026.mac.com> for freebsd-ppc@freebsd.org; Tue, 29 Sep 2009 16:03:08 -0700 (PDT) From: Marcel Moolenaar In-reply-to: <4AC2758A.8030708@fgznet.ch> Date: Tue, 29 Sep 2009 16:03:07 -0700 Message-id: References: <4AC2758A.8030708@fgznet.ch> To: Andreas Tobler X-Mailer: Apple Mail (2.1076) Cc: FreeBSD PowerPC ML Subject: Re: RFC/H gdb6 port for powerpc X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 23:03:13 -0000 On Sep 29, 2009, at 2:00 PM, Andreas Tobler wrote: > Hi all, > > I sent this mail out to Marcel but I did not get any feedback. Might > be due to mailer issues, I do not know. Workload... sorry about that... -- Marcel Moolenaar xcllnt@mac.com