Details on this package are located in Section 10.35.2, “Contents of Bash.”
The Bash package contains the Bourne-Again SHell.
The following patch contains updates from the maintainer. The maintainer of Bash only releases these patches to fix serious issues:
patch -Np1 -i ../bash-4.2-branch_update-2.patch
When Bash is cross-compiled, it cannot test for the presence of
named pipes, among other things. If you used su to become an unprivileged
user, this combination will cause Bash to build without
process substitution, which
will break one of the C++ test scripts in eglibc
. The following prevents future problems by
skipping the check for named pipes, as well as other tests that can
not run while cross-compiling or that do not run properly:
cat > config.cache << "EOF" ac_cv_func_mmap_fixed_mapped=yes ac_cv_func_strcoll_works=yes ac_cv_func_working_mktime=yes bash_cv_func_sigsetjmp=present bash_cv_getcwd_malloc=yes bash_cv_job_control_missing=present bash_cv_printf_a_format=yes bash_cv_sys_named_pipes=present bash_cv_ulimit_maxfds=yes bash_cv_under_sys_siglist=yes bash_cv_unusable_rtsigs=no gt_cv_int_divbyzero_sigfpe=yes EOF
Prepare Bash for compilation:
CC="${CC} ${BUILD64}" CXX="${CXX} ${BUILD64}" \ ./configure --prefix=/tools \ --build=${CLFS_HOST} --host=${CLFS_TARGET} \ --without-bash-malloc --cache-file=config.cache
The meaning of the configure option:
--without-bash-malloc
This option turns off the use of Bash's memory allocation (malloc) function which is known to cause segmentation faults. By turning this option off, Bash will use the malloc functions from Glibc which are more stable.
Compile the package:
make
Install the package:
make install
Make a link for programs that use sh for a shell:
ln -sv bash /tools/bin/sh
Details on this package are located in Section 10.35.2, “Contents of Bash.”