mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-18 11:19:19 +01:00
binutils-pass2: workaround "binaries link to host libraries" issue
A very old libtool copy (2009-11-29) is shipped in binutils tarball. It does not support sysroot, so the cross-built binutils binaries may link to libraries from the host distro, if certain libraries are available. The ideal solution should be updating libtool, as libtool-2.4.6 (in LFS) has sysroot support. However, updating libtool for binutils is not trivial: it would require to rerun autoconf and binutils building system sticks to autoconf-2.69. Another issue is the sysroot support for libtool has introduced a configure option "--with-sysroot", which conflicts with an already existing option with the same name in GCC and binutils building system (we are using the GCC/binutils version of --with-sysroot in chapter 5). GCC building system has --with-build-sysroot (we are using this for GCC pass 2) for this issue. Binutils copied GCC building system, but it does not respect --with-build-sysroot. So for now we just edit libtool code to prevent "-L/usr/lib" in $LFS_TGT_gcc command line. It should fix the issue about host libiberty (reported in #lfs-support) as well, but it still need to be confirmed by someone having such a host. Tested with a jhalfs run on LFS.
This commit is contained in:
parent
b35ab48b26
commit
426913ea08
@ -39,6 +39,17 @@
|
||||
<listitem revision="sysv"> or <listitem revision="systemd"> as
|
||||
appropriate for the entry or if needed the entire day's listitem.
|
||||
-->
|
||||
<listitem>
|
||||
<para>2022-02-10</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[xry111] - Workaround the issue causing binaries link to
|
||||
libraries from the host distro for pass 2 binutils. It's now
|
||||
unnecessary to build zlib in chapter 6.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2022-02-09</para>
|
||||
<itemizedlist>
|
||||
|
@ -43,6 +43,14 @@
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<!-- Don't remove this until Binutils upstream updates the libtool
|
||||
copy. On some host distros the issue doesn't show up. -->
|
||||
<para>Binutils ships an outdated libtool copy in the tarball. It lacks
|
||||
sysroot support so the produced binaries will be mistakenly linked to
|
||||
libraries from the host distro. Workaround this issue:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed '6009s/$add_dir//' -i ltmain.sh</userinput></screen>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v build
|
||||
@ -85,13 +93,9 @@ cd build</userinput></screen>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package, and
|
||||
workaround an issue causing
|
||||
<filename class="libraryfile">libctf.so</filename>
|
||||
to link against zlib from the host distribution:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make DESTDIR=$LFS install
|
||||
install -vm755 libctf/.libs/libctf.so.0.0.0 $LFS/usr/lib</userinput></screen>
|
||||
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
@ -28,7 +28,6 @@
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sed.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tar.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xz.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zlib.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="binutils-pass2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc-pass2.xml"/>
|
||||
|
||||
|
@ -1,67 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-zlib" role="wrap">
|
||||
<?dbhtml filename="zlib.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>zlib</productname>
|
||||
<productnumber>&zlib-version;</productnumber>
|
||||
<address>&zlib-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Zlib-&zlib-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-zlib">
|
||||
<primary sortas="a-Zlib">Zlib</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter08/zlib.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&zlib-tmp-sbu;</seg>
|
||||
<seg>&zlib-tmp-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Zlib</title>
|
||||
|
||||
<para>Prepare Zlib for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-zlib" role="."/>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
Loading…
Reference in New Issue
Block a user