Browse Source

Merge nosym branch.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11154 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
DJ Lucas 8 years ago
parent
commit
be3d9f313a

+ 11 - 0
chapter01/changelog.xml

@@ -42,6 +42,17 @@
     <listitem revision="sysv"> or <listitem revision="systemd"> as
     <listitem revision="sysv"> or <listitem revision="systemd"> as
     appropriate for the entry or if needed the entire day's listitem.
     appropriate for the entry or if needed the entire day's listitem.
 -->
 -->
+    <listitem>
+      <para>2016-12-17</para>
+      <itemizedlist>
+        <listitem>
+          <para>[dj] - Remove {,/usr}/lib64 symlinks for x86_64 builds. Add
+          /lib64 directory with symlinks to dynamic loader. Adjust installation
+          of glibc, gcc, and libcap to account for filesystemd changes.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
     <listitem>
       <para>2016-12-10</para>
       <para>2016-12-10</para>
       <itemizedlist>
       <itemizedlist>

+ 13 - 3
chapter05/gcc-pass1.xml

@@ -68,8 +68,7 @@ mv -v mpc-&mpc-version; mpc</userinput></screen>
     class="directory">/usr/include</filename> from GCC's include search path.
     class="directory">/usr/include</filename> from GCC's include search path.
     Issue:</para>
     Issue:</para>
 
 
-<screen><userinput remap="pre">for file in \
- $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
+<screen><userinput remap="pre">for file in gcc/config/{linux,i386/linux{,64}}.h
 do
 do
   cp -uv $file{,.orig}
   cp -uv $file{,.orig}
   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' \
   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' \
@@ -97,7 +96,18 @@ done</userinput></screen>
     Finally, we use <command>touch</command> to update the timestamp on the
     Finally, we use <command>touch</command> to update the timestamp on the
     copied files.  When used in conjunction with <command>cp -u</command>, this
     copied files.  When used in conjunction with <command>cp -u</command>, this
     prevents unexpected changes to the original files in case the commands are
     prevents unexpected changes to the original files in case the commands are
-    inadvertently run twice.  </para>
+    inadvertently run twice.</para>
+
+    <para>Finally, on x86_64 hosts, set the default directory name for
+    64-bit libraries to <quote>lib</quote>:</para>
+
+<screen><userinput remap="pre">case $(uname -m) in
+  x86_64)
+    sed -e '/m64=/s/lib64/lib/' \
+        -i.orig gcc/config/i386/t-linux64
+ ;;
+esac</userinput></screen>
+
 <!--
 <!--
     <para>GCC doesn't detect stack protection correctly, which causes problems
     <para>GCC doesn't detect stack protection correctly, which causes problems
     for the build of Glibc-&glibc-version;, so fix that by issuing the following
     for the build of Glibc-&glibc-version;, so fix that by issuing the following

+ 11 - 2
chapter05/gcc-pass2.xml

@@ -70,8 +70,7 @@ esac</userinput></screen>
     use the one installed in <filename
     use the one installed in <filename
     class="directory">/tools</filename>.</para>
     class="directory">/tools</filename>.</para>
 
 
-<screen><userinput remap="pre">for file in \
- $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
+<screen><userinput remap="pre">for file in gcc/config/{linux,i386/linux{,64}}.h
 do
 do
   cp -uv $file{,.orig}
   cp -uv $file{,.orig}
   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' \
   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' \
@@ -84,6 +83,16 @@ do
   touch $file.orig
   touch $file.orig
 done</userinput></screen>
 done</userinput></screen>
 
 
+    <para>If building on x86_64, change the default directory name for 64-bit
+    libraries to <quote>lib</quote>:</para>
+
+<screen><userinput remap="pre">case $(uname -m) in
+  x86_64)
+    sed -e '/m64=/s/lib64/lib/' \
+        -i.orig gcc/config/i386/t-linux64
+  ;;
+esac</userinput></screen>
+
     <para>As in the first build of GCC it requires the GMP, MPFR and MPC
     <para>As in the first build of GCC it requires the GMP, MPFR and MPC
     packages. Unpack the tarballs and move them into the required directory
     packages. Unpack the tarballs and move them into the required directory
     names:</para>
     names:</para>

+ 1 - 3
chapter06/creatingdirs.xml

@@ -24,9 +24,7 @@ mkdir -v  /usr/libexec
 mkdir -pv /usr/{,local/}share/man/man{1..8}
 mkdir -pv /usr/{,local/}share/man/man{1..8}
 
 
 case $(uname -m) in
 case $(uname -m) in
- x86_64) ln -sv lib /lib64
-         ln -sv lib /usr/lib64
-         ln -sv lib /usr/local/lib64 ;;
+ x86_64) mkdir -v /lib64 ;;
 esac
 esac
 
 
 mkdir -v /var/{log,mail,spool}
 mkdir -v /var/{log,mail,spool}

+ 12 - 4
chapter06/gcc.xml

@@ -45,6 +45,16 @@
 
 
 <screen><userinput remap="pre">patch -Np1 -i ../gcc-6.1.0-asan-1.patch</userinput></screen>
 <screen><userinput remap="pre">patch -Np1 -i ../gcc-6.1.0-asan-1.patch</userinput></screen>
 -->
 -->
