The dependency was added because ldd uses bash-specific syntax to
localize messages. Add a post-patch hook, instead, to replace the
occurrences of $"foo" by "foo", simply, so the code becomes POSIX
sh compliant if bash is not selected.
Also set the configuration environment accordingly to replace the
/bin/bash hashbang by /bin/sh.
Signed-off-by: Carlos Santos <unixmania@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
config BR2_PACKAGE_GLIBC_UTILS
bool "Install glibc utilities"
- depends on BR2_PACKAGE_BASH
help
Enabling this option will compile and install the getconf,
ldconfig, ldd and locale glibc utilities for the target.
-
-comment "glibc utilities need bash"
- depends on !BR2_PACKAGE_BASH
endif
GLIBC_CONF_ENV = \
- ac_cv_path_BASH_SHELL=/bin/bash \
+ ac_cv_path_BASH_SHELL=/bin/$(if $(BR2_PACKAGE_BASH),bash,sh) \
libc_cv_forced_unwind=yes \
libc_cv_ssp=no
+# POSIX shell does not support localization, so remove the corresponding
+# syntax from ldd if bash is not selected.
+ifeq ($(BR2_PACKAGE_BASH),)
+define GLIBC_LDD_NO_BASH
+ $(SED) 's/$$"/"/g' $(@D)/elf/ldd.bash.in
+endef
+GLIBC_POST_PATCH_HOOKS += GLIBC_LDD_NO_BASH
+endif
+
# Override the default library locations of /lib64/<abi> and
# /usr/lib64/<abi>/ for RISC-V.
ifeq ($(BR2_riscv),y)