[Dovecot] compiling dovecot on aix gcc 3.3.2

Ralf Becker beckerr at fh-trier.de
Wed Mar 28 19:43:47 EEST 2007


Hello funkypunky drunky,

on AIX dovecot plugins (which are shared objects = .so) are a little bit
problematic. It is not enough to activate run time linking by using
-brtl and make the main program (dovecot) to be able to use shared
objects. When a share object does function calls back into the main
program, all these functions (=symbols) in dovecot have to be explicitly
exported. Otherwise you see "signal 11" or so.

Because this is very fiddly, there is a linker flag -bexpall to export
all symbols of the main program (dovecot)... but this does seemingly not
work with symbols defined in static libraries (.a).

While dovecot build creates static libraries to keep the linker command
line small, but does *not* generate export files (.exp) containing the
libraries globals symbols, the compile time linker does not known
anything about them.
I think, if dovecot build would use libtool to create the libraries,
libtool would export the libraries symbols to fix this.

And this is, what my script does. It looks on the compiler command line
for library file (.a) and exports all global symbols to an .exp file.
The paths of these .exp files are appended to the original compiler
command line and so -bexpall knows about the globale symbols defined in
the libraries and is able to export them.

I don't know if this information is useful for you, because you're using
gcc. But if you are using AIX ld (instead of gnu ld) you have to deal
with this problem, I think.

Regards, Ralf

funkypunky drunky schrieb:
> Hi Ralf
> I check your script. But i cannot udnerstand what you  do. R u trying to
> export the library of the dovecot? I cannot go deeper.  Anyway would you
> like to tell what did you do with XLC compiler. Maybe i can setup the
> analogy of it when using gcc instead of XLC.
> Best regards.
> 
>  
> 2007/3/27, Ralf Becker <beckerr at fh-trier.de <mailto:beckerr at fh-trier.de>>:
> 
>     Hello!
> 
>     Have you tried to export all symbols defined in lib archives generated
>     while dovecot is build? I've had this problem on aix with xlC and
>     solved
>     it by writing an compiler script for doing that.
> 
>     See
>        http://www.dovecot.org/list/dovecot/2007-February/019226.html
>     and
>        http://wiki.dovecot.org/AixPluginsSupport
> 
>     Regards, Ralf
> 
>     Timo Sirainen schrieb am 26.03.2007 21:08:
>     > On Mon, 2007-03-26 at 09:24 +0300, funkypunky drunky wrote:
>     >> I pasted the output of gdb. I hope it is usefull. Thanx
>     >>
>     >> This GDB was configured as "powerpc-ibm-aix5.1.0.0"...
>     >> Core was generated by `imap'.
>     >> Program terminated with signal 11, Segmentation fault.
>     >> #0  0xd1a468cc in i_malloc ()
>     >>    from /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
>     >> (gdb) bt full
>     >> #0  0xd1a468cc in i_malloc ()
>     >>    from /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
>     >> No symbol table info available.
>     >> #1  0xd1a47cc8 in quota_init () at quota.c:32
>     >
>     > So it crashes at the first Dovecot function it tries to call. Perhaps
>     > the imap binary isn't exporting the symbols, or something like that.
>     > I've no idea. Anyway it is most likely related to some linking or
>     > compiling flags (or the linker/compiler itself).
>     >
> 
>     --
>     ______________________________________________________________________
> 
>     Dipl.-Inform. (FH) Ralf Becker     Rechenzentrum (r/ft) der FH Trier
>     (Network|Mail|Web|Firewall)           University of applied sciences
>     Administrator                           Schneidershof, D-54293 Trier
> 
>     Mail: beckerr at fh-trier.de
>     <mailto:beckerr at fh-trier.de>                      Fon: +49 651 8103 499
>     WWW:  http://www.fh-trier.de/~beckerr          Fax: +49 651 8103 214
>     PGP:  http://www.fh-trier.de/~beckerr/pgp      ICQ: <available>
>     ______________________________________________________________________
> 
>     Wenn Gott gewollt haette, dass E-Mail in HTML geschrieben wuerden,
>     endeten Gebete traditionell mit </amen>. (Tom Listen)
> 
> 

-- 
______________________________________________________________________

 Dipl.-Inform. (FH) Ralf Becker     Rechenzentrum (r/ft) der FH Trier
 (Network|Mail|Web|Firewall)           University of applied sciences
 Administrator                           Schneidershof, D-54293 Trier

 Mail: beckerr at fh-trier.de                      Fon: +49 651 8103 499
 WWW:  http://www.fh-trier.de/~beckerr          Fax: +49 651 8103 214
 PGP:  http://www.fh-trier.de/~beckerr/pgp      ICQ: <available>
______________________________________________________________________

 Wenn Gott gewollt haette, dass E-Mail in HTML geschrieben wuerden,
 endeten Gebete traditionell mit </amen>. (Tom Listen)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://dovecot.org/pipermail/dovecot/attachments/20070328/4d60b929/attachment.pgp 


More information about the dovecot mailing list