The attached files are patches for Configure and Makefile.shared. These should complete the support needed for AIX 32-bit shared objects for both cc and gcc.
I'm still investigating the 64-bit flavor. Cheers, Bill
--- Configure.orig 2006-11-30 09:01:38.000000000 -0500 +++ Configure 2007-06-12 15:25:31.000000000 -0400 @@ -403,7 +403,7 @@ #### IBM's AIX. "aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::", -"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:", +"aix-gcc", "gcc:-pthread -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-Wl,-G,-bexpall:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", "aix64-gcc","gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn::::::-X64", # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE # at build time. $OBJECT_MODE is respected at ./config stage!
--- Makefile.shared.orig 2007-06-12 09:05:21.000000000 -0400 +++ Makefile.shared 2007-06-12 15:46:34.000000000 -0400 @@ -6,7 +6,7 @@ # properly # CC contains the current compiler. This one MUST be defined -CC=cc +CC=$(CC) CFLAGS=$(CFLAG) # LDFLAGS contains flags to be used when temporary object files (when building # shared libraries) are created, or when an application is linked. @@ -491,7 +491,7 @@ SHLIB_SUFFIX=; \ ALLSYMSFLAGS='-bnogc'; \ NOALLSYMSFLAGS=''; \ - SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \ + SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bE:lib$(LIBNAME).exp'; \ $(LINK_SO_O); rm -rf lib$(LIBNAME).exp link_a.aix: @ $(CALC_VERSIONS); \ @@ -501,10 +501,10 @@ SHLIB_SUFFIX=; \ ALLSYMSFLAGS='-bnogc'; \ NOALLSYMSFLAGS=''; \ - SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \ + SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bE:lib$(LIBNAME).exp'; \ $(LINK_SO_A_VIA_O) link_app.aix: - LDFLAGS="$(CFLAGS) -blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \ + LDFLAGS="$(CFLAGS) -Wl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \ $(LINK_APP) link_o.reliantunix: