Create binary (telnet) for kernel 2.4.0, i586 architecture

I am trying to cross-compile a binary file for use in an old Linux distribution (kernel 2.4.25, i586).

The steps I took

  • I downloaded the landley i586 cross-compiler ( http://landley.net/aboriginal/downloads/binaries/ )
  • I downloaded the net-utils source: https://ftp.gnu.org/gnu/inetutils/ version 1.9.4
  • I included the cross compiler in my path: export PATH=/root/Documents/cross-compiler-i586/bin/:$PATH
  • Then I built the telnet binary as follows: LDFLAGS="-static" ./configure --host=i586 --build=x86_64 --target=i586 --disable-ifconfig --with-ncurses-include-dir=/root/Documents/tnbuild --disable-hostname --disable-logger --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-tftp --disable-traceroute --disable-inetd --disable-rexecd --disable-syslogd --disable-tftpd
  • This successfully compiled and checking (after deleting) binary file with the file command gives: telnet: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

I compared this with the binary that is already on the old Linux system, and the output is exactly the same: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter lib/ld-linux.so.2, for GNU/Linux 2.4.0, stripped

Problem i am facing

telnet, , Linux. , , " ". , (i586?), , , "" , .

: GCC Cross i586 (Vortex86DX), , , i586 .

+4
1

- , , 32- i386? , , , , , .

32- (-m 32) telnet.

:

apt-get install gcc-multilib;
./configure CFLAGS='-m32' -disable-ifconfig \
    --with-ncurses-include-dir=/root/Documents/tnbuild  \
    --disable-hostname --disable-logger --disable-rcp \
    --disable-rexec --disable-rlogin --disable-rsh \
    --disable-tftp --disable-traceroute --disable-inetd \
    --disable-rexecd --disable-syslogd --disable-tftpd
make
0

Source: https://habr.com/ru/post/1658985/


All Articles