mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-07-10 06:14:13 +01:00
glibc: Drop --with-headers in pass 1
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 commit is contained in:
parent
5e3bef69d1
commit
7e4fd2e198
@ -91,7 +91,6 @@ cd build</userinput></screen>
|
||||
--host=$LFS_TGT \
|
||||
--build=$(../scripts/config.guess) \
|
||||
--enable-kernel=&min-kernel; \
|
||||
--with-headers=$LFS/usr/include \
|
||||
--disable-nscd \
|
||||
libc_cv_slibdir=/usr/lib</userinput></screen>
|
||||
|
||||
@ -116,16 +115,6 @@ cd build</userinput></screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-headers=$LFS/usr/include</parameter></term>
|
||||
<listitem>
|
||||
<para>This tells Glibc to compile itself against the headers
|
||||
recently installed to the $LFS/usr/include directory, so that
|
||||
it knows exactly what features the kernel has and can optimize
|
||||
itself accordingly.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
|
||||
<listitem>
|
||||
|
@ -439,27 +439,19 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</compute
|
||||
standard C library (glibc) to interface with features that the Linux
|
||||
kernel will provide.</para>
|
||||
|
||||
<para>Next comes glibc. The most important
|
||||
considerations for building glibc are the compiler, binary tools, and
|
||||
kernel headers. The compiler and binary tools are not an issue
|
||||
as <parameter>--host=$LFS_TGT</parameter> makes the build system to use
|
||||
those tools prefixed with <literal>$LFS_TGT-</literal> as we've
|
||||
discussed. The kernel headers can
|
||||
be a bit more complicated. Therefore, we take no risks and use
|
||||
the available configure switch to enforce the correct selection. After
|
||||
the run of <command>configure</command>, check the contents of the
|
||||
<filename>config.make</filename> file in the <filename
|
||||
class="directory">build</filename> directory for all important details.
|
||||
These items highlight an important aspect of the glibc
|
||||
package—it is very self-sufficient in terms of its build machinery,
|
||||
and generally does not rely on toolchain defaults.</para>
|
||||
<para>Next comes glibc. This is the first package that we cross-compile.
|
||||
We use the <parameter>--host=$LFS_TGT</parameter> option to make
|
||||
the build system to use those tools prefixed with
|
||||
<literal>$LFS_TGT-</literal>, and the
|
||||
<parameter>--build=$(../scripts/config.guess)</parameter> option to
|
||||
enable <quote>the cross-compilation mode</quote> as we've discussed.
|
||||
The <envar>DESTDIR</envar> variable is used to force installation into
|
||||
the LFS file system.</para>
|
||||
|
||||
<para>As mentioned above, the standard C++ library is compiled next, followed in
|
||||
<xref linkend="chapter-temporary-tools"/> by other programs that must
|
||||
be cross-compiled to break circular dependencies at build time.
|
||||
The install step of all those packages uses the
|
||||
<envar>DESTDIR</envar> variable to force installation
|
||||
in the LFS filesystem.</para>
|
||||
The steps for those packages are similar to the steps for glibc.</para>
|
||||
|
||||
<para>At the end of <xref linkend="chapter-temporary-tools"/> the native
|
||||
LFS compiler is installed. First binutils-pass2 is built,
|
||||
|
Loading…
Reference in New Issue
Block a user