Message ID | 1413970840-17304-1-git-send-email-Vincent.Riera@imgtec.com |
---|---|
State | Accepted |
Headers | show |
On 10/22/2014 10:40 AM, Vicente Olivert Riera wrote: > bash fails to link for static builds with uClibc toolchains due to > getenv redefinitions. This is caused because bash is unable to check if > getenv is already defined when cross-compiling, so it defaults to 'yes': > > configure:14438: WARNING: cannot check getenv redefinition if cross > compiling -- defaulting to yes > > We can avoid this redefinition by passing bash_cv_getenv_redef=no to the > configure script. > > Related: > http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html > > Fixes: > http://autobuild.buildroot.net/results/a20/a2007e6dbcfe53e7cd837ae642869ee26376826a/ > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > --- It's best if you write something here ^^^ (below the ---, notes section) when you send a new version of the patch so we now what changed from the previous version, because it's not always obvious what changed between the different versions. For example Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> --- Changes since v3: - Added foo Changes since v2: - Added bar Changes since v1: - More foobar
Dear Markos Chandras, On 10/22/2014 11:39 AM, Markos Chandras wrote: > On 10/22/2014 10:40 AM, Vicente Olivert Riera wrote: >> bash fails to link for static builds with uClibc toolchains due to >> getenv redefinitions. This is caused because bash is unable to check if >> getenv is already defined when cross-compiling, so it defaults to 'yes': >> >> configure:14438: WARNING: cannot check getenv redefinition if cross >> compiling -- defaulting to yes >> >> We can avoid this redefinition by passing bash_cv_getenv_redef=no to the >> configure script. >> >> Related: >> http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html >> >> Fixes: >> http://autobuild.buildroot.net/results/a20/a2007e6dbcfe53e7cd837ae642869ee26376826a/ >> >> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> >> --- > It's best if you write something here ^^^ (below the ---, notes section) > when you send a new version of the patch so we now what changed from the > previous version, because it's not always obvious what changed between > the different versions. > > For example > > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > --- > Changes since v3: > - Added foo > > Changes since v2: > - Added bar > > Changes since v1: > - More foobar > Good advice; I'll take it into account for future patches. Thank you! Best regards,
On 22/10/14 11:40, Vicente Olivert Riera wrote: > bash fails to link for static builds with uClibc toolchains due to > getenv redefinitions. This is caused because bash is unable to check if > getenv is already defined when cross-compiling, so it defaults to 'yes': > > configure:14438: WARNING: cannot check getenv redefinition if cross > compiling -- defaulting to yes > > We can avoid this redefinition by passing bash_cv_getenv_redef=no to the > configure script. > > Related: > http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html > > Fixes: > http://autobuild.buildroot.net/results/a20/a2007e6dbcfe53e7cd837ae642869ee26376826a/ > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Small additional remark... > --- > package/bash/bash.mk | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/package/bash/bash.mk b/package/bash/bash.mk > index 34a3a73..5eec3cc 100644 > --- a/package/bash/bash.mk > +++ b/package/bash/bash.mk > @@ -28,6 +28,17 @@ BASH_MAKE = $(MAKE1) > # The static build needs some trickery > ifeq ($(BR2_PREFER_STATIC_LIB),y) > BASH_CONF_OPTS += --enable-static-link --without-bash-malloc > +# bash wants to redefine the getenv() function. To check whether this is > +# possible, AC_TRY_RUN is used which is not possible in > +# cross-compilation. > +# On uClibc, redefining getenv is not possible; on glibc and musl it is. I failed to notice earlier: glibc is not available on static builds so it doesn't make a lot of sense to mention it here. Regards, Arnout > +# Related: > +# http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html > +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) > +BASH_CONF_ENV += bash_cv_getenv_redef=no > +else > +BASH_CONF_ENV += bash_cv_getenv_redef=yes > +endif > endif > > # Make /bin/sh -> bash (no other shell, better than busybox shells) >
Dear Vicente Olivert Riera, On Wed, 22 Oct 2014 10:40:40 +0100, Vicente Olivert Riera wrote: > bash fails to link for static builds with uClibc toolchains due to > getenv redefinitions. This is caused because bash is unable to check if > getenv is already defined when cross-compiling, so it defaults to 'yes': > > configure:14438: WARNING: cannot check getenv redefinition if cross > compiling -- defaulting to yes > > We can avoid this redefinition by passing bash_cv_getenv_redef=no to the > configure script. > > Related: > http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html > > Fixes: > http://autobuild.buildroot.net/results/a20/a2007e6dbcfe53e7cd837ae642869ee26376826a/ > > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > --- > package/bash/bash.mk | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) Applied, thanks. Thomas
diff --git a/package/bash/bash.mk b/package/bash/bash.mk index 34a3a73..5eec3cc 100644 --- a/package/bash/bash.mk +++ b/package/bash/bash.mk @@ -28,6 +28,17 @@ BASH_MAKE = $(MAKE1) # The static build needs some trickery ifeq ($(BR2_PREFER_STATIC_LIB),y) BASH_CONF_OPTS += --enable-static-link --without-bash-malloc +# bash wants to redefine the getenv() function. To check whether this is +# possible, AC_TRY_RUN is used which is not possible in +# cross-compilation. +# On uClibc, redefining getenv is not possible; on glibc and musl it is. +# Related: +# http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) +BASH_CONF_ENV += bash_cv_getenv_redef=no +else +BASH_CONF_ENV += bash_cv_getenv_redef=yes +endif endif # Make /bin/sh -> bash (no other shell, better than busybox shells)
bash fails to link for static builds with uClibc toolchains due to getenv redefinitions. This is caused because bash is unable to check if getenv is already defined when cross-compiling, so it defaults to 'yes': configure:14438: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes We can avoid this redefinition by passing bash_cv_getenv_redef=no to the configure script. Related: http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00052.html Fixes: http://autobuild.buildroot.net/results/a20/a2007e6dbcfe53e7cd837ae642869ee26376826a/ Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> --- package/bash/bash.mk | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)