Kevan Hashemi wrote:
After a three-week break, I'm back to working on a Linux binary of GPC for my users. I apologise for not answering your e-mail of 31/12/08 sooner.
Where did you find a .tar.bz.tar file???
To be strictly correct, it was a tar.bz2.tar file:
gpc346u2-sources.tar.bz2.tar
Which I downloaded from Adriaan's site:
http://adriaan.biz/gpc/gpc346u2-sources.tar.bz2
And somehow gets saved as .tar.bz2.tar on MacOS, but as a .tar.bz2 on Linux.
Seems to be a quirk of the downloader then (as the file is really .tar.bz2, as shown in the URL). Tarring a tar.bz2 file again doesn't make much sense, that's why I was wondering.
Generally, the older the glibc version the bianry was built with, the better
I'm going to try to compile the new sources with GPC 3.4.6 on a SLC 3.1 platform (three years old) and see what happens. The GCC libraries available in the SLC 3.1 kernel are up to and including LIBC 2.3.3, while the GPC binary I received from The Chief is looking for a minimum of LIBC 2.4. I won't ask you to explain to me the interaction between the libraries in the kernel, the compiler that built the kernel, and the compiler we use to build GPC. I'm just going to fool around for a day or two and hope to produce a more universally-compatible GPC Linux binary.
Yes, well, basically each binary needs a minimum library version (usually the major version it was built with), and each library version requires a minimum kernel version (though these are usually quite tolerant, i.e., work with rather old kernels). The compiler that built the kernel shouldn't really matter, as long as you don't build kernel modules (which you wouldn't do with GPC honestly ;-). The compiler that built GPC also shouldn't matter (and even less so, if you did a full bootstrap while building GPC, which means that a first version of GCC is built with the existing compiler, and the actual compilers (GPC and if requested GCC) built with this GCC; though under Linux, this is usually not necessary).
Of course, to avoid library dependencies, you can compile statically (option "-static"), at the expense of larger binaries (which may be anything from completely irrelevant to a no-go, depending on circumstances).
Frank