aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/findutils-inst.xml
blob: 985242b33730c581074f209aeac2d27ca1c0e108 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>

<sect2>
<title>Installing Findutils</title>

<para>The Findutils package is quite old and it has problems compiling
against newer Glibc versions (Glibc-2.0.x and up). You need to apply the
patch which fixes the following issues:</para>

<itemizedlist>
<listitem><para>Findutils declares a function called basename, but this
function name is already used by the C standard libraries. This patch
changes the Findutils version of basename function so that it is called
basename2 instead.</para></listitem>

<listitem><para>Findutils uses an incorrect way to use library files. It
declares library functions, to tell the compiler what the name of the
function will be when the libraries are linked in. This syntax is invalid
and causes compiler warnings/errors. This patch removes this improper
syntax.</para></listitem>

<listitem><para>Every GNU package is supposed use a macro called _GNU_SOURCE.
This macro enables declarations of GNU library extension functions and so the
compiler will be able to detect name conflicts between functions more easily.
This patch adds this macro to the source code.</para></listitem>
</itemizedlist>

<para><screen><userinput>patch -Np1 -i ../findutils-&findutils-patch-version;.patch</userinput></screen></para>

<para>Prepare Findutils to be compiled:</para>

<para><screen><userinput>CPPFLAGS="-Dre_max_failures=re_max_failures2" \
&nbsp;&nbsp;&nbsp;&nbsp;LDFLAGS="-static" ./configure --prefix=$LFS/static</userinput></screen></para>

<para>Continue with compiling the package:</para>

<para><screen><userinput>make</userinput></screen></para>

<para>And finish off installing the package:</para>

<para><screen><userinput>make install</userinput></screen></para>

</sect2>