and so it begins....

so it begins


yeah baby yeah


well that didnt last long! binutils instruction in lfs seem very incomplete to me

aside from that there's no ./configure file in the binutils main directoy to run the configure command... or more likely im just dense

../configure --prefix=$LFS/tools \

bash: ../configure: No such file or directory

the is def a configure file in that directoyr

ok... make the build directory inside the binutils directory... but everything has to be root to compile? that seems odd

ok back on track... TO BATTLE!

[Requesting program interpreter: /tools/lib64/]

but my second pass fails.... hmmm i am supposed to delete the directories after every build, not saving them for a secodn pass right? 2nd pass starts with fresh bunutils build, fresh gcc build?


Yes, to all. Also, make sure that you've adjusted your environment variables (if needed) prior to starting pass 2.


readelf -l a.out | grep ': /tools'
[Requesting program interpreter: /tools/lib64/]

This here is the 2nd pass {says gandalf to the balrog}

1 Like

Couple of things come to mind:

  • Possible missed step(s) in Ch. 6 (thru Adjusting the Toolchain)
  • Did you get a complete OK/PASS for

still working on bash.... getting there.. slowly slowly

1 Like
  • Favor ease to read over anything else, as that's what contributes more to development speed.
  • Use the shortest functions, so things are brief and easy to understand in place.
  • Use the shortest names that are understandable in context, so you can easily differentiate variables from operands.
  • Test each single function you type just after finishing it, so if there's an error you easily know it can only be in the last written part of the code.
1 Like

File "./", line 551
IndentationError: unexpected indent

sed -i '/def add_multiarch_paths/a \ return'

this has me snookerd at the moment

    def add_multiarch_paths(self):
 return      <<<___this is line 551 and while i have played with i i cant find the right spacing

It could be you are using tabs for indenting some lines, and spaces for indenting some others.

Or it simply could be that this line needs indentation, and it doesn't have it.

What's the full code? Why so many returns?

i am trying to manually edit the file but it is ridiculous i fix one and another is an issue

this line is supposed to do that for me i think
sed -i '/def add_multiarch_paths/a \ return'

it's awful when i read the manual and the manual is out of whack..

GOt it


1 Like
def function(variable):
    print("Inside function")

print("Outside function")

  print("Error: indentation is different than previous lines")
1 Like

Moving this topic to #other-os.

Cool, your finally going for it. Best of luck. :crossed_fingers:


thanks.... anyone knows if this test is ok?

UNSUPPORTED: elf/tst-audit10
UNSUPPORTED: elf/tst-avx512
UNSUPPORTED: elf/tst-dlopen-self-container
UNSUPPORTED: elf/tst-dlopen-tlsmodid-container
UNSUPPORTED: elf/tst-ldconfig-bad-aux-cache
UNSUPPORTED: elf/tst-ldconfig-ld_so_conf-update
UNSUPPORTED: elf/tst-pldd
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: math/test-double-libmvec-sincos-avx512
UNSUPPORTED: math/test-float-libmvec-sincosf-avx512
UNSUPPORTED: misc/tst-pkey
FAIL: misc/tst-ttyname
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
UNSUPPORTED: nss/tst-nss-db-endgrent
UNSUPPORTED: nss/tst-nss-db-endpwent
UNSUPPORTED: nss/tst-nss-files-hosts-long
UNSUPPORTED: nss/tst-nss-test3
UNSUPPORTED: resolv/tst-resolv-ai_idn
UNSUPPORTED: resolv/tst-resolv-ai_idn-latin1
Summary of test results:
      1 FAIL
   5177 PASS
     17 XFAIL
      2 XPASS
make[1]: *** [Makefile:630: tests] Error 1
make[1]: Leaving directory '/sources/glibc-2.31'
make: *** [Makefile:9: check] Error 2

it looks like a make error to me

IIRC that's normal, being that is not a completly passing 'check'.

Press on...

1 Like
  [Requesting program interpreter: /lib64/]

chapter 6 check. All my checks since seem to be great..

1 Like

Holy Moses, talk about install! Those folks don't fool around.

And here I was so proud when I managed to add a couple of ''contrib non-free'' lines in the Debian install with sudo nano /etc/apt/sources.list a few months ago. ''I'm getting the hang of this thing, whats next!''

Good luck!


just finished all the gcc tests from chapter 6. takes FOREVER

readelf -l a.out | grep ': /lib'
[Requesting program interpreter: /lib64/]

got all the way to vim without any unusual check errors then vim reports it cant fim libtool... i def installed that... installing it again will try vim again after


i have it all installed but i cant get it to boot yet,..

i use manjaro to manage the boots but for somereason gentoo and now linux from scratch - both of which use a separate boot partition - while picked up during update-grub aren't being added to the manjaro grub that gets saved to the hard drive...

Anyone has a good idea how to work around this? My bright idea was to boot gentoo, from gentoo install grub to my hdd (ssd has win10 and nvme has manjaro and other linuxes) and while gentoo also detected all the oses installed on the system, it didnt save lfs to the grub that it wrote either. Where does that info go if it isnt saved to grub but is detected by the os prober?

I'm in gentoo atm and this is what that reports

sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.48-gentoo-x86_64
Found initrd image: /boot/initramfs-5.4.48-gentoo-x86_64.img
Found linux image: /boot/vmlinuz-5.4.48-gentoo-x86_64.old
Found initrd image: /boot/initramfs-5.4.48-gentoo-x86_64.img
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
Found Linux From Scratch (9.1) on /dev/nvme0n1p10
Found Manjaro Linux (20.0.3) on /dev/nvme0n1p3
Found Arch Linux (rolling) on /dev/nvme0n1p5
Found Artix Linux (rolling) on /dev/nvme0n1p7
Found Windows 10 on /dev/sdb1

1 Like

Lizzi, if you're using UEFI, it's going to be a hit or miss proposition. That's the main reason why I didn't just restore my backups when my drive crashed years ago. I went UEFI/GPT to take advantage of my new hardware, and back then LFS was all miss on UEFI, so I just didn't bother.

Anyway, this is my grub entry for LFS before the crash. At the time, Mint was controlling grub, with LFS and FreeBSD on logical partitions.

menuentry "Linux From Scratch (7.4) (on /dev/sda5)" --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-2596c06c-1d96-43c6-ab3d-453cb9a957ab' {
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos9'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9  63903e19-53aa-4fe0-a90d-b174f30fff9e
	  search --no-floppy --fs-uuid --set=root 63903e19-53aa-4fe0-a90d-b174f30fff9e
	linux /vmlinuz-3.10.10-lfs-7.4 root=/dev/sda5 ro

Another thing you might want to investigate is moving LFS off of the NVMe drive. If you decide to do that, use these flags for rsync:

  • -qaHAXS

But hey, even if it's not booting, you've done what a lot of people can't do...actually get thru the LFS book (can't even change the symlink from /bin/dash)...

Good job!



Forum kindly sponsored by