+    <para>If building on x86_64, change the default direcotory name for 64-bit
+    libraries to <quote>lib</quote>:</para>
+
+<screen><userinput remap="pre">case $(uname -m) in
+  x86_64)
+    sed -e '/m64=/s/lib64/lib/' \
+        -i.orig gcc/config/i386/t-linux64
+  ;;
+esac</userinput></screen>
+
     <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
     <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
 
 
 <screen><userinput remap="pre">mkdir -v build
 <screen><userinput remap="pre">mkdir -v build
@@ -175,10 +185,8 @@ ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \
 
 
   <para>Depending on your machine architecture, the above may differ slightly,
   <para>Depending on your machine architecture, the above may differ slightly,
   the difference usually being the name of the directory
   the difference usually being the name of the directory
-  after <filename class="directory">/usr/lib/gcc</filename>. If your machine is
-  a 64-bit system, you may also see a directory named <filename class="directory">lib64</filename>
-  towards the end of the string. The important thing to
-  look for here is that <command>gcc</command> has found all three
+  after <filename class="directory">/usr/lib/gcc</filename>. The important
+  thing to look for here is that <command>gcc</command> has found all three
   <filename>crt*.o</filename> files under the
   <filename>crt*.o</filename> files under the
   <filename class="directory">/usr/lib</filename> directory.</para>
   <filename class="directory">/usr/lib</filename> directory.</para>
 
 

+ 14 - 1
chapter06/glibc.xml

@@ -57,6 +57,18 @@
 
 
 <screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
 <screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
 
 
+    <para>Create a symlink for LSB compliance and, for x86_64, a
+    compatibility symlink required for the dynamic loader to function
+    correctly:</para>
+
+<screen><userinput remap="pre">case $(uname -m) in
+    x86) ln -s ld-linux.so.2 /lib/ld-lsb.so.3
+    ;;
+    x86_64) ln -s ../lib/ld-linux-x86-64.so.2 /lib64
+            ln -s ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
+    ;;
+esac</userinput></screen>
+
     <para>The Glibc documentation recommends building Glibc 
     <para>The Glibc documentation recommends building Glibc 
     in a dedicated build directory:</para>
     in a dedicated build directory:</para>
 
 
@@ -67,7 +79,8 @@ cd       build</userinput></screen>
 
 
 <screen><userinput remap="configure">../configure --prefix=/usr          \
 <screen><userinput remap="configure">../configure --prefix=/usr          \
              --enable-kernel=&min-kernel; \
              --enable-kernel=&min-kernel; \
-             --enable-obsolete-rpc</userinput></screen>
+             --enable-obsolete-rpc        \
+             libc_cv_slibdir=/lib</userinput></screen>
 
 
     <para>Compile the package:</para>
     <para>Compile the package:</para>
 
 

+ 11 - 1
chapter06/libcap.xml

@@ -55,7 +55,7 @@
 
 
     <para>Install the package:</para>
     <para>Install the package:</para>
 
 
-<screen><userinput remap="install">make RAISE_SETFCAP=no prefix=/usr install
+<screen><userinput remap="install">make RAISE_SETFCAP=no lib=lib prefix=/usr install
 chmod -v 755 /usr/lib/libcap.so</userinput></screen>
 chmod -v 755 /usr/lib/libcap.so</userinput></screen>
 
 
     <variablelist>
     <variablelist>
@@ -70,6 +70,16 @@ chmod -v 755 /usr/lib/libcap.so</userinput></screen>
         </listitem>
         </listitem>
       </varlistentry>
       </varlistentry>
 
 
+      <varlistentry>
+        <term><parameter>lib=lib</parameter></term>
+        <listitem>
+          <para>This parameter installs the library in
+          <filename>$prefix/lib</filename> rather than
+          <filename>$prefix/lib64</filename> on x86_64. It has no effect on
+          x86.</para>
+        </listitem>
+      </varlistentry>
+ 
     </variablelist>
     </variablelist>
 
 
     <para>The shared library needs to be moved to
     <para>The shared library needs to be moved to

+ 3 - 3
general.ent

@@ -1,13 +1,13 @@
-<!ENTITY version         "SVN-20161210">
+<!ENTITY version         "SVN-20161217">
 <!ENTITY short-version   "svn">  <!-- Used below in &blfs-book; 
 <!ENTITY short-version   "svn">  <!-- Used below in &blfs-book; 
                                       Change to x.y for release but not -rc releases -->
                                       Change to x.y for release but not -rc releases -->
 <!ENTITY generic-version "development"> <!-- Use "development"  or "x.y[-pre{x}]" -->
 <!ENTITY generic-version "development"> <!-- Use "development"  or "x.y[-pre{x}]" -->
 
 
-<!ENTITY versiond        "20161203-systemd">
+<!ENTITY versiond        "20161217-systemd">
 <!ENTITY short-versiond  "systemd">
 <!ENTITY short-versiond  "systemd">
 <!ENTITY generic-versiond "systemd"> 
 <!ENTITY generic-versiond "systemd"> 
 
 
-<!ENTITY releasedate     "December 10, 2016">
+<!ENTITY releasedate     "December 17, 2016">
 <!ENTITY copyrightdate   "1999-2016"><!-- jhalfs needs a literal dash, not &ndash; -->
 <!ENTITY copyrightdate   "1999-2016"><!-- jhalfs needs a literal dash, not &ndash; -->
 <!ENTITY milestone       "7.11">
 <!ENTITY milestone       "7.11">