Installing Diffutils-2.7

Estimated build time:           1 minute
Estimated required disk space:  4 MB

Installation of Diffutils

When installing Diffutils using glibc-2.1.x on your base system, it may be necessary to use a fix to prevent a variable name conflict. The following commands can be used in this case. Note that these commands can also be used for other glibc versions so if you aren't sure, then use the first version.

export CPPFLAGS=-Dre_max_failures=re_max_failures2 &&
./configure --prefix=$LFS/usr &&
unset CPPFLAGS &&
make LDFLAGS=-static PR_PROGRAM=/usr/bin/pr &&
make install

If you are using a newer glibc version (2.2.x), you can use the following commands to install Diffutils:

./configure --prefix=$LFS/usr &&
make LDFLAGS=-static PR_PROGRAM=/usr/bin/pr &&
make install

Command explanations

CPPFLAGS=-Dre_max_failures=re_max_failures2: The CPPFLAGS variable is a variable that's read by the cpp program (C PreProcessor). The value of this variable tells the preprocessor to replace every instance of re_max_failures it finds by re_max_failures2 before handing the source file to the compiler itself for compilation. This package has problems linking statically on systems that run an older Glibc version and this construction fixes that problem.

PR_PROGRAM=/usr/bin/pr: When 'diff' is called with the '-l' flag, it tries to find 'pr' at the location specified with the PR_PROGRAM variable. By default, this variable points to '/bin/pr', but since we install 'pr' in /usr/bin, we need to change this.

Contents of diffutils-2.7

Program Files

cmp, diff, diff3 and sdiff

Descriptions

cmp and diff

cmp and diff both compare two files and report their differences. Both programs have extra options which compare files in different situations.

diff3

The difference between diff and diff3 is that diff compares 2 files, diff3 compares 3 files.

sdiff

sdiff merges two files and interactively outputs the results.

Dependencies

Diffutils-2.7 needs the following to be installed:


bash: sh
binutils: ld, as
fileutils: chmod, cp, mv, rm
gcc: cc
grep: egrep, grep
make: make
sed: sed
sh-utils: basename, date
textutils: cat, tr