Ethereal-dev: [ethereal-dev] gtk-1.2.6 + AIX 4.3.2 == coredump

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Craig Rodrigues <rodrigc@xxxxxxxxxxxx>
Date: Sat, 6 Nov 1999 12:39:22 -0500
Hi,

OS: AIX 4.3.2
Compiler: IBM C and C++ Compilers, version 3.6.6 (xlc 3.6.6)

Problem:
Any program using the libgtk library crashes under AIX.

Here's what I did.

(1) Downloaded glib-1.2.6.  configured, using CC=xlc_r.
    If you don't use xlc_r, the re-entrant libc libraries won't
    get linked in and things will crash.

(2) In config.h, had to change:
    #undef HAVE_GETPWUID_R_POSIX
    to:
    #define HAVE_GETPWUID_R_POSIX 1

    getpwuid_r() changed to the POSIX compliant version in AIX 4.3,
    and the configure script does not correctly detect this. 

    If you don't do this, things will crash in  gutils.c, because
    the wrong parameters to getpwuid_r() are being passed.

(3) After (1) and (2), ran testgdate, testgparser, testglib, and
    the tests passed.

(4) Downloaded gtk+-1.2.6, configured, and built.
    Now, whenever I compile any program against the gtk libraries,
    things coredump in gdk_init_check().

    For example, in gtk+-1.2.6/examples/base:

% ./base
Segmentation fault (core dumped)

% dbx base core
readding symbolic information ...
[using memory image in core]
 
Segmentation fault in gdk_init_check at 0xd26dc884
0xd26dc884 (gdk_init_check+0x8) 800c0000        lwz   r0,0x0(r12)

(dbx) where
gdk_init_check() at 0xd26dc884
gtk_init_check(0x2ff22868, 0x2ff2286c), line 199 in "gtkmain.c"
gtk_init(0x2ff22868, 0x2ff2286c), line 423 in "gtkmain.c"
main(argc = 1, argv = 0x2ff22898), line 10 in "base.c"              

I tried setting assert() statements inside the beginning gdk_init_check(), 
but it looks like gdk_init_check() is never called, because my assert() is
never called.

I'm stumped.  Are there any AIX experts who know how to debug
shared library problems like this?

Basically this problem makes gtk unusable under AIX, so programs
like ethereal cannot be built....:(

-- 
Craig Rodrigues        
http://www.gis.net/~craigr    
rodrigc@xxxxxxxxxxxx