7.8. E2fsprogs-1.42.6

The E2fsprogs package contains the utilities for handling the ext2 file system. It also supports the ext3 and ext4 journaling file systems.

7.8.1. Installation of E2fsprogs

Make sure the libraries get installed to /tools/lib64:

cp -v configure{,.orig}
sed -e "/libdir=.*\/lib/s@/lib@/lib64@g" configure.orig > configure

The E2fsprogs documentation recommends that the package be built in a subdirectory of the source tree:

mkdir -v build
cd build

When cross-compiling, configure cannot determine sizes and assumes short=2, int=4, long=4, long long=8. This is not correct for PowerPC64. Adjust the values with:

echo "ac_cv_sizeof_long=8" > config.cache

Prepare E2fsprogs for compilation:

CC="${CC} ${BUILD64}" PKG_CONFIG=true \
  ../configure --prefix=/tools --enable-elf-shlibs \
    --build=${CLFS_HOST} --host=${CLFS_TARGET} \
    --disable-libblkid --disable-libuuid --disable-fsck \
    --disable-uuidd --cache-file=config.cache

The meaning of the configure options:

--enable-elf-shlibs

This creates the shared libraries which some programs in this package use.

Compile the package:

make LIBUUID="-luuid" STATIC_LIBUUID="-luuid" \
    LIBBLKID="-lblkid" STATIC_LIBBLKID="-lblkid" libs
make LIBUUID="-luuid" STATIC_LIBUUID="-luuid" LIBBLKID="-lblkid" \
    STATIC_LIBBLKID="-lblkid" LDFLAGS="-Wl,-rpath,/tools/lib64" -C e2fsck/

Install the e2fsck binary:

make install -C e2fsck

Install the static libraries and headers:

make install-libs

Create needed symlinks for a bootable system:

ln -sv /tools/sbin/{fsck.ext2,fsck.ext3,fsck.ext4,e2fsck} ${CLFS}/sbin

Details on this package are located in Section 10.34.2, “Contents of E2fsprogs.”