tags 369276 patch quit On Wed, May 31, 2006 at 07:02:53PM +0200, Michael Ablassmeier wrote: > package: xcircuit > severity: grave
> I don't mean to complain, but the recent upload of xcircuit 3.6.24-1 > to unstable is completely unusable for me on amd64. This is unlike > any previous version of xcircuit. I get segfaults or illegal > instruction crashes within half-a-dozen X actions. > This is true even when I rebuild from sources, either in or out > of the Debian package framework. I note a large number of 64-bit > concerns flagged by the compiler (gcc-4.0.4), about half of them > in the Xw widget set. I tried fixing some of the worst of these, > and using gdb to find details of the crash, but have not yet > succeeded in finding or fixing the problem(s). > This leaves me with a number of questions: > 1. does anyone else see this behavior? > 2. is xcircuit the only Debian package using Xw? > 3. where did upstream (that's you, Tim) get that copy of Xw > (and are you maintaining that copy yourself)? > 4. will upstream accept 64-bit cleanups (and do you have > access to a 64-bit machine to test them)? > 5. will this be the kick in the pants I need to become > a Debian Developer and adopt this package? Backtrace on amd64: (gdb) bt #0 0x000000000047b626 in Wprintf (format=0x6c1228 "\177-A") at xtgui.c:1391 #1 0x000000000048726b in Enter (w=0x6bc210, event=0x7fffffa82be0) at MenuBtn.c:1479 #2 0x00002b082476aad6 in _XtMatchAtom () from /usr/lib/libXt.so.6 #3 0x00002b082476b067 in _XtMatchAtom () from /usr/lib/libXt.so.6 #4 0x00002b082476b753 in _XtTranslateEvent () from /usr/lib/libXt.so.6 #5 0x00002b0824744e6b in XtDispatchEventToWidget () from /usr/lib/libXt.so.6 #6 0x00002b08247454a1 in _XtOnGrabList () from /usr/lib/libXt.so.6 #7 0x00002b08247457be in XtDispatchEvent () from /usr/lib/libXt.so.6 #8 0x00002b0824745be3 in XtAppMainLoop () from /usr/lib/libXt.so.6 #9 0x000000000047e26e in local_xloop () at xtgui.c:1994 #10 0x000000000047e41c in main (argc=1, argv=0x7fffffa82df8) at xtgui.c:2070 (gdb) up #1 0x000000000048726b in Enter (w=0x6bc210, event=0x7fffffa82be0) at MenuBtn.c:1479 1479 mbutton->menubutton.hintProc(mbutton->menubutton.hint); (gdb) print mbutton->menubutton.hintProc $9 = (XwStrProc) 0x47b5db <Wprintf> (gdb) print mbutton->menubutton.hint $10 = 0x6bbaa0 "set fill properties" (gdb) And the prototype of Wprintf() is: void Wprintf(char *format, ...); The bug here is that xcircuit is incorrectly assuming that it's ok to call a function that uses varargs using the regular calling convention, which is obviously false for amd64. The attached patch fixes this, and gives me a minimally-usable package on amd64. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
diff -u xcircuit-3.6.24/debian/changelog xcircuit-3.6.24/debian/changelog --- xcircuit-3.6.24/debian/changelog +++ xcircuit-3.6.24/debian/changelog @@ -1,3 +1,11 @@ +xcircuit (3.6.24-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix gross prototype mismatch bug, so the program is usable again on + amd64. Closes: 369276. + + -- Steve Langasek <[EMAIL PROTECTED]> Wed, 31 May 2006 21:29:13 -0700 + xcircuit (3.6.24-1) unstable; urgency=low * QA Upload only in patch2: unchanged: --- xcircuit-3.6.24.orig/Xw/XwP.h +++ xcircuit-3.6.24/Xw/XwP.h @@ -322,7 +322,7 @@ typedef void (*XwStrProc)( #if NeedFunctionPrototypes - String /* hint */ + char *format, ... /* hint */ #endif );
signature.asc
Description: Digital signature