- Timestamp:
- 09/23/2022 04:06:19 PM (2 years ago)
- Branches:
- xry111/arm64, xry111/arm64-12.0
- Children:
- 44784c1
- Parents:
- c6df98a1 (diff), 10d7c7a8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- chapter08
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/binutils.xml
rc6df98a1 rf4facc4 168 168 </para> 169 169 170 <para>Twelve tests fail in the <command>gold</command> testsuite when the 171 <option>--enable-default-pie</option> and 172 <option>--enable-default-ssp</option> options are passed to GCC. 173 <!-- Caused by egrep deprecation. Note that we don't "patch" temp grep. 174 And it seems unworthy to add a sed into temp grep just for one test 175 failure. (I don't really agree to "patch" grep in the first place, 176 anyway.) --> 177 The test named <filename>ar with versioned solib</filename> is also 178 known to fail.</para> 179 170 180 <para>Install the package:</para> 171 181 172 182 <screen><userinput remap="install">make tooldir=/usr install</userinput></screen> 173 183 174 <para>Remove useless static libraries:</para> 175 176 <screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a</userinput></screen> 184 <para>Remove useless static libraries and an empty man page:</para> 185 186 <screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a 187 rm -fv /usr/share/man/man1/gprofng.1</userinput></screen> 177 188 178 189 </sect2> -
chapter08/cleanup.xml
rc6df98a1 rf4facc4 17 17 <para>There are also several files installed in the /usr/lib and /usr/libexec 18 18 directories with a file name extension of .la. These are "libtool archive" 19 files. As already said, they are only useful when linking with static20 libraries. They are unneeded, and potentially harmful, when using dynamic21 shared libraries, specially when using also non-autotools build systems.22 To remove them, run:</para>19 files. As already said, on a modern Linux system the libtool .la files are 20 only useful for libltdl. No libraries in LFS are expected to be loaded 21 by libltdl, and it's known that some .la files can cause BLFS packages 22 fail to build. Remove those files now:</para> 23 23 24 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> -
chapter08/eudev.xml
rc6df98a1 rf4facc4 40 40 <sect2 role="installation"> 41 41 <title>Installation of Eudev</title> 42 <!--43 <para>First, fix a test script:</para>44 42 45 <screen><userinput remap="pre">sed -r -i 's|/usr(/bin/test)|\1|' test/udev-test.pl</userinput></screen> 46 --> 47 <!-- 48 <para>Next, remove an unneeded line that causes a build failure:</para> 43 49 44 50 <screen><userinput remap="pre">sed -i '/keyboard_lookup_key/d' src/udev/udev-builtin-keyboard.c</userinput></screen> 51 --> 45 <para>First fix the location of udev rules in the .pc file:</para> 46 47 <screen><userinput remap="pre">sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.in</userinput></screen> 52 48 53 49 <para>Prepare Eudev for compilation:</para> -
chapter08/gawk.xml
rc6df98a1 rf4facc4 44 44 45 45 <screen><userinput remap="pre">sed -i 's/extras//' Makefile.in</userinput></screen> 46 47 <para>Now fix a programming error identified upstream:</para> 48 49 <screen><userinput remap="pre">sed -i '241i UPREF(m);' interpret.h</userinput></screen> 46 50 47 51 <para>Prepare Gawk for compilation:</para> -
chapter08/gcc.xml
rc6df98a1 rf4facc4 71 71 LD=ld \ 72 72 --enable-languages=c,c++ \ 73 --enable-default-pie \ 74 --enable-default-ssp \ 73 75 --disable-multilib \ 74 76 --disable-bootstrap \ … … 101 103 </variablelist> 102 104 105 <note> 106 <anchor id="pie-ssp-info" xreflabel="note on PIE and SSP"/> 107 <para> 108 PIE (position-independent executable) is a technique to produce 109 binary programs that can be loaded anywhere in memory. Without PIE, 110 the security feature named ASLR (Address Space Layout Randomization) 111 can be applied for the shared libraries, but not the executable 112 itself. Enabling PIE allows ASLR for the executables in addition to 113 the shared libraries, and mitigates some attacks based on fixed 114 addresses of sensitive code or data in the executables. 115 </para> 116 <para> 117 SSP (Stack Smashing Protection) is a technique to ensure 118 that the parameter stack is not corrupted. Stack corruption can 119 for example alter the return address of a subroutine, 120 which would allow transferring control to some dangerous code 121 (existing in the program or shared libraries, or injected by the 122 attacker somehow) instead of the original one. 123 </para> 124 </note> 125 103 126 <para>Compile the package:</para> 104 127 … … 107 130 <important> 108 131 <para>In this section, the test suite for GCC is considered 109 important, but it takes a long time. First time builders are 132 important, but it takes a long time. First time builders are 110 133 encouraged to not skip it. The time to run the tests can be 111 134 reduced significantly by adding -jx to the make command below … … 133 156 url="&test-results;"/> and 134 157 <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para> 158 159 <para>In gcc, eleven tests, in the i386 test suite are known to FAIL. 160 It's because the test files do not account for the 161 <parameter>--enable-default-pie</parameter> option.</para> 135 162 136 163 <para>In g++, four tests related to PR100400 are known to be reported … … 211 238 <para>Now make sure that we're setup to use the correct start files:</para> 212 239 213 <screen><userinput>grep - o '/usr/lib.*/crt[1in].*succeeded' dummy.log</userinput></screen>240 <screen><userinput>grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</userinput></screen> 214 241 215 242 <para>The output of the last command should be:</para> 216 243 217 <screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/ crt1.o succeeded244 <screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/Scrt1.o succeeded 218 245 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded 219 246 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen> … … 573 600 <listitem> 574 601 <para>Contains routines supporting GCC's stack-smashing protection 575 functionality</para> 602 functionality. Normally it's unused because glibc also provides 603 those routines</para> 576 604 <indexterm zone="ch-system-gcc libssp"> 577 605 <primary sortas="c-libssp">libssp</primary> -
chapter08/gettext.xml
rc6df98a1 rf4facc4 63 63 <para>Since bison is not yet installed in /usr, configure hardcodes 64 64 the directory containing translations for the bison program (the 65 65 "locale" directory) as /tools/share/locale. Passing this variable 66 66 to make allows overriding the choice made by configure.</para> 67 67 </listitem> -
chapter08/grep.xml
rc6df98a1 rf4facc4 40 40 <sect2 role="installation"> 41 41 <title>Installation of Grep</title> 42 43 <para> 44 First, remove a warning about using egrep and fgrep that makes 45 tests on some packages fail: 46 </para> 47 48 <screen><userinput remap="pre">sed -i "s/echo/#echo/" src/egrep.sh</userinput></screen> 42 49 43 50 <para>Prepare Grep for compilation:</para> -
chapter08/groff.xml
rc6df98a1 rf4facc4 53 53 54 54 <screen><userinput remap="configure">PAGE=<replaceable><paper_size></replaceable> ./configure --prefix=/usr</userinput></screen> 55 56 <para>Build the package:</para> 55 57 56 58 <screen><userinput remap="make">make</userinput></screen> -
chapter08/libtool.xml
rc6df98a1 rf4facc4 53 53 <para>To test the results<!--(about 11.0 SBU)-->, issue:</para> 54 54 55 <screen><userinput remap="test">make check</userinput></screen>55 <screen><userinput remap="test">make -k check</userinput></screen> 56 56 57 57 <note><para>The test time for libtool can be reduced significantly on a … … 62 62 63 63 <para>Five tests are known to fail in the LFS build environment due 64 to a circular dependency, but all tests pass if rechecked after 65 automake is installed.</para> 64 to a circular dependency, but these tests pass if rechecked after 65 automake is installed. Additionally, with grep-3.8, two tests will 66 trigger a warning for non-POSIX regular expressions and fail.</para> 66 67 67 68 <para>Install the package:</para> -
chapter08/meson.xml
rc6df98a1 rf4facc4 97 97 <seg>meson</seg> 98 98 <seg> 99 /usr/lib/python&python-minor;/site-packages/meson-&meson-version;.dist-info and 99 /usr/lib/python&python-minor;/site-packages/meson-&meson-version;.dist-info and 100 100 /usr/lib/python&python-minor;/site-packages/mesonbuild 101 101 </seg> … … 109 109 110 110 <varlistentry id="meson"> 111 111 <term><command>meson</command></term> 112 112 <listitem> 113 113 <para>A high productivity build system</para> -
chapter08/ncurses.xml
rc6df98a1 rf4facc4 123 123 124 124 <!-- To editors: crash of shell process was very rare but really 125 observed. We can't simply remove /usr/lib/libncursesw.so.6.x like 125 observed. We can't simply remove /usr/lib/libncursesw.so.6.x like 126 126 how we handle libmozjs-xx.so in BLFS because bash needs it, and 127 127 make will spawn new shell processes during "make install". --> … … 132 132 from the library file. Install the package with 133 133 <literal>DESTDIR</literal>, and replace the library file correctly using 134 <command>install</command> command. A useless static archive which is 135 not handled by <command>configure</command> is also removed:</para> 134 <command>install</command> command:</para> 136 135 137 136 <screen><userinput remap="install">make DESTDIR=$PWD/dest install … … 213 212 libmenuw.so, 214 213 libncursesw.so, 214 libncurses++w.so, 215 215 libpanelw.so, and their non-wide-character counterparts without "w" 216 216 in the library names.</seg> … … 367 367 </varlistentry> 368 368 369 <varlistentry id="libncurses__w"> 370 <term><filename class="libraryfile">libncurses++w</filename></term> 371 <listitem> 372 <para>Contains C++ binding for other libraries in this package</para> 373 <indexterm zone="ch-system-ncurses libncurses__w"> 374 <primary sortas="c-libncurses++w">libncurses++w</primary> 375 </indexterm> 376 </listitem> 377 </varlistentry> 378 369 379 <varlistentry id="libformw"> 370 380 <term><filename class="libraryfile">libformw</filename></term> -
chapter08/openssl.xml
rc6df98a1 rf4facc4 44 44 <title>Installation of OpenSSL</title> 45 45 <!-- 46 <para>First fix a problem with some advanced arc itectures with avx51246 <para>First fix a problem with some advanced architectures with avx512 47 47 capability:</para> 48 48 -
chapter08/pkgmgt.xml
rc6df98a1 rf4facc4 284 284 commercial distributions. Examples of package managers that follow this 285 285 approach are RPM (which, incidentally, is required by the <ulink 286 url="http ://refspecs.linuxfoundation.org/lsb.shtml">Linux286 url="https://refspecs.linuxfoundation.org/lsb.shtml">Linux 287 287 Standard Base Specification</ulink>), pkg-utils, Debian's apt, and 288 288 Gentoo's Portage system. A hint describing how to adopt this style of … … 297 297 as more complex package managers do. For details of Slackware package 298 298 management, see <ulink 299 url="http ://www.slackbook.org/html/package-management.html"/>.</para>299 url="https://www.slackbook.org/html/package-management.html"/>.</para> 300 300 </sect3> 301 301 -
chapter08/python.xml
rc6df98a1 rf4facc4 117 117 commands:</para> 118 118 119 120 [global]119 <screen><userinput remap="install">cat > /etc/pip.conf << EOF 120 <literal>[global] 121 121 root-user-action = ignore 122 disable-pip-version-check = true 122 disable-pip-version-check = true</literal> 123 123 EOF 124 124 </userinput></screen> -
chapter08/readline.xml
rc6df98a1 rf4facc4 64 64 <listitem> 65 65 <para>This option tells Readline that it can find the termcap 66 67 68 66 library functions in the curses library, rather than a separate 67 termcap library. It allows generating a correct 68 <filename>readline.pc</filename> file.</para> 69 69 </listitem> 70 70 </varlistentry> -
chapter08/util-linux.xml
rc6df98a1 rf4facc4 101 101 su tester -c "make -k check"</userinput></screen> 102 102 103 <para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel 103 <para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel 104 104 does not have the option CONFIG_CRYPTO_USER_API_HASH set.</para> 105 105 -
chapter08/vim.xml
rc6df98a1 rf4facc4 168 168 <note> 169 169 <para>By default, vim only installs spell files for the English language. 170 To install spell files for your preferred language, download the 171 <filename>*.spl</filename> and optionally, the <filename>*.sug</filename> 172 files for your language and character encoding from <ulink 173 url="ftp://ftp.vim.org/pub/vim/runtime/spell/"/> and save them to 174 <filename class='directory'>/usr/share/&vim-docdir;/spell/</filename>.</para> 170 To install spell files for your preferred language, copy the 171 <filename class='extension'>.spl</filename> and optionally, the 172 <filename class='extension'>.sug</filename> files for your language 173 and character encoding from 174 <filename class='directory'>runtime/spell</filename> into 175 <filename class='directory'> 176 /usr/share/&vim-docdir;/spell/</filename>.</para> 175 177 176 178 <para>To use these spell files, some configuration in … … 180 182 set spell</literal></screen> 181 183 182 <para>For more information, see the appropriate README file located183 at the URL above.</para>184 <para>For more information, see 185 <filename>runtime/spell/README.txt</filename>.</para> 184 186 </note> 185 187
Note:
See TracChangeset
for help on using the changeset viewer.