[Exim] exim 4.02 and perl 5.6.1 compilation problem

Top Page
Delete this message
Reply to this message
Author: Bernard Stern
Date:  
To: exim-users
Subject: [Exim] exim 4.02 and perl 5.6.1 compilation problem
Hello,

On my test server, I just dowloaded exim 4.02. On this server, I also have
perl 5.6.1. Until now, all my exims (3.x) had been compiled with perl 5.6.0,
without ever a single problem. Thus my question: has exim 4.02 been compiled
with perl 5.6.1 support (probably yes), in which case I'm down for a
debugging round.

Solaris 8 on a sunblade 100.

This is where the compilation stops:

gcc -D_REENTRANT -fno-strict-aliasing -I/usr/pack/perl-5.6.1-bs/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/pack/perl-5.6.1-bs/lib/5.6.1/sun4-solaris-thread/CORE -c perl.c
In file included from exim.h:325,
                 from perl.c:15:
structs.h:496: `MAX_NAMED_LIST' undeclared here (not in a function)
structs.h:496: size of array `domain_cache' has non-integer type
structs.h:497: `MAX_NAMED_LIST' undeclared here (not in a function)
structs.h:497: size of array `localpart_cache' has non-integer type
structs.h:610: `DNS_MAXNAME' undeclared here (not in a function)
In file included from exim.h:326,
                 from perl.c:15:
globals.h:416: `MAX_NAMED_LIST' undeclared here (not in a function)
globals.h:416: size of array `sender_address_cache' has non-integer type
globals.h:422: `MAX_NAMED_LIST' undeclared here (not in a function)
globals.h:422: size of array `sender_host_cache' has non-integer type
In file included from perl.c:27:
/usr/pack/perl-5.6.1-bs/lib/5.6.1/sun4-solaris-thread/CORE/perl.h:23:1: warning: "VOIDUSED" redefined
/usr/pack/perl-5.6.1-bs/lib/5.6.1/sun4-solaris-thread/CORE/config.h:3118:1: warning: this is the location of the previous definition
perl.c: In function `xs_init':
perl.c:59: warning: passing arg 3 of `Perl_newXS' from incompatible pointer type
perl.c: In function `init_perl':
perl.c:75: warning: passing arg 2 of `perl_parse' from incompatible pointer type
perl.c:81: `thr' undeclared (first use in this function)
perl.c:81: (Each undeclared identifier is reported only once
perl.c:81: for each function it appears in.)
perl.c: In function `call_perl_cat':
perl.c:120: `thr' undeclared (first use in this function)



this is after a cpp round:

init_perl(uschar *startup_code)
{
register SV **sp = (((struct perl_thread *)pthread_getspecific(PL_thr_key))->Tstack_sp);
static int argc = 2;
static char *argv[3] = { "exim-perl", "/dev/null", 0 };
SV *sv;
STRLEN len;

if (interp_perl) return 0;
interp_perl = perl_alloc();
perl_construct(interp_perl);
perl_parse(interp_perl, xs_init, argc, argv, 0);
perl_run(interp_perl);
sv = Perl_newSVpv(((struct perl_thread *)pthread_getspecific(PL_thr_key)), (char *) startup_code,0
);
if (++(((struct perl_thread *)pthread_getspecific(PL_thr_key))->Tmarkstack_ptr) == (((struct perl_
thread *)pthread_getspecific(PL_thr_key))->Tmarkstack_max)) Perl_markstack_grow(((struct perl_thread
*)pthread_getspecific(PL_thr_key))); *(((struct perl_thread *)pthread_getspecific(PL_thr_key))->Tma
rkstack_ptr) = (sp) - (((struct perl_thread *)pthread_getspecific(PL_thr_key))->Tstack_base);
Perl_eval_sv(((struct perl_thread *)pthread_getspecific(PL_thr_key)), sv,0|2|16);
Perl_sv_free(((struct perl_thread *)pthread_getspecific(PL_thr_key)), (SV*)sv);
if (Perl_sv_true(((struct perl_thread *)pthread_getspecific(PL_thr_key)), (thr->errsv))) return (u
nsigned char *) ((((thr->errsv))->sv_flags & (0x00040000)) == 0x00040000 ? ((len = ((XPV*) ((thr->er
rsv))->sv_any)->xpv_cur), ((XPV*) ((thr->errsv))->sv_any)->xpv_pv) : Perl_sv_2pv(((struct perl_threa
d *)pthread_getspecific(PL_thr_key)), (thr->errsv),&len));
return ((void *)0);
}



Thanks for any help!

Bernard Stern, SWITCH

____________S_W_I_T_CH___Swiss Academic_______________________________________
        mail: SWITCH Head Office       a          Tel: +41 1 268 1520
              Limmatquai 138           n          Fax: +41 1 268 1568
              CH-8001 Zurich           d        e-mail: stern@???
________________________________________Reseach Network_______________________