Hello, So after some testing on a Redhat 6.2 system, I can say definitely that our host pre-reqs are higher than they technically need to be. I'd like to eventually drop all the below changes into the jh branch, but I just wanted to give a little status report first, for those interested.
First, I had to modify the version-check.sh script to show proper output on all items. Basically, there were three problems. 1. The command 'readlink' didn't exist on my system. (Probably because it doesn't have coreutils, but the old fileutils package). 2. The version of bash does not recognize '--version'. Instead it provides '-version' to show the version number _upon starting up_. Which means... 3. Bash won't spit you back out to your old shell when you issue -version by itself. So, to fix, I altered all instances of the lengthy echo "somefile ->" `readlink somefile` to just 'file somefile'. The file command will tell us nicely if a file is a symlink and where it points to. And I changed the command 'bash --version' to 'bash -version -c ""'. This works for even modern versions of bash like 3.2. So, with the fixed up version-check.sh, when I run it, my output is: bash, version 1.14.7(1) /bin/sh: symbolic link to bash Binutils: 2.9.5 GNU Bison version 1.28 /usr/bin/yacc: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped bzip2, Version 0.9.5d, 4-Sept-99. Coreutils: 4.0p diff - GNU diffutils version 2.7 GNU find version 4.1 GNU Awk 3.0.4 /usr/bin/awk: symbolic link to /bin/gawk egcs-2.91.66 GNU C Library stable release version 2.1.3, grep (GNU grep) 2.4 gzip 1.2.4 (18 Aug 93) Compilation options: DIRENT UTIME STDC_HEADERS HAVE_UNISTD_H ASMV Linux version 2.2.14-5.0 ([EMAIL PROTECTED]) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Tue Mar 7 21:07:39 EST 2000 GNU m4 1.4 GNU Make version 3.78.1, by Richard Stallman and Roland McGrath. patch 2.5 Perl version='5.00503'; GNU sed version 3.02 tar (GNU tar) 1.13.17 makeinfo (GNU texinfo) 4.0 Compilation OK So, there are some things to note here: 1. Our host pre-reqs for Linux are correct. In order to build NPTL you must be running a 2.6 kernel, so first thing I did was build a 2.6 kernel. 2. Binutils (and possibly others after it) require a more modern bash, the Linux kernel (for the headers) require a modern make (as does Glibc, if it finds 'gmake' on the host system pointing to an old make it will bail), and Glibc also requires a modern version of sed. So there are two solutions here: either keep the host prereqs for those versions where they are, or do a pre-binutils-pass1 copy of each into tools, just like DIY does. Either way, the host system needs an upgrade for those 3 packages. 3. Apart from the items in #2, there are only a few other very minor changes that allow such an old system to build: a. check if the compiler can handle using '-B/usr/bin/' for binutils pass 1 and gcc pass 1, disable it if not b. don't use the configure patch for binutils pass 1 and 2, is ineffective on the older system. 'echo "MAKEINFO = :" >> Makefile' works instead. c. old versions of 'mkdir' don't have a -v switch. Either don't use it before coreutils is installed, or use 'install -dv' instead. d. Glibc in chapter 5 needs the 'MAKEINFO = :" set as well, can add this to the end of the configparms file we make. e. When we unpack the mpfr and gmp files in the gcc pass 1 and 2 sections, I have to do 'bzcat $file | tar -xf -' That's it. Even if we kept the pre-reqs for bash, sed and make, we can alter the following in our host pre-reqs: * "Binutils-2.12" can become "Binutils-2.9.5" * "Bison-1.875 (/usr/bin/yacc should be a link to bison or small script that executes bison)" can become "Bison-1.28" and we can drop the note about yacc needs to be a link or script since it seems to be bogus * "Bzip2-1.0.2" can become "Bzip2-0.9.5d" * "Coreutils-5.0 (or Sh-Utils-2.0, Textutils-2.0, and Fileutils-4.1)" can become "Coreutils-5.0 (or Sh-Utils-2.0, Textutils-2.0, and Fileutils-4.0)". Could probably adjust the version-check.sh script so that it will print either 'coreutils' or 'fileutils'. And perhaps if it gets 'fileutils', check the version info for sh-utils and textutils. * "Diffutils-2.8" can become "Diffutils-2.7" * "Findutils-4.1.20" can become "Findutils-4.1" * "Gcc-3.0.1" can at _least_ become "Gcc-2.95" I don't know if you want to mention "egcs-2.91.66" but it works. * "Glibc-2.2.5" can become "Glibc-2.1.3" * "Grep-2.5" can become "Grep-2.4" * "Patch-2.5.4" can become "Patch-2.5" * "Perl-5.6.0" can become "Perl-5" * "Tar-1.14" can become "Tar-1.13.17" * "Texinfo-4.8" might be able to be dropped (I don't know I'd have to test without it) but it can at least be moved down to "Texinfo-4.0" Well, that's about it. :) -- JH -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page