glibc: ensure BR2_MAKE is also used for subdirs
PATCH v2 1/3 glibc: ensure BR2_MAKE is also used for subdirs
The configure script contains logic to figure out what make program to invoke for subdirectories (trying gnumake, gmake, make). Explicitly force it to use our BR2_MAKE to ensure the right make version is used.
As GLIBC_CONF_ENV is only initialized below, move this section below it.
---
v2:
- Fix CONV/CONF typo, move section below GLIBC_CONF_ENV initialization
package/glibc/glibc.mk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
package/glibc/glibc.mk +5 -4
@@ -31,10 +31,6 @@ GLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO GLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-bison host-gawk \ $(BR2_MAKE_HOST_DEPENDENCY) -# glibc requires make >= 4.0 since 2.28 release. -# https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html -GLIBC_MAKE = $(BR2_MAKE) - GLIBC_SUBDIR = build GLIBC_INSTALL_STAGING = YES
@@ -82,6 +78,11 @@ ifeq ($(BR2_riscv),y) GLIBC_CONF_ENV += libc_cv_slibdir=/lib64 libc_cv_rtlddir=/lib endif +# glibc requires make >= 4.0 since 2.28 release. +# https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html +GLIBC_MAKE = $(BR2_MAKE) +GLIBC_CONF_ENV += ac_cv_prog_MAKE="$(BR2_MAKE)" + # Even though we use the autotools-package infrastructure, we have to # override the default configure commands for several reasons: #
Signature · 1 line
2.11.0
PATCH v2 2/3 make: drop gnumake/gmake aliases for host-make
Now that glibc no longer checks for gnumake / gmake, these aliases can be removed.
---
v2: No changes
package/make/make.mk | 10 ---------- 1 file changed, 10 deletions(-)
package/make/make.mk +0 -10
@@ -23,15 +23,5 @@ endif HOST_MAKE_DEPENDENCIES = host-pkgconf HOST_MAKE_CONF_OPTS = --without-guile -# Some packages, like glibc, are looking for gnumake or gmake before -# make program. -# Create these symlink to use make binary generated by Buildroot for -# the host. -define HOST_MAKE_INSTALL_GNUMAKE - ln -fs make $(HOST_DIR)/bin/gnumake - ln -fs make $(HOST_DIR)/bin/gmake -endef -HOST_MAKE_POST_INSTALL_HOOKS += HOST_MAKE_INSTALL_GNUMAKE - $(eval $(autotools-package)) $(eval $(host-autotools-package))
Signature · 1 line
2.11.0
PATCH v2 3/3 make: install host-make as host-make
In reply to Peter KorsgaardFixes:
http://autobuild.buildroot.net/results/e29/e293aadc692d2ed337881ef2172ddf66a60bc05c/
And many more.
Install as 'host-make' rather than just 'make', as that otherwise confuses a number of packages when they invoke recursive / sub-make. The internal job control logic of GNU make is version dependant, so mixing versions may lead to issues like:
make[1]: Entering directory `/home/peko/autobuild/instance-0/output/build/boa-0.94.14rc21' (cd src && make -w --jobserver-fds=5,6 -j)
make: unrecognized option '--jobserver-fds=5,6'
With this rename, only packages explicitly opting in for our host-make (using the BR2_MAKE / BR2_MAKE_HOST_DEPENDENCY logic) will use it.
---
v2: No changes
package/make/make.mk | 7 +++++++ support/dependencies/check-host-make.mk | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-)
package/make/make.mk +7 -0
@@ -23,5 +23,12 @@ endif HOST_MAKE_DEPENDENCIES = host-pkgconf HOST_MAKE_CONF_OPTS = --without-guile +# Rename host-make binary to ensure it isn't accidently used by +# packages when they invoke recursive / sub-make. +define HOST_MAKE_RENAME_BINARY + mv $(HOST_DIR)/bin/make $(HOST_DIR)/bin/host-make +endef +HOST_MAKE_POST_INSTALL_HOOKS += HOST_MAKE_RENAME_BINARY + $(eval $(autotools-package)) $(eval $(host-autotools-package))
support/dependencies/check-host-make.mk +2 -2
@@ -12,8 +12,8 @@ BR2_MAKE ?= $(call suitable-host-package,make,\ $(BR2_MAKE_VERSION_MIN) $(MAKE)) ifeq ($(BR2_MAKE),) -BR2_MAKE = $(HOST_DIR)/bin/make -j$(PARALLEL_JOBS) -BR2_MAKE1 = $(HOST_DIR)/bin/make -j1 +BR2_MAKE = $(HOST_DIR)/bin/host-make -j$(PARALLEL_JOBS) +BR2_MAKE1 = $(HOST_DIR)/bin/host-make -j1 BR2_MAKE_HOST_DEPENDENCY = host-make else BR2_MAKE = $(MAKE)
Signature · 1 line
2.11.0