Re: [exim] errors when building Makefile

Top Page
Delete this message
Reply to this message
Author: Prashanth Katuri
Date:  
To: Todd Lyons
CC: exim-users@exim.org
Subject: Re: [exim] errors when building Makefile
Todd,

Today I have tried installing version 4.66 and when I run "make" it had created a binary. But now having issues with " make install".

Btw when running "make install" getting below error:

Installation directory is /usr/local/exim/bin

ld.so.1: exim: fatal: libiconv.so.2: open failed: No such file or directory

*** Could not run ./exim to find version number ***
*** Exim installation failed *



pkaturi@gb0882ldaptst01 >sudo make         
`Makefile' is up to date.
 
make[1]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc'
/bin/sh ../scripts/Configure-config.h "make"
make[2]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc'
make[2]: `buildconfig' is up to date.
make[2]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc'
Building configuration file config.h

>>> config.h built


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

>>> 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


gcc exim_dbmbuild.c
gcc -o exim_dbmbuild
>>> exim_dbmbuild utility built


gcc -DEXIM_DUMPDB exim_dbutil.c
gcc -DCOMPILE_UTILITY os.c
gcc -DCOMPILE_UTILITY store.c
gcc -o exim_dumpdb
>>> exim_dumpdb utility built


gcc -DEXIM_FIXDB exim_dbutil.c
gcc -o exim_fixdb
>>> exim_fixdb utility built


gcc -DEXIM_TIDYDB exim_dbutil.c
gcc -o exim_tidydb
>>> exim_tidydb utility built

 
make[2]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/lookups'
gcc cdb.c
gcc dbmdb.c
gcc dnsdb.c
gcc dsearch.c
gcc ibase.c
gcc ldap.c
gcc lsearch.c
gcc mysql.c
gcc nis.c
gcc nisplus.c
gcc oracle.c
gcc passwd.c
gcc pgsql.c
gcc spf.c
gcc sqlite.c
gcc testdb.c
gcc whoson.c
gcc lf_check_file.c
gcc lf_quote.c
ar cq lookups.a
make[2]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/lookups'
 
make[2]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/routers'
gcc accept.c
gcc dnslookup.c
gcc ipliteral.c
gcc iplookup.c
gcc manualroute.c
gcc queryprogram.c
gcc redirect.c
gcc rf_change_domain.c
gcc rf_expand_data.c
gcc rf_get_errors_address.c
gcc rf_get_munge_headers.c
gcc rf_get_transport.c
gcc rf_get_ugid.c
gcc rf_lookup_hostlist.c
gcc rf_queue_add.c
gcc rf_self_action.c
gcc rf_set_ugid.c
ar cq routers.a
make[2]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/routers'
 
make[2]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/transports'
gcc appendfile.c
gcc autoreply.c
gcc lmtp.c
gcc pipe.c
gcc smtp.c
gcc tf_maildir.c
ar cq transports.a
make[2]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/transports'
 
make[2]: Entering directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/auths'
gcc auth-spa.c
gcc b64decode.c
gcc b64encode.c
gcc call_pam.c
gcc call_pwcheck.c
gcc call_radius.c
gcc check_serv_cond.c
gcc cram_md5.c
gcc cyrus_sasl.c
gcc dovecot.c
gcc get_data.c
gcc get_no64_data.c
gcc md5.c
gcc plaintext.c
gcc pwcheck.c
gcc sha1.c
gcc spa.c
gcc xtextdecode.c
gcc xtextencode.c
ar cq auths.a
make[2]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc/auths'
 
gcc acl.c
gcc child.c
gcc crypt16.c
gcc daemon.c
gcc dbfn.c
gcc debug.c
gcc deliver.c
gcc directory.c
gcc dns.c
gcc drtables.c
gcc enq.c
gcc exim.c
gcc expand.c
gcc filter.c
gcc filtertest.c
gcc globals.c
gcc header.c
gcc host.c
gcc ip.c
gcc log.c
gcc lss.c
gcc match.c
gcc moan.c
gcc os.c
gcc parse.c
gcc queue.c
gcc rda.c
gcc readconf.c
gcc receive.c
gcc retry.c
gcc rewrite.c
gcc rfc2047.c
gcc route.c
gcc search.c
gcc sieve.c
gcc smtp_in.c
gcc smtp_out.c
gcc spool_in.c
gcc spool_out.c
gcc store.c
gcc string.c
gcc tls.c
gcc tod.c
gcc transport.c
gcc tree.c
gcc verify.c
gcc local_scan.c
gcc perl.c
gcc malware.c
gcc mime.c
gcc regex.c
gcc spam.c
gcc spool_mbox.c
gcc demime.c
gcc bmi_spam.c
gcc spf.c
gcc srs.c
gcc dk.c
 
awk '{ print ($1+1) }' cnumber.h > cnumber.temp
rm -f cnumber.h; mv cnumber.temp cnumber.h
gcc version.c
rm -f exim
gcc -o exim
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);
 

>>> exim binary built

 
make[1]: Leaving directory `/home/pkaturi/exim-4.66/build-SunOS5-5.10-sparc'
pkaturi@gb0882ldaptst01 >ls -la /usr/local/lib/liblber.so
lrwxrwxrwx   1 root     root          20 Aug  8  2012 /usr/local/lib/liblber.so -> liblber-2.4.so.2.8.3
pkaturi@gb0882ldaptst01 >sudo make install

Installation directory is /usr/local/exim/bin

ld.so.1: exim: fatal: libiconv.so.2: open failed: No such file or directory

*** Could not run ./exim to find version number ***
*** Exim installation failed ***
make: *** [install] Error 1


pkaturi@gb0882ldaptst01 >sudo make install

Installation directory is /usr/local/exim/bin

ld.so.1: exim: fatal: libiconv.so.2: open failed: No such file or directory

*** Could not run ./exim to find version number ***
*** Exim installation failed *


Thanks,
Prashanth

-----Original Message-----
From: Prashanth Katuri 
Sent: Wednesday, May 22, 2013 2:11 PM
To: 'Todd Lyons'
Cc: exim-users@???
Subject: RE: [exim] errors when building Makefile

Todd,

Thank you for your reply.

Below is the exim version currently running on our Solaris machine.

exim -bV
Exim version 3.36 #1 built 07-Dec-2010 03:13:49 Copyright (c) University of Cambridge 2002

Thanks,
Prashanth

-----Original Message-----
From: Todd Lyons [mailto:tlyons@ivenue.com]
Sent: Wednesday, May 22, 2013 9:23 AM
To: Prashanth Katuri
Cc: exim-users@???
Subject: 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