Discussion:
[SA-exim] Exim 4.62 with localscan_dlopen_exim_4.20 patch builds with an execption (OSX 10.4.6 PPC)
Ross Boylan
2006-09-05 19:30:38 UTC
Permalink
Hello!
Patched Exim 4.62 sources with localscan_dlopen_exim_4.20 patch.
"powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-rdynamic'"
"+# 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.
--
Ross Boylan wk: (415) 514-8146
185 Berry St #5700 ***@biostat.ucsf.edu
Dept of Epidemiology and Biostatistics fax: (415) 514-8150
University of California, San Francisco
San Francisco, CA 94107-1739 hm: (415) 550-1062
Ross Boylan
2006-09-05 23:23:16 UTC
Permalink
On Tue, 05 Sep 2006 19:30:38 +0000
Post by Ross Boylan
Hello!
Patched Exim 4.62 sources with localscan_dlopen_exim_4.20 patch.
"powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-rdynamic'"
"+# 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.
--------------------------------------------------------------------------
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'
/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
[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.

Loading...