pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/40257: wxGTK24 causes audacity to segfault on amd64



>Number:         40257
>Category:       pkg
>Synopsis:       wxGTK24 causes audacity to segfault on amd64
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 23 06:05:00 +0000 2008
>Originator:     Michael L. Hitch
>Release:        NetBSD 5.0_BETA
>Organization:
Montana State University
        
>Environment:
        
        
System: NetBSD Pavilion 5.0_BETA NetBSD 5.0_BETA (GENERIC) #0: Fri Dec 19 
23:17:57 MST 2008 
mhitch@Pavilion:/home/mhitch/netbsd-5/OBJ/amd64/home/mhitch/netbsd-5/src/sys/arch/amd64/compile/GENERIC
 amd64
Architecture: x86_64
Machine: amd64
>Description:
I've had trouble getting audacity to run on amd64 systems.  I had thought I had
it running on amd64 in the past, but now I'm pretty sure it's only been on 
32-bit
systems.  Audacity was getting a segfault when starting up.
>How-To-Repeat:
Build audacity on an amd64 system and try to run it.
>Fix:
There were a couple of places in the wxGTK24 package where 32-bit values were
being used for 64 bit values (i.e. pointers).
The following set of patches seem to fix it for me [these changes are present
in wxGTK26]:

--- include/wx/gtk/win_gtk.h.orig       2003-09-21 05:31:56.000000000 -0600
+++ include/wx/gtk/win_gtk.h    2008-12-21 22:01:53.000000000 -0700
@@ -82,7 +82,7 @@
                                     GtkAdjustment  *vadjustment);
 };
 
-guint      gtk_pizza_get_type        (void);
+GtkType      gtk_pizza_get_type        (void);
 GtkWidget* gtk_pizza_new             (void);
 
 void       gtk_pizza_set_shadow_type (GtkPizza          *pizza,
--- src/gtk/win_gtk.c.orig      2003-09-21 05:31:58.000000000 -0600
+++ src/gtk/win_gtk.c   2008-12-21 21:41:21.000000000 -0700
@@ -102,10 +102,10 @@
 
 static gboolean gravity_works;
 
-guint
+GtkType
 gtk_pizza_get_type ()
 {
-    static guint pizza_type = 0;
+    static GtkType pizza_type = 0;
 
     if (!pizza_type)
     {
--- src/unix/utilsx11.cpp.orig  2003-09-21 05:31:40.000000000 -0600
+++ src/unix/utilsx11.cpp       2008-12-21 21:34:49.000000000 -0700
@@ -101,8 +101,8 @@
 
     if( size > 0 )
     {
-        wxUint32* data = new wxUint32[size];
-        wxUint32* ptr = data;
+        long* data = new long[size];
+        long* ptr = data;
 
         for( i = 0; i < max; ++i )
         {

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index