diffutils: Use an easier work around for the strcasecmp check and improve the explanation

This commit is contained in:
Xi Ruoyao 2025-04-15 18:05:26 +08:00
parent cb6741b0fa
commit abd4750c89
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3

View File

@ -43,21 +43,40 @@
<sect2 role="installation">
<title>Installation of Diffutils</title>
<para>When Diffutils is being configured, it checks to see if it is
being cross compiled. If it is, configuration fails. Since we are
cross compiling, comment out the specific lines that perform that
test now:</para>
<screen><userinput remap="pre">sed -e '46252,+3 s/^/#/' \
-e '46596,+3 s/^/#/' \
-i configure</userinput></screen>
<para>Prepare Diffutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
gl_cv_func_strcasecmp_works=y \
--build=$(./build-aux/config.guess)</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<!-- https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=d9083a4cc638cf9c7dfc3cc534a7c6b4debf50ab -->
<term><parameter>gl_cv_func_strcasecmp_works=y</parameter></term>
<listitem>
<para>This option specify the result of a check for the
<function>strcasecmp</function>. The check requires running a
compiled C program, and this is impossible during
cross-compilation because in general a cross-compiled program
cannot run on the host distro. Normally for such a check the
<command>configure</command> script would use a fall-back value
for cross-compilation, but the fall-back value for this check is
absent and the <command>configure</command> script would have no
value to use and error out. The upstream has already fixed the
issue, but to apply the fix we'd need to run
<command>autoconf</command> that the host distro may lack. So
we just specify the check result (<literal>y</literal> as we know
the <function>strcasecmp</function> function in
Glibc-&glibc-version; works fine) instead, then
<command>configure</command> will just use the specified value and
skip the check.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>