package/glibc: drop dependency of utilities on bash

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>
This commit is contained in:
Carlos Santos 2019-12-02 21:14:05 -03:00 committed by Thomas Petazzoni
parent 8583b2c6d8
commit 862cda57e5
2 changed files with 10 additions and 5 deletions

View File

@ -11,10 +11,6 @@ endif
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

View File

@ -74,10 +74,19 @@ endef
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)