6.15. Coreutils-8.20

The Coreutils package contains utilities for showing and setting the basic system characteristics.

6.15.1. Installation of Coreutils

The following command updates the timestamps on the uname and hostname man pages so that the Makefile does not attempt to regenerate them:

touch man/uname.1 man/hostname.1

Configure can not properly determine how to get free space when cross-compiling - as a result, the df program will not be built. Add the following entries to config.cache to correct this, and fix various cross-compiling issues:

cat > config.cache << EOF

Prepare Coreutils for compilation:

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

The meaning of the new configure option:


Tells Coreutils to install hostname, which is needed for the Perl testsuite.

Coreutils does not build make-prime-list properly and the build host may not be able to execute the target binary. Build it using the host compiler so it can be ran for the generation of data required for the build.

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

Remove the building of the hostname man page as it is affected by the previous commands.

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

Compile the package:


Install the package:

make install

Details on this package are located in Section 10.24.2, “Contents of Coreutils.”