[lfs-dev] Learning the new build system

Ken Moffat zarniwhoop at ntlworld.com
Thu Jul 30 16:08:55 PDT 2020


I like the new build system, the mostly improved test results are
very encouraging.  But I suspect I've still got a lot to learn about
how the combination of the new approach plus my own scripts can go
wrong.

I completed my normal build from last Saturday's books a day or so
ago, and almost everything was rosy, or else (in terms of tests) 'as
expected'.

But I was not happy about how I remind myself which
directories need to exist and be writable by the lfs user (I'm used
to creating a few extras for my approach, and binding or chowning,
but I can't remember what else is needed - it was more than 6 weeks
since my previous build :)

I also noticed that I had not logged the test results from tcl and
expect - they sailed through and obviously wrote to the screen, but
I had no idea what they said.

I've also got an interest in updated binutils, gcc, autoconf-beta as
noted, and llvm-1.0.0rc1 if I get that far (this is an
'experimental' system).  So, this afternoon I started a new build
(only those packages have changed since the previous build, to cut
down variations and/or identify what they break).

Things were going well until I ran the glibc tests.  I use pairs of
scripts: Top-level for everything done as user lfs, an intochroot
script, and a chroot script for everything done as root up to the
end of chapter 8.  These then invoke a series of scripts for
packages, each of which should exit if there is an unexpected error.

In glibc, I got the misc/tst-ttyname failure and the package script
exited without attempting to install.  Fine, I'd removed the '||
true' because recent builds had not had any failures in glibc.  Add
it back, restart the chroot script.  Or not:

/sources/scripts/lfs-dev/git/chroot.d/glibc: line 25: /bin/rm: No such file or directory
/sources/scripts/lfs-dev/git/functions: line 851: /usr/bin/awk: No such file or directory
/sources/scripts/lfs-dev/git/functions: line 851: /bin/date: No such file or directory

I was still in chroot, looking around all the items in $LFS/lib
seemed to be present and correct.  The nI tried exitign chroot and
trying to re-enter it:

chroot: failed to run command '/usr/bin/env': No such file or directory

Again, it was present and the items referenced by ldd seemed to be
there.  Ran 'strace -o trace chroot /mnt/lfs' but that just gave me
much the same:

execve("/bin/bash", ["/bin/bash", "-i"], 0x7ffc231e3600 /* 18 vars */) = -1 ENOENT (No such file or directory)

And of course $LFS/bin/bash was present and again the libs seemed
ok.

Start over.  This time I backed up before entering chroot, then
temporarily put a stop after each package up to and including glibc.
Then a series of run, stop, exit chroot, remove the stop from the
controlling script, re-enter chroot, run the chroot script.

All good.  In glibc I got the same failed test, but the script now
continued and installed.  Exit chroot, remove the last stop,
re-enter chroot, continue.

So, I know *something* can go wrong with my script, but no idea
what.  Fun, isn't it ?  ;-)

ĸen
-- 
+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++
                          - Hogfather


More information about the lfs-dev mailing list