From abd4750c893625d1944f621c827e5e7be677a660 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 15 Apr 2025 18:05:26 +0800 Subject: [PATCH] diffutils: Use an easier work around for the strcasecmp check and improve the explanation --- chapter06/diffutils.xml | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml index 8738e32b0..404fe9b66 100644 --- a/chapter06/diffutils.xml +++ b/chapter06/diffutils.xml @@ -43,21 +43,40 @@ Installation of Diffutils - 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: - - sed -e '46252,+3 s/^/#/' \ - -e '46596,+3 s/^/#/' \ - -i configure - Prepare Diffutils for compilation: ./configure --prefix=/usr \ --host=$LFS_TGT \ + gl_cv_func_strcasecmp_works=y \ --build=$(./build-aux/config.guess) + + The meaning of the configure options: + + + + gl_cv_func_strcasecmp_works=y + + This option specify the result of a check for the + strcasecmp. 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 + configure script would use a fall-back value + for cross-compilation, but the fall-back value for this check is + absent and the configure 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 + autoconf that the host distro may lack. So + we just specify the check result (y as we know + the strcasecmp function in + Glibc-&glibc-version; works fine) instead, then + configure will just use the specified value and + skip the check. + + + + Compile the package: make