Compiling Exim: perl.c make[1]: O: Command not found

wa2

Verified User
Joined
Apr 12, 2007
Messages
8
Good evening,

I am having trouble with Exim on a DA setup. It has been segfaulting since yesterday for unknown reasons (CentOS 5.3 AMD64, fully updated). Since then I tried virtually anything I could think of but have not been able to fix it. I made some progress by recompiling Exim, but I can't seem to get the integrated Perl to compile with it. It keeps saying:

perl.c
make[1]: O: Command not found

Which causes perl.o to be missing in the next step of compilation. Without Perl everything seems to work fine but then Exim cannot start because of the exim.pl directive.

Does anyone know how I can get this to compile?

Regards,

Richard van Looijen

PS: I have iconv disabled in the Local/Makefile
PS2: The segfaults logged in /var/log/messages look like: Aug 10 23:43:10 bluemail1 kernel: exim[3462]: segfault at 0000003540a2ff78 rip 0000003540a2ff78 rsp 00007fff3bcc8138 error 14, this is the real problem I'm trying to solve... Since it will not process any e-mail right now.
 
Last edited:
Yes, yum list installed|grep perl output:

perl.i386 4:5.8.8-18.el5_3.1 installed
perl.x86_64 4:5.8.8-18.el5_3.1 installed
perl-Compress-Raw-Bzip2.x86_64 2.020-1.el5.rf installed
perl-Compress-Raw-Zlib.x86_64 2.020-1.el5.rf installed
perl-Crypt-DES.x86_64 2.05-3.2.el5.rf installed
perl-Crypt-PasswdMD5.noarch 1.3-1.2.el5.rf installed
perl-DBI.x86_64 1.609-1.el5.rf installed
perl-Digest-HMAC.noarch 1.01-15 installed
perl-Digest-SHA1.x86_64 2.12-1.el5.rf installed
perl-HTML-Parser.x86_64 3.61-1.el5.rf installed
perl-HTML-Tagset.noarch 3.20-1.el5.rf installed
perl-IO-Compress.noarch 2.020-2.el5.rf installed
perl-Net-Daemon.noarch 0.43-1.el5.rf installed
perl-Net-SNMP.noarch 5.2.0-1.2.el5.rf installed
perl-Net-Server.noarch 0.97-1.el5.rf installed
perl-PlRPC.noarch 0.2020-1.el5.rf installed
perl-Socket6.x86_64 0.23-1.el5.rf installed
perl-String-CRC32.x86_64 1.4-2.fc6 installed
perl-Text-Iconv.x86_64 1.7-1.el5.rf installed
perl-Text-Unaccent.x86_64 1.08-1.2.el5.rf installed
perl-URI.noarch 1.35-3 installed
perl-libwww-perl.noarch 5.805-1.1.1 installed

What I understand is that the error states that perl.c (included in sources) cannot be compiled to perl.o because of an unknown command "O"?

Update:
When I try gcc perl.c (or set "PERL_CC=gcc" in Local/Makefile) it says:

perl.c:29:20: error: EXTERN.h: No such file or directory
perl.c:30:18: error: perl.h: No such file or directory
perl.c:31:18: error: XSUB.h: No such file or directory

So it seems to be missing header files (which indeed are not there) or do I need some other compiler options? The binary downloaded from Exim.org does exactly the same.
 
Last edited:
Hello,

Those 3 header files all come with the perl rpm.
Check your system to see if you have them:
Code:
locate EXTERN.h
locate perl.h
locate XSUB.h
on our centos 5 64-bit box, they're here:
Code:
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/EXTERN.h
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/perl.h
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/XSUB.h
If you don't have the 3 files there (or in any other perl version path) then my only suggestion would be to remove "perl", then reinstall the perl rpm from yum or something like that.

If you do have them, but the compiler isn't finding them, then you'd want to use the bottom part of this guide:
http://help.directadmin.com/item.php?id=125

to find the correct values to put in the PERL_CC, PERL_CCOPTS, and PERL_LIBS variables in the Makefile.

John
 
Thank you, I finally managed to set the correct Perl variables after removing perl (rpm -e) and reinstalling it with yum. Before that I was not able to get output from these (stayed empty). Strace showed me a segfault while doing this. It seems Perl was the broken part all along.

Also, the harddrives seem to have failed, and have caused this. The warning e-mail from mdadm never reached me, obviously...

Thanks again!
 
Back
Top