- Timestamp:
- 03/25/2019 09:03:00 AM (6 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 12.2, 12.2-rc1, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/loongarch-12.2, xry111/mips64el, xry111/multilib, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 0e800df
- Parents:
- 93058448
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/glibc.xml
r93058448 r797ada6 61 61 62 62 <screen><userinput remap="pre">patch -Np1 -i ../&glibc-glob-patch;</userinput></screen> 63 --> 63 --><!-- 64 64 <para>First create a compatibility symlink to avoid references to /tools in 65 65 our final glibc:</para> 66 66 67 67 <screen><userinput remap="pre">ln -sfv /tools/lib/gcc /usr/lib</userinput></screen> 68 69 <para> Determine the GCC include directory and create a symlink for LSB68 --> 69 <para>Create a symlink for LSB 70 70 compliance. Additionally, for x86_64, create a compatibility symlink 71 71 required for the dynamic loader to function correctly:</para> 72 72 73 73 <screen><userinput remap="pre">case $(uname -m) in 74 i?86) GCC_INCDIR=/usr/lib/gcc/$(uname -m)-pc-linux-gnu/&gcc-version;/include 75 ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3 74 i?86) ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3 76 75 ;; 77 x86_64) GCC_INCDIR=/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include 78 ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64 76 x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64 79 77 ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3 80 78 ;; 81 79 esac</userinput></screen> 82 80 <!-- 83 81 <para>Remove a file that may be left over from a previous build attempt: 84 82 </para> 85 83 86 84 <screen><userinput remap="pre">rm -f /usr/include/limits.h</userinput></screen> 87 85 --> 88 86 <para>The Glibc documentation recommends building Glibc 89 87 in a dedicated build directory:</para> … … 94 92 <para>Prepare Glibc for compilation:</para> 95 93 96 <screen><userinput remap="configure">CC="gcc - isystem $GCC_INCDIR -isystem /usr/include" \94 <screen><userinput remap="configure">CC="gcc -ffile-prefix-map=/tools=/usr" \ 97 95 ../configure --prefix=/usr \ 98 96 --disable-werror \ 99 97 --enable-kernel=&min-kernel; \ 100 98 --enable-stack-protector=strong \ 101 libc_cv_slibdir=/lib 102 unset GCC_INCDIR</userinput></screen> 99 libc_cv_slibdir=/lib</userinput></screen> 103 100 104 101 <variablelist> … … 106 103 107 104 <varlistentry> 108 <term><parameter>CC="gcc -isystem $GCC_INCDIR -isystem /usr/include"</parameter></term> 109 <listitem> 110 <para>Setting the location of both gcc and system include directories 111 avoids introduction of invalid paths in debugging symbols.</para> 105 <term><parameter>CC="gcc -ffile-prefix-map=/tools=/usr"</parameter></term> 106 <listitem> 107 <para>Make GCC record any references to files in /tools in result 108 of the compilation as if the files resided in /usr. This avoids 109 introduction of invalid paths in debugging symbols.</para> 112 110 </listitem> 113 111 </varlistentry>
Note:
See TracChangeset
for help on using the changeset viewer.