glibc: ensure BR2_MAKE is also used for subdirs
PATCH v3 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.
---
v3: No changes
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 v3 1/3 glibc: ensure BR2_MAKE is also used for subdirs
Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Korsgaard <[email protected]> writes:
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_MAKEto ensure the right make version is used.
Quoted 7 lines
As
GLIBC_CONF_ENVis only initialized below, move this section below it.Signed-off-by Peter Korsgaard <[email protected]>---
v3: No changes
v2:
- Fix CONV/CONF typo, move section belowGLIBC_CONF_ENVinitialization
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH v3 2/3 make: drop gnumake/gmake aliases for host-make
In reply to Peter KorsgaardNow that glibc no longer checks for gnumake / gmake, these aliases can be removed.
---
v3: No changes
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 v3 2/3 make: drop gnumake/gmake aliases for host-make
Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Korsgaard <[email protected]> writes:
Now that glibc no longer checks for gnumake / gmake, these aliases can be removed.
Signed-off-by Peter Korsgaard <[email protected]>---
v3: No changes
v2: No changes
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH v3 2/3 make: drop gnumake/gmake aliases for host-make
In reply to Peter KorsgaardPeter, All,
On 2018-11-19 17:25 +0100, Peter Korsgaard spake thusly:
Quoted 4 lines
Now that glibc no longer checks for gnumake / gmake, these aliases can be removed.
Signed-off-by Peter Korsgaard <[email protected]>
Note that, even if the system does have gmake or gnumake, they are no longer detected since we do force what make to use recursively in glibc, which was not the case previously (just saying for posterity, because I had to think twice before reviewing that).
Regards,
Yann E. MORIN.
Quoted 34 lines
---
v3: No changes
v2: No changespackage/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 · 6 lines
2.11.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 21 lines
____________ .-----------------.--------------------: _ :------------------. | Yann E. MORIN | Real-Time Embedded | __/ ) | /"\ ASCII RIBBON | | +33 534.541.179 | Software Designer | _/ - /' | \ / CAMPAIGN | | +33 638.411.245 '--------------------: (_ `--, | X AGAINST | | yann.morin (at) orange.com |_=" ,--' | / \ HTML MAIL | '--------------------------------------:______/_____:------------------' _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.
PATCH v3 3/3 make: configure host-make with host- prefix
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.
---
v3: use --program-prefix instead of renaming post-install as suggested by Yann.
v2: No changes
package/make/make.mk | 4 ++++ support/dependencies/check-host-make.mk | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-)
package/make/make.mk +4 -0
@@ -23,5 +23,9 @@ endif HOST_MAKE_DEPENDENCIES = host-pkgconf HOST_MAKE_CONF_OPTS = --without-guile +# Configure host-make binary to be 'host-make' to ensure it isn't +# accidently used by packages when they invoke recursive / sub-make. +HOST_MAKE_CONF_OPTS += --program-prefix=host- + $(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
PATCH v3 3/3 make: configure host-make with host- prefix
Quoted 16 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Korsgaard <[email protected]> writes:
Fixes:
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'
Quoted 7 lines
With this rename, only packages explicitly opting in for our host-make (using the
BR2_MAKE/BR2_MAKE_HOST_DEPENDENCYlogic) will use it.Signed-off-by Peter Korsgaard <[email protected]>---
v3: use --program-prefix instead of renaming post-install as suggested by Yann.
v2: No changes
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH v3 3/3 make: configure host-make with host- prefix
In reply to Peter KorsgaardPeter, All,
On 2018-11-19 17:25 +0100, Peter Korsgaard spake thusly:
Quoted 10 lines
Fixes:
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:
Quoted 8 lines
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_DEPENDENCYlogic) will use it.Signed-off-by Peter Korsgaard <[email protected]>
A comment below, probably interesting for Thomas...
Quoted 27 lines
---
v3: use --program-prefix instead of renaming post-install as suggested by Yann.
v2: No changespackage/make/make.mk | 4 ++++ support/dependencies/check-host-make.mk | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-)package/make/make.mk +4
-0@@ -23,5 +23,9 @@ endif HOST_MAKE_DEPENDENCIES = host-pkgconf HOST_MAKE_CONF_OPTS = --without-guile +# Configure host-make binary to be 'host-make' to ensure it isn't +# accidently used by packages when they invoke recursive / sub-make. +HOST_MAKE_CONF_OPTS += --program-prefix=host- + $(eval $(autotools-package)) $(eval $(host-autotools-package))support/dependencies/check-host-make.mk +0
-0
support/dependencies/check-host-make.mk BR2_MAKE ?= $(call suitable-host-package,make,\ · line 16
Quoted 7 lines
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
Here, for top-level parallel build, we might have to propagate the --jobserver-fds, by setting it from $(MAKEFLAGS).
Regards,
Yann E. MORIN.
Quoted 10 lines
support/dependencies/check-host-make.mk +0
-0BR2_MAKE_HOST_DEPENDENCY = host-make else BR2_MAKE = $(MAKE)Signature · 6 lines
2.11.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 21 lines
____________ .-----------------.--------------------: _ :------------------. | Yann E. MORIN | Real-Time Embedded | __/ ) | /"\ ASCII RIBBON | | +33 534.541.179 | Software Designer | _/ - /' | \ / CAMPAIGN | | +33 638.411.245 '--------------------: (_ `--, | X AGAINST | | yann.morin (at) orange.com |_=" ,--' | / \ HTML MAIL | '--------------------------------------:______/_____:------------------' _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.
PATCH v3 1/3 glibc: ensure BR2_MAKE is also used for subdirs
In reply to Peter KorsgaardPeter, All,
[Notice that you CCed the wrong Yann E. MORIN.]
On 2018-11-19 17:25 +0100, Peter Korsgaard spake thusly:
Quoted 7 lines
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_MAKEto ensure the right make version is used.As
GLIBC_CONF_ENVis only initialized below, move this section below it.Signed-off-by Peter Korsgaard <[email protected]>
Quoted 24 lines
---
v3: No changes
v2:
- Fix CONV/CONF typo, move section belowGLIBC_CONF_ENVinitializationpackage/glibc/glibc.mk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)package/glibc/glibc.mk +0
-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
package/glibc/glibc.mk ifeq ($(BR2_riscv),y) · line 84
Quoted 7 lines
package/glibc/glibc.mk +4
-0@@ -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)"
Given the importance of the comment, I think it would have been a good idea to also move the dependency here as well:
# glibc requires make >= 4.0 since 2.28 release.
# https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html
GLIBC_DEPENDENCIES += $(BR2_MAKE_HOST_DEPENDENCY)
GLIBC_MAKE = $(BR2_MAKE)
GLIBC_CONF_ENV += ac_cv_prog_MAKE="$(BR2_MAKE)"Still, that was not done before, so my reviewed-by tag still stands.
Regards,
Yann E. MORIN.
Quoted 10 lines
package/glibc/glibc.mk +0
-0# Even though we use the autotools-package infrastructure, we have to # override the default configure commands for several reasons: #Signature · 6 lines
2.11.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 21 lines
____________ .-----------------.--------------------: _ :------------------. | Yann E. MORIN | Real-Time Embedded | __/ ) | /"\ ASCII RIBBON | | +33 534.541.179 | Software Designer | _/ - /' | \ / CAMPAIGN | | +33 638.411.245 '--------------------: (_ `--, | X AGAINST | | yann.morin (at) orange.com |_=" ,--' | / \ HTML MAIL | '--------------------------------------:______/_____:------------------' _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.