don't use Bash-specific ${parameter/pattern/string} expansion
commit0a834ddecbb08b79cbcf7d9460ab3d3d539c9962
authorPatrick 'P. J.' McDermott <pj@pehjota.net>
Wed, 11 Sep 2013 21:53:08 +0000 (11 17:53 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sun, 29 Sep 2013 03:03:09 +0000 (28 23:03 -0400)
tree95f9050e7fdcebc7468978139ec2738b834f262b
parente74a6fd9067e41bffe12406fc86277132bad5043
don't use Bash-specific ${parameter/pattern/string} expansion

sysdeps/unix/make-syscalls.sh and sysdeps/unix/Makefile use GNU Bash's
${parameter/pattern/string} parameter expansion.  Non-Bash shells (e.g.
dash or BusyBox ash when built with CONFIG_ASH_BASH_COMPAT disabled)
don't support this expansion syntax.  So glibc will fail to build when
$(SHELL) expands to a path that isn't provided by Bash.

An example build failure:

    for dir in [...]; do \
      test -f $dir/syscalls.list && \
      { sysdirs='[...]' \
        asm_CPP='gcc -c    -I[...]   -D_LIBC_REENTRANT -include include/libc-symbols.h       -DASSEMBLER  -g -Wa,--noexecstack   -E -x assembler-with-cpp' \
        /bin/sh sysdeps/unix/make-syscalls.sh $dir || exit 1; }; \
      test $dir = sysdeps/unix && break; \
    done > [build-dir]/sysd-syscallsT
    sysdeps/unix/make-syscalls.sh: line 273: syntax error: bad substitution

This patch simply replaces the three instances of the Bash-only syntax
in these files with an echo and sed command substitution.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ChangeLog
sysdeps/unix/Makefile
sysdeps/unix/make-syscalls.sh