[SA-exim] Exim 4.62 with localscan_dlopen_exim_4.20 patch builds with an execption (OSX 10.4.6 PPC)

Ross Boylan ross at biostat.ucsf.edu
Tue Sep 5 16:23:16 PDT 2006


On Tue, 2006-09-05 at 18:19 -0400, Kurt Zurich wrote:
> On Tue, 05 Sep 2006 19:30:38 +0000
> Ross Boylan <ross at biostat.ucsf.edu> wrote:
> 
> > On Tue, 2006-09-05 at 14:14 -0400, Kurt Zurich wrote:
> > > Hello!
> > > 
> > > Patched Exim 4.62 sources with localscan_dlopen_exim_4.20 patch.
> > > 
> > > "make" builds the binaries, except at the end, gcc complains that:
> > > 
> > > "powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-rdynamic'"
> > > 
> > > The patch file contains the following comment:
> > > 
> > > "+# On systems which support dynamic loading of shared libraries, Exim
> > > can +# load a local_scan function specified in its config file instead
> > > of having +# to be recompiled with the desired local_scan function."
> > > 
> > > Do I understand gcc's exception correctly to mean that sa-exim cannot be
> > > loaded dynamically under OSX?
> > > 
> > > Thank you.
> > > 
> > That seems unlikely; OSX has dynamic loading.  However, the option names
> > are somewhat idiosyncratic; the error just means that option name is
> > unrecognized by your gcc.
> 
> Thank you for your reply Ross.
> 
> I downgraded to gcc-3.33 to try and build the plugins, but no joy.
I wouldn't expect that to help.  And if you change compiler versions you
need to rerun config--the safest route is to remove your old build
directory and start from scratch.
> 
> Below, the stdout and stderr from my first attempt:
> 
> --------------------------------------------------------------------------
> Building sa-exim-4.2.1.so
> gcc-3.3 -I"/usr/tmp/exim-4.62-SA-EXIM/src" -I -DDLOPEN_LOCAL_SCAN
> -DSPAMASSASSIN_CONF=\"/opt/local/etc/exim/sa-exim\"
> -DSPAMC_LOCATION=\"/usr/bin/spamc\" -O2 -Wall -shared -o sa-exim-4.2 .1.so
> sa-exim.c gcc-3.3: unrecognized option `-shared'
> In file included from sa-exim.c:32:
> /usr/tmp/exim-4.62-SA-EXIM/src/local_scan.h:21:20: config.h: No such file
> or directory sa-exim.c:512:2: warning: #warning you should not worry about
> the "might be clobbered by long jmp", see source
The non-existence of config.h strongly suggests that configuration has
not taken place successfully.  It's a bit odd, since it should have been
there from before.
P
> make: *** [sa-exim-4.2.1.so] Error 1
> --------------------------------------------------------------------------
> 
> In fact, there is no "config.h" file.
> 
> If I comment (/* */) "#define "config.h"", I get the following stdout and
> stderr:
> 
[etc]
> --------------------------------------------------------------------------
> 
> I'm wondering if the sa-exim code is not compatible with exim 4.62.
You're having basic problems with the build system; there's nothing to
suggest incompatibility with exim (which doesn't mean it is compatible,
just that you haven't gotten that far).  There are things to suggest
incompatibility with OSX.
> 
> Any ideas?
One quirk of OSX is that it has a libtool that is different from the GNU
(or is it BSD?) libtool used by many build systems.  The latter is
supposed to, among other things, know how to make shared libraries on
different platforms.  I'm not sure if OSX is one of the platforms it
knows about, particularly if you have an old version of libtool.  But
this is one area that could cause trouble if the build system was not
made with OSX in mind.

You're going to have to look into the build system for sa-exim, and
possibly the linker and compiler options for OSX shared libraries (which
may be called "bundles") to get things right.

Unless someone on this list has more direct experience.  I've never
built sa-exim, and so don't know the details of how that works.

Ross

P.S.  In case you don't know, the canonical unix build style is
./configure
make
make install

Also, the 2 flavors of libtool can coexist as long as the build system
uses a syntax like ./libtool to invoke GNU libtool.






More information about the SA-Exim mailing list