6.11. Bash-4.4

Le paquet Bash contient le shell Bourne-Again.

6.11.1. Installation de Bash

Le correctif suivant contient les mises à jour du mainteneur. Le mainteneur de Bash ne fournit ces correctifs que pour corriger de sérieux problèmes :

patch -Np1 -i ../bash-4.4-branch_update-1.patch

Lorsque Bash est compilé de manière croisée, il ne peut pas tester la présence des canaux nommés, entre autres choses. Si vous utilisez su pour devenir un utilisateur non privilégié, cette combinaison causera la construction de Bash sans substitution de processus, ce qui cassera l'un des scripts de test C++ dans glibc. Ce qui suit évite les problèmes futurs en passant le test pour les canaux nommés, ainsi que d'autres tests qui ne peuvent être lancé lors de la compilation croisée ou qui ne sont pas lancés correctement :

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

Préparez la compilation de Bash :

./configure \
    --prefix=/tools \
    --build=${CLFS_HOST} \
    --host=${CLFS_TARGET} \
    --without-bash-malloc \
    --cache-file=config.cache

Voici la signification de la nouvelle option de configure :

--without-bash-malloc

Cette option désactive l'utilisation de la fonction d'allocation de mémoire (malloc) de Bash qui est connue pour causer des erreurs de segmentation. En désactivant cette option, Bash utilisera la fonction malloc de la Glibc qui est plus stable.

Compilez le paquet :

make

Installez le paquet :

make install

Des détails sur ce paquet se trouvent sur Section 10.60.2, « Contenu de Bash. »