Re: [exim-dev] Candidate for 4.52 release -- make failure, "…

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Philip Hazel
Date:  
À: OpenMacNews
CC: exim-dev
Sujet: Re: [exim-dev] Candidate for 4.52 release -- make failure, "No rule to make target `lookups/lookups.a', needed by `exim'"
On Thu, 23 Jun 2005, OpenMacNews wrote:

> tho, next 'make' failure is:
>
>    ...

>
>    cc exim_monitor/em_version.c
>    cc -o eximon.bin
>    /usr/bin/ld: warning multiple definitions of symbol __XawTextSearch
>    em_TextPop.o definition of __XawTextSearch in section (__TEXT,__text)
>    /usr/X11R6/lib/libXaw.dylib(TextPop.o) definition of __XawTextSearch
>    /usr/bin/ld: warning multiple definitions of symbol __XawTextDoSearchAction
>    em_TextPop.o definition of __XawTextDoSearchAction in section
>    (__TEXT,__text)
>    /usr/X11R6/lib/libXaw.dylib(TextPop.o) definition of
> __XawTextDoSearchAction
>    /usr/bin/ld: warning multiple definitions of symbol
>    __XawTextPopdownSearchAction
>    em_TextPop.o definition of __XawTextPopdownSearchAction in section
>    (__TEXT,__text)
>    /usr/X11R6/lib/libXaw.dylib(TextPop.o) definition of
>    __XawTextPopdownSearchAction
>    >>> exim monitor binary built


Only warnings, so probably OK. The X11 code is ancient. One of these
days eximon should be rewritten to use a modern toolkit. Here is a
comment from OS/Makefile-Default:

# A modified version of the Athena TextPop module is supplied with Exim. The
# modification is to remove the "replace" part of the "search and replace"
# operation because it isn't wanted. TextPop is only one of a number of
# modules that make up the Text widget. Some antique link editors cannot handle
# the case of a replacement module for one of a set of modules. To allow
# the monitor to be linked in such cases, set the value of EXIMON_TEXTPOP
# to be empty. The search operations will then contain a useless "replace"
# option, which is untidy, but does no harm.                           


EXIMON_TEXTPOP=em_TextPop.o

>    cc dnsdb.c
>    dnsdb.c:45: error: 'T_A' undeclared here (not in a function)
>    dnsdb.c:52: error: 'T_CNAME' undeclared here (not in a function)
>    dnsdb.c:54: error: 'T_MX' undeclared here (not in a function)
>    dnsdb.c:56: error: 'T_NS' undeclared here (not in a function)
>    dnsdb.c:57: error: 'T_PTR' undeclared here (not in a function)


Something needs including to get these macros. On my Linux box these
values are defined in

/usr/include/arpa/nameser_compat.h:

which is included by

/usr/include/arpa/nameser.h

which is included by Exim's "#include <arpa/nameser.h>".

I note that the actual definitions are of the form

#define T_CNAME              ns_t_cname


so it looks like a naming change. I will insert some conditionals
definitions to check for the ns_t_ formats and define the old ones
myself if they aren't already defined. Maybe that will solve this one.

>    dnsdb.c: In function 'dnsdb_find':
>    dnsdb.c:223: warning: comparison between pointer and integer
>    dnsdb.c:235: warning: pointer/integer type mismatch in conditional
>    expression
>    dnsdb.c:235: warning: pointer/integer type mismatch in conditional
>    expression
>    dnsdb.c:235: warning: initialization makes integer from pointer without a
>    cast
>    dnsdb.c:243: warning: comparison between pointer and integer
>    dnsdb.c:283: warning: comparison between pointer and integer
>    dnsdb.c:320: warning: comparison between pointer and integer


These are a consequence of the lack of T_ macros, I think.

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book