Re: [gtk-list] GTK+ 1.2.3 on AIX?



--------
On Sun, 19 Sep 1999 00:46:42 +0200, Christian Starkjohann <cs@obdev.at>  said:
> Hi,
> has anybody been able to compile any of the stable version 1.2.x (except  
> 1.2.4) on AIX 4.0 or 4.1?

Hmm.. Am running the CVS 1.3.X glib.gtk under AIX 4.3.2, but the information
will probably apply as well for you.  However, I'll start off by saying
that you *may* be doomed from the start unless you are willing to do
some major code hacking, as IBM didn't have a working dlopen() under
AIX 4.1 from what I can remember (that was added in 4.2 or 4.3).  This
will cause major indigestion in the godule library.  You may need to resort
to Jens-Uwe Mager's dlopen() emulator, which (used to be) available at:

<ftp://anubis.han.de/pub/aix/dlfcn.shar>

Some gotchas I got bit by under AIX 4.3.2:

1) libtool 1.3.3 needs to be cleaned up a bit for the "how to build
a shared library" ryle.  Patch follows.  Under AIX 4.1 (was there a 4.0?
I don't remember seeing one), you may need to remove -brtl (run time linking
from the flags, and convince other libraries to *NOT* build .so flavors,
but instead use the traditional "shr.o in a libfoo.a" format.  The patch
makes libtool use /bin/ld directly rather than use xlc, this avoids a lot
of 'duplicate symbol' warnings.  Change the 4.3.2 to something that
matches your system.  If you use -brtl, you'll need to fix Makefiles
to use it when you link programs against the libraries too.  The typical
symptom of a broken run-time-link is an 'invalid opcode' at location 0,
or a SIGSEGV while referencing a global 'extern' variable (both due to
loading an incorrect value out of a .TOC entry, often because R2 (the
TOC pointer) is pointing at something other than a TOC

*** ltconfig.in.dist	Fri Jul 23 12:09:49 1999
--- ltconfig.in	Wed Sep  1 00:31:27 1999
***************
*** 1502,1507 ****
--- 1502,1511 ----
      case "$host_os" in aix4.[01]|aix4.[01].*)
        # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
        always_export_symbols=yes ;;
+       aix4.3.2.*)
+           archive_cmds="\$LD $shared_flag"' -brtl -o $objdir/$soname $libobjs $deplibs ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+           archive_expsym_cmds="\$LD $shared_flag"' -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+       ;;
      esac
     ;;
  
2) If you're using the IBM C 3.1 compilers, try to upgrade to 3.6.4 or 3.6.6,
the optimizer works better and a lot less buggy.

3) Make *really* sure you have all the latest IBM patches - see
http://aix.software.ibm.com for information on using 'fixdist' to download
patches.

4) Good luck. ;)

-- 
				Valdis Kletnieks
				Computer Systems Senior Engineer
				Virginia Tech

PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]