Package: libgtkglext1 Version: 1.0.6-2 Severity: normal hi
I was trying to write a program using libgtkglext1 , and it crashed; so I downloaded the source of libgtkglext1 1.0.6-2 ; I ran ./configure CFLAGS='-g' and compiled everything ; the examples 'coolwave' 'coolwave2' 'multiarb' indeed do crash of Segmentation fault ; in attachment see the output of 'where' of 'gdb' I have traced 'multiarb' step by step in gdkglquery-x11.c : at line 222-25 : > typedef GdkGLProc (*__glXGetProcAddressProc) (const GLubyte *); > static __glXGetProcAddressProc glx_get_proc_address = > (__glXGetProcAddressProc) -1; at line 373 : > file_name = g_module_build_path (NULL, "GL"); has result file_name="libGL.so" at line 380 : > g_module_symbol (module, "glXGetProcAddress", > (gpointer) &glx_get_proc_address); at line 408 : > proc_address = glx_get_proc_address (proc_name); proc_name seems ok, but when the program calls into glXGetProcAddress immediatly the program dies of SIGSEGV So it seems that that is not the correct way to call glXGetProcAddress (or maybe there is a bug in libGL.so); I looked into /usr/include/GL/glxext.h , and I tried patching the file gdk/x11/gdkglquery-x11.c as in attachment, but unfortunately it did not work. a. -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (650, 'testing'), (600, 'stable'), (450, 'experimental') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.12-1-k7 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages libgtkglext1 depends on: ii libatk1.0-0 1.10.3-1 The ATK accessibility toolkit ii libc6 2.3.5-6 GNU C Library: Shared libraries an ii libglib2.0-0 2.8.3-1 The GLib library of C routines hi libglu1-mesa [libglu1] 5.0.0-5.1 The OpenGL utility library, libGLU ii libgtk2.0-0 2.6.10-1 The GTK+ graphical user interface ii libice6 6.8.2.dfsg.1-7 Inter-Client Exchange library ii libpango1.0-0 1.8.2-3 Layout and rendering of internatio ii libsm6 6.8.2.dfsg.1-7 X Window System Session Management ii libxmu6 6.8.2.dfsg.1-7 X Window System miscellaneous util ii libxt6 6.8.2.dfsg.1-7 X Toolkit Intrinsics ii mesag3 [libgl1] 5.0.0-5.1 A 3-D graphics library which imple ii xlibs 6.8.2.dfsg.1-7 X Window System client libraries m libgtkglext1 recommends no packages. -- no debconf information -- Andrea Mennucc "E' un mondo difficile. Che vita intensa!" (Tonino Carotone)
#0 0xb7d606bc in ?? () #1 0xb7f4bd05 in gdk_gl_get_proc_address ( proc_name=0xb7f52819 "glActiveTextureARB") at gdkglquery-x11.c:408 #2 0xb7f2d205 in gdk_gl_get_glActiveTextureARB () at gdkglglext.c:2747 #3 0xb7f2ddfa in gdk_gl_get_GL_ARB_multitexture () at gdkglglext.c:3366 #4 0x0804a4d9 in init (widget=0x8089448, data=0x0) at multiarb.c:66 #5 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #6 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #7 0x43f240a8 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #8 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #9 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #10 0x4426898e in gtk_widget_realize () from /usr/lib/libgtk-x11-2.0.so.0 #11 0x44268b69 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #12 0x44105994 in gtk_container_get_focus_hadjustment () from /usr/lib/libgtk-x11-2.0.so.0 #13 0x440cceeb in gtk_box_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0 #14 0x44103f59 in gtk_container_forall () from /usr/lib/libgtk-x11-2.0.so.0 #15 0x441059db in gtk_container_get_focus_hadjustment () from /usr/lib/libgtk-x11-2.0.so.0 #16 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #17 0x43f13fd8 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #18 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #19 0x43f23546 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #20 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #21 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #22 0x44268af6 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #23 0x44271461 in gtk_window_reshow_with_initial_size () from /usr/lib/libgtk-x11-2.0.so.0 #24 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #25 0x43f13fd8 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #26 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #27 0x43f23546 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #28 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #29 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #30 0x44268af6 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #31 0x442738c5 in gtk_window_get_position () from /usr/lib/libgtk-x11-2.0.so.0 #32 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #33 0x43f13fd8 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #34 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #35 0x43f23546 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #36 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #37 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #38 0x44262362 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0 #39 0x0804b4e7 in main (argc=1, argv=0xbfb5efb4) at multiarb.c:561
#0 0xb7d766bc in ?? () #1 0xb7f61d05 in gdk_gl_get_proc_address ( proc_name=0xb7f695d5 "glPolygonOffsetEXT") at gdkglquery-x11.c:408 #2 0xb7f47f26 in gdk_gl_get_glPolygonOffsetEXT () at gdkglglext.c:6159 #3 0x0804a01f in realize (widget=0x80939f8, data=0x0) at coolwave2.c:251 #4 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #5 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #6 0x43f240a8 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #7 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x4426898e in gtk_widget_realize () from /usr/lib/libgtk-x11-2.0.so.0 #10 0x44268b69 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #11 0x44271461 in gtk_window_reshow_with_initial_size () from /usr/lib/libgtk-x11-2.0.so.0 #12 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #13 0x43f13fd8 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #14 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #15 0x43f23546 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #16 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #17 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #18 0x44268af6 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #19 0x442738c5 in gtk_window_get_position () from /usr/lib/libgtk-x11-2.0.so.0 #20 0x43f206ab in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #21 0x43f13fd8 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #22 0x43f1467b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #23 0x43f23546 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #24 0x43f25077 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #25 0x43f2542e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #26 0x44262362 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0 #27 0x0804aec6 in main (argc=1, argv=0xbf9741a4) at coolwave2.c:872
--- gdk/x11/gdkglquery-x11.c.ORIG 2005-11-01 23:00:57.000000000 +0100 +++ gdk/x11/gdkglquery-x11.c 2005-11-01 23:03:01.000000000 +0100 @@ -354,8 +354,12 @@ GdkGLProc gdk_gl_get_proc_address (const char *proc_name) { - typedef GdkGLProc (*__glXGetProcAddressProc) (const GLubyte *); - static __glXGetProcAddressProc glx_get_proc_address = (__glXGetProcAddressProc) -1; + //new defininition + typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); + static PFNGLXGETPROCADDRESSPROC glx_get_proc_address = NULL; + // old definition + //typedef GdkGLProc (*__glXGetProcAddressProc) (const GLubyte *); + //static __glXGetProcAddressProc glx_get_proc_address = (__glXGetProcAddressProc) -1; gchar *file_name; GModule *module; GdkGLProc proc_address = NULL; @@ -364,7 +368,7 @@ if (strncmp ("glu", proc_name, 3) != 0) { - if (glx_get_proc_address == (__glXGetProcAddressProc) -1) + if (glx_get_proc_address == NULL) { /* * Look up glXGetProcAddress () function.
signature.asc
Description: Digital signature