[Mono-devel-list] Mono on AIX preliminary status report [Virus checked]

Winfried.Harbecke at Extern.Sparkassen-Informatik.de Winfried.Harbecke at Extern.Sparkassen-Informatik.de
Tue Nov 30 02:17:27 EST 2004


Just a status report in case someone else runs into the same problems I ran
into (I want to avoid my research results getting lost.    :-)

There is some evidence supporting the diagnosis that the segmentation
faults in glib
regression tests resulted from incorrectly linked shared/static libraries
and executables:

      1) the crashes in strtod-test occurred in procedure descriptor
      dereferencing "glue" code, which differs between shared and static
linking

      2) debugging the code preceeding the crash, I see a faulty procedure
      descriptor within setlocale(2)

      3) apparently there are two versions of setlocale linked into the
binary,
      one from libc, the other from librtl

      4) strtod-test does not crash when executed in an AIX 5.1 (GCC, AIX
as/ld)
      environment with binary or source glib from

http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html
      and
            http://gnome.bullfreeware.com/new_index.html:

                  gettext-0.10.39-2
                  zlib-1.1.4-1
                  zlib-devel-1.1.4-1
                  glib2-2.4.0-2
                  glib2-devel-2.4.0-2

      5) the AIX toolbox README

ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/README.txt
      indicates that glib had to be linked with run time linking enabled in
order to
      handle circular library dependencies

Actually, the glib autoconf setup has a lot of AIX specific machinery
dealing with
AIX ld idiosyncrasies, which from my perspective an AIX mono port has to
mimic.
Basically, shared and static libraries should not be mixed (i.e. since some
libraries
must be shared, they all should be), library objects must be linked with
"-G", and
executables must be linked with "-brtl". As far as I can tell, the glib
autoconf setup
follows these lines when configured with
      LDFLAGS="-Wl,-brtl" ./configure

There is still some work ahead like figuring out if there are relevant
autoconf setup
patches for AIX prior to glib2-2.4.0-2 and if there are AIX specific
autoconf extensions
that were used by the glib autoconf setup which have to be ported to the
mono
autoconf setup. Once that is done, I would like to develop a clean set of
patches
for AIX 5.1/GCC without the trampoline extensions referred to in earlier
postings
by <bernard at ugs dot com> in order to separate the dirty work from the
substantial.



More information about the Mono-devel-list mailing list