diff options
author | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2009-05-27 06:33:49 +0000 |
---|---|---|
committer | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2009-05-27 06:33:49 +0000 |
commit | ea2dfe7386ae02dac0cb7a54f4cb6cea0213585f (patch) | |
tree | a04f2a551d5e60833a54bfa4f63def83c98eb32d /chapter06 | |
parent | 13fe71ee07b5ceaeac6fdda817024d67c3c783fa (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.xml | 39 |
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> |