aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06
diff options
context:
space:
mode:
authorBruce Dubbs <bdubbs@linuxfromscratch.org>2009-05-27 06:33:49 +0000
committerBruce Dubbs <bdubbs@linuxfromscratch.org>2009-05-27 06:33:49 +0000
commitea2dfe7386ae02dac0cb7a54f4cb6cea0213585f (patch)
treea04f2a551d5e60833a54bfa4f63def83c98eb32d /chapter06
parent13fe71ee07b5ceaeac6fdda817024d67c3c783fa (diff)
Revert zlib to doing separate builds for
static and dynamic libraries to ensure the -fPIC parameter is set properly in both cases. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8932 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06')
-rw-r--r--chapter06/zlib.xml39
1 files changed, 28 insertions, 11 deletions
diff --git a/chapter06/zlib.xml b/chapter06/zlib.xml
index 9d4fccd81..c3c00730c 100644
--- a/chapter06/zlib.xml
+++ b/chapter06/zlib.xml
@@ -47,17 +47,12 @@
a specified <envar>CFLAGS</envar> variable, be sure to add the
<parameter>-fPIC</parameter> directive to the <envar>CFLAGS</envar>
variable for the duration of the configure command below, then
- remove it afterwards.</para>
+ remove it when building the static library.</para>
</note>
- <para>Modify the build scripts to ensure compilation with position independent
- code and allow building both static and dynamic libraries in one step:</para>
+ <para>Prepare Zlib for building the dynamic library:</para>
-<screen><userinput remap="configure">patch -Np1 -i ../&zlib-fpic-patch;</userinput></screen>
-
- <para>Prepare Zlib for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr --shared</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr --shared --libdir=/lib</userinput></screen>
<para>Compile the package:</para>
@@ -67,13 +62,35 @@
<screen><userinput remap="test">make check</userinput></screen>
- <para>Install the libraries:</para>
+ <para>Install the shared library:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ <para>The previous command installed a <filename
+ class="extension">.so</filename> file in <filename
+ class="directory">/lib</filename>. We will remove it and relink it into
+ <filename class="directory">/usr/lib</filename>:</para>
+
+<screen><userinput remap="install">rm -v /lib/libz.so
+ln -sfv ../../lib/libz.so.&zlib-version; /usr/lib/libz.so</userinput></screen>
+
+ <para>Build the static library:</para>
+
+<screen><userinput remap="make">make clean
+./configure --prefix=/usr
+make</userinput></screen>
+
+ <para>To test the results again, issue:</para>
+
+<screen><userinput remap="test">make check</userinput></screen>
+
+ <para>Install the static library:</para>
<screen><userinput remap="install">make install</userinput></screen>
- <para>Finally, fix permissions on the static library:</para>
+ <para>Fix the permissions on the static library:</para>
-<screen><userinput remap="install">chmod 0644 /usr/lib/libz.a</userinput></screen>
+<screen><userinput remap="install">chmod -v 644 /usr/lib/libz.a</userinput></screen>
</sect2>