[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