Przeglądaj źródła

Use GCC option -ffile-prefix-map to simplify chapter 6 Glibc instruction

was r11560.
Xi Ruoyao 6 lat temu
rodzic
commit
956517d347
2 zmienionych plików z 26 dodań i 25 usunięć
  1. 10 0
      chapter01/changelog.xml
  2. 16 25
      chapter06/glibc.xml

+ 10 - 0
chapter01/changelog.xml

@@ -43,6 +43,16 @@
     appropriate for the entry or if needed the entire day's listitem.
     -->
 
+    <listitem>
+      <para>2019-03-25</para>
+      <itemizedlist>
+        <listitem>
+          <para>[xry111] - 使用 -ffile-prefix-map 选项替代 -isystem
+          选项和符号链接,以简化 Glibc 构建过程。</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2019-03-13</para>
       <itemizedlist>

+ 16 - 25
chapter06/glibc.xml

@@ -74,34 +74,27 @@
     <para>Fix a minor security issue with glob functions:</para>
 
 <screen><userinput remap="pre">patch -Np1 -i ../&glibc-glob-patch;</userinput></screen>
--->
-    <!--para>First create a compatibility symlink to avoid references to /tools in
-    our final glibc:</para-->
-    <para>创建一个与最终的 LFS 系统兼容的符号链接,
-    避免最终的 Glibc 包含对 /tools 的引用:
-    </para>
+--><!--
+    <para>First create a compatibility symlink to avoid references to /tools in
+    our final glibc:</para>
 
 <screen><userinput remap="pre">ln -sfv /tools/lib/gcc /usr/lib</userinput></screen>
-
-    <!--para>Determine the GCC include directory and create a symlink for LSB
+-->
+    <!--para>Create a symlink for LSB
     compliance. Additionally, for x86_64, create a compatibility symlink
     required for the dynamic loader to function correctly:</para-->
-    <para>判定 GCC 包含文件目录,并为了兼容 LSB 创建一个符号链接。另外,
+    <para>为了兼容 LSB 创建一个符号链接。另外,
     对于 x86_64 ,还要创建一个动态链接器的兼容性符号链接,
     使它能够正常工作:</para>
 
 <screen><userinput remap="pre">case $(uname -m) in
-    i?86)    GCC_INCDIR=/usr/lib/gcc/$(uname -m)-pc-linux-gnu/&gcc-version;/include
-            ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3
+    i?86)   ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3
     ;;
-    x86_64) GCC_INCDIR=/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
-            ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64
+    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64
             ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
     ;;
 esac</userinput></screen>
-
-    <!--para>Remove a file that may be left over from a previous build attempt:
-    </para-->
+<!--
     <para>删除上次编译时可能留下的文件:</para>
     <note><title>译注</title>
     <para>译者的惨痛教训表明,如果存在这个文件,
@@ -109,7 +102,7 @@ esac</userinput></screen>
     </note>
 
 <screen><userinput remap="pre">rm -f /usr/include/limits.h</userinput></screen>
-
+-->
     <!--para>The Glibc documentation recommends building Glibc 
     in a dedicated build directory:</para-->
     <para>Glibc 文档推荐在专用目录中构建它:</para>
@@ -119,24 +112,22 @@ cd       build</userinput></screen>
 
     <para>准备安装 Glibc:</para>
 
-<screen><userinput remap="configure">CC="gcc -isystem $GCC_INCDIR -isystem /usr/include" \
+<screen><userinput remap="configure">CC="gcc -ffile-prefix-map=/tools=/usr" \
 ../configure --prefix=/usr                          \
              --disable-werror                       \
              --enable-kernel=&min-kernel;                    \
              --enable-stack-protector=strong        \
-             libc_cv_slibdir=/lib
-unset GCC_INCDIR</userinput></screen>
+             libc_cv_slibdir=/lib</userinput></screen>
 
    <variablelist>
       <title>新的配置选项和参数的含义:</title>
 
       <varlistentry>
-        <term><parameter>CC="gcc -isystem $GCC_INCDIR -isystem /usr/include"</parameter></term>
+        <term><parameter>CC="gcc -ffile-prefix-map=/tools=/usr"</parameter></term>
         <listitem>
-          <!--para>Setting the location of both gcc and system include directories
-          avoids introduction of invalid paths in debugging symbols.</para-->
-          <para>设定 GCC 和系统的包含文件目录,避免调试符号中包含无效路径。
-          </para>
+          <para>使 GCC 在编译结果中记录文件的路径时,
+          将 /tools 中的文件记录为 /usr 中的对应路径。
+          这可以避免调试符号中出现无效路径。</para>
         </listitem>
       </varlistentry>