Compile fails on rhel4 x86_64 (EM64T)

Help
Jeroen
2006-11-23
2013-04-22
  • Jeroen
    Jeroen
    2006-11-23

    Hello colleagues,

    I am trying to compile Sendmail::Milter on a server with:

    -Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
    -Linux XXXXXXXXX 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17 17:57:31 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
    -Xeon processor (x86_64 / EM64T)

    I do:

    up2date --get-source sendmail
    rpm -Uvh /var/spool/up2date/sendmail-8.13.1-3.RHEL4.5.src.rpm
    cd /usr/src/redhat/SOURCES
    tar -xpzf sendmail.8.13.1.tar.gz
    cd /usr/src/redhat/SOURCES/sendmail-8.13.1
    ./Build all
    cd /root/install/perl-modules/
    wget http://belnet.dl.sourceforge.net/sourceforge/sendmail-milter/Sendmail-Milter-0.18.tar.gz
    tar -xpzf Sendmail-Milter-0.18.tar.gz
    cd /root/install/perl-modules/Sendmail-Milter-0.18
    perl Makefile.PL /usr/src/redhat/SOURCES/sendmail-8.13.1 /usr/src/redhat/SOURCES/sendmail-8.13.1/obj.Linux.2.6.9-42.0.2.ELsmp.x86_64/
    make

    Then it sais:

    gcc -c  -I/usr/src/redhat/SOURCES/sendmail-8.13.1/sendmail -I/usr/src/redhat/SOURCES/sendmail-8.13.1/include -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m64   -DVERSION=\"0.18\" -DXS_VERSION=\"0.18\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE"   Milter.c
    Milter.xs: In function `XS_Sendmail__Milter__Context_replacebody':
    Milter.xs:445: warning: passing arg 3 of `Perl_sv_2pv_flags' from incompatible pointer type
    gcc -c  -I/usr/src/redhat/SOURCES/sendmail-8.13.1/sendmail -I/usr/src/redhat/SOURCES/sendmail-8.13.1/include -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m64   -DVERSION=\"0.18\" -DXS_VERSION=\"0.18\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE"   intpools.c
    intpools.c: In function `test_run_callback':
    intpools.c:463: warning: passing arg 3 of `Perl_sv_2pv_flags' from incompatible pointer type
    gcc -c  -I/usr/src/redhat/SOURCES/sendmail-8.13.1/sendmail -I/usr/src/redhat/SOURCES/sendmail-8.13.1/include -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m64   -DVERSION=\"0.18\" -DXS_VERSION=\"0.18\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE"   callbacks.c
    Running Mkbootstrap for Sendmail::Milter ()
    chmod 644 Milter.bs
    rm -f blib/arch/auto/Sendmail/Milter/Milter.so
    gcc  -shared Milter.o intpools.o callbacks.o  -o blib/arch/auto/Sendmail/Milter/Milter.so       \    -L/usr/src/redhat/SOURCES/sendmail-8.13.1/obj.Linux.2.6.9-42.0.2.ELsmp.x86_64/libsmutil -L/usr/src/redhat/SOURCES/sendmail-8.13.1/obj.Linux.2.6.9-42.0.2.ELsmp.x86_64/libsm -lmilter -lsmutil -lsm -lpthread -lnsl   \

    /usr/bin/ld: /usr/src/redhat/SOURCES/sendmail-8.13.1/obj.Linux.2.6.9-42.0.2.ELsmp.x86_64/libsm/libsm.a(clock.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
    /usr/src/redhat/SOURCES/sendmail-8.13.1/obj.Linux.2.6.9-42.0.2.ELsmp.x86_64/libsm/libsm.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make: *** [blib/arch/auto/Sendmail/Milter/Milter.so] Error 1

    Does anybody know a solution for this problem?
    Kind regards,
    Jeroen.

     
    • Jeroen
      Jeroen
      2006-11-23

      I don't think this is what the makers of Perl::Milter want to hear, but I fixed it by installing Sendmail::PMilter, from http://pmilter.sourceforge.net/  When you install PMilter it asks if you want to install the Sendmail::Milter interface, so is it is completely compatible.

      Thanks anyway....
      Jeroen