[openwrt/openwrt] include: autotools: do not symlink files in autoreconf

LEDE Commits lede-commits at lists.infradead.org
Thu Aug 29 11:06:52 PDT 2024


neocturne pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/d811a09524118451d14a0ae8abce21fc123a3bf0

commit d811a09524118451d14a0ae8abce21fc123a3bf0
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Thu Aug 29 20:04:02 2024 +0200

    include: autotools: do not symlink files in autoreconf
    
    In Gluon's Github Actions CI, we were occasionally seeing bizarre build
    errors that looked like a config.sub file had been corrupted, or changed
    while it was being executed.
    
    The cause turned out to be an interaction of the symlinks created by
    autoreconf (pointing from individual tools' build dirs into
    `staging_dir/host/share/automake-1.16`) and OpenWrt's host-build.mk,
    which replaced config.guess and config.sub *after* autoreconf. The
    result was that the replacement of these files ended up following the
    symlinks and writing the files in `staging_dir/host/share/automake-1.16`
    instead of a package's build dir. This could cause other packages' builds
    to fail if they were currently executing the scripts while they were
    being written.
    
    To fix this, disable autoreconf's symlinking feature, so that modifying
    these files in a package's build directory can't accidentally affect the
    staged versions.
    
    Link: https://github.com/openwrt/openwrt/pull/15825
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
    (cherry picked from commit c364cb8e469f9a7de1ed8960163c90e26b2df1ad)
---
 include/autotools.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/autotools.mk b/include/autotools.mk
index d0e4b3642f..7fc6f37175 100644
--- a/include/autotools.mk
+++ b/include/autotools.mk
@@ -44,7 +44,7 @@ define autoreconf
 				touch NEWS AUTHORS COPYING ABOUT-NLS ChangeLog; \
 				$(AM_TOOL_PATHS) \
 					LIBTOOLIZE='$(STAGING_DIR_HOST)/bin/libtoolize --install' \
-					$(STAGING_DIR_HOST)/bin/autoreconf -v -f -i -s \
+					$(STAGING_DIR_HOST)/bin/autoreconf -v -f -i \
 					$(if $(word 2,$(3)),--no-recursive) \
 					-B $(STAGING_DIR_HOST)/share/aclocal \
 					$(patsubst %,-I %,$(5)) \




More information about the lede-commits mailing list