I am trying to compile a small utility called tcpslice. It's the typical GNU C application. When I run ./configure
, here is the output:
checking build system type... Invalid configuration `x86_64-pc-linux-gnuoldld': machine `x86_64-pc' not recognized
configure: error: /bin/sh ./config.sub x86_64-pc-linux-gnuoldld failed
It appears to not support compilation as a 64-bit Linux application. So I have a few questions:
- Is it possible to set some flags to compile the application as 32-bit AND be able to run it on my 64-bit operating system?
- Is it possible to update the configure script to support 64-bit Linux? If so, will I be making some serious code changes in the .c files as well?
- I noticed a 64-bit RHEL6 machine on my network has this utility installed and running with an identical version number (1.2a3). Could I somehow download the source that was used to build it? I can get access the to RHN if necessary.
Is it possible to set some flags to compile the application as 32-bit AND be able to run it on my 64-bit operating system?
Yes. -m32 is the option.
Is it possible to update the configure script to support 64-bit Linux? If so, will I be making some serious code changes in the .c files as well?
You will have to make some code changes to make a purely 32 bit application work on 64 bit. Here's a link that talks about porting code from 32 bit to 64 bit.
I am sorry, I do not know the answer for your 3rd question.
Hope the little information provided by me helps in some way.
You've misinterpreted what the configure
script is telling you. The solution has nothing to do with CPU bitness.
The error comes down to a too-old version of config.guess
, which the package creator generated with libtoolize
. To fix it, you will need to have libtool
installed, then say:
$ libtoolize --force
You'll find that configure
now runs, because libtoolize
overwrote the tarball version of config.guess
with one appropriate to your system.
You may run into another problem, a "missing" bpf.h
file. Just edit tcpslice.c
and change this line:
#include <net/bpf.h>
to:
#include <pcap-bpf.h>
With those two changes, I got tcpslice
to build on my 64-bit CentOS 5 box.
install following packages :
$apt-get install ia32-libs.
for rhel its different :
look at the answer to this question :
CentOS 64 bit bad ELF interpreter