Subject: m68k mozilla problems - some fixes
To: None <port-amiga@NetBSD.ORG>
From: Michael L. Hitch <mhitch@msu.oscs.montana.edu>
List: port-amiga
Date: 06/26/1998 19:26:26
I have tracked down a couple of bugs which were causing the m68k
version of mozilla-export to get segmentation faults.

One problem was a bug in lesstif, which I found when I was using
the same X server to display mozilla-export running on two different
architectures.  I have been testing a pmax version using my VAXstation
DECwindows server as the display.  When I tried to run mozilla on
my amiga, it would get a segmentaion fault.  I was able to track this
down to a data structure size difference between the m68k and mips
gcc compilers.  Lesstif wrote an array of data to the X server if
it didn't exist, and would then later read it back.  With the structure
size different, it got bad data and overwrote an internal buffer along
with clobbering the stack.  It would appear that the i386 version of
mozilla would also conflict with the m68k mozilla.

A temporary workaround for this problem is to remove the property
"_MOTIF_DRAG_WINDOW" from the X server's root window.  Thorsten is
in the process of rebuilding the m68k lesstif with a fix that will
correct this problem.

The second problem with mozilla on the amiga (and other m68k ports)
is due to an apparent gcc code generation bug.  Dave Huang reported
this bug on April 4 on the port-m68k list.  I had been using an older
libX11.so.6.0 and hadn't seen this problem.  After I updated my X
libraries and got libX11.so.6.1, I saw the same behavior with mozilla
getting a segmention fault.  Once I found what the problem was, I
was able to come up with a simple patch to libX11.so.6.1 to fix it.
Here's the patch if anyone want to try it out.  [I'd suggest making a
copy of libX11.so.6.1 just to be safe :-)]


bash$ chmod 644 libX11.so.6.1
bash$ gdb --write libX11.so.6.1
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.11 (m68k-netbsd), Copyright 1993 Free Software Foundation, Inc...
(no debugging symbols found)...
(gdb) x/i 0xef56
0xef56 <XPolygonRegion+274>:    moveal fp@(-1192),a1
(gdb) set *0xef56=0x22690008
(gdb) x/i 0xef56
0xef56 <XPolygonRegion+274>:    moveal a1@(8),a1
(gdb) quit
bash$ chmod 444 libX11.so.6.1


Michael
---
Michael L. Hitch                        mhitch@montana.edu
Computer Consultant,  Information Technology Center
Montana State University, Bozeman, MT     USA