My goal here is to compile a statically linked version of octave on a machine running Debian Jessie and copy the binary to a machine running Redhat Linux 6.4 and run it from there. Is this feasible to do?
This is what I did.
1) Downloaded
ftp://ftp.gnu.org/gnu/octave/octave-3.8.1.tar.bz22) configured with
=> ../../unZipped/octave-3.8.1/configure --prefix=${HOME}/software/myroot/octave-3.8.1/ --enable-static
=> nohup make 2>&1
=> nohup make install 2>&1
However, this does not create a single statically linked binary. The files are spread across multiple directories in ~/software/myroot/octave-3.8.1.
address@hidden:~/software/myroot/octave-3.8.1$ ls
bin include lib libexec share
Moreover, the octave binary looks for other shared libraries
address@hidden:~/software/myroot/octave-3.8.1$ ldd bin/octave
linux-vdso.so.1 (0x00007fff787e6000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1cdcc03000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f1cdca00000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1cdc6f4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1cdc3f1000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1cdc1db000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1cdbfbd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1cdbc14000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1cdb9f5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1cdb7f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1cdcf72000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1cdb5ec000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1cdb3e6000)
I am also not sure If I got this right, since the octave binary is just 104K where as the install directory is 1.8G.
address@hidden:~/software/myroot/octave-3.8.1$ du . -hs
1.8G .