Subject: Re: Build Failure
To: None <port-hp700@netbsd.org>
From: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
List: port-hp700
Date: 06/05/2004 17:04:20
On Sat, 5 Jun 2004 08:52:30 -0500
Zach Lowry <zach@zachlowry.net> wrote:

> Success! I've gotten a snapshot of the 5/22/04 sources built, and=20
> booted single-user.
Fine! :-)

> Multi-user gives me "kernel: DTLB miss trap, code=3D0", which I see is
> attributed to the GCC bug.
No. That is the kernel bug that I still could not locate. Maybe a broken
trap handler or a race condition or ...

You can try the patch below. With that you should get into DDB insted an
endless repeated error message: (Beware of the line wrap.)
--- sys/arch/hppa/hppa/db_interface.c.orig      Sat Jun  5 16:51:37 2004
+++ sys/arch/hppa/hppa/db_interface.c   Sat Jun  5 16:52:17 2004
@@ -170,6 +170,7 @@
                break;
        default:
                kdbprinttrap(type, code);
+break;
                if (db_recover !=3D 0) {
                        db_error("Caught exception in DDB;
continuing...\n");
                        /* NOT REACHED */

> If this is truly a GCC bug, how have the OpenBSD folks gotten around
> this? Is this due to toolchain version differences?
Last time I looked at OpenBSD they still used GCC 2.95 where we use
3.3.3.=20

The GCC bugs show up at compilation, not at runtime. There are two bugs:
One is triggered by compiling an a LP64 host and gives an "internal
compiler error". The other is in the optimizer and is triggered even on
LP32 hosts. Try to compile a kernel with -Ox where x !=3D 0 and you will
get an error message from the assembler about false assembler code when
compiling e.g. src/sys/arch/hp700/dev/mem.c. IIRC there is an
instruction with a too big address displacement generated.
--=20


tsch=FC=DF,
       Jochen

Homepage: http://www.unixag-kl.fh-kl.de/~jkunz/