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 config BR2_PACKAGE_GLIBC_UTILS
bool "Install glibc utilities" bool "Install glibc utilities"
depends on BR2_PACKAGE_BASH
help help
Enabling this option will compile and install the getconf, Enabling this option will compile and install the getconf,
ldconfig, ldd and locale glibc utilities for the target. 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 endif
GLIBC_CONF_ENV = \ 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_forced_unwind=yes \
libc_cv_ssp=no 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 # Override the default library locations of /lib64/<abi> and
# /usr/lib64/<abi>/ for RISC-V. # /usr/lib64/<abi>/ for RISC-V.
ifeq ($(BR2_riscv),y) ifeq ($(BR2_riscv),y)