summaryrefslogtreecommitdiffstats
path: root/package/bash
diff options
context:
space:
mode:
authorVicente Olivert Riera <Vincent.Riera@imgtec.com>2014-10-22 10:40:40 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-10-25 12:45:08 +0200
commit9623ff651f83a350819719f10705552da9793205 (patch)
treec41399e3ef6348784913a16e4900906439ae29bb /package/bash
parentad937c7194341d2ac9ac62791e7a38832abec054 (diff)
downloadbuildroot-9623ff651f83a350819719f10705552da9793205.tar.gz
buildroot-9623ff651f83a350819719f10705552da9793205.zip
bash: fix linking for static builds with uClibc toolchains
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> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/bash')
-rw-r--r--package/bash/bash.mk11
1 files changed, 11 insertions, 0 deletions
diff --git a/package/bash/bash.mk b/package/bash/bash.mk
index 34a3a73956..5eec3cc603 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)
OpenPOWER on IntegriCloud