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