A frequently asked question is "why not using -i.orig instead of -i for
${some_random_sed_command_in_book}" but I really expect people to learn
from this example and do it on their own if they really need...
There are periodically users reporting that the --with-sysroot option
does not exist in binutils and gcc. Add a note telling that not all
aoptions are visible at the top level of the tree, unless
--help=recursive is passed. Take --with-sysroot as an example, so
that users have everything to find it...
Someone is really insistant on "you cannot have any extra whitespace" so
the hack will just not work. Let's drop it and simply move the
--enable-kernel= switches to the last line.
I cannot see why this is ever needed. The default is "the compiler
default" which should be correct as the compiler has been configured
--with-sysroot. And the explanation for this switch is just repeating a
common misunderstanding. In fact glibc **never** attempts to figure out
what features the kernel has from the headers. Instead it depends on
the kernel-features.h files in the source tree and the --with-kernel
value to determine the kernel features that it can rely on.
This option makes ld use DT_RUNPATH instead of DT_RPATH. DT_RPATH is
generally considered bad because it takes precedence over
LD_LIBRARY_PATH. For example, eog is linked with -rpath /usr/lib/eog,
and with DT_RPATH if an old eog is already installed we are basically
impossible to debug a new eog build w/o overwriting the system
installation first or explicitly using "ld.so --inhibit-rpath" to
invoke it.
This "new" actually means "new in 2000," it's 24 years ago and all other
distros has enabled it. Thus I guess some unexplainable "test suite
uses installed library instead of the just built one" issues in BLFS are
actually caused by this difference: the package author just assumes
everyone is using DT_RUNPATH thus they just set LD_LIBRARY_PATH and
consider it enough to test with the just built libraries, but DT_RPATH
breaks this expectation.
Let's eliminate the difference as it seems not doing anything good and
doing so just takes one switch.
"gcc(1)" is really not a file name.
Use <ulink> and link to the online man page on
https://man.archlinux.org/ so the user can refer to the man pages more
easily.
The change is done via a sed command and long lines are wrapped
manually.