Hi again,

The ICA runs for the lfs-alphabetical builds are getting nearly byte
for byte repeatable.  Here's a really quick summary of what's been
done:

*  Started off from the 20051216 revision in ~jhuntwork that had
mostly been determined by Jeremy and Chris Staub.

*  Added -Dman1dir=... to perl configure.gnu to allow groff to be after perl.
   http://linuxfromscratch.org/pipermail/lfs-dev/2006-January/055178.html

*  Added echo '#define YYENABLE_NLS 1' >> config.h to Ch. 6 bison
   http://linuxfromscratch.org/pipermail/lfs-dev/2006-January/055164.html

*  Moved sed before perl to remove hardcoded reference to /tools/bin/sed

*  Implemented DIY-Linux toolchain build
   http://linuxfromscratch.org/pipermail/lfs-dev/2006-January/055149.html

*  Patched farce-001-5 to allow stripping of statically linked binaries
   http://staff.washington.edu/dbnichol/lfs/farce-001-5-test_static-1.patch

*  ICA only patch to perl to remove embedded date/time stamp (see below)
   http://staff.washington.edu/dbnichol/lfs/perl-5.8.7-remove_time-1.patch

*  ICA only patch to vim to remove embedded date/time stamp (see below)
   http://staff.washington.edu/dbnichol/lfs/vim-6.4-remove_time-1.patch

*  ICA only sed to nscd to remove embedded date/time stamp (see below)
   http://staff.washington.edu/dbnichol/lfs/nscd-remove-time.txt

Concerning the last 3 points.  These are gross hacks.  I only used
them to make sure that the differences that were always occuring in
perl, perl.o, nscd and vim were truly timestamp related and not build
related.  Turns out that they were.  The above patches and sed's are
not intended for the build.  (In fact, I'd like someone with C
programming experience to look at nscd_stat.c and make sure I didn't
break it.)

To repeat, the last three steps prove that perl, vim and nscd are
repeatable and the differences stem from functions implementing time
stamps in the source code.

Here are links to the current results.  NOTE: I had to move my little
repo because I'm getting booted from the student server at Washington.
 However, I just found out that I have a staff website (graduate
school pays off).  So old links concerning my alpha work will soon be
broken.

*  Order of the packages
   
http://staff.washington.edu/dbnichol/lfs/lfs-alpha-20060111-reports/scripts.list

*  Iter 1 vs Iter 2 ICA report
   
http://staff.washington.edu/dbnichol/lfs/lfs-alpha-20060111-reports/ica/REPORT.1V2

*  Iter 1 vs Iter 2 Farce report
   
http://staff.washington.edu/dbnichol/lfs/lfs-alpha-20060111-reports/farce/1v2/farce-differ

*  The build logs with commands used for each package
   http://staff.washington.edu/dbnichol/lfs/lfs-alpha-20060111-reports/logs/

*  My script set that implements all this *hit
   http://staff.washington.edu/dbnichol/lfs/dbn-build-20060111/

Notes about the results:
*  These compare very favorably to the ICA set from DIY-Linux
   http://www.diy-linux.org/~greg/ICA/

*  As seen from the reports, perl, perl.o, nscd and vim are gone due
to my above hacks.

*  All the .o differences in the stc++ .a archives are repeatable due
to injected randomness in C++ compiled objects.  I can't find the link
to where Greg talked about this right now.

*  Config_heavy.pl differs only because -Dman1dir... is only added to
the first iteration and this file records what the Configure arguments
were.

*  Differences in the stdc++ .la archives are harmless since the only
add extra references to -lm and -lgcc_s.

To see the text differences for both of these, look at
http://staff.washington.edu/dbnichol/lfs/lfs-alpha-20060111-reports/ica/1V2.ASCII.DIFF

*  gccbug is probably harmless but could be satisfied by adding mktemp to Ch. 5.
   http://linuxfromscratch.org/pipermail/lfs-dev/2006-January/055157.html

*  man.conf is equally harmless.  /usr/bin/col comes from util-linux,
but I don't see a good reason to fix this one.

Still to do:
*  The iteration 1 glibc .a archives still contain references to
/tools/include, etc.  I forgot to change the Ch. 6 glibc to DIY style
which adds --with-headers=/usr/include.  Possibly this will clean
things up a bit?

*  Determine if removing some of the DIY toolchain steps will revert the ICA.

*  Look into stdc++.h.gch stuff.  I was under the impression that
these would always differ due to the C++ randomness mentioned above. 
However, they don't differ between the 2nd and 3rd runs.

*  Reverse the order of the still-alphabetical section of Ch. 6 to
determine more true dependencies, e.g. this order doesn't determine
whether vim *could* come before gettext.


That's all for now.  I'll be out of town from Friday to Monday to
visit my sister in NYC, so if anyone has any comments, that's why I'm
quiet on the reply.

--
Dan
--
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to