[Mimedefang] SOLVED: RE: MIMEDefang 2.70 compile error

Eric Laizure starfire at emeden.net
Mon Jul 12 00:23:14 EDT 2010

>> ./xs_init.c: In function s_init
>> ./xs_init.c:15: error: y_perlundeclared (first use in this function)
>Are you sure the error messages look *exactly* like that?  That's
>completely borked.  The variable should be "my_perl", not "y_perl" and
>there should be a space before "undeclared".
>It sounds like something is very wrong on your system.
>-- David.

Apparently, my attempt to copy from my shell session included some funky
characters that messed it up. Here's what it was suppose to say according to
the make.log from my zip file included in the original email--

./xs_init.c: In function 'xs_init':
./xs_init.c:15: error: 'my_perl' undeclared (first use in this function)
./xs_init.c:15: error: (Each undeclared identifier is reported only once
./xs_init.c:15: error: for each function it appears in.)
./xs_init.c:15: warning: passing argument 3 of 'Perl_newXS' from
incompatible pointer type
/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/proto.h:1500: note:
expected 'XSUBADDR_t' but argument is of type 'void (*)(struct CV *)'
make: *** [xs_init.o] Error 1

This is very strange. I finally figured out where I could get a copy of
version 2.69. I got the exact same error. On a lark, I decided to redownload
2.68 into a separate folder and tried to recompile that. I get the exact
same error. However, when I go back to my original download of 2.68 that I
have, I can again compile it with no issues. I then tried compiling 2.70
with the "--disable-embedded-perl" option and now I can compile fine as long
as I use that. I'm stumped as to what is going on. I got my 2.68 originally
from www.mimedefang.com like I did everything else.

After a little bit of searching using diff, I found that my original's
xs_init.c is different than the redownloaded version's which I realized is
generated via the make command. Finally, a little more snooping and I found
that I was either missing (or corrupted somehow)
perl-ExtUtils-Embed-1.28-87.fc12.x86_64. I guess that after xs_init.c is
created, it isn't deleted when you run "make distclean". That's what was
throwing me off. =)

Now that module is installed, all of versions compile like champs. The whole
issue appears to be with embedding perl.


More information about the MIMEDefang mailing list