This commit is contained in:
2026-03-20 12:03:59 +01:00
parent 0d2cd53235
commit 7de732589a
6 changed files with 45 additions and 5 deletions

View File

@@ -2,6 +2,30 @@
--- ---
## V40 2026-03-21 00:00:00
**Fix cross-compile configure failures in diffutils, grep, coreutils, tar, findutils**
### Changes:
- Fixed `010-diffutils.sh`: Added `gl_cv_func_strcasecmp_works=yes` cache variable
to prevent "cannot run test program while cross compiling" error on strcasecmp check
- Fixed `014-grep.sh`: Added `gl_cv_func_strcasecmp_works=yes` and
`gl_cv_func_fnmatch_gnu=yes` (same strcasecmp issue as diffutils)
- Fixed `009-coreutils.sh`: Added `gl_cv_func_working_strerror=yes` and
`ac_cv_func_strnlen_working=yes` (strerror/strnlen runtime checks fail cross-compile)
- Fixed `019-tar.sh`: Added `ac_cv_func_strnlen_working=yes`
- Fixed `012-findutils.sh`: Added `gl_cv_func_fnmatch_gnu=yes`
- Fixed `toolchain/bootstrap.sh`: Replaced `su -l lfs -c` with `env -i su lfs -s /bin/bash -c`
to avoid lfs .bash_profile's `exec env -i /bin/bash` swallowing the build command
### Plan deviation/changes:
- None
### What is missing/needs polish:
- None
---
## V39 2026-03-20 23:30:00 ## V39 2026-03-20 23:30:00
**Add single-command bootstrap and fix lfs user permission issues** **Add single-command bootstrap and fix lfs user permission issues**

View File

@@ -23,12 +23,16 @@ cd "${SRCDIR}"
tar -xf "${PACKAGE}-${VERSION}.tar.xz" tar -xf "${PACKAGE}-${VERSION}.tar.xz"
cd "${PACKAGE}-${VERSION}" cd "${PACKAGE}-${VERSION}"
# Cross-compile cache overrides: coreutils 9.10 tries to run test binaries
# for strerror and strnlen. We know glibc provides correct implementations.
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr \
--host="${LFS_TGT}" \ --host="${LFS_TGT}" \
--build="$(build-aux/config.guess)" \ --build="$(build-aux/config.guess)" \
--enable-install-program=hostname \ --enable-install-program=hostname \
gl_cv_macro_MB_CUR_MAX_good=y gl_cv_macro_MB_CUR_MAX_good=y \
gl_cv_func_working_strerror=yes \
ac_cv_func_strnlen_working=yes
make make
make DESTDIR="${LFS}" install make DESTDIR="${LFS}" install

View File

@@ -21,10 +21,14 @@ cd "${SRCDIR}"
tar -xf "${PACKAGE}-${VERSION}.tar.xz" tar -xf "${PACKAGE}-${VERSION}.tar.xz"
cd "${PACKAGE}-${VERSION}" cd "${PACKAGE}-${VERSION}"
# gl_cv_func_strcasecmp_works: diffutils 3.12 tries to run a test binary to
# check if strcasecmp works. This fails during cross-compilation. We know
# glibc's strcasecmp is correct, so we tell configure the answer directly.
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr \
--host="${LFS_TGT}" \ --host="${LFS_TGT}" \
--build="$(./build-aux/config.guess)" --build="$(./build-aux/config.guess)" \
gl_cv_func_strcasecmp_works=yes
make make
make DESTDIR="${LFS}" install make DESTDIR="${LFS}" install

View File

@@ -21,11 +21,13 @@ cd "${SRCDIR}"
tar -xf "${PACKAGE}-${VERSION}.tar.xz" tar -xf "${PACKAGE}-${VERSION}.tar.xz"
cd "${PACKAGE}-${VERSION}" cd "${PACKAGE}-${VERSION}"
# Cross-compile cache override: findutils tests fnmatch behavior at configure.
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr \
--localstatedir=/var/lib/locate \ --localstatedir=/var/lib/locate \
--host="${LFS_TGT}" \ --host="${LFS_TGT}" \
--build="$(build-aux/config.guess)" --build="$(build-aux/config.guess)" \
gl_cv_func_fnmatch_gnu=yes
make make
make DESTDIR="${LFS}" install make DESTDIR="${LFS}" install

View File

@@ -21,10 +21,14 @@ cd "${SRCDIR}"
tar -xf "${PACKAGE}-${VERSION}.tar.xz" tar -xf "${PACKAGE}-${VERSION}.tar.xz"
cd "${PACKAGE}-${VERSION}" cd "${PACKAGE}-${VERSION}"
# Cross-compile cache overrides: grep 3.12 tries to run test binaries for
# strcasecmp and fnmatch. We know glibc provides correct implementations.
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr \
--host="${LFS_TGT}" \ --host="${LFS_TGT}" \
--build="$(./build-aux/config.guess)" --build="$(./build-aux/config.guess)" \
gl_cv_func_strcasecmp_works=yes \
gl_cv_func_fnmatch_gnu=yes
make make
make DESTDIR="${LFS}" install make DESTDIR="${LFS}" install

View File

@@ -30,10 +30,12 @@ VERSION="${TARDIR#./tar-}"
echo " Detected version: ${VERSION}" echo " Detected version: ${VERSION}"
cd "${TARDIR}" cd "${TARDIR}"
# Cross-compile cache override: tar tests strnlen behavior at configure time.
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr \
--host="${LFS_TGT}" \ --host="${LFS_TGT}" \
--build="$(build-aux/config.guess)" --build="$(build-aux/config.guess)" \
ac_cv_func_strnlen_working=yes
make make
make DESTDIR="${LFS}" install make DESTDIR="${LFS}" install