6.15. Coreutils-8.20

Le paquet Coreutils contient des outils pour afficher et configurer les caractéristiques basiques d'un système.

6.15.1. Installation de Coreutils

La commande suivante met à jour les temps indiqués sur les pages de man d'uname et de hostname afin que Makefile ne s'attende pas à les regénérer :

touch man/uname.1 man/hostname.1

Configure ne peut pas déterminer correctement comment obtenir de l'espace libre lors de la compilation croisée, il en résulte que le programme df ne sera pas construit. Ajoutez les entrées suivantes dans config.cache pour corriger cela et corrigez divers problèmes de compilation croisée :

cat > config.cache << EOF
fu_cv_sys_stat_statfs2_bsize=yes
gl_cv_func_working_mkstemp=yes
EOF

Préparez la compilation de Coreutils :

CC="${CC} ${BUILD64}" ./configure --prefix=/tools \
    --build=${CLFS_HOST} --host=${CLFS_TARGET} \
    --enable-install-program=hostname --cache-file=config.cache

Voici la signification de la nouvelle option de configure :

--enable-install-program=hostname

Dit à Coreutils d'installer hostname, nécessaire à la suite de tests de Perl.

Coreutils ne construit pas make-prime-list correctement et il se peut que l'hôte n'exécute pas le binaire cible. Construisez-le en utilisant le compilateur de l'hôte pour qu'on puisse l'exécuter pour la génération des données nécessaires à la construction.

cp -v Makefile{,.orig}
sed '/src_make_prime_list/d' Makefile.orig > Makefile
depbase=`echo src/make-prime-list.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    gcc -std=gnu99  -I. -I./lib  -Ilib -I./lib -Isrc -I./src  \
    -fdiagnostics-show-option -funit-at-a-time -g -O2 -MT \
    src/make-prime-list.o -MD -MP -MF $depbase.Tpo -c -o src/make-prime-list.o \
    src/make-prime-list.c &&
mv -f $depbase.Tpo $depbase.Po
gcc -std=gnu99 -fdiagnostics-show-option -funit-at-a-time -g -O2 \
        -Wl,--as-needed  -o src/make-prime-list src/make-prime-list.o

Supprimez la construction de la page de man de hostname car elle est modifiée par les commandes précédentes.

cp -v Makefile{,.bak}
sed -e '/hostname.1/d' Makefile.bak > Makefile

Compilez le paquet :

make

Installez le paquet :

make install

Les détails sur ce paquet sont situés dans Section 10.24.2, “Contenu de Coreutils.”