|
|
Line 3: |
Line 3: |
| Ted's page on [https://neelanurseries.com Neela Nurseries] Wiki<br /> | | Ted's page on [https://neelanurseries.com Neela Nurseries] Wiki<br /> |
| </center> | | </center> |
| + | |
| | | |
| | | |
Line 310: |
Line 311: |
| | | |
| <!-- comment --> | | <!-- comment --> |
− |
| |
− | <!-- SECTION - Linux From Scratch (LFS) project -->
| |
− |
| |
− | == [[#top|^]] Linux From Scratch (LFS) Project - 8.1 Release ==
| |
− | <br />
| |
− | - 2017-09-26 - Ted soon to move these Linux From Scratch notes to a [[linux_from_scratch separate|Linux From Scratch wiki page]].
| |
− |
| |
− | Here are notes by Ted, beginning work to build a 'Linux From Scratch' system crossed-compiled for the ARM architecture, in a way suitable to run with complete function on RaspberryPi development boards. At same time Ted looking to build minimal system and tool chain, offering environment in which to compile and to cross-compile C and C++ programs. Notes here begin with some useful, initially found links to [http://www.linuxfromscratch.org/ LFS home page] of Gerard Beekman et al:
| |
− |
| |
− |
| |
− | * [http://www.linuxfromscratch.org/ Linux From Scratch project homepage]
| |
− | * [http://www.linuxfromscratch.org/lfs/view/development/index.html LFS project index]
| |
− | * [http://www.linuxfromscratch.org/lfs/view/development/chapter02/hostreqs.html LFS host requirements]
| |
− |
| |
− | * [http://www.linuxfromscratch.org/lfs/view/stable/chapter02/stages.html LFS chapter 2 build stages . . .]
| |
− |
| |
− |
| |
− | Linux From Scratch project observes Linux Standard Base (LSB) requirements. These requirements include,
| |
− |
| |
− | * [https://www.gnu.org/software/binutils/ binutils]
| |
− |
| |
− |
| |
− | Cross-compiling Linux system from scratch . . .
| |
− |
| |
− | * [http://trac.clfs.org/ Cross Linux From Scratch]
| |
− |
| |
− |
| |
− | Linux from Scratch for RaspberryPi target system . . .
| |
− |
| |
− | * [http://intestinate.com/pilfs/beyond.html Linux From Scratch (LFS) for RaspberryPi]
| |
− |
| |
− |
| |
− | Some Linux programs and utilities, services worth studying further, for better understanding of system and networking:
| |
− |
| |
− | <ul>
| |
− | <li> grub, EFI and UEFI<br />
| |
− | <li> iproute, routef and routel, IPV4 routine tables<br />
| |
− | <li> util-linux-2.30.1 . . . chapter 6.66, lots of utilities here!<br />
| |
− | <!--
| |
− | <li> <br />
| |
− | -->
| |
− | </ul>
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] First mount and build steps ===
| |
− |
| |
− | - 2017-90-18 MON -
| |
− |
| |
− | LFS book release 8.1, chapter 2.4 talks about typical and "convenience" partitions which are often or sometimes created for Unix and Linux systems. Ted's notebook of LFS work past two weeks not on hand, but going from memory and cfdisk partition list which lacks labels and mount points, here are the partitions Ted created first time stepping through chapter 2:
| |
− |
| |
− |
| |
− | <i>Figure x - initial LFS 8.1 partitioning choices, using 8GB root directory:</i>
| |
− |
| |
− | <pre>
| |
− |
| |
− | Name Flags Part Type FS Type [Label] Size (MB) mount point
| |
− | --------------------------------------------------------------------------------------------------------------------
| |
− | sdb1 Boot Primary ext4 106.93 /boot
| |
− | sdb5 Logical ext4 7682.42 /
| |
− | sdb6 Logical swap 1003.49 ( not applicable to swap partition )
| |
− | sdb7 Logical ext4 10001.95 /home
| |
− | sdb8 Logical ext4 20003.89 /opt
| |
− | sdb9 Logical ext4 50001.48 /usr/src
| |
− | sdb10 Logical ext4 50001.48 /var
| |
− | Pri/Log Free Space 21240.29 *
| |
− |
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Started working through LFS 8.1 book using above partitions but found __libc or glibc build step__ required beyond 8GB space during a testing phase, and so __changed the partitions__ to create a larger root partition as shown in next figure:
| |
− |
| |
− | <i>Figure x - LFS 8.1 exercise, partition choices draft two:</i>
| |
− |
| |
− | <pre>
| |
− |
| |
− | cfdisk (util-linux 2.20.1)
| |
− |
| |
− | Disk Drive: /dev/sdb
| |
− | Size: 160041885696 bytes, 160.0 GB
| |
− | Heads: 255 Sectors per Track: 63 Cylinders: 19457
| |
− |
| |
− | Name Flags Part Type FS Type [Label] Size (MB)
| |
− | ----------------------------------------------------------------------------------------------------
| |
− | sdb1 Boot Primary ext4 106.93
| |
− | sdb5 Logical ext4 18498.66
| |
− | sdb6 Logical Linux 1003.49
| |
− | sdb7 Logical Linux 10001.95
| |
− | sdb8 Logical Linux 20003.89
| |
− | sdb9 Logical Linux 50001.48
| |
− | sdb10 Logical Linux 60425.52 *
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | [ Bootable ] [ Delete ] [ Help ] [ Maximize ] [ Print ] [ Quit ]
| |
− | [ Type ] [ Units ] [ Write ]
| |
− |
| |
− | Quit program without writing partition table
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Per chapter 2.4 comments on convenience partitions, Ted not creating a partition for either /usr nor /tmp. Ted creating /opt for software which falls outside of Debian and Ubuntu package lists, such as LPCXpresso and LTSpice.
| |
− |
| |
− | Working through LFS stable release book or instructions, at end of chapter two page titled chapter 2.7 LFS book calls for first mount of newly created system-to-be partition. Ted using ext4 type journaled file system. Somewhere in or about chapter five, further mounts of other file systems of the new system are needed. Here 2017-09-25 Monday Ted noting history of mounts, which were completed prior to software compilations in chapter 6:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | ted@localhost:~$ echo $LFS
| |
− | /mnt/lfs
| |
− |
| |
− | ted@localhost:~$ history | grep mount
| |
− | .
| |
− | .
| |
− | .
| |
− | 556 sudo mount -v -t ext4 /dev/sdb5 /mnt/lfs
| |
− | 673 history | grep mount
| |
− | 674 sudo mount -v -t ext4 /dev/sdb5 /mnt/lfs
| |
− | 779 mount
| |
− | 939 mount
| |
− | 976 sudo mount -v --bind /dev $LFS/dev
| |
− | 977 sudo mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
| |
− | 978 mount -vt proc proc $LFS/proc
| |
− | 979 sudo mount -vt proc proc $LFS/proc
| |
− | 980 sudo mount -vt sysfs sysfs $LFS/sys
| |
− | 981 sudo mount -vt tmpfs tmpfs $LFS/run
| |
− | 986 mount
| |
− | 988 sudo umount /mnt/lfs
| |
− | 1001 history | grep mount
| |
− |
| |
− | ted@localhost:~$
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | The key mounting steps are, assuming $LFS set to /mnt/lfs . . .
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | $ # From LFS 8.1 chapter 2.7, mounting the new file system:
| |
− |
| |
− | $ sudo mount -v -t ext4 /dev/sdb5 /mnt/lfs
| |
− |
| |
− |
| |
− | $ # From LFS 8.1 chapter 6.2, preparing virtual kernel file systems:
| |
− |
| |
− | $ sudo mount -v --bind /dev $LFS/dev
| |
− | $ sudo mount -vt proc proc $LFS/proc
| |
− | $ sudo mount -vt sysfs sysfs $LFS/sys
| |
− | $ sudo mount -vt tmpfs tmpfs $LFS/run
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | Ted noting specific mount steps as root partition at 7.7GB too small to permit chapter 6 builds. Ted learning <code>parted</code> disk partitioning utility in order to resize /dev/sdb5 root partition of 2017 September LFS project build. There appears to be some good notes on using a tool named <code>resize2fs</code> at the AskUbuntu forum page https://askubuntu.com/questions/390769/how-do-i-resize-partitions-using-command-line-without-using-a-gui-on-a-server. But neither parted for resize2fs alone were the answer, Ted uses [[resize_partition_and_ext4_file_system|cfdisk, e2fsck and resize2fs]] to achieve a partition and corresponding file system size increase.
| |
− |
| |
− | After building first package <code>binutils-2.29</code> the directory <code>/tools</code> holds directories and files in the following command line snippet of figure x. Bin-utils 2p29 took about 5 mins 30 seconds to build:
| |
− |
| |
− |
| |
− | <i>Figure x - looking at results of LFS first build step, building bin-utils 2.29:</i>
| |
− |
| |
− | <pre>
| |
− |
| |
− | lfs@localhost:~$ ls /tools
| |
− | bin i686-lfs-linux-gnu share
| |
− |
| |
− | ted@localhost:~$ ls /tools/bin
| |
− | i686-lfs-linux-gnu-addr2line i686-lfs-linux-gnu-elfedit i686-lfs-linux-gnu-nm i686-lfs-linux-gnu-readelf
| |
− | i686-lfs-linux-gnu-ar i686-lfs-linux-gnu-gprof i686-lfs-linux-gnu-objcopy i686-lfs-linux-gnu-size
| |
− | i686-lfs-linux-gnu-as i686-lfs-linux-gnu-ld i686-lfs-linux-gnu-objdump i686-lfs-linux-gnu-strings
| |
− | i686-lfs-linux-gnu-c++filt i686-lfs-linux-gnu-ld.bfd i686-lfs-linux-gnu-ranlib i686-lfs-linux-gnu-strip
| |
− |
| |
− | lfs@localhost:~$ ls /tools/share
| |
− | info man
| |
− |
| |
− | lfs@localhost:~$ ls /tools/i686-lfs-linux-gnu/
| |
− | bin lib
| |
− |
| |
− | lfs@localhost:~$ ls /tools/i686-lfs-linux-gnu/lib
| |
− | ldscripts
| |
− |
| |
− | lfs@localhost:~$ ls /tools/i686-lfs-linux-gnu/lib/ldscripts/
| |
− | elf32_x86_64.x elf32_x86_64.xdw elf32_x86_64.xsw elf_i386.xc elf_i386.xr elf_i386.xw elf_iamcu.xdc elf_iamcu.xsc i386linux.xbn
| |
− | elf32_x86_64.xbn elf32_x86_64.xn elf32_x86_64.xu elf_i386.xd elf_i386.xs elf_iamcu.x elf_iamcu.xdw elf_iamcu.xsw i386linux.xn
| |
− | elf32_x86_64.xc elf32_x86_64.xr elf32_x86_64.xw elf_i386.xdc elf_i386.xsc elf_iamcu.xbn elf_iamcu.xn elf_iamcu.xu i386linux.xr
| |
− | elf32_x86_64.xd elf32_x86_64.xs elf_i386.x elf_i386.xdw elf_i386.xsw elf_iamcu.xc elf_iamcu.xr elf_iamcu.xw i386linux.xu
| |
− | elf32_x86_64.xdc elf32_x86_64.xsc elf_i386.xbn elf_i386.xn elf_i386.xu elf_iamcu.xd elf_iamcu.xs i386linux.x
| |
− |
| |
− | lfs@localhost:~$ ls /tools/i686-lfs-linux-gnu/bin
| |
− | ar as ld ld.bfd nm objcopy objdump ranlib readelf strip
| |
− |
| |
− | lfs@localhost:~$ /tools/i686-lfs-linux-gnu/bin/ar --version
| |
− | GNU ar (GNU Binutils) 2.29
| |
− | Copyright (C) 2017 Free Software Foundation, Inc.
| |
− | This program is free software; you may redistribute it under the terms of
| |
− | the GNU General Public License version 3 or (at your option) any later version.
| |
− | This program has absolutely no warranty.
| |
− |
| |
− | lfs@localhost:~$
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] <!--LFS 8.1--> chapter 6.2 - preparing virtual kernel file systems ===
| |
− |
| |
− | <br />
| |
− | Specific mount invocations mentioned in chapter 6.2. From section 6.2.2 the first <code>mount</code> invocation:
| |
− |
| |
− |
| |
− | mount -v --bind /dev $LFS/dev
| |
− |
| |
− |
| |
− | And from section 6.2.3 the remaining <code>mount</code> invocations:
| |
− |
| |
− |
| |
− | mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
| |
− | mount -vt proc proc $LFS/proc
| |
− | mount -vt sysfs sysfs $LFS/sys
| |
− | mount -vt tmpfs tmpfs $LFS/run
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | Ted's test of cut-and-paste text to permit running all five mount invocations with one text copy action . . . Ted noting the backslashes for line continuation don't work, and thinking on this syntax it makes sense that we need separate each mount invocation, as these are complete commands. Otherwise the second `mount` is parsed by the shell as an rgument to the first appearance of `mount` . . .
| |
− |
| |
− | <pre>
| |
− |
| |
− | mount -v --bind /dev $LFS/dev ;\
| |
− | mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620 ;\
| |
− | mount -vt proc proc $LFS/proc ;\
| |
− | mount -vt sysfs sysfs $LFS/sys ;\
| |
− | mount -vt tmpfs tmpfs $LFS/run
| |
− |
| |
− | </pre>
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] <!--LFS 8.1--> chapter 6.4 - entering the chroot environment ===
| |
− |
| |
− | <br />
| |
− | Taken directly from the chapter:
| |
− |
| |
− | <pre>
| |
− |
| |
− | chroot "$LFS" /tools/bin/env -i \
| |
− | HOME=/root \
| |
− | TERM="$TERM" \
| |
− | PS1='\u:\w\$ ' \
| |
− | PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
| |
− | /tools/bin/bash --login +h
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] <!--LFS 8.1--> chapter 5.5 - gcc first pass ===
| |
− |
| |
− | Chapter 5.5, building gcc first pass, took about sixty three (63) minutes:
| |
− |
| |
− | <pre>
| |
− |
| |
− | .
| |
− | .
| |
− | .
| |
− | make[3]: Leaving directory `/mnt/lfs/sources/gcc-7.2.0/build/i686-lfs-linux-gnu/libgcc'
| |
− | make[2]: Leaving directory `/mnt/lfs/sources/gcc-7.2.0/build/i686-lfs-linux-gnu/libgcc'
| |
− | make[1]: Leaving directory `/mnt/lfs/sources/gcc-7.2.0/build'
| |
− |
| |
− | real 63m2.166s
| |
− | user 53m41.453s
| |
− | sys 3m11.888s
| |
− | lfs@localhost:/mnt/lfs/sources/gcc-7.2.0/build$
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Time to build glibc:
| |
− |
| |
− | <pre>
| |
− |
| |
− | .
| |
− | .
| |
− | .
| |
− | -lgcc `i686-lfs-linux-gnu-gcc --print-file-name=crtend.o` /mnt/lfs/sources/glibc-2.26/build/csu/crtn.o
| |
− | make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.26/elf'
| |
− | make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.26'
| |
− |
| |
− | real 41m19.981s
| |
− | user 32m31.794s
| |
− | sys 5m49.582s
| |
− |
| |
− | lfs@localhost:/mnt/lfs/sources/glibc-2.26/build$
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Linux From Scratch chapter 5 has thirty seven sections. There was not a pressing need or a lot of details Ted found worth noting in most of these sections, the majority of which are dedicated to packages built in the first package building phase of LFS target system creation. These packages are all built as the user 'lfs', and with the environment variable <code>$LFS</code> set, in our case Ted's case, to <code>/mnt/lfs</code>.
| |
− |
| |
− | An important instruction to follow from the last section of chapter 5, section 5.37:
| |
− |
| |
− |
| |
− | " Note
| |
− |
| |
− | The commands in the remainder of this book must be performed while logged in as user root and no longer as user lfs. Also, double check that $LFS is set in root's environment."
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.5 - create new system directories ===
| |
− |
| |
− | Some captured terminal work, following steps in LFS 8.1 book, chapter 6.5:
| |
− |
| |
− | <i>Figure x - creating some of first directories in new LFS system, following chroot . . .</i>
| |
− |
| |
− | <pre>
| |
− |
| |
− | I have no name!:/# ls
| |
− | dev lost+found proc run sources sys tools
| |
− |
| |
− | I have no name!:/# mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
| |
− | mkdir: created directory '/bin'
| |
− | mkdir: created directory '/boot'
| |
− | mkdir: created directory '/etc'
| |
− | mkdir: created directory '/etc/opt'
| |
− | mkdir: created directory '/etc/sysconfig'
| |
− | mkdir: created directory '/home'
| |
− | mkdir: created directory '/lib'
| |
− | mkdir: created directory '/lib/firmware'
| |
− | mkdir: created directory '/mnt'
| |
− | mkdir: created directory '/opt'
| |
− |
| |
− | I have no name!:/# mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
| |
− | mkdir: created directory '/media'
| |
− | mkdir: created directory '/media/floppy'
| |
− | mkdir: created directory '/media/cdrom'
| |
− | mkdir: created directory '/sbin'
| |
− | mkdir: created directory '/srv'
| |
− | mkdir: created directory '/var'
| |
− |
| |
− | I have no name!:/# install -dv -m 0750 /root
| |
− | install: creating directory '/root'
| |
− |
| |
− | I have no name!:/# install -dv -m 1777 /tmp /var/tmp
| |
− | install: creating directory '/tmp'
| |
− | install: creating directory '/var/tmp'
| |
− |
| |
− | I have no name!:/# mkdir -pv /usr/{,local}{bin,include,lib,sbin,src}
| |
− | mkdir: created directory '/usr'
| |
− | mkdir: created directory '/usr/bin'
| |
− | mkdir: created directory '/usr/include'
| |
− | mkdir: created directory '/usr/lib'
| |
− | mkdir: created directory '/usr/sbin'
| |
− | mkdir: created directory '/usr/src'
| |
− | mkdir: created directory '/usr/localbin'
| |
− | mkdir: created directory '/usr/localinclude'
| |
− | mkdir: created directory '/usr/locallib'
| |
− | mkdir: created directory '/usr/localsbin'
| |
− | mkdir: created directory '/usr/localsrc'
| |
− |
| |
− | I have no name!:/#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | LFS 8.1 book explains that the "I have no name!" results from there not yet being a <code>/etc/passwd</code> file in the new LFS system. Continuing the terminal capture to illustrate bash shell's pattern expansion from curly braced text:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | I have no name!:/# mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
| |
− | mkdir: created directory '/usr/share'
| |
− | mkdir: created directory '/usr/share/color'
| |
− | mkdir: created directory '/usr/share/dict'
| |
− | mkdir: created directory '/usr/share/doc'
| |
− | mkdir: created directory '/usr/share/info'
| |
− | mkdir: created directory '/usr/share/locale'
| |
− | mkdir: created directory '/usr/share/man'
| |
− | mkdir: created directory '/usr/local'
| |
− | mkdir: created directory '/usr/local/share'
| |
− | mkdir: created directory '/usr/local/share/color'
| |
− | mkdir: created directory '/usr/local/share/dict'
| |
− | mkdir: created directory '/usr/local/share/doc'
| |
− | mkdir: created directory '/usr/local/share/info'
| |
− | mkdir: created directory '/usr/local/share/locale'
| |
− | mkdir: created directory '/usr/local/share/man'
| |
− |
| |
− | I have no name!:/# mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
| |
− | mkdir: created directory '/usr/share/misc'
| |
− | mkdir: created directory '/usr/share/terminfo'
| |
− | mkdir: created directory '/usr/share/zoneinfo'
| |
− | mkdir: created directory '/usr/local/share/misc'
| |
− | mkdir: created directory '/usr/local/share/terminfo'
| |
− | mkdir: created directory '/usr/local/share/zoneinfo'
| |
− |
| |
− | I have no name!:/# mkdir -v /usr/libexec
| |
− | mkdir: created directory '/usr/libexec'
| |
− |
| |
− | I have no name!:/# mkdir -pv /usr/{,local/}share/man/man{1..8}
| |
− | mkdir: created directory '/usr/share/man/man1'
| |
− | mkdir: created directory '/usr/share/man/man2'
| |
− | mkdir: created directory '/usr/share/man/man3'
| |
− | mkdir: created directory '/usr/share/man/man4'
| |
− | mkdir: created directory '/usr/share/man/man5'
| |
− | mkdir: created directory '/usr/share/man/man6'
| |
− | mkdir: created directory '/usr/share/man/man7'
| |
− | mkdir: created directory '/usr/share/man/man8'
| |
− | mkdir: created directory '/usr/local/share/man/man1'
| |
− | mkdir: created directory '/usr/local/share/man/man2'
| |
− | mkdir: created directory '/usr/local/share/man/man3'
| |
− | mkdir: created directory '/usr/local/share/man/man4'
| |
− | mkdir: created directory '/usr/local/share/man/man5'
| |
− | mkdir: created directory '/usr/local/share/man/man6'
| |
− | mkdir: created directory '/usr/local/share/man/man7'
| |
− | mkdir: created directory '/usr/local/share/man/man8'
| |
− | I have no name!:/#
| |
− |
| |
− | I have no name!:/# mkdir -v /var/{log,mail,spool}
| |
− | mkdir: created directory '/var/log'
| |
− | mkdir: created directory '/var/mail'
| |
− | mkdir: created directory '/var/spool'
| |
− |
| |
− | I have no name!:/# ln -sv /run /var/run
| |
− | '/var/run' -> '/run'
| |
− |
| |
− | I have no name!:/# ln -sv /run/lock /var/lock
| |
− | '/var/lock' -> '/run/lock'
| |
− |
| |
− | I have no name!:/# mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}
| |
− | mkdir: created directory '/var/opt'
| |
− | mkdir: created directory '/var/cache'
| |
− | mkdir: created directory '/var/lib'
| |
− | mkdir: created directory '/var/lib/color'
| |
− | mkdir: created directory '/var/lib/misc'
| |
− | mkdir: created directory '/var/lib/locate'
| |
− | mkdir: created directory '/var/local'
| |
− |
| |
− | I have no name!:/#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.6 - create essential files and syminks ===
| |
− | <br />
| |
− | The purpose of the following symbolic links are explained in [http://www.linuxfromscratch.org/lfs/view/stable/chapter06/createfiles.html LFS 8.1 book chapter 6.6]:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | I have no name!:/# # LFS book 8.1, chapter 6.6 . . .
| |
− |
| |
− | I have no name!:/# ln -sv /tools/bin/{bash,cat,dd,echo,ln,pwd,rm,stty} /bin
| |
− | '/bin/bash' -> '/tools/bin/bash'
| |
− | '/bin/cat' -> '/tools/bin/cat'
| |
− | '/bin/dd' -> '/tools/bin/dd'
| |
− | '/bin/echo' -> '/tools/bin/echo'
| |
− | '/bin/ln' -> '/tools/bin/ln'
| |
− | '/bin/pwd' -> '/tools/bin/pwd'
| |
− | '/bin/rm' -> '/tools/bin/rm'
| |
− | '/bin/stty' -> '/tools/bin/stty'
| |
− |
| |
− | I have no name!:/# ln -sv /tools/bin/{install,perl} /usr/bin
| |
− | '/usr/bin/install' -> '/tools/bin/install'
| |
− | '/usr/bin/perl' -> '/tools/bin/perl'
| |
− |
| |
− | I have no name!:/# ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
| |
− | '/usr/lib/libgcc_s.so' -> '/tools/lib/libgcc_s.so'
| |
− | '/usr/lib/libgcc_s.so.1' -> '/tools/lib/libgcc_s.so.1'
| |
− |
| |
− | I have no name!:/# ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib
| |
− | '/usr/lib/libstdc++.a' -> '/tools/lib/libstdc++.a'
| |
− | '/usr/lib/libstdc++.so' -> '/tools/lib/libstdc++.so'
| |
− | '/usr/lib/libstdc++.so.6' -> '/tools/lib/libstdc++.so.6'
| |
− |
| |
− | I have no name!:/# sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la
| |
− |
| |
− | I have no name!:/# ln -sv bash /bin/sh
| |
− | '/bin/sh' -> 'bash'
| |
− |
| |
− | I have no name!:/#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | === [[#top|^]] Uses of patch during LFS 8.1 chapter 5 ===
| |
− |
| |
− | <br />
| |
− | Ted noting that as of 2017 later summer, among the Linux From Scratch 8.1 packages there are six which download with associated patch files. These patches are important to apply after un-archiving given package, and before preparing to compile given package:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | root:/sources# # Working in LFS 8.1 chapter 6.22, Installation of Pkg-config
| |
− |
| |
− | root:/sources# ls *.patch
| |
− | bash-4.4-upstream_fixes-1.patch coreutils-8.27-i18n-1.patch kbd-2.0.4-backspace-1.patch
| |
− | bzip2-1.0.6-install_docs-1.patch glibc-2.26-fhs-1.patch sysvinit-2.88dsf-consolidated-1.patch
| |
− |
| |
− | root:/sources#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Uses of patch during LFS 8.1 chapter 5 system build steps:
| |
− |
| |
− | <pre>
| |
− |
| |
− | lfs@localhost:/mnt/lfs$ history | grep patch
| |
− | 31 ls *patch
| |
− | 36 vi glibc-2.26-fhs-1.patch
| |
− | 45 patch -Np1 -i ../glibc-2.26-fhs-1.patch
| |
− | 194 history | grep patch
| |
− | 195 patch -Np1 -i ../bash-4.4-upstream_fixes-1.patch
| |
− | 218 history | grep patch
| |
− | 219 patch -Np1 -i ../bzip2-1.0.6-install_docs-1.patch
| |
− | 228 patch -Np1 -i ../coreutils-8.27-i18n-1.patch
| |
− | 364 unxz patch-2.7.5.tar.xz
| |
− | 365 tar xvf patch-2.7.5.tar
| |
− | 367 cd patch-2.7.5
| |
− | 373 mv patch-2.7.5 z--set-aside/
| |
− | 501 history | grep patch
| |
− |
| |
− | lfs@localhost:/mnt/lfs$
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] <i> Aside: LFS 8.1 chapter 6.9 - glibc-2.26 programs and libraries</i> ===
| |
− |
| |
− | Really interesting section of the LFS 8.1 book here, chapter 6.9, which describes some of the utilities which come with GNU C library project. Quoting this book these utilities include "catchsegv, gencat, getconf, getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, makedb, mtrace, nscd, pldd, sln, sotruss, sprof, tzselect, xtrace, zdump, and zic".
| |
− |
| |
− |
| |
− | * [http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html glibc-2.26 programs and libraries]
| |
− |
| |
− |
| |
− | Here is a snippet of last lines of `make check` on glibc-2.26 package:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | scripts/merge-test-results.sh -t /sources/glibc-2.26/build/ subdir-tests.sum \
| |
− | . argp assert catgets conform crypt csu ctype debug dirent dlfcn elf gmon gnulib grp gshadow hesiod iconv iconvdata inet intl io libidn libio locale localedata login malloc manual math mathvec misc nis nptl nptl_db nscd nss po posix pwd resolv resource rt setjmp shadow signal socket stdio-common stdlib streams string sunrpc support sysvipc termios time timezone wcsmbs wctype \
| |
− | > /sources/glibc-2.26/build/tests.sum
| |
− | XPASS: elf/tst-protected1a
| |
− | XPASS: elf/tst-protected1b
| |
− | UNSUPPORTED: io/tst-open-tmpfile
| |
− | 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
| |
− | FAIL: posix/tst-getaddrinfo4
| |
− | FAIL: posix/tst-getaddrinfo5
| |
− | UNSUPPORTED: stdlib/tst-getrandom
| |
− | Summary of test results:
| |
− | 2 FAIL
| |
− | 4108 PASS
| |
− | 8 UNSUPPORTED
| |
− | 29 XFAIL
| |
− | 2 XPASS
| |
− | make[1]: *** [Makefile:304: tests] Error 1
| |
− | make[1]: Leaving directory '/sources/glibc-2.26'
| |
− | make: *** [Makefile:9: check] Error 2
| |
− |
| |
− | real 116m41.448s
| |
− | user 72m16.311s
| |
− | sys 21m0.223s
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.10 - adjusting toolchain, respecting new glibc ===
| |
− |
| |
− | Chapter 6.10 -
| |
− |
| |
− | <pre>
| |
− |
| |
− | root:/sources/glibc-2.26/build# mv -v /tools/bin/{ld,ld-old}
| |
− | '/tools/bin/ld' -> '/tools/bin/ld-old'
| |
− |
| |
− | root:/sources/glibc-2.26/build# mv -v /tools/$(uname -m)-pc-linux-gnu/bin/{ld,ld-old}
| |
− | '/tools/i686-pc-linux-gnu/bin/ld' -> '/tools/i686-pc-linux-gnu/bin/ld-old'
| |
− |
| |
− | root:/sources/glibc-2.26/build# mv -v /tools/bin/{ld-new,ld}
| |
− | '/tools/bin/ld-new' -> '/tools/bin/ld'
| |
− |
| |
− | root:/sources/glibc-2.26/build# ln -sv /tools/bin/ld /tools/$(uname -m)-pc-linux-gnu/bin/ld
| |
− | '/tools/i686-pc-linux-gnu/bin/ld' -> '/tools/bin/ld'
| |
− |
| |
− | root:/sources/glibc-2.26/build#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.16 - <font color="red">binutils-2.29 requires 4.2 GB disk space!</font> ===
| |
− |
| |
− | <br />
| |
− | Ok we've run into a too small partition for our root LFS file system. 7.6GB was not sufficient, though in an early chapter (chapter 2 or 3 of the LFS 8.1 book) Ted recalls there being word that a partition between five (5) and ten (10) GB would typically be sufficient to compile and install all Linux From Scratch programs. Ted now looking to re-partitioning software options under Linux . . .
| |
− |
| |
− | Ok, got the partition resized, and then the file system on the root LFS partition resized too. Took a few notes and command line captures, which are in the wiki page titled [[resize_partition_and_file_system|Resize partition and file system]].
| |
− |
| |
− | Moving on and building binutils-2.29, found two tests to fail during the mandatory `make -k check` step. Failures noted here in case there are problems in later steps of the LFS 8.1 system build process:
| |
− |
| |
− | <pre>
| |
− |
| |
− | make check-TESTS
| |
− | make[5]: Entering directory '/sources/binutils-2.29/build/gold/testsuite'
| |
− | make[6]: Entering directory '/sources/binutils-2.29/build/gold/testsuite'
| |
− | PASS: incremental_test.sh
| |
− | PASS: gc_comdat_test.sh
| |
− | PASS: gc_tls_test.sh
| |
− | PASS: gc_orphan_section_test.sh
| |
− | PASS: pr14265.sh
| |
− | PASS: pr20717.sh
| |
− | PASS: gc_dynamic_list_test.sh
| |
− | PASS: icf_test.sh
| |
− | PASS: icf_keep_unique_test.sh
| |
− | PASS: icf_safe_test.sh
| |
− | PASS: icf_safe_pie_test.sh
| |
− | FAIL: icf_safe_so_test.sh
| |
− | PASS: final_layout.sh
| |
− | PASS: text_section_grouping.sh
| |
− | PASS: section_sorting_name.sh
| |
− | PASS: icf_preemptible_functions_test.sh
| |
− | PASS: icf_string_merge_test.sh
| |
− | PASS: icf_sht_rel_addend_test.sh
| |
− | PASS: merge_string_literals.sh
| |
− | PASS: eh_test_2.sh
| |
− | PASS: two_file_shared.sh
| |
− | PASS: weak_plt.sh
| |
− | PASS: copy_test_protected.sh
| |
− | PASS: tls_pie_test.sh
| |
− | PASS: i386_mov_to_lea.sh
| |
− | PASS: file_in_many_sections_test.sh
| |
− | FAIL: debug_msg.sh
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Ted noting that the second failure is noted in LFS 8.1 as a known failure, and doesn't break the overall process or target system building.
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.20, gcc-7-2-.0 ===
| |
− |
| |
− |
| |
− | Ted noting that after compiling gcc using the new LFS tools from chapter 5, a check that the new gcc of chapter 6 sees correct header files gives slightly lesser results than what's in chapter 6.20. The book and chapter say to expect,
| |
− |
| |
− |
| |
− | <pre>
| |
− | #include <...> search starts here:
| |
− | /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include
| |
− | /usr/local/include
| |
− | /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include-fixed
| |
− | /usr/include
| |
− | </pre>
| |
− |
| |
− |
| |
− | But on our i686 host Ted obtains from the same post-gcc-build test:
| |
− |
| |
− |
| |
− | <pre>
| |
− | root:/sources/gcc-7.2.0/build# grep -B4 '^ /usr/include' dummy.log
| |
− | #include "..." search starts here:
| |
− | #include <...> search starts here:
| |
− | /usr/lib/gcc/i686-pc-linux-gnu/7.2.0/include
| |
− | /usr/lib/gcc/i686-pc-linux-gnu/7.2.0/include-fixed
| |
− | /usr/include
| |
− | root:/sources/gcc-7.2.0/build#
| |
− | </pre>
| |
− |
| |
− |
| |
− | We're missing <code>/usr/local/include</code> among gcc's search paths. Not sure why, nor whether this is a deal breaker going forward with the LFS 8.1 build - TMH
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.21 ===
| |
− |
| |
− | To better understand Posix regular expressions, Ted to return and look at differences between old and amended versions of bzip2 makefile here in LFS 8.1 chapter 6.21 . . .
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | root:/sources/bzip2-1.0.6# patch -Np1 -i ../bzip2-1.0.6-install_docs-1.patch
| |
− | patching file Makefile
| |
− | root:/sources/bzip2-1.0.6# sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
| |
− | root:/sources/bzip2-1.0.6# cp Makefile makefile-before
| |
− | root:/sources/bzip2-1.0.6# sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
| |
− | root:/sources/bzip2-1.0.6# diff makefile-before Makefile
| |
− | Makefile Makefile-libbz2_so
| |
− | root:/sources/bzip2-1.0.6# diff makefile-before Makefile
| |
− | 75,76c75,76
| |
− | < if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
| |
− | < if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
| |
− | ---
| |
− | > if ( test ! -d $(PREFIX)/share/man ) ; then mkdir -p $(PREFIX)/share/man ; fi
| |
− | > if ( test ! -d $(PREFIX)/share/man/man1 ) ; then mkdir -p $(PREFIX)/share/man/man1 ; fi
| |
− | 87,88c87,88
| |
− | < cp -f bzip2.1 $(PREFIX)/man/man1
| |
− | < chmod a+r $(PREFIX)/man/man1/bzip2.1
| |
− | ---
| |
− | > cp -f bzip2.1 $(PREFIX)/share/man/man1
| |
− | > chmod a+r $(PREFIX)/share/man/man1/bzip2.1
| |
− | 103,110c103,110
| |
− | < cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
| |
− | < chmod a+r $(PREFIX)/man/man1/bzgrep.1
| |
− | < chmod a+r $(PREFIX)/man/man1/bzmore.1
| |
− | < chmod a+r $(PREFIX)/man/man1/bzdiff.1
| |
− | < echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
| |
− | < echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
| |
− | < echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
| |
− | < echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
| |
− | ---
| |
− | > cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/share/man/man1
| |
− | > chmod a+r $(PREFIX)/share/man/man1/bzgrep.1
| |
− | > chmod a+r $(PREFIX)/share/man/man1/bzmore.1
| |
− | > chmod a+r $(PREFIX)/share/man/man1/bzdiff.1
| |
− | > echo ".so man1/bzgrep.1" > $(PREFIX)/share/man/man1/bzegrep.1
| |
− | > echo ".so man1/bzgrep.1" > $(PREFIX)/share/man/man1/bzfgrep.1
| |
− | > echo ".so man1/bzmore.1" > $(PREFIX)/share/man/man1/bzless.1
| |
− | > echo ".so man1/bzdiff.1" > $(PREFIX)/share/man/man1/bzcmp.1
| |
− | root:/sources/bzip2-1.0.6#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] LFS 8.1 chapter 6.28, shadow-4.5 . . . ===
| |
− |
| |
− |
| |
− | Some notes on configuring <code>shadow-4.5</code>. The following snippet is a summary report from running <code>`./configure --sysconfdir=/etc --with-group-name-max-length=32 --with-libcrack`</code> in the <code>shadow-4.5</code> sources directory:
| |
− | <pre>
| |
− |
| |
− | config.status: executing po-directories commands
| |
− | config.status: creating po/POTFILES
| |
− | config.status: creating po/Makefile
| |
− |
| |
− | shadow will be compiled with the following features:
| |
− |
| |
− | auditing support: no
| |
− | CrackLib support: yes
| |
− | PAM support: no
| |
− | SELinux support: no
| |
− | ACL support: yes
| |
− | Extended Attributes support: yes
| |
− | tcb support (incomplete): no
| |
− | shadow group support: yes
| |
− | S/Key support: no
| |
− | SHA passwords encryption: yes
| |
− | nscd support: yes
| |
− | subordinate IDs support: yes
| |
− |
| |
− | root:/sources/shadow-4.5#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === --- break --- ===
| |
− |
| |
− | === [[#top|^]] standing as of chapter 6.32 - flex-2.6.4 . . . ===
| |
− |
| |
− | <br />
| |
− | 2017-10-04 - Ted noting that there are mixed ownerships on the most recently installed packages of the LFS build underway and documented here . . .
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | root@localhost:/mnt/lfs/sources/z--set-aside# ls -l
| |
− | total 92
| |
− | drwxr-xr-x 16 root root 4096 Sep 29 11:04 acl-2.2.52
| |
− | drwxr-xr-x 16 root root 4096 Sep 29 10:18 attr-2.4.47
| |
− | drwxr-xr-x 19 root root 4096 Sep 27 14:53 binutils-2.29
| |
− | drwxr-xr-x 14 505 dialout 4096 Sep 29 14:03 bison-3.0.4
| |
− | drwxr-xr-x 2 root root 4096 Sep 29 09:37 bzip2-1.0.6
| |
− | drwxrwxr-x 9 500 500 4096 Sep 29 13:16 cracklib-2.9.6
| |
− | drwxr-xr-x 8 root root 4096 Sep 22 13:08 file-5.31
| |
− | drwxrwxr-x 11 veris veris 4096 Sep 29 14:09 flex-2.6.4
| |
− | drwxrwxr-x 70 root root 4096 Sep 22 10:48 glibc-2.26
| |
− | drwxr-xr-x 16 lfs root 4096 Sep 28 07:10 gmp-6.1.2
| |
− | drwxr-xr-x 2 root root 4096 Sep 29 13:58 iana-etc-2.30
| |
− | drwxr-xr-x 7 root root 4096 Sep 29 11:07 libcap-2.25
| |
− | drwxrwxr-x 10 root root 4096 Sep 22 13:15 m4-1.4.18
| |
− | drwxr-xr-x 11 veris veris 4096 Jul 13 22:28 man-pages-4.12
| |
− | drwxr-xr-x 6 lfs lfs 4096 Sep 28 07:36 mpc-1.0.3
| |
− | drwxr-xr-x 9 veris veris 4096 Sep 28 07:26 mpfr-3.1.5
| |
− | drwxr-xr-x 17 lfs 999 4096 Sep 29 10:12 ncurses-6.0
| |
− | drwxrwxr-x 6 veris veris 4096 Sep 29 10:02 pkg-config-0.29.2
| |
− | drwxr-xr-x 8 veris veris 4096 Sep 29 13:56 psmisc-23.1
| |
− | drwxrwxr-x 6 286 dialout 4096 Sep 22 13:10 readline-7.0
| |
− | drwxr-xr-x 10 root root 4096 Sep 29 11:19 sed-4.4
| |
− | drwxrwxr-x 10 veris veris 4096 Sep 29 13:28 shadow-4.5
| |
− | drwxr-xr-x 14 501 dialout 4096 Sep 22 13:06 zlib-1.2.11
| |
− |
| |
− | root@localhost:/mnt/lfs/sources/z--set-aside#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− | Was simply looking for latest package compiled and installed, following LFS book 8.1. But instead found permissions to differ. Perhaps some of the installed packages reflect those originally downloaded by the 'lfs' user. For some reason it was necessary to download some packages again after remounting the LFS partition and resuming work following a power-down event over two days' time . . .
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === --- break --- ===
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] chapter 6.35 - libtool-2.4.6 ===
| |
− |
| |
− | <br />
| |
− | Tail end of results from building libtool-2.4.6:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | .
| |
− | .
| |
− | .
| |
− | sysroot tests
| |
− |
| |
− | 166: -L=.../lib -l skipped (sysroot.at:203)
| |
− | 167: -L SYSROOT/.../lib -l skipped (sysroot.at:204)
| |
− | 168: SYSROOT/.../*.la skipped (sysroot.at:205)
| |
− |
| |
− | Libtool stress test.
| |
− |
| |
− | 169: Link option thorough search test ok
| |
− | 170: Run tests with low max_cmd_len ok
| |
− |
| |
− | ## ------------- ##
| |
− | ## Test results. ##
| |
− | ## ------------- ##
| |
− |
| |
− | ERROR: 140 tests were run,
| |
− | 65 failed (60 expected failures).
| |
− | 30 tests were skipped.
| |
− | ## -------------------------- ##
| |
− | ## testsuite.log was created. ##
| |
− | ## -------------------------- ##
| |
− |
| |
− | Please send `tests/testsuite.log' and all information you think might help:
| |
− |
| |
− | To: <bug-libtool@gnu.org>
| |
− | Subject: [GNU Libtool 2.4.6] testsuite: 123 124 125 126 130 failed
| |
− |
| |
− | You may investigate any problem if you feel able to do so, in which
| |
− | case the test suite provides a good starting point. Its output may
| |
− | be found below `tests/testsuite.dir'.
| |
− |
| |
− | make[3]: *** [Makefile:2459: check-local] Error 1
| |
− | make[3]: Leaving directory '/sources/libtool-2.4.6'
| |
− | make[2]: *** [Makefile:1897: check-am] Error 2
| |
− | make[2]: Leaving directory '/sources/libtool-2.4.6'
| |
− | make[1]: *** [Makefile:1606: check-recursive] Error 1
| |
− | make[1]: Leaving directory '/sources/libtool-2.4.6'
| |
− | make: *** [Makefile:1899: check] Error 2
| |
− | root:/sources/libtool-2.4.6#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] chapter 6.40 - perl-5.26.0 ===
| |
− |
| |
− | <br />
| |
− | Tail output from running `make -k test` on perl-5.26.0:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | lib/utf8 ....................................................... ok
| |
− | lib/vars ....................................................... ok
| |
− | lib/vars_carp .................................................. ok
| |
− | lib/vmsish ..................................................... ok
| |
− | lib/warnings ................................................... ok
| |
− | Failed 9 tests out of 2452, 99.63% okay.
| |
− | ../cpan/Compress-Raw-Zlib/t/01version.t
| |
− | ../cpan/Compress-Raw-Zlib/t/02zlib.t
| |
− | ../cpan/Compress-Raw-Zlib/t/18lvalue.t
| |
− | ../cpan/Compress-Raw-Zlib/t/19nonpv.t
| |
− | ../cpan/IO-Compress/t/cz-01version.t
| |
− | ../cpan/IO-Compress/t/cz-03zlib-v1.t
| |
− | ../cpan/IO-Compress/t/cz-06gzsetp.t
| |
− | ../cpan/IO-Compress/t/cz-08encoding.t
| |
− | ../cpan/IO-Compress/t/cz-14gzopen.t
| |
− | ### Since not all tests were successful, you may want to run some of
| |
− | ### them individually and examine any diagnostic messages they produce.
| |
− | ### See the INSTALL document's section on "make test".
| |
− | ### You have a good chance to get more information by running
| |
− | ### ./perl harness
| |
− | ### in the 't' directory since most (>=80%) of the tests succeeded.
| |
− | ### You may have to set your dynamic library search path,
| |
− | ### LD_LIBRARY_PATH, to point to the build directory:
| |
− | ### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
| |
− | ### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd t; ./perl harness
| |
− | ### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
| |
− | ### for csh-style shells, like tcsh; or for traditional/modern
| |
− | ### Bourne-style shells, like bash, ksh, and zsh, respectively.
| |
− | Elapsed: 2050 sec
| |
− | u=48.13 s=8.22 cu=1549.23 cs=94.46 scripts=2452 tests=1243855
| |
− | make: *** [makefile:792: test] Error 1
| |
− |
| |
− | real 34m40.210s
| |
− | user 27m2.669s
| |
− | sys 1m45.343s
| |
− | root:/sources/perl-5.26.0#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] chapter 6.43 - autoconf-2.69 ===
| |
− |
| |
− | <bv />
| |
− | Tail end of output from running `make check` on autoconf-2.69 project build:
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | .
| |
− | .
| |
− | .
| |
− |
| |
− | 500: AC_HAVE_LIBRARY ok
| |
− |
| |
− | Compatibility with other tools.
| |
− |
| |
− | 501: Libtool FAILED (foreign.at:61)
| |
− | 502: shtool ok
| |
− |
| |
− | Autoscan.
| |
− |
| |
− | 503: autoscan FAILED (autoscan.at:44)
| |
− |
| |
− | ## ------------- ##
| |
− | ## Test results. ##
| |
− | ## ------------- ##
| |
− |
| |
− | ERROR: 450 tests were run,
| |
− | 6 failed (4 expected failures).
| |
− | 53 tests were skipped.
| |
− | ## -------------------------- ##
| |
− | ## testsuite.log was created. ##
| |
− | ## -------------------------- ##
| |
− |
| |
− | Please send `tests/testsuite.log' and all information you think might help:
| |
− |
| |
− | To: <bug-autoconf@gnu.org>
| |
− | Subject: [GNU Autoconf 2.69] testsuite: 501 503 failed
| |
− |
| |
− | You may investigate any problem if you feel able to do so, in which
| |
− | case the test suite provides a good starting point. Its output may
| |
− | be found below `tests/testsuite.dir'.
| |
− |
| |
− | make[3]: *** [Makefile:596: check-local] Error 1
| |
− | make[3]: Leaving directory '/sources/autoconf-2.69/tests'
| |
− | make[2]: *** [Makefile:411: check-am] Error 2
| |
− | make[2]: Leaving directory '/sources/autoconf-2.69/tests'
| |
− | make[1]: *** [Makefile:357: check-recursive] Error 1
| |
− | make[1]: Leaving directory '/sources/autoconf-2.69'
| |
− | make: *** [Makefile:665: check] Error 2
| |
− |
| |
− | real 25m15.337s
| |
− | user 12m47.136s
| |
− | sys 2m59.419s
| |
− | root:/sources/autoconf-2.69#
| |
− |
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] chapter 6.44 - automake-1.15 ===
| |
− |
| |
− | <br />
| |
− | Tail of test results testing automake-1.15:
| |
− | <pre>
| |
− |
| |
− | .
| |
− | .
| |
− | .
| |
− | PASS: t/depcomp-lt-auto.tap 80 - [absolute VPATH, nostatic] simple make
| |
− | PASS: t/depcomp-lt-auto.tap 81 - [absolute VPATH, nostatic] clean & rebuild
| |
− | PASS: t/depcomp-lt-auto.tap 82 - [absolute VPATH, nostatic] generated Plo files look correct
| |
− | PASS: t/depcomp-lt-auto.tap 83 - [absolute VPATH, nostatic] dependency tracking works
| |
− | PASS: t/depcomp-lt-auto.tap 84 - [absolute VPATH, nostatic] make distclean
| |
− | ============================================================================
| |
− | Testsuite summary for GNU Automake 1.15.1
| |
− | ============================================================================
| |
− | # TOTAL: 2901
| |
− | # PASS: 2704
| |
− | # SKIP: 154
| |
− | # XFAIL: 41
| |
− | # FAIL: 2
| |
− | # XPASS: 0
| |
− | # ERROR: 0
| |
− | ============================================================================
| |
− | See ./test-suite.log
| |
− | Please report to bug-automake@gnu.org
| |
− | ============================================================================
| |
− | make[2]: *** [Makefile:3029: test-suite.log] Error 1
| |
− | make[2]: Leaving directory '/sources/automake-1.15.1'
| |
− | make[1]: *** [Makefile:3137: check-TESTS] Error 2
| |
− | make[1]: Leaving directory '/sources/automake-1.15.1'
| |
− | make: *** [Makefile:3368: check-am] Error 2
| |
− |
| |
− | real 116m14.466s
| |
− | user 103m28.428s
| |
− | sys 18m55.411s
| |
− | root:/sources/automake-1.15.1#
| |
− | </pre>
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] chapter 6.49 e2fsprogs-1.43.5 ===
| |
− |
| |
− | <br />
| |
− | Three tests failing in just-built <code>e2fsprogs</code> . . .
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | . . .
| |
− | m_offset: mke2fs with offset option (-E offset=N): ok
| |
− | f_invalid_bad_inode: check for bogus bad inode: ok
| |
− | f_h_badnode: hash directory with bad HTREE nodes: ok
| |
− | 337 tests succeeded 3 tests failed
| |
− | Tests failed: f_del_dup_quota f_quota f_quota_extent_opt
| |
− | make[1]: *** [Makefile:367: test_post] Error 1
| |
− | make[1]: Leaving directory '/sources/e2fsprogs-1.43.5/build/tests'
| |
− | make: *** [Makefile:394: check-recursive] Error 1
| |
− | root:/sources/e2fsprogs-1.43.5/build#
| |
− |
| |
− | </pre>
| |
− |
| |
− | .....
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | === [[#top|^]] next LFS chapter . . . ===
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | <!-- comment -->
| |
− |
| |
− | <br />
| |
− | <br />
| |
| | | |
| <!-- SECTION - QEMU Emulator --> | | <!-- SECTION - QEMU Emulator --> |
This wiki document a starting point of Ted's notes on Linux use and configuration, Open Source Software and web development. Recent summer 2017 efforts of Ted's are focused on several high-level programming language and web development frameworks, which can be studied and used separately but are often glued together to achieve meaningful tasks and end-user tools and interfaces. This personal page of Ted's notes on Neela Nurseries wiki not yet well organized, but here as a quick stash point for holding useful references, and a starting point for more complete and formal documentation.
Some excerpts from parted use on LFS volume . . .
Well one thing Ted noting is that parted cannot resize file systems, which are the structured data which overlay and live in partitions. The partition is one thing, mapped in a partition table somewhere on the physical disk or volume. The file system on a given partition is another thing, contained and bounded within that partition. Resizing the partition doesn't resize the file system. So which tool can deal with resizing a partition on which an ext4 file system exists? And then permit a next, independent step to resize the file system there? - TMH
Shell scripting and use of built-in shell commands is a really practical knowledge to employ, when working in Unix-like environments. One common task is to find all the instances of a given file or program. The locate
command can perform this kind of search, but it's results don't show whether the file instances differ. To check at the rough level of file size, we can use a one-line shell script technique involving shell piping, to "long list" the results of the locate
command, like this . . .
Running into issues when need to expand shell variable in single quotes pair . . .
Notes on QEMU, an emulator which can help with building and configuring Linux systems to run on embedded computers and development boards. Ted noting 2017-09-08 that to compile today's latest QEMU source, a 2.10.x release, needed to install Debian stretch packages pkg-config, libglib2.0-dev, dhautoreconf. Here are some links to downloading QEMU project sources, a manual for using QEMU, and an article about emulating a RaspberryPi system by using QEMU:
On a different note, QEMU build has completed and the stock RaspberryPi Debian "Stretch" image is coming up. Needed to install a VNC client to interact with the emulated RaspberryPi operating and software, stored in the downloaded .img file from Rpi's web site. Here's a link to a forum post which clued Ted into Remmina VNC client:
Some Hindi language and UTF-8 encoding references, to be factored to a dedicated wiki page later: