diff options
author | DJ Lucas <dj@linuxfromscratch.org> | 2016-12-17 06:46:18 +0000 |
---|---|---|
committer | DJ Lucas <dj@linuxfromscratch.org> | 2016-12-17 06:46:18 +0000 |
commit | be3d9f313a25000d1cbaa631852be62330828f2c (patch) | |
tree | 87d04399c46fe7a8612b0f3247011dc1c55adb46 | |
parent | 9f3c264e7c4b780161c70e899c09084bc1c400bd (diff) |
Merge nosym branch.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11154 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r-- | chapter01/changelog.xml | 11 | ||||
-rw-r--r-- | chapter05/gcc-pass1.xml | 16 | ||||
-rw-r--r-- | chapter05/gcc-pass2.xml | 13 | ||||
-rw-r--r-- | chapter06/creatingdirs.xml | 4 | ||||
-rw-r--r-- | chapter06/gcc.xml | 16 | ||||
-rw-r--r-- | chapter06/glibc.xml | 15 | ||||
-rw-r--r-- | chapter06/libcap.xml | 12 | ||||
-rw-r--r-- | general.ent | 6 |
8 files changed, 76 insertions, 17 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 2677d5842..413830867 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,17 @@ 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> <para>2016-12-10</para> <itemizedlist> <listitem> diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index 694bfe780..f72e11df0 100644 --- a/chapter05/gcc-pass1.xml +++ b/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. 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 cp -uv $file{,.orig} sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ @@ -97,7 +96,18 @@ done</userinput></screen> Finally, we use <command>touch</command> to update the timestamp on the copied files. When used in conjunction with <command>cp -u</command>, this 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 for the build of Glibc-&glibc-version;, so fix that by issuing the following diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml index a8844ed7d..776f23538 100644 --- a/chapter05/gcc-pass2.xml +++ b/chapter05/gcc-pass2.xml @@ -70,8 +70,7 @@ esac</userinput></screen> use the one installed in <filename 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 cp -uv $file{,.orig} sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ @@ -84,6 +83,16 @@ do touch $file.orig 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 packages. Unpack the tarballs and move them into the required directory names:</para> diff --git a/chapter06/creatingdirs.xml b/chapter06/creatingdirs.xml index 80e5dc474..1a1de7f1a 100644 --- a/chapter06/creatingdirs.xml +++ b/chapter06/creatingdirs.xml @@ -24,9 +24,7 @@ mkdir -v /usr/libexec mkdir -pv /usr/{,local/}share/man/man{1..8} 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 mkdir -v /var/{log,mail,spool} diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml index fe997becf..6a75fb287 100644 --- a/chapter06/gcc.xml +++ b/chapter06/gcc.xml @@ -45,6 +45,16 @@ <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> <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, 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 class="directory">/usr/lib</filename> directory.</para> diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml index 1a908a822..2c8718932 100644 --- a/chapter06/glibc.xml +++ b/chapter06/glibc.xml @@ -57,6 +57,18 @@ <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 in a dedicated build directory:</para> @@ -67,7 +79,8 @@ cd build</userinput></screen> <screen><userinput remap="configure">../configure --prefix=/usr \ --enable-kernel=&min-kernel; \ - --enable-obsolete-rpc</userinput></screen> + --enable-obsolete-rpc \ + libc_cv_slibdir=/lib</userinput></screen> <para>Compile the package:</para> diff --git a/chapter06/libcap.xml b/chapter06/libcap.xml index 76d855263..cabcb1774 100644 --- a/chapter06/libcap.xml +++ b/chapter06/libcap.xml @@ -55,7 +55,7 @@ <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> <variablelist> @@ -70,6 +70,16 @@ chmod -v 755 /usr/lib/libcap.so</userinput></screen> </listitem> </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> <para>The shared library needs to be moved to diff --git a/general.ent b/general.ent index 7e86984b4..47269cc70 100644 --- a/general.ent +++ b/general.ent @@ -1,13 +1,13 @@ -<!ENTITY version "SVN-20161210"> +<!ENTITY version "SVN-20161217"> <!ENTITY short-version "svn"> <!-- Used below in &blfs-book; Change to x.y for release but not -rc releases --> <!ENTITY generic-version "development"> <!-- Use "development" or "x.y[-pre{x}]" --> -<!ENTITY versiond "20161203-systemd"> +<!ENTITY versiond "20161217-systemd"> <!ENTITY short-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 – --> <!ENTITY milestone "7.11"> |