aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05
Commit message (Collapse)AuthorAgeFilesLines
* Fix sanity check in chapter 5Pierre Labastie2022-10-061-1/+1
| | | | | | When I changed the sanity check to remove the "dummy.c" file, I inadvertently used "gcc" instead of "$LFS_TGT-gcc". Which of course finds the host gcc...
* gcc: some reword of PIE/SSP/ASLR noteXi Ruoyao2022-09-111-5/+5
| | | | | | | | | | | | | | Expand tabs to 8 spaces like everywhere else in the book. Explain that shared libraries are already covered by ASLR, PIE expands the ASLR to cover the exetutables. In 2022, stack smashing attackings are mostly constructing a sequence of faked returning addresses to exectute a series of function already existing in the programs or libraries itself (ret2lib). Returning into the code injected by the attacker is almost impossible because on i686 (with a PAE/NX enabled kernel) or x86_64, running injected code needs W/X mappings and those are very rare these days.
* gcc-pass1: fix bold "and" in command explanationPierre Labastie2022-09-101-2/+2
|
* Document the --enable-default-pie/ssp optionsPierre Labastie2022-09-101-0/+14
| | | | Also document test failures in gcc chapter 8
* Use default-pie and default-ssp flags in gccPierre Labastie2022-09-091-0/+2
| | | | | | | | Committing only the commands for now, so that others can test the build. TODO: - add command explanations - add changelog - comment on failing tests in binutils and gcc
* Remove all non header files in linux headersPierre Labastie2022-08-311-2/+1
| | | | | Report by Joe Locash that a perl script was left in /usr/include with our current instructions
* Don't use dummy.c for glibc sanity check in chap 5Pierre Labastie2022-08-251-5/+4
| | | | | | | | It seems glibc creates dummy.c for its own use. This leaves some dummy.xxx files in the directory, that may lead some users to think that the directory is not properly cleaned up after the test (I did :) So use a pipe so that only a.out is created
* Remove libtool archive (.la) files in Chapter 5 and 6Xi Ruoyao2022-08-191-0/+5
| | | | | | | | | | | | | | They are really harmful. In Binutils pass 2, libstdc++.la caused the building system to use host /usr/lib/libstdc++.so for gprofng. We now has disabled gprofng for pass 2, but the similar issue also exists in GCC pass 2. In a normal LFS build, the building system silently uses /usr/lib/libstdc++.so (I guess it does not blow up simply because some blind luck); in a real cross build (x86 -> ARM for example) the build will fail. Remove the .la files to fix this issue. Instead of only modifying clfs-ng, it makes more sense to apply the change for trunk: though the build does not fail, using host library is still a contamination.
* Package updates.Bruce Dubbs2022-08-061-0/+9
| | | | | | | Update to binutils-2.38. Update to util-linux-2.38.1. Update to Python3-3.10.6. Update to glibc-2.36.
* gcc-12: remove --enable-initfini-array in pass 1Xi Ruoyao2022-05-061-10/+0
| | | | Reference: https://gcc.gnu.org/r12-1328
* SpelingBruce Dubbs2022-03-241-1/+1
|
* fix GCC PR100017 and enable libstdc++ for pass 2Xi Ruoyao2022-02-271-4/+4
| | | | | | | | | This is the issue preventing us from cross-compiling libstdc++ in Chapter 6. By fixing this issue we can remove a seperate pass 2 for libstdc++ and simplify the instruction. The upstream fix will be released in 11.3 and 12.0, so we can remove the first sed upgrading gcc next time.
* relax host system requirementsXi Ruoyao2022-02-191-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | A requirement on Glibc is not needed at all. It's enough once $LFS_TGT-* is runnable. A test on Alpine (using musl as libc) has practically proved this. We'd raised binutils and GCC requirements mostly for Glibc. But now Glibc is cross compiled by our cross toolchain with latest GCC and binutils release, the host tools really does not matter. In the Glibc building process only two .c files are build with BUILD_CC (the C compiler from the host), and they are highly conservative (mostly unchanged for years). Binutils does not have too much requirement on host GCC & Binutils: there is even a Binutils commit in this week fixing a build failure with GCC-4.2! So the most strict limitation comes from GCC. GCC requires host GCC to support ISO C++ 11 so GCC >= 4.8 is needed. And both GCC-4.8 and latest GCC-11.2 claims a requirement for Binutils-2.12 (for x86_64) or 2.13.1 (for 32-bit x86), so we make minimal Binutils version 2.13.1. And, host bzip2 is never used now: the only .tar.bz2 files are elfutils and python docs. They are not decompressed before entering chroot.
* Spelling/TyposBruce Dubbs2022-02-181-1/+1
|
* break very long lineXi Ruoyao2022-02-151-1/+2
|
* libstdc++ pass 1: rephrase the explanation for --with-gxx-include-dirXi Ruoyao2022-02-151-3/+13
| | | | | I just received a private mail from some guy obviously puzzled by this switch. Expand the explanation a little to make it more clear.
* Revert "binutils: use -j1 for make install"Xi Ruoyao2022-02-041-14/+1
| | | | | | | This reverts commit 03a41fd0cd6635843d313c02150692a05d6b8bd2. It's no longer needed after binutils-gdb commit "install dependencies for ld -> bfd and libctf -> bfd" (755ba58e).
* gcc-pass1: set --with-glibc-version to target glibc versionXi Ruoyao2021-12-031-5/+8
| | | | | | | | | | | | | | | | | | "info gccinstall" says: '--with-glibc-version=MAJOR.MINOR' Tell GCC that when the GNU C Library (glibc) is used on the target it will be version MAJOR.MINOR or later. Normally this can be detected from the C library's header files, but this option may be needed when bootstrapping a cross toolchain without the header files available for building the initial bootstrap compiler. So it can, and should be set to the version of glibc which will be built for the chroot environment. On x86_64, currently it does not make any difference with values >= 2.13. But it may make a difference if a new feature is added to glibc, or on other platforms.
* move the ln note back to chap 5 glibcXi Ruoyao2021-11-121-0/+9
| | | | | | It was moved to chapter 4 during merged-/usr update. However the ln commands in chapater 4 are "trivial", so move it back to chapter 5 glibc where we start to use a "different syntactic version" of it.
* Remove extra spacesBruce Dubbs2021-09-151-19/+19
|
* Remove spaces at end o lines - chapter05Pierre Labastie2021-09-075-11/+11
|
* Fix spacing of backslashes in binutils-pass1Pierre Labastie2021-08-241-4/+4
|
* Package updates.Bruce Dubbs2021-08-021-15/+0
| | | | | | Update to glibc-2.34. Update to diffutils-3.8. Update to libcap-2.52.
* Ensure that glibc installs ldconfig and sln to /usr/sbin.DJ Lucas2021-07-211-0/+6
|
* glibc: remove description of libc_cv_rtlddir for nowXi Ruoyao2021-05-161-8/+0
|
* glibc: remove libc_cv_rtlddir override for nowXi Ruoyao2021-05-141-2/+1
| | | | Back to use the sed. Need to investigate later.
* Use /usr/lib for libc_cv_rtlddirThomas Trepl (Moody)2021-05-141-4/+4
|
* Use a configuration option to set the loader pathes in lddThomas Trepl (Moody)2021-05-131-3/+12
|
* glibc: fix ldd scriptXi Ruoyao2021-05-131-0/+5
|
* Merge Xi's changes into trunkDouglas R. Reno2021-05-111-15/+7
| | | | | | | | | | | | | Update to meson-0.58.0 Update to systemd-248 Update to gcc-11.1.0 Update to linux-5.12.1 Update to iproute2-5.12.0 Update to Python-3.9.5 Make /bin, /sbin, and /lib symlinks to their counterparts in /usr. Thanks again for a significant portion of this work goes to Xi, I only really merged it and made a couple of modifications for my updates. To LFS 11.x we go!
* Clarify some explanations about the minimal directory layout in chap 4Pierre Labastie2021-03-241-2/+3
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12169 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* restore a note about ln command from LFS 9.xXi Ruoyao2021-03-241-0/+9
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12168 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* binutils: use -j1 for make installXi Ruoyao2021-03-171-1/+14
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12166 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* document x86 ISA level related breakage and workaroundXi Ruoyao2021-02-131-0/+11
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12133 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* decorate usernames with <systemitem>Xi Ruoyao2020-12-261-4/+5
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12071 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* binutils-pass1: adjust timing sample to match the build commandXi Ruoyao2020-08-201-1/+1
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@12032 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* temp glibc: /tools -> $LFS/toolsXi Ruoyao2020-06-191-1/+1
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11964 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Slightly change the layout in part III, so that the preliminary materialPierre Labastie2020-06-175-463/+4
| | | | | | appear separated. Minor rewrites for accounting for the new layout git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11949 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Add forgotten "case" in glibc chapter 5Pierre Labastie2020-06-151-3/+9
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11942 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* - fix some gcc->GCCPierre Labastie2020-06-133-23/+6
| | | | | | - remove commented text in glibc (chap 5), and fix a directory location git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11934 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Update sbu-du for cross2 branchPierre Labastie2020-06-121-2/+2
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11925 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Mostly text updates in Chapter 8. Bruce Dubbs2020-06-121-1/+1
| | | | | | | | There are a couple of minor command changes. git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11924 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Rename package entities to be independent of chapter numberingThomas Trepl2020-06-115-10/+10
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11921 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Text updates for cross2 Chapter 5Bruce Dubbs2020-06-096-65/+65
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11914 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Add a warning before installation of glibc-chapter5Pierre Labastie2020-06-081-0/+6
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11907 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Rewrite chapter 5 title and introductionPierre Labastie2020-06-082-16/+11
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11906 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Remove unneeded files in chapter 5Pierre Labastie2020-06-0835-3287/+0
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11900 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Fix a reference in toolchain notesPierre Labastie2020-06-081-3/+3
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11899 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Initial commit of alternative cross LFSBruce Dubbs2020-06-074-39/+5
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11897 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
* Fixes due to the new layoutPierre Labastie2020-06-011-1/+1
| | | | git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross-chap5@11885 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689