Re: [exim] errors when building Makefile

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Todd Lyons
Ημερομηνία:  
Προς: Prashanth Katuri
Υ/ο: exim-users@exim.org
Αντικείμενο: Re: [exim] errors when building Makefile
On Tue, May 21, 2013 at 2:13 PM, Prashanth Katuri <PKaturi@???> wrote:
>
> We are using SunOne LDAP (5.2 P6) version.
> Below is the output after removing lookups.a and ldap.o files.
>
>
> make FULLECHO=''
> `Makefile' is up to date.
>
> make[1]: Entering directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc'
> /bin/sh ../scripts/Configure-config.h "make"
> make[2]: Entering directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc'
> make[2]: `buildconfig' is up to date.
> make[2]: Leaving directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc'
> Building configuration file config.h
>>>> config.h built
>
>>>> version 4.80.1 #46
>
>>>> exicyclog script built
>>>> exinext script built
>>>> exiwhat script built
>>>> exigrep script built
>>>> eximstats script built
>>>> exipick script built
>>>> exiqgrep script built
>>>> exiqsumm script built
>>>> transport-filter.pl script built
>>>> convert4r3 script built
>>>> convert4r4 script built
>>>> exim_checkaccess script built


Something got changed at the Makefile level because it went through
and rebuilt EVERYTHING. I really only wanted to see it build the
files that I had you remove. But then I saw that it didn't rebuild
those:


> make[2]: Entering directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc/lookups'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc/lookups'


then again a little while later:

> make[2]: Entering directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc/lookups'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/home/pkaturi/exim-4.80.1/build-SunOS5-5.10-sparc/lookups'


On my system, when I remove the lookups.a file, it rebuilds it on that
first pass through the lookups subdirectory:

make[2]: Entering directory
`/work/home/exim-build/projects/exim/src/build-Linux-i386/lookups'
ar cq lookups.a
ranlib lookups.a
make[2]: Leaving directory
`/work/home/exim-build/projects/exim/src/build-Linux-i386/lookups'

but then later, something made it build a few specific files in the
lookups, which mine does in this strange order too:

> gcc lookups/lf_quote.c
> gcc -c -O -I/usr/local/include -I. -I/usr/local/BerkeleyDB/include -I/usr/local/include lookups/lf_quote.c
> gcc lookups/lf_check_file.c
> gcc -c -O -I/usr/local/include -I. -I/usr/local/BerkeleyDB/include -I/usr/local/include lookups/lf_check_file.c
> gcc lookups/lf_sqlperform.c
> gcc -c -O -I/usr/local/include -I. -I/usr/local/BerkeleyDB/include -I/usr/local/include lookups/lf_sqlperform.c


> gcc -o exim  acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o directory.o dns.o drtables.o enq.o exim.o expand.o filter.o filtertest.o globals.o dkim.o header.o host.o ip.o log.o lss.o match.o moan.o os.o parse.o queue.o rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o std-crypto.o store.o string.o tls.o tod.o transport.o tree.o verify.o lookups/lf_quote.o lookups/lf_check_file.o lookups/lf_sqlperform.o local_scan.o perl.o malware.o mime.o regex.o spam.o spool_mbox.o demime.o bmi_spam.o spf.o srs.o dcc.o version.o \
>           routers/routers.a transports/transports.a lookups/lookups.a \
>           auths/auths.a pdkim/pdkim.a \
>           -lresolv -lsocket -lnsl -lkstat -lm    \
>           -L/usr/lib -R /usr/lib -liconv -lpam -ldb -L/usr/local/BerkeleyDB/lib/ -R /usr/local/BerkeleyDB/lib/ -L/usr/local/lib -lldap -llber  \


Linking does reference the ldap and lber libraries, and gives it the
correct search path.

>           -R /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE  /usr/perl5/5.8.4/lib/sun4-solaris-64int/auto/DynaLoader/DynaLoader.a -L/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE -lperl -lsocket -lnsl -ldl -lm -lc  -L/usr/local/lib -R/usr/local/lib -lpcre
> ld: warning: global symbol '_END_' has non-global binding:
>         (file /usr/local/lib/liblber.so value=LOCL);
> ld: warning: global symbol '_START_' has non-global binding:
>         (file /usr/local/lib/liblber.so value=LOCL);


and based on the error message, it is looking in the version that you
referenced.

> Undefined                       first referenced
>  symbol                             in file
> ldap_start_tls_s                    lookups/lookups.a(ldap.o)
> ld: fatal: symbol referencing errors. No output written to exim


There was a fair amount of work that went into the TLS routines last
year. What is the last version that correctly builds for this system?

...Todd
--
The total budget at all receivers for solving senders' problems is $0.
If you want them to accept your mail and manage it the way you want,
send it the way the spec says to. --John Levine