* [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains
@ 2014-10-22 9:40 Vicente Olivert Riera
2014-10-22 10:39 ` Markos Chandras
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Vicente Olivert Riera @ 2014-10-22 9:40 UTC (permalink / raw)
To: buildroot
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(-)
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)
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains
2014-10-22 9:40 [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains Vicente Olivert Riera
@ 2014-10-22 10:39 ` Markos Chandras
2014-10-22 10:42 ` Vicente Olivert Riera
2014-10-22 16:27 ` Arnout Vandecappelle
2014-10-25 10:45 ` Thomas Petazzoni
2 siblings, 1 reply; 5+ messages in thread
From: Markos Chandras @ 2014-10-22 10:39 UTC (permalink / raw)
To: buildroot
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
--
markos
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains
2014-10-22 10:39 ` Markos Chandras
@ 2014-10-22 10:42 ` Vicente Olivert Riera
0 siblings, 0 replies; 5+ messages in thread
From: Vicente Olivert Riera @ 2014-10-22 10:42 UTC (permalink / raw)
To: buildroot
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,
--
Vicente Olivert Riera
Graduate Software Engineer, MIPS Processor IP
Imagination Technologies Limited
t: +44 (0)113 2429814
www.imgtec.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains
2014-10-22 9:40 [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains Vicente Olivert Riera
2014-10-22 10:39 ` Markos Chandras
@ 2014-10-22 16:27 ` Arnout Vandecappelle
2014-10-25 10:45 ` Thomas Petazzoni
2 siblings, 0 replies; 5+ messages in thread
From: Arnout Vandecappelle @ 2014-10-22 16:27 UTC (permalink / raw)
To: buildroot
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)
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains
2014-10-22 9:40 [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains Vicente Olivert Riera
2014-10-22 10:39 ` Markos Chandras
2014-10-22 16:27 ` Arnout Vandecappelle
@ 2014-10-25 10:45 ` Thomas Petazzoni
2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2014-10-25 10:45 UTC (permalink / raw)
To: buildroot
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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-10-25 10:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-22 9:40 [Buildroot] [PATCH v4] bash: fix linking for static builds with uClibc toolchains Vicente Olivert Riera
2014-10-22 10:39 ` Markos Chandras
2014-10-22 10:42 ` Vicente Olivert Riera
2014-10-22 16:27 ` Arnout Vandecappelle
2014-10-25 10:45 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox