Changes in / [7b3d536:f976691]
- Files:
-
- 2 deleted
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r7b3d536 rf976691 35 35 endif 36 36 37 ifndef ARCH38 ARCH = default39 endif40 ifneq ($(ARCH), default)41 ifneq ($(ARCH), ml_32)42 ifneq ($(ARCH), ml_x32)43 ifneq ($(ARCH), ml_all)44 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)45 endif46 endif47 endif48 endif49 50 37 book: validate profile-html 51 38 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 143 130 --output $(RENDERTMP)/lfs-html2.xml \ 144 131 --stringparam profile.revision $(REV) \ 145 --stringparam profile.arch $(ARCH) \146 132 stylesheets/lfs-xsl/profile.xsl \ 147 133 index.xml … … 197 183 $(Q)xsltproc --nonet --xinclude \ 198 184 --stringparam profile.revision $(REV) \ 199 --stringparam profile.arch $(ARCH) \200 185 --output $(RENDERTMP)/md5sum.xml \ 201 186 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r7b3d536 rf976691 39 39 <itemizedlist> 40 40 <listitem> 41 <para>The version of the book being used (in this case &version; <phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>41 <para>The version of the book being used (in this case &version;)</para> 42 42 </listitem> 43 43 <listitem> … … 54 54 </listitem> 55 55 <listitem> 56 <para>Note whether you have deviated from the book at all </para>56 <para>Note whether you have deviated from the book at all </para> 57 57 </listitem> 58 58 </itemizedlist> -
chapter01/changelog.xml
r7b3d536 rf976691 11 11 <title>Changelog</title> 12 12 13 <para>This is version &version; <phrase arch="ml_32,ml_x32,ml_all">&version;-multilib</phrase>of the Linux From Scratch book, dated13 <para>This is version &version; of the Linux From Scratch book, dated 14 14 &releasedate;. If this book is more than six months old, a newer and better 15 15 version is probably already available. To find out, please check one of the -
chapter02/hostreqs.xml
r7b3d536 rf976691 263 263 bash version-check.sh</userinput></screen> 264 264 265 <para arch="ml_32,ml_x32,ml_all"> 266 Building multilib support requires the kernel of the host system 267 to have 32-bit emulation support included. 268 </para> 269 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 270 [*] IA32 Emulation 271 <M> IA32 a.out support 272 [*] x32 ABI for 64-bit mode 273 </screen> 274 275 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 276 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 277 enabled but only 'IA32 Emulation', you can continue to build your 278 system but you have to leave out any sections showing instructions 279 for building x32 objects. If neither 'IA32 Emulation' nor 280 'x32 ABI for 64-bit mode' is enabled, you will run in errors 281 latest when building <application>glibc</application> in Chapter 6, 282 so an upgrade of your host system kernel is required. 283 </para> 284 285 </sect2> 286 265 </sect2> 287 266 </sect1> -
chapter03/packages.xml
r7b3d536 rf976691 388 388 </varlistentry> 389 389 390 <varlistentry arch="ml_32,ml_x32,ml_all">391 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>392 <listitem>393 <para>Home page: <ulink url="&isl-home;"/></para>394 <para>Download: <ulink url="&isl-url;"/></para>395 <para>MD5 sum: <literal>&isl-md5;</literal></para>396 </listitem>397 </varlistentry>398 399 390 <varlistentry revision="systemd"> 400 391 <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> -
chapter04/addinguser.xml
r7b3d536 rf976691 85 85 x86_64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 <screen arch="ml_32" ><userinput>chown -v lfs $LFS/lib32</userinput></screen>88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>90 87 91 88 <note><para>In some host systems, the following <command>su</command> command does not complete -
chapter04/creatingminlayout.xml
r7b3d536 rf976691 31 31 x86_64) mkdir -pv $LFS/lib64 ;; 32 32 esac</userinput></screen> 33 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib3234 ln -sv usr/lib32 $LFS/lib32</userinput></screen>35 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx3236 ln -sv usr/libx32 $LFS/libx32</userinput></screen>37 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}3238 ln -sv usr/lib32 $LFS/lib3239 ln -sv usr/libx32 $LFS/libx32</userinput></screen>40 33 41 34 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled -
chapter04/settingenviron.xml
r7b3d536 rf976691 39 39 <filename>.bashrc</filename> file now:</para> 40 40 41 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF"41 <screen><userinput>cat > ~/.bashrc << "EOF" 42 42 <literal>set +h 43 43 umask 022 … … 50 50 CONFIG_SITE=$LFS/usr/share/config.site 51 51 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 52 EOF</userinput></screen>53 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF"54 <literal>set +h55 umask 02256 LFS=/mnt/lfs57 LC_ALL=POSIX58 LFS_TGT=x86_64-lfs-linux-gnu59 LFS_TGT32=i686-lfs-linux-gnu60 LFS_TGTX32=x86_64-lfs-linux-gnux3261 PATH=/usr/bin62 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi63 PATH=$LFS/tools/bin:$PATH64 CONFIG_SITE=$LFS/usr/share/config.site65 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>66 52 EOF</userinput></screen> 67 53 -
chapter05/binutils-pass1.xml
r7b3d536 rf976691 71 71 <para>Now prepare Binutils for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \73 <screen><userinput remap="configure">../configure --prefix=$LFS/tools \ 74 74 --with-sysroot=$LFS \ 75 75 --target=$LFS_TGT \ … … 77 77 --enable-gprofng=no \ 78 78 --disable-werror</userinput></screen> 79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \80 --with-sysroot=$LFS \81 --target=$LFS_TGT \82 --disable-nls \83 --enable-gprofng=no \84 --disable-werror \85 --enable-multilib</userinput></screen>86 79 87 80 <variablelist> … … 140 133 </varlistentry> 141 134 142 <varlistentry arch="ml_32,ml_x32,ml_all">143 <term><parameter>--enable-multilib</parameter></term>144 <listitem>145 <para>Enables multilib support.</para>146 </listitem>147 </varlistentry>148 149 135 </variablelist> 150 136 -
chapter05/gcc-pass1.xml
r7b3d536 rf976691 63 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 64 65 <para arch="default">On x86_64 hosts, set the default directory name for65 <para>On x86_64 hosts, set the default directory name for 66 66 64-bit libraries to <quote>lib</quote>:</para> 67 67 68 <screen arch="default"><userinput remap="pre">case $(uname -m) in68 <screen><userinput remap="pre">case $(uname -m) in 69 69 x86_64) 70 70 sed -e '/m64=/s/lib64/lib/' \ … … 73 73 esac</userinput></screen> 74 74 75 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for76 libraries:</para>77 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \79 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \80 -i.orig gcc/config/i386/t-linux6481 </userinput></screen>82 83 75 <para>The GCC documentation recommends building GCC 84 76 in a dedicated build directory:</para> … … 89 81 <para>Prepare GCC for compilation:</para> 90 82 91 <screen arch="default"><userinput remap="configure">../configure \83 <screen><userinput remap="configure">../configure \ 92 84 --target=$LFS_TGT \ 93 85 --prefix=$LFS/tools \ … … 109 101 --disable-libstdcxx \ 110 102 --enable-languages=c,c++</userinput></screen> 111 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"112 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"113 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"114 arch="ml_all">mlist=m64,m32,mx32</userinput>115 <userinput remap="configure">../configure \116 --target=$LFS_TGT \117 --prefix=$LFS/tools \118 --with-glibc-version=&glibc-version; \119 --with-sysroot=$LFS \120 --with-newlib \121 --without-headers \122 --enable-default-pie \123 --enable-default-ssp \124 --enable-initfini-array \125 --disable-nls \126 --disable-shared \127 --enable-multilib --with-multilib-list=$mlist \128 --disable-decimal-float \129 --disable-threads \130 --disable-libatomic \131 --disable-libgomp \132 --disable-libquadmath \133 --disable-libssp \134 --disable-libvtv \135 --disable-libstdcxx \136 --enable-languages=c,c++</userinput></screen>137 138 103 <variablelist> 139 104 <title>The meaning of the configure options:</title> … … 192 157 </varlistentry> 193 158 194 <varlistentry arch="default">159 <varlistentry> 195 160 <term><parameter>--disable-multilib</parameter></term> 196 161 <listitem> 197 162 <para>On x86_64, LFS does not support a multilib configuration. 198 163 This switch is harmless for x86.</para> 199 </listitem>200 </varlistentry>201 <varlistentry arch="ml_32,ml_x32,ml_all">202 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>203 <listitem>204 <para>LFS canbe used to support multilib. Which they are is205 specified in the multilib list.</para>206 164 </listitem> 207 165 </varlistentry> -
chapter05/glibc.xml
r7b3d536 rf976691 48 48 operation of the dynamic library loader:</para> 49 49 50 <screen arch="default"><userinput remap="pre">case $(uname -m) in50 <screen><userinput remap="pre">case $(uname -m) in 51 51 i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 52 52 ;; … … 55 55 ;; 56 56 esac</userinput></screen> 57 <!-- no ld-linux.so.2 here as multilib is based on x86_64, not on i686 -->58 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib6459 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>60 57 61 58 <note> … … 89 86 <para>Next, prepare Glibc for compilation:</para> 90 87 91 <screen arch="default"><userinput remap="configure">../configure \88 <screen><userinput remap="configure">../configure \ 92 89 --prefix=/usr \ 93 90 --host=$LFS_TGT \ … … 97 94 --disable-crypt \ 98 95 libc_cv_slibdir=/usr/lib</userinput></screen> 99 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \100 --prefix=/usr \101 --host=$LFS_TGT \102 --build=$(../scripts/config.guess) \103 --enable-kernel=&min-kernel; \104 --with-headers=$LFS/usr/include \105 --enable-multi-arch \106 libc_cv_slibdir=/usr/lib</userinput></screen>107 96 108 97 <variablelist> … … 216 205 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 217 206 218 <para arch="default">Note that for 32-bit machines, the interpreter name will be207 <para>Note that for 32-bit machines, the interpreter name will be 219 208 <filename>/lib/ld-linux.so.2</filename>.</para> 220 209 … … 244 233 </sect2> 245 234 246 <!-- - - - - - - - - - -->247 <!-- Multilib - 32bit -->248 <!-- - - - - - - - - - -->249 <sect2 arch="ml_32,ml_all">250 <title>Building Glibc - 32bit</title>251 252 <para>Now recompile for m32. The extracted source can be253 reused but needs to be cleaned before installing the m32254 version of Glibc.</para>255 256 <para>Clear the build directory and remove artefacts from257 previous build:</para>258 259 <screen><userinput remap="pre">make clean260 find .. -name "*.a" -delete</userinput></screen>261 262 <para>Configure Glibc for m32 with the following commands:</para>263 264 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \265 CXX="$LFS_TGT-g++ -m32" \266 ../configure \267 --prefix=/usr \268 --host=$LFS_TGT32 \269 --build=$(../scripts/config.guess) \270 --enable-kernel=&min-kernel; \271 --with-headers=$LFS/usr/include \272 --enable-multi-arch \273 --libdir=/usr/lib32 \274 --libexecdir=/usr/lib32 \275 libc_cv_slibdir=/usr/lib32</userinput></screen>276 277 <para>Compile the package:</para>278 279 <screen><userinput remap="make">make</userinput></screen>280 281 <para>Install the package:</para>282 283 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install284 cp -a DESTDIR/usr/lib32 $LFS/usr/285 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \286 $LFS/usr/include/gnu/287 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>288 289 290 <caution>291 <para>At this point, it is imperative to stop and ensure that the basic292 functions (compiling and linking) of the new toolchain are working as293 expected. To perform a sanity check, run the following commands:</para>294 295 <screen><userinput>echo 'int main(){}' > dummy.c296 $LFS_TGT-gcc -m32 dummy.c297 readelf -l a.out | grep '/ld-linux'</userinput></screen>298 299 <para>If everything is working correctly, there should be no errors,300 and the output of the last command will be of the form:</para>301 302 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>303 304 <para>If the output is not shown as above or there was no output at all,305 then something is wrong. Investigate and retrace the steps to find out306 where the problem is and correct it. This issue must be resolved before307 continuing on.</para>308 309 <para>Once all is well, clean up the test files:</para>310 311 <screen><userinput>rm -v dummy.c a.out</userinput></screen>312 313 </caution>314 315 </sect2><!-- m32 -->316 317 <!-- - - - - - - - - - -->318 <!-- Multilib - x32bit -->319 <!-- - - - - - - - - - -->320 321 <sect2 arch="ml_x32,ml_all">322 <title>Building Glibc - x32bit</title>323 324 <para>Now recompile for mx32. The extracted source can be325 reused but needs to be cleaned before installing the mx32326 version of Glibc.</para>327 328 <para>Clear the build directory and remove artefacts from329 previous build:</para>330 331 <screen><userinput remap="pre">make clean332 find .. -name "*.a" -delete</userinput></screen>333 334 <para>Configure Glibc for mx32 with the following commands:</para>335 336 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \337 CXX="$LFS_TGT-g++ -mx32" \338 ../configure \339 --prefix=/usr \340 --host=$LFS_TGTX32 \341 --build=$(../scripts/config.guess) \342 --enable-kernel=&min-kernel; \343 --with-headers=$LFS/usr/include \344 --enable-multi-arch \345 --libdir=/usr/libx32 \346 --libexecdir=/usr/libx32 \347 libc_cv_slibdir=/usr/libx32</userinput></screen>348 349 <para>Compile the package:</para>350 351 <screen><userinput remap="make">make</userinput></screen>352 353 <para>Install the package:</para>354 355 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install356 cp -a DESTDIR/usr/libx32 $LFS/usr/357 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \358 $LFS/usr/include/gnu/359 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>360 361 <caution>362 <para>At this point, it is imperative to stop and ensure that the basic363 functions (compiling and linking) of the new toolchain are working as364 expected. To perform a sanity check, run the following commands:</para>365 366 <screen><userinput>echo 'int main(){}' > dummy.c367 $LFS_TGT-gcc -mx32 dummy.c368 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>369 370 <para>If everything is working correctly, there should be no errors,371 and the output of the last command will be of the form:</para>372 373 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>374 375 <para>If the output is not shown as above or there was no output at all,376 then something is wrong. Investigate and retrace the steps to find out377 where the problem is and correct it. This issue must be resolved before378 continuing on.</para>379 380 <para>Once all is well, clean up the test files:</para>381 382 <screen><userinput>rm -v dummy.c a.out</userinput></screen>383 384 </caution>385 386 </sect2><!-- mx32 -->387 388 235 <sect2 role="content"> 389 236 <title/> -
chapter05/libstdc++.xml
r7b3d536 rf976691 61 61 <para>Prepare Libstdc++ for compilation:</para> 62 62 63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \ 64 --host=$LFS_TGT \ 65 --build=$(../config.guess) \ 66 --prefix=/usr \ 67 --enable-multilib \ 68 --disable-nls \ 69 --disable-libstdcxx-pch \ 70 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen> 71 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \ 63 <screen><userinput remap="configure">../libstdc++-v3/configure \ 72 64 --host=$LFS_TGT \ 73 65 --build=$(../config.guess) \ … … 87 79 should be used instead of the one in 88 80 <filename>/usr/bin</filename>.</para> 89 </listitem>90 </varlistentry>91 92 <varlistentry arch="ml_32,ml_x32,ml_all">93 <term><parameter>--enable-multilib</parameter></term>94 <listitem>95 <para>Enable building multilib objects.</para>96 81 </listitem> 97 82 </varlistentry> -
chapter06/binutils-pass2.xml
r7b3d536 rf976691 59 59 <para>Prepare Binutils for compilation:</para> 60 60 61 <screen arch="default"><userinput remap="configure">../configure \61 <screen><userinput remap="configure">../configure \ 62 62 --prefix=/usr \ 63 63 --build=$(../config.guess) \ … … 68 68 --disable-werror \ 69 69 --enable-64-bit-bfd</userinput></screen> 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \71 --prefix=/usr \72 --build=$(../config.guess) \73 --host=$LFS_TGT \74 --disable-nls \75 --enable-shared \76 --enable-gprofng=no \77 --disable-werror \78 --enable-64-bit-bfd \79 --enable-multilib</userinput></screen>80 70 81 71 <variablelist> … … 96 86 <para>Enables 64-bit support (on hosts with smaller word sizes). 97 87 This may not be needed on 64-bit systems, but it does no harm.</para> 98 </listitem>99 </varlistentry>100 101 <varlistentry arch="ml_32,ml_x32,ml_all">102 <term><parameter>--enable-multilib</parameter></term>103 <listitem>104 <para>Enables multilib support in bintutils.</para>105 88 </listitem> 106 89 </varlistentry> -
chapter06/gcc-pass2.xml
r7b3d536 rf976691 58 58 mv -v mpc-&mpc-version; mpc</userinput></screen> 59 59 60 61 <para arch="default">If building on x86_64, change the default directory name for 64-bit 60 <para>If building on x86_64, change the default directory name for 64-bit 62 61 libraries to <quote>lib</quote>:</para> 63 62 64 <screen arch="default"><userinput remap="pre">case $(uname -m) in63 <screen><userinput remap="pre">case $(uname -m) in 65 64 x86_64) 66 65 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 67 66 ;; 68 67 esac</userinput></screen> 69 70 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the71 libraries:</para>72 73 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \74 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \75 -i.orig gcc/config/i386/t-linux64</userinput></screen>76 68 77 69 <para>Override the building rule of libgcc and libstdc++ headers, to … … 91 83 <para>Now prepare GCC for compilation:</para> 92 84 93 <screen arch="default"><userinput remap="configure">../configure \85 <screen><userinput remap="configure">../configure \ 94 86 --build=$(../config.guess) \ 95 87 --host=$LFS_TGT \ … … 109 101 --disable-libvtv \ 110 102 --enable-languages=c,c++</userinput></screen> 111 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 112 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure" 113 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 114 arch="ml_all">mlist=m64,m32,mx32</userinput> 115 <userinput remap="configure">../configure \ 116 --build=$(../config.guess) \ 117 --host=$LFS_TGT \ 118 --target=$LFS_TGT \ 119 LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ 120 --prefix=/usr \ 121 --with-build-sysroot=$LFS \ 122 --enable-default-pie \ 123 --enable-default-ssp \ 124 --enable-initfini-array \ 125 --disable-nls \ 126 --enable-multilib --with-multilib-list=$mlist \ 127 --disable-decimal-float \ 128 --disable-libatomic \ 129 --disable-libgomp \ 130 --disable-libquadmath \ 131 --disable-libssp \ 132 --disable-libvtv \ 133 --enable-languages=c,c++</userinput></screen> 134 <!-- 135 LDFLAGS_FOR_TARGET="-L$PWD/$LFS_TGT/libgcc -L$PWD/$LFS_TGT/32/libgcc -L$PWD/$LFS_TGT/x32/libgcc" \ 136 --> 103 137 104 <variablelist> 138 105 <title>The meaning of the new configure options:</title><!-- WIP --> -
chapter06/ncurses.xml
r7b3d536 rf976691 190 190 </sect2> 191 191 192 <!-- - - - - - - - - - -->193 <!-- Multilib - 32bit -->194 <!-- - - - - - - - - - -->195 <sect2 arch="ml_32,ml_all">196 <title>Building Ncurses - 32bit</title>197 198 <para>Clean previous build:</para>199 200 <screen><userinput remap="pre">make distclean</userinput></screen>201 202 <para>Prepare Ncurses for compilation:</para>203 204 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \205 CXX="$LFS_TGT-g++ -m32" \206 ./configure --prefix=/usr \207 --host=$LFS_TGT32 \208 --build=$(./config.guess) \209 --libdir=/usr/lib32 \210 --mandir=/usr/share/man \211 --with-shared \212 --without-normal \213 --with-cxx-shared \214 --without-debug \215 --without-ada \216 --disable-stripping \217 --enable-widec</userinput></screen>218 219 <para>Compile the package:</para>220 221 <screen><userinput remap="make">make</userinput></screen>222 223 <para>Install the package:</para>224 225 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install226 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so227 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32228 rm -rf DESTDIR</userinput></screen>229 230 </sect2><!-- m32 -->231 232 <!-- - - - - - - - - - -->233 <!-- Multilib - x32bit -->234 <!-- - - - - - - - - - -->235 <sect2 arch="ml_x32,ml_all">236 <title>Building Ncurses - x32bit</title>237 238 <para>Clean previous build:</para>239 240 <screen><userinput remap="pre">make distclean</userinput></screen>241 242 <para>Prepare Ncurses for compilation:</para>243 244 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \245 CXX="$LFS_TGT-g++ -mx32" \246 ./configure --prefix=/usr \247 --host=$LFS_TGTX32 \248 --build=$(./config.guess) \249 --libdir=/usr/libx32 \250 --mandir=/usr/share/man \251 --with-shared \252 --without-normal \253 --with-cxx-shared \254 --without-debug \255 --without-ada \256 --disable-stripping \257 --enable-widec</userinput></screen>258 259 <para>Compile the package:</para>260 261 <screen><userinput remap="make">make</userinput></screen>262 263 <para>Install the package:</para>264 265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install266 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so267 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32268 rm -rf DESTDIR</userinput></screen>269 270 </sect2><!-- mx32 -->271 272 192 <sect2 role="content"> 273 193 <title/> -
chapter07/changingowner.xml
r7b3d536 rf976691 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for42 multilib support. Change their ownership, too:</para>43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>45 46 41 </sect1> -
chapter07/cleanup.xml
r7b3d536 rf976691 24 24 failures. Remove those files now:</para> 25 25 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32"> 27 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32"> 28 find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all"> 29 find /usr/lib{,x}32 -name \*.la -delete</userinput></screen> 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 30 27 31 28 <para> -
chapter07/creatingdirs.xml
r7b3d536 rf976691 42 42 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 43 43 44 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib45 support has already been created while previous installation steps.</para>46 47 44 <para>Directories are, by default, created with permission mode 755, but 48 45 this is not desirable everywhere. In the commands above, two -
chapter07/util-linux.xml
r7b3d536 rf976691 127 127 </sect2> 128 128 129 <!-- - - - - - - - - - -->130 <!-- Multilib - 32bit -->131 <!-- - - - - - - - - - -->132 133 <sect2 arch="ml_32,ml_all" role="installation">134 <title>Installation of Util-linux - 32-bit</title>135 136 <para>Clean previous build:</para>137 138 <screen><userinput remap="pre">make distclean</userinput></screen>139 140 <para>Prepare Util-linux for compilation:</para>141 142 <screen><userinput remap="configure">CC="gcc -m32" \143 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \144 --libdir=/usr/lib32 \145 --host=i686-pc-linux-gnu \146 --docdir=/usr/share/doc/util-linux-&util-linux-version; \147 --disable-chfn-chsh \148 --disable-login \149 --disable-nologin \150 --disable-su \151 --disable-setpriv \152 --disable-runuser \153 --disable-pylibmount \154 --disable-static \155 --without-python \156 runstatedir=/run</userinput></screen>157 158 <para>Compile the package:</para>159 160 <screen><userinput remap="make">make</userinput></screen>161 162 <para>Install the package:</para>163 164 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install165 cp -Rv DESTDIR/usr/lib32/* /usr/lib32166 rm -rf DESTDIR</userinput></screen>167 168 </sect2><!-- m32 -->169 170 <!-- - - - - - - - - - -->171 <!-- Multilib - x32bit -->172 <!-- - - - - - - - - - -->173 174 <sect2 arch="ml_x32,ml_all" role="installation">175 <title>Installation of Util-linux - x32-bit</title>176 177 <para>Clean previous build:</para>178 179 <screen><userinput remap="pre">make distclean</userinput></screen>180 181 <para>Prepare Util-linux for compilation:</para>182 183 <screen><userinput remap="configure">CC="gcc -mx32" \184 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \185 --libdir=/usr/libx32 \186 --host=x86_64-pc-linux-gnux32 \187 --docdir=/usr/share/doc/util-linux-&util-linux-version; \188 --disable-chfn-chsh \189 --disable-login \190 --disable-nologin \191 --disable-su \192 --disable-setpriv \193 --disable-runuser \194 --disable-pylibmount \195 --disable-static \196 --without-python \197 runstatedir=/run</userinput></screen>198 199 <para>Compile the package:</para>200 201 <screen><userinput remap="make">make</userinput></screen>202 203 <para>Install the package:</para>204 205 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install206 cp -Rv DESTDIR/usr/libx32/* /usr/libx32207 rm -rf DESTDIR</userinput></screen>208 209 </sect2><!-- mx32 -->210 211 129 <sect2 role="content"> 212 130 <title/> -
chapter08/acl.xml
r7b3d536 rf976691 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Acl - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Xz for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --libdir=/usr/lib32 \84 --libexecdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Acl - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Xz for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --libdir=/usr/libx32 \116 --libexecdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 66 131 67 <sect2 id="contents-acl" role="content"> -
chapter08/attr.xml
r7b3d536 rf976691 65 65 </sect2> 66 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Attr - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Attr for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --sysconfdir=/etc \84 --libdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Attr - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Attr for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --sysconfdir=/etc \116 --libdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 131 67 <sect2 id="contents-attr" role="content"> 132 68 <title>Contents of Attr</title> -
chapter08/binutils.xml
r7b3d536 rf976691 50 50 <para>Prepare Binutils for compilation:</para> 51 51 52 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \52 <screen><userinput remap="configure">../configure --prefix=/usr \ 53 53 --sysconfdir=/etc \ 54 54 --enable-gold \ … … 59 59 --enable-64-bit-bfd \ 60 60 --with-system-zlib</userinput></screen> 61 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \62 --sysconfdir=/etc \63 --enable-gold \64 --enable-ld=default \65 --enable-plugins \66 --enable-shared \67 --disable-werror \68 --enable-64-bit-bfd \69 --with-system-zlib \70 --enable-multilib</userinput></screen>71 72 61 <variablelist> 73 62 <title>The meaning of the configure parameters:</title> … … 101 90 <para>Enables 64-bit support (on hosts with narrower word sizes). 102 91 May not be needed on 64-bit systems, but does no harm.</para> 103 </listitem>104 </varlistentry>105 106 <varlistentry arch="ml_32,ml_x32,ml_all">107 <term><parameter>--enable-multilib</parameter></term>108 <listitem>109 <para>Enables multilib support in bintutils.</para>110 92 </listitem> 111 93 </varlistentry> -
chapter08/bzip2.xml
r7b3d536 rf976691 103 103 104 104 </sect2> 105 106 <!-- - - - - - - - - - -->107 <!-- Multilib - 32bit -->108 <!-- - - - - - - - - - -->109 110 <sect2 arch="ml_32,ml_all" role="installation">111 <title>Installation of Bzip2 - 32bit</title>112 113 <para>Clean previous build:</para>114 115 <screen><userinput remap="pre">make clean</userinput></screen>116 117 <para>Compile the package:</para>118 119 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so}120 make -f Makefile-libbz2_so121 make libbz2.a</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0.8126 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so127 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1128 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0129 install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>130 131 </sect2><!-- m32 -->132 133 <!-- - - - - - - - - - -->134 <!-- Multilib - x32bit -->135 <!-- - - - - - - - - - -->136 137 <sect2 arch="ml_x32,ml_all" role="installation">138 <title>Installation of Bzip2 - x32bit</title>139 140 <para>Clean previous build:</para>141 142 <screen><userinput remap="pre">make clean</userinput></screen>143 144 <para>Compile the package:</para>145 146 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so}147 make -f Makefile-libbz2_so148 make libbz2.a</userinput></screen>149 150 <para>Install the package:</para>151 152 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8153 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so154 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1155 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0156 install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen>157 158 </sect2><!-- mx32 -->159 105 160 106 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
r7b3d536 rf976691 34 34 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 35 35 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/>37 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 38 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/cleanup.xml
r7b3d536 rf976691 22 22 builds. Remove those files now:</para> 23 23 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all"> 25 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 26 find /usr/libx32 -name \*.la -delete</userinput></screen> 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 27 25 28 26 <para>For more information about libtool archive files, see the <ulink -
chapter08/eudev.xml
r7b3d536 rf976691 87 87 </sect2> 88 88 89 <!-- - - - - - - - - - -->90 <!-- Multilib - 32bit -->91 <!-- - - - - - - - - - -->92 93 <sect2 arch="ml_32,ml_all" role="installation">94 <title>Installation of Eudev - 32bit</title>95 96 <para>Clean previous build:</para>97 98 <screen><userinput remap="pre">make distclean</userinput></screen>99 100 <para>Prepare Eudev for compilation:</para>101 102 <screen><userinput remap="configure">CC="gcc -m32" \103 ./configure --host=i686-pc-linux-gnu \104 --prefix=/usr \105 --bindir=/usr/sbin \106 --libdir=/usr/lib32 \107 --sysconfdir=/etc \108 --disable-manpages \109 --disable-static</userinput></screen>110 111 <para>Compile the package:</para>112 113 <screen><userinput remap="make">make</userinput></screen>114 115 <para>Install the package:</para>116 117 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install118 cp -Rv DESTDIR/usr/lib32/* /usr/lib32119 rm -rf DESTDIR</userinput></screen>120 121 </sect2><!-- m32 -->122 123 <!-- - - - - - - - - - -->124 <!-- Multilib - x32bit -->125 <!-- - - - - - - - - - -->126 127 <sect2 arch="ml_x32,ml_all" role="installation">128 <title>Installation of Eudev - x32bit</title>129 130 <para>Clean previous build:</para>131 132 <screen><userinput remap="pre">make distclean</userinput></screen>133 134 <para>Prepare Eudev for compilation:</para>135 136 <screen><userinput remap="configure">CC="gcc -mx32" \137 ./configure --host=x86_64-lfs-linux-gnux32 \138 --prefix=/usr \139 --bindir=/usr/sbin \140 --libdir=/usr/libx32 \141 --sysconfdir=/etc \142 --disable-manpages \143 --disable-static</userinput></screen>144 145 <para>Compile the package:</para>146 147 <screen><userinput remap="make">make</userinput></screen>148 149 <para>Install the package:</para>150 151 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install152 cp -Rv DESTDIR/usr/libx32/* /usr/libx32153 rm -rf DESTDIR</userinput></screen>154 155 </sect2><!-- mx32 -->156 157 89 <sect2 id="conf-eudev" role="configuration"> 158 90 <title>Configuring Eudev</title> -
chapter08/expat.xml
r7b3d536 rf976691 66 66 </sect2> 67 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Expat - 32bit</title>74 75 <para>Clean previous build but keep precompiled doc because it76 cannot be rebuilt in this stage of the system:</para>77 78 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile79 make clean</userinput></screen>80 81 <para>Prepare Expat for compilation:</para>82 83 <screen><userinput remap="configure">CC="gcc -m32" ./configure \84 --prefix=/usr \85 --disable-static \86 --libdir=/usr/lib32 \87 --host=i686-pc-linux-gnu</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 rm -rf DESTDIR</userinput></screen>98 99 </sect2><!-- m32 -->100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - x32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_x32,ml_all" role="installation">106 <title>Installation of Expat - x32bit</title>107 108 <para>Clean previous build but keep precompiled doc because it109 cannot be rebuilt in this stage of the system:</para>110 111 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile112 make clean</userinput></screen>113 114 <para>Prepare Expat for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \117 --prefix=/usr \118 --disable-static \119 --libdir=/usr/libx32 \120 --host=x86_64-pc-linux-gnux32</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install129 cp -Rv DESTDIR/usr/libx32/* /usr/libx32130 rm -rf DESTDIR</userinput></screen>131 132 </sect2><!-- mx32 -->133 134 68 <sect2 id="contents-expat" role="content"> 135 69 <title>Contents of Expat</title> -
chapter08/file.xml
r7b3d536 rf976691 60 60 </sect2> 61 61 62 <!-- - - - - - - - - - -->63 <!-- Multilib - 32bit -->64 <!-- - - - - - - - - - -->65 66 <sect2 arch="ml_32,ml_all" role="installation">67 <title>Installation of File - 32bit</title>68 69 <para>Clean previous build:</para>70 71 <screen><userinput remap="pre">make distclean</userinput></screen>72 73 <para>Prepare File for compilation:</para>74 75 <screen><userinput remap="configure">CC="gcc -m32" ./configure \76 --prefix=/usr \77 --libdir=/usr/lib32 \78 --host=i686-pc-linux-gnu</userinput></screen>79 80 <para>Compile the package:</para>81 82 <screen><userinput remap="make">make</userinput></screen>83 84 <para>Install the package:</para>85 86 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install87 cp -Rv DESTDIR/usr/lib32/* /usr/lib3288 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of File - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make distclean</userinput></screen>102 103 <para>Prepare File for compilation:</para>104 105 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \106 --prefix=/usr \107 --libdir=/usr/libx32 \108 --host=x86_64-pc-linux-gnux32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 62 122 63 <sect2 id="contents-file" role="content"> -
chapter08/gcc.xml
r7b3d536 rf976691 58 58 libraries to <quote>lib</quote>:</para> 59 59 60 <screen arch="default"><userinput remap="pre">case $(uname -m) in60 <screen><userinput remap="pre">case $(uname -m) in 61 61 x86_64) 62 62 sed -e '/m64=/s/lib64/lib/' \ … … 65 65 esac</userinput></screen> 66 66 67 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit68 libraries to <quote>lib</quote>:</para>69 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \71 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \72 -i.orig gcc/config/i386/t-linux64</userinput></screen>73 74 67 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 75 68 … … 79 72 <para>Prepare GCC for compilation:</para> 80 73 81 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \74 <screen><userinput remap="configure">../configure --prefix=/usr \ 82 75 LD=ld \ 83 76 --enable-languages=c,c++ \ … … 87 80 --disable-bootstrap \ 88 81 --disable-fixincludes \ 89 --with-system-zlib</userinput></screen>90 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"91 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"92 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"93 arch="ml_all">mlist=m64,m32,mx32</userinput>94 <userinput remap="configure">../configure --prefix=/usr \95 LD=ld \96 --enable-languages=c,c++ \97 --enable-default-pie \98 --enable-default-ssp \99 --enable-multilib \100 --with-multilib-list=$mlist \101 --disable-bootstrap \102 82 --with-system-zlib</userinput></screen> 103 83 … … 313 293 SEARCH_DIR("/usr/lib");</computeroutput></screen> 314 294 315 <para arch="default">A 32-bit system may use a few other directories. For example, here295 <para>A 32-bit system may use a few other directories. For example, here 316 296 is the output from an i686 machine:</para> 317 297 318 <!-- not using entities here as the dir names has nothing to do with multilib --> 319 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 298 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 320 299 SEARCH_DIR("/usr/local/lib32") 321 300 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
r7b3d536 rf976691 75 75 <para>Prepare Glibc for compilation:</para> 76 76 77 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \77 <screen><userinput remap="configure">../configure --prefix=/usr \ 78 78 --disable-werror \ 79 79 --enable-kernel=&min-kernel; \ … … 81 81 --with-headers=/usr/include \ 82 82 --disable-crypt \ 83 libc_cv_slibdir=/usr/lib</userinput></screen>84 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \85 --disable-werror \86 --enable-kernel=&min-kernel; \87 --enable-stack-protector=strong \88 --with-headers=/usr/include \89 --enable-multi-arch \90 83 libc_cv_slibdir=/usr/lib</userinput></screen> 91 84 … … 480 473 </sect2> 481 474 482 <!-- - - - - - - - - - -->483 <!-- Multilib - 32bit -->484 <!-- - - - - - - - - - -->485 <sect2 arch="ml_32,ml_all">486 <title>Building Glibc - 32bit</title>487 488 <para>Now recompile for m32. The extracted source can be489 reused but needs to be cleaned before installing the m32490 version of Glibc.</para>491 492 <para>Clear the build directory and remove artefacts from493 previous build:</para>494 495 <screen><userinput remap="pre">rm -rf ./*496 find .. -name "*.a" -delete</userinput></screen>497 498 <para>Configure Glibc for m32 with the following commands:</para>499 500 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \501 ../configure \502 --prefix=/usr \503 --host=i686-pc-linux-gnu \504 --build=$(../scripts/config.guess) \505 --enable-kernel=&min-kernel; \506 --with-headers=/usr/include \507 --enable-multi-arch \508 --libdir=/usr/lib32 \509 --libexecdir=/usr/lib32 \510 libc_cv_slibdir=/usr/lib32</userinput></screen>511 512 <para>Compile the package:</para>513 514 <screen><userinput remap="make">make</userinput></screen>515 516 <para>Install the package:</para>517 518 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install519 cp -a DESTDIR/usr/lib32/* /usr/lib32/520 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \521 /usr/include/gnu/</userinput></screen>522 <!-- no longer required as they are created in chap5523 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2524 -->525 526 <para>Add the library name to the dynamic loader config:</para>527 528 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen>529 530 <caution>531 <para>At this point, it is imperative to stop and ensure that the basic532 functions (compiling and linking) of the new toolchain are working as533 expected. To perform a sanity check, run the following commands:</para>534 535 <screen><userinput>echo 'int main(){}' > dummy.c536 gcc -m32 dummy.c537 readelf -l a.out | grep '/ld-linux'</userinput></screen>538 539 <para>If everything is working correctly, there should be no errors,540 and the output of the last command will be of the form:</para>541 542 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>543 544 <para>If the output is not shown as above or there was no output at all,545 then something is wrong. Investigate and retrace the steps to find out546 where the problem is and correct it. This issue must be resolved before547 continuing on.</para>548 549 <para>Once all is well, clean up the test files:</para>550 551 <screen><userinput>rm -v dummy.c a.out</userinput></screen>552 553 </caution>554 555 </sect2><!-- m32 -->556 557 <!-- - - - - - - - - - -->558 <!-- Multilib - x32bit -->559 <!-- - - - - - - - - - -->560 561 <sect2 arch="ml_x32,ml_all">562 <title>Building Glibc - x32bit</title>563 564 <para>Now recompile for mx32. The extracted source can be565 reused but needs to be cleaned before installing the mx32566 version of Glibc.</para>567 568 <para>Clear the build directory and remove artefacts from569 previous build:</para>570 571 <screen><userinput remap="pre">rm -rf ./*572 find .. -name "*.a" -delete</userinput></screen>573 574 <para>Configure Glibc for mx32 with the following commands:</para>575 576 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \577 ../configure \578 --prefix=/usr \579 --host=x86_64-pc-linux-gnux32 \580 --build=$(../scripts/config.guess) \581 --enable-kernel=&min-kernel; \582 --with-headers=/usr/include \583 --enable-multi-arch \584 --libdir=/usr/libx32 \585 --libexecdir=/usr/libx32 \586 libc_cv_slibdir=/usr/libx32</userinput></screen>587 588 <para>Compile the package:</para>589 590 <screen><userinput remap="make">make</userinput></screen>591 592 <para>Install the package:</para>593 594 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install595 cp -a DESTDIR/usr/libx32/* /usr/libx32/596 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \597 /usr/include/gnu/</userinput></screen>598 <!-- no longer required as they are created in chap5599 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2600 -->601 <para>Add the library name to the dynamic loader config:</para>602 603 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen>604 605 <caution>606 <para>At this point, it is imperative to stop and ensure that the basic607 functions (compiling and linking) of the new toolchain are working as608 expected. To perform a sanity check, run the following commands:</para>609 610 <screen><userinput>echo 'int main(){}' > dummy.c611 gcc -mx32 dummy.c612 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>613 614 <para>If everything is working correctly, there should be no errors,615 and the output of the last command will be of the form:</para>616 617 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>618 619 <para>If the output is not shown as above or there was no output at all,620 then something is wrong. Investigate and retrace the steps to find out621 where the problem is and correct it. This issue must be resolved before622 continuing on.</para>623 624 <para>Once all is well, clean up the test files:</para>625 626 <screen><userinput>rm -v dummy.c a.out</userinput></screen>627 628 </caution>629 630 </sect2><!-- mx32 -->631 632 475 <sect2 id="contents-glibc" role="content"> 633 476 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r7b3d536 rf976691 121 121 </sect2> 122 122 123 <!-- - - - - - - - - - -->124 <!-- Multilib - 32bit -->125 <!-- - - - - - - - - - -->126 127 <sect2 arch="ml_32,ml_all" role="installation">128 <title>Installation of GMP - 32bit</title>129 130 <para>Clean previous build:</para>131 132 <screen><userinput remap="pre">make distclean</userinput></screen>133 134 <para>Generic libraries can be created by running135 the following:</para>136 137 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess138 cp -v configfsf.sub config.sub</userinput></screen>139 140 <para>Prepare GMP for compilation:</para>141 142 <screen><userinput remap="configure">ABI="32" \143 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \144 CXXFLAGS="$CFLAGS" \145 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \146 ./configure \147 --host=i686-pc-linux-gnu \148 --prefix=/usr \149 --disable-static \150 --enable-cxx \151 --libdir=/usr/lib32 \152 --includedir=/usr/include/m32/gmp</userinput></screen>153 154 <variablelist>155 <title>The meaning of the new configure options:</title>156 157 <varlistentry>158 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>159 <listitem>160 <para>Some definitions in gmp.h differs for each arch but161 has same name. Therefore, the headers must be separated from162 each other.</para>163 </listitem>164 </varlistentry>165 166 </variablelist>167 168 <para>Compile the package:</para>169 170 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile171 make</userinput></screen>172 173 <important>174 <para>The test suite for GMP in this section is considered critical.175 Do not skip it under any circumstances.</para>176 </important>177 178 <para>Test the results:</para>179 180 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>181 182 <para>Ensure that all 197 tests in the test suite passed.183 Check the results by issuing the following command:</para>184 185 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>186 187 <para>Install the package:</para>188 189 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install190 cp -Rv DESTDIR/usr/lib32/* /usr/lib32191 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/192 rm -rf DESTDIR</userinput></screen>193 194 </sect2><!-- m32 -->195 196 <!-- - - - - - - - - - -->197 <!-- Multilib - x32bit -->198 <!-- - - - - - - - - - -->199 200 <sect2 arch="ml_x32,ml_all" role="installation">201 <title>Installation of GMP - x32-bit</title>202 203 <para>Clean previous build:</para>204 205 <screen><userinput remap="pre">make distclean</userinput></screen>206 207 <para>Generic libraries can be created by running208 the following:</para>209 210 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess211 cp -v configfsf.sub config.sub</userinput></screen>212 213 <para>Prepare GMP for compilation:</para>214 215 <screen><userinput remap="configure">ABI="x32" \216 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \217 CXXFLAGS="$CFLAGS" \218 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \219 ./configure \220 --host=x86_64-pc-linux-gnux32 \221 --prefix=/usr \222 --disable-static \223 --enable-cxx \224 --libdir=/usr/libx32 \225 --includedir=/usr/include/mx32/gmp</userinput></screen>226 227 <para>Compile the package:</para>228 229 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile230 make</userinput></screen>231 232 <important>233 <para>The test suite for GMP in this section is considered critical.234 Do not skip it under any circumstances.</para>235 </important>236 237 <para>Test the results:</para>238 239 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>240 241 <para>Ensure that all 197 tests in the test suite passed.242 Check the results by issuing the following command:</para>243 244 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>245 246 <para>Install the package:</para>247 248 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install249 cp -Rv DESTDIR/usr/libx32/* /usr/libx32250 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/251 rm -rf DESTDIR</userinput></screen>252 253 </sect2><!-- mx32 -->254 255 123 <sect2 id="contents-gmp" role="content"> 256 124 <title>Contents of GMP</title> -
chapter08/kmod.xml
r7b3d536 rf976691 98 98 99 99 </sect2> 100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - 32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_32,ml_all" role="installation">106 <title>Installation of Kmod - 32bit</title>107 108 <para>Clean previous build but keep man pages as they cannot109 be recreated since xsltproc isn't installed yet:</para>110 111 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile112 make clean</userinput></screen>113 114 <para>Prepare Kmod for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \117 --host=i686-pc-linux-gnu \118 --prefix=/usr \119 --libdir=/usr/lib32 \120 --sysconfdir=/etc \121 --with-openssl \122 --with-xz \123 --with-zstd \124 --with-zlib \125 --with-rootlibdir=/usr/lib32</userinput></screen>126 127 <para>Compile the package:</para>128 129 <screen><userinput remap="make">make</userinput></screen>130 131 <para>Install the package:</para>132 133 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32135 rm -rf DESTDIR</userinput></screen>136 137 </sect2><!-- m32 -->138 139 <!-- - - - - - - - - - -->140 <!-- Multilib - x32bit -->141 <!-- - - - - - - - - - -->142 143 <sect2 arch="ml_x32,ml_all" role="installation">144 <title>Installation of Kmod - x32bit</title>145 146 <para>Clean previous build but keep man pages as they cannot147 be recreated since xsltproc isn't installed yet:</para>148 149 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile150 make clean</userinput></screen>151 152 <para>Prepare Kmod for compilation:</para>153 154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \155 --host=x86_64-pc-linux-gnux32 \156 --prefix=/usr \157 --libdir=/usr/libx32 \158 --sysconfdir=/etc \159 --with-openssl \160 --with-xz \161 --with-zstd \162 --with-zlib \163 --with-rootlibdir=/usr/libx32</userinput></screen>164 165 <para>Compile the package:</para>166 167 <screen><userinput remap="make">make</userinput></screen>168 169 <para>Install the package:</para>170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32173 rm -rf DESTDIR</userinput></screen>174 175 </sect2><!-- mx32 -->176 100 177 101 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
r7b3d536 rf976691 75 75 76 76 </sect2> 77 78 <!-- - - - - - - - - - -->79 <!-- Multilib - 32bit -->80 <!-- - - - - - - - - - -->81 82 <sect2 arch="ml_32,ml_all" role="installation">83 <title>Installation of Libcap - 32bit</title>84 85 <para>Clean previous build:</para>86 87 <screen><userinput remap="pre">make distclean</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make CC="gcc -m32 -march=i686" lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc98 chmod -v 755 /usr/lib32/libcap.so.&libcap-version;99 rm -rf DESTDIR</userinput></screen>100 101 </sect2><!-- m32 -->102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - x32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_x32,ml_all" role="installation">108 <title>Installation of Libcap - x32bit</title>109 110 <para>Clean previous build:</para>111 112 <screen><userinput remap="pre">make distclean</userinput></screen>113 114 <para>Compile the package:</para>115 116 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>117 118 <para>Install the package:</para>119 120 <screen><userinput remap="install">make CC="gcc -mx32 -march=x86-64" lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install121 cp -Rv DESTDIR/usr/libx32/* /usr/libx32122 sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc123 chmod -v 755 /usr/libx32/libcap.so.&libcap-version;124 rm -rf DESTDIR</userinput></screen>125 126 </sect2><!-- mx32 -->127 77 128 78 <sect2 id="contents-libcap" role="content"> -
chapter08/libelf.xml
r7b3d536 rf976691 67 67 </sect2> 68 68 69 <!-- - - - - - - - - - -->70 <!-- Multilib - 32bit -->71 <!-- - - - - - - - - - -->72 73 <sect2 arch="ml_32,ml_all" role="installation">74 <title>Installation of Libelf - 32bit</title>75 76 <para>Clean previous build:</para>77 78 <screen><userinput remap="pre">make distclean</userinput></screen>79 80 <para>Prepare Libtool for compilation:</para>81 82 <screen><userinput remap="configure">CC="gcc -m32" ./configure \83 --host=i686-pc-linux-gnu \84 --prefix=/usr \85 --libdir=/usr/lib32 \86 --disable-debuginfod \87 --enable-libdebuginfod=dummy</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install96 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc97 cp -Rv DESTDIR/usr/lib32/* /usr/lib3298 rm -rf DESTDIR</userinput></screen>99 100 </sect2><!-- m32 -->101 102 <!-- - - - - - - - - - -->103 <!-- Multilib - x32bit -->104 <!-- - - - - - - - - - -->105 106 <sect2 arch="ml_x32,ml_all" role="installation">107 <title>Installation of Libelf - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Libtool for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-debuginfod \120 --enable-libdebuginfod=dummy</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install129 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc130 cp -Rv DESTDIR/usr/libx32/* /usr/libx32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- mx32 -->134 135 69 <sect2 id="contents-elfutils" role="content"> 136 70 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r7b3d536 rf976691 97 97 </sect2> 98 98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - 32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_32,ml_all" role="installation">104 <title>Installation of Libffi - 32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Libffi for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \113 --host=i686-pc-linux-gnu \114 --prefix=/usr \115 --libdir=/usr/lib32 \116 --disable-static \117 --with-gcc-arch=i686</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>To test the results, issue:</para>124 125 <screen><userinput remap="test">make check</userinput></screen>126 127 <para>Install the package:</para>128 129 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install130 cp -Rv DESTDIR/usr/lib32/* /usr/lib32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- m32 -->134 135 <!-- - - - - - - - - - -->136 <!-- Multilib - x32bit -->137 <!-- - - - - - - - - - -->138 139 <sect2 arch="ml_x32,ml_all" role="installation">140 <title>Installation of Libffi - x32bit</title>141 142 <para>Clean previous build:</para>143 144 <screen><userinput remap="pre">make distclean</userinput></screen>145 146 <para>Prepare Libffi for compilation:</para>147 148 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \149 --host=x86_64-unknown-linux-gnux32 \150 --prefix=/usr \151 --libdir=/usr/libx32 \152 --disable-static \153 --with-gcc-arch=x86_64</userinput></screen>154 155 <para>Compile the package:</para>156 157 <screen><userinput remap="make">make</userinput></screen>158 159 <para>To test the results, issue:</para>160 161 <screen><userinput remap="test">make check</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 99 <sect2 id="contents-libffi" role="content"> 172 100 <title>Contents of Libffi</title> … … 199 127 200 128 </sect1> 129 -
chapter08/libtool.xml
r7b3d536 rf976691 79 79 </sect2> 80 80 81 <!-- - - - - - - - - - -->82 <!-- Multilib - 32bit -->83 <!-- - - - - - - - - - -->84 85 <sect2 arch="ml_32,ml_all" role="installation">86 <title>Installation of Libtool - 32bit</title>87 88 <para>Clean previous build:</para>89 90 <screen><userinput remap="pre">make distclean</userinput></screen>91 92 <para>Prepare Libtool for compilation:</para>93 94 <screen><userinput remap="configure">CC="gcc -m32" ./configure \95 --host=i686-pc-linux-gnu \96 --prefix=/usr \97 --libdir=/usr/lib32</userinput></screen>98 99 <para>Compile the package:</para>100 101 <screen><userinput remap="make">make</userinput></screen>102 103 <para>Install the package:</para>104 105 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install106 cp -Rv DESTDIR/usr/lib32/* /usr/lib32107 rm -rf DESTDIR</userinput></screen>108 109 </sect2><!-- m32 -->110 111 <!-- - - - - - - - - - -->112 <!-- Multilib - x32bit -->113 <!-- - - - - - - - - - -->114 115 <sect2 arch="ml_x32,ml_all" role="installation">116 <title>Installation of Libtool - x32bit</title>117 118 <para>Clean previous build:</para>119 120 <screen><userinput remap="pre">make distclean</userinput></screen>121 122 <para>Prepare Libtool for compilation:</para>123 124 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \125 --host=x86_64-pc-linux-gnux32 \126 --prefix=/usr \127 --libdir=/usr/libx32</userinput></screen>128 129 <para>Compile the package:</para>130 131 <screen><userinput remap="make">make</userinput></screen>132 133 <para>Install the package:</para>134 135 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install136 cp -Rv DESTDIR/usr/libx32/* /usr/libx32137 rm -rf DESTDIR</userinput></screen>138 139 </sect2><!-- mx32 -->140 81 141 82 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
r7b3d536 rf976691 173 173 174 174 <screen role="nodump"><userinput>make distclean 175 ./configure --prefix=/usr \ 176 --with-shared \ 177 --without-normal \ 178 --with-cxx-shared \ 179 --without-debug \ 175 ./configure --prefix=/usr \ 176 --with-shared \ 177 --without-normal \ 178 --without-debug \ 180 179 --without-cxx-binding \ 181 180 --with-abi-version=5 … … 185 184 186 185 </sect2> 187 188 <!-- - - - - - - - - - -->189 <!-- Multilib - 32bit -->190 <!-- - - - - - - - - - -->191 <sect2 arch="ml_32,ml_all">192 <title>Building Ncurses - 32bit</title>193 194 <para>Clean previous build:</para>195 196 <screen><userinput remap="pre">make distclean</userinput></screen>197 198 <para>Prepare Ncurses for compilation:</para>199 200 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \201 ./configure --prefix=/usr \202 --host=i686-pc-linux-gnu \203 --libdir=/usr/lib32 \204 --mandir=/usr/share/man \205 --with-shared \206 --without-debug \207 --without-normal \208 --with-cxx-shared \209 --enable-pc-files \210 --enable-widec \211 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>212 213 <para>Compile the package:</para>214 215 <screen><userinput remap="make">make</userinput></screen>216 217 <para>Install the package:</para>218 219 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install220 mkdir -p DESTDIR/usr/lib32/pkgconfig221 for lib in ncurses form panel menu ; do222 rm -vf DESTDIR/usr/lib32/lib${lib}.so223 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so224 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc225 done226 rm -vf DESTDIR/usr/lib32/libcursesw.so227 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so228 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so229 cp -Rv DESTDIR/usr/lib32/* /usr/lib32230 rm -rf DESTDIR</userinput></screen>231 232 </sect2><!-- m32 -->233 234 <!-- - - - - - - - - - -->235 <!-- Multilib - x32bit -->236 <!-- - - - - - - - - - -->237 <sect2 arch="ml_x32,ml_all">238 <title>Building Ncurses - x32bit</title>239 240 <para>Clean previous build:</para>241 242 <screen><userinput remap="pre">make distclean</userinput></screen>243 244 <para>Prepare Ncurses for compilation:</para>245 246 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \247 ./configure --prefix=/usr \248 --host=x86_64-pc-linux-gnux32 \249 --libdir=/usr/libx32 \250 --mandir=/usr/share/man \251 --with-shared \252 --without-debug \253 --without-normal \254 --enable-pc-files \255 --enable-widec \256 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>257 258 <para>Compile the package:</para>259 260 <screen><userinput remap="make">make</userinput></screen>261 262 <para>Install the package:</para>263 264 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install265 mkdir -p DESTDIR/usr/libx32/pkgconfig266 for lib in ncurses form panel menu ; do267 rm -vf DESTDIR/usr/libx32/lib${lib}.so268 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so269 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc270 done271 rm -vf DESTDIR/usr/libx32/libcursesw.so272 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so273 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so274 cp -Rv DESTDIR/usr/libx32/* /usr/libx32275 rm -rf DESTDIR</userinput></screen>276 277 </sect2><!-- mx32 -->278 186 279 187 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r7b3d536 rf976691 126 126 127 127 </sect2> 128 129 <!-- - - - - - - - - - -->130 <!-- Multilib - 32bit -->131 <!-- - - - - - - - - - -->132 133 <sect2 arch="ml_32,ml_all" role="installation">134 <title>Installation of OpenSSL - 32bit</title>135 136 <para>Clean previous build:</para>137 138 <screen><userinput remap="pre">make distclean</userinput></screen>139 140 <para>Prepare OpenSSL for compilation:</para>141 142 <screen><userinput remap="configure">./config --prefix=/usr \143 --openssldir=/etc/ssl \144 --libdir=lib32 \145 shared \146 zlib-dynamic \147 linux-x86</userinput></screen>148 149 <para>Compile the package:</para>150 151 <screen><userinput remap="make">make</userinput></screen>152 153 <para>Install the package:</para>154 155 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install156 cp -Rv DESTDIR/usr/lib32/* /usr/lib32157 rm -rf DESTDIR</userinput></screen>158 159 </sect2><!-- m32 -->160 161 <!-- - - - - - - - - - -->162 <!-- Multilib - x32bit -->163 <!-- - - - - - - - - - -->164 165 <sect2 arch="ml_x32,ml_all" role="installation">166 <title>Installation of OpenSSL - x32bit</title>167 168 <para>Clean previous build:</para>169 170 <screen><userinput remap="pre">make distclean</userinput></screen>171 172 <para>Prepare OpenSSL for compilation:</para>173 174 <screen><userinput remap="configure">./config --prefix=/usr \175 --openssldir=/etc/ssl \176 --libdir=libx32 \177 shared \178 zlib-dynamic \179 linux-x32</userinput></screen>180 181 <para>Compile the package:</para>182 183 <screen><userinput remap="make">make</userinput></screen>184 185 <para>Install the package:</para>186 187 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install188 cp -Rv DESTDIR/usr/libx32/* /usr/libx32189 rm -rf DESTDIR</userinput></screen>190 191 </sect2><!-- mx32 -->192 128 193 129 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
r7b3d536 rf976691 105 105 </sect2> 106 106 107 <!-- - - - - - - - - - -->108 <!-- Multilib - 32bit -->109 <!-- - - - - - - - - - -->110 111 <sect2 arch="ml_32,ml_all" role="installation">112 <title>Installation of Readline - 32bit</title>113 114 <para>Clean previous build:</para>115 116 <screen><userinput remap="pre">make distclean</userinput></screen>117 118 <para>Prepare Readline for compilation:</para>119 120 <screen><userinput remap="configure">CC="gcc -m32" ./configure \121 --host=i686-pc-linux-gnu \122 --prefix=/usr \123 --libdir=/usr/lib32 \124 --disable-static \125 --with-curses</userinput></screen>126 127 <para>Compile the package:</para>128 129 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>130 131 <para>Install the package:</para>132 133 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32135 rm -rf DESTDIR</userinput></screen>136 137 </sect2><!-- m32 -->138 139 <!-- - - - - - - - - - -->140 <!-- Multilib - x32bit -->141 <!-- - - - - - - - - - -->142 143 <sect2 arch="ml_x32,ml_all" role="installation">144 <title>Installation of Readline - x32bit</title>145 146 <para>Clean previous build:</para>147 148 <screen><userinput remap="pre">make distclean</userinput></screen>149 150 <para>Prepare Readline for compilation:</para>151 152 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \153 --host=x86_64-pc-linux-gnux32 \154 --prefix=/usr \155 --libdir=/usr/libx32 \156 --disable-static \157 --with-curses</userinput></screen>158 159 <para>Compile the package:</para>160 161 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 107 <sect2 id="contents-readline" role="content"> 172 108 <title>Contents of Readline</title> -
chapter08/stripping.xml
r7b3d536 rf976691 77 77 78 78 cd /usr/lib 79 79 80 for LIB in $save_usrlib; do 80 81 objcopy --only-keep-debug $LIB $LIB.dbg … … 84 85 install -vm755 /tmp/$LIB /usr/lib 85 86 rm /tmp/$LIB 86 done</userinput> 87 <userinput arch="ml_32,ml_all"> 88 cd /usr/lib32 89 for LIB in $save_usrlib; do 90 objcopy --only-keep-debug $LIB $LIB.dbg 91 cp $LIB /tmp/$LIB 92 strip --strip-unneeded /tmp/$LIB 93 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 94 install -vm755 /tmp/$LIB /usr/lib32 95 rm /tmp/$LIB 96 done</userinput> 97 <userinput arch="ml_x32,ml_all"> 98 cd /usr/libx32 99 for LIB in $save_usrlib; do 100 objcopy --only-keep-debug $LIB $LIB.dbg 101 cp $LIB /tmp/$LIB 102 strip --strip-unneeded /tmp/$LIB 103 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 104 install -vm755 /tmp/$LIB /usr/libx32 105 rm /tmp/$LIB 106 done</userinput><userinput> 87 done 107 88 108 89 online_usrbin="bash find strip" … … 128 109 install -vm755 /tmp/$LIB /usr/lib 129 110 rm /tmp/$LIB 130 done</userinput><userinput arch="ml_32,ml_all"> 131 for LIB in $online_usrlib; do 132 cp /usr/lib32/$LIB /tmp/$LIB 133 strip --strip-unneeded /tmp/$LIB 134 install -vm755 /tmp/$LIB /usr/lib32 135 rm /tmp/$LIB 136 done</userinput><userinput arch="ml_x32,ml_all"> 137 for LIB in $online_usrlib; do 138 cp /usr/libx32/$LIB /tmp/$LIB 139 strip --strip-unneeded /tmp/$LIB 140 install -vm755 /tmp/$LIB /usr/libx32 141 rm /tmp/$LIB 142 done</userinput><userinput> 111 done 143 112 144 113 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 151 120 ;; 152 121 esac 153 done</userinput><userinput arch="ml_32,ml_all"> 154 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 155 $(find /usr/lib32 -type f -name \*.a); do 156 case "$online_usrbin $online_usrlib $save_usrlib" in 157 *$(basename $i)* ) 158 ;; 159 * ) strip --strip-unneeded $i 160 ;; 161 esac 162 done</userinput><userinput arch="ml_x32,ml_all"> 163 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 164 $(find /usr/libx32 -type f -name \*.a); do 165 case "$online_usrbin $online_usrlib $save_usrlib" in 166 *$(basename $i)* ) 167 ;; 168 * ) strip --strip-unneeded $i 169 ;; 170 esac 171 done</userinput><userinput> 122 done 172 123 173 124 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
r7b3d536 rf976691 233 233 234 234 </sect2> 235 236 <!-- - - - - - - - - - -->237 <!-- Multilib - 32bit -->238 <!-- - - - - - - - - - -->239 240 <sect2 arch="ml_32,ml_all" role="installation">241 <title>Installation of systemd - 32-bit</title>242 243 <para>Clean previous build:</para>244 245 <screen><userinput remap="pre">rm -rf *</userinput></screen>246 247 <para>Create a symlink to work around missing xsltproc:</para>248 249 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->250 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>251 252 <!-- with cross-LFS we have util-linux in place:253 <para>Because we have not yet installed the final version of Util-Linux,254 create links to the libraries in the approprite location:</para>255 256 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do257 ln -sf $file /usr/lib32/258 done</userinput></screen>259 -->260 261 <para>Prepare systemd for compilation:</para>262 263 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \264 CC="gcc -m32 -march=i686" \265 CXX="g++ -m32 -march=i686" \266 LANG=en_US.UTF-8 \267 meson --prefix=/usr \268 --sysconfdir=/etc \269 --localstatedir=/var \270 --libdir=/usr/lib32 \271 -Drootlibdir=/usr/lib32 \272 -Dblkid=true \273 -Ddefault-dnssec=no \274 -Dfirstboot=false \275 -Dinstall-tests=false \276 -Dldconfig=false \277 -Dsysusers=false \278 -Db_lto=false \279 -Drpmmacrosdir=no \280 -Dhomed=false \281 -Duserdb=false \282 -Dman=false \283 -Dmode=release \284 ..</userinput></screen>285 286 <para>Compile the package:</para>287 288 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>289 290 <para>Install the package:</para>291 292 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install293 cp -Rv DESTDIR/usr/lib32/* /usr/lib32294 rm -rf DESTDIR295 rm -f /usr/bin/xsltproc</userinput></screen>296 297 </sect2><!-- m32 -->298 299 <!-- - - - - - - - - - -->300 <!-- Multilib - x32bit -->301 <!-- - - - - - - - - - -->302 303 <sect2 arch="ml_x32,ml_all" role="installation">304 <title>Installation of systemd - x32-bit</title>305 306 <para>Clean previous build:</para>307 308 <screen><userinput remap="pre">rm -rf *</userinput></screen>309 310 <para>Create a symlink to work around missing xsltproc:</para>311 312 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>313 <!--314 <para>Fix an issue on x32:</para>315 316 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c317 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>318 -->319 <para>Prepare systemd for compilation:</para>320 321 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \322 CC="gcc -mx32" \323 CXX="g++ -mx32" \324 CFLAGS+="-Wno-error=shift-overflow" \325 CXXFLAGS+="-Wno-error=shift-overflow" \326 LANG=en_US.UTF-8 \327 meson --prefix=/usr \328 --sysconfdir=/etc \329 --localstatedir=/var \330 --libdir=/usr/libx32 \331 -Drootlibdir=/usr/libx32 \332 -Dblkid=true \333 -Ddefault-dnssec=no \334 -Dfirstboot=false \335 -Dinstall-tests=false \336 -Dldconfig=false \337 -Dsysusers=false \338 -Db_lto=false \339 -Drpmmacrosdir=no \340 -Dhomed=false \341 -Duserdb=false \342 -Dman=false \343 -Dmode=release \344 ..</userinput></screen>345 346 <para>Compile the package:</para>347 348 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>349 350 <para>Install the package:</para>351 352 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install353 cp -Rv DESTDIR/usr/libx32/* /usr/libx32354 rm -rf DESTDIR355 rm -f /usr/bin/xsltproc</userinput></screen>356 357 </sect2><!-- mx32 -->358 235 359 236 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
r7b3d536 rf976691 125 125 --> 126 126 </sect2> 127 128 <!-- - - - - - - - - - -->129 <!-- Multilib - 32bit -->130 <!-- - - - - - - - - - -->131 132 <sect2 arch="ml_32,ml_all" role="installation">133 <title>Installation of Util-linux - 32-bit</title>134 135 <para>Clean previous build:</para>136 137 <screen><userinput remap="pre">make distclean</userinput></screen>138 139 <para>Move a tool out of the way which is optionally used by140 configure but will report invalid pathes for multilib builds.</para>141 142 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>143 144 <para>Prepare Util-linux for compilation:</para>145 146 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \147 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \148 --host=i686-pc-linux-gnu \149 --libdir=/usr/lib32 \150 --docdir=/usr/share/doc/util-linux-&util-linux-version; \151 --disable-chfn-chsh \152 --disable-login \153 --disable-nologin \154 --disable-su \155 --disable-setpriv \156 --disable-runuser \157 --disable-pylibmount \158 --disable-static \159 --without-python \160 --without-systemd \161 --without-systemdsystemunitdir</userinput></screen>162 163 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \164 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \165 --host=i686-pc-linux-gnu \166 --libdir=/usr/lib32 \167 --docdir=/usr/share/doc/util-linux-&util-linux-version; \168 --disable-chfn-chsh \169 --disable-login \170 --disable-nologin \171 --disable-su \172 --disable-setpriv \173 --disable-runuser \174 --disable-pylibmount \175 --disable-static \176 --without-python</userinput></screen>177 178 <para>Restore the tool previously moved away:</para>179 180 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>181 182 <para>Compile the package:</para>183 184 <screen><userinput remap="make">make</userinput></screen>185 186 <para>Install the package:</para>187 188 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install189 cp -Rv DESTDIR/usr/lib32/* /usr/lib32190 rm -rf DESTDIR</userinput></screen>191 192 </sect2><!-- m32 -->193 194 <!-- - - - - - - - - - -->195 <!-- Multilib - x32bit -->196 <!-- - - - - - - - - - -->197 198 <sect2 arch="ml_x32,ml_all" role="installation">199 <title>Installation of Util-linux - x32-bit</title>200 201 <para>Clean previous build:</para>202 203 <screen><userinput remap="pre">make distclean</userinput></screen>204 205 <para>Move a tool out of the way which is optionally used by206 configure but will report invalid pathes for multilib builds.</para>207 208 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>209 210 <para>Prepare Util-linux for compilation:</para>211 212 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \213 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \214 --host=x86_64-pc-linux-gnux32 \215 --libdir=/usr/libx32 \216 --docdir=/usr/share/doc/util-linux-&util-linux-version; \217 --disable-chfn-chsh \218 --disable-login \219 --disable-nologin \220 --disable-su \221 --disable-setpriv \222 --disable-runuser \223 --disable-pylibmount \224 --disable-static \225 --without-python \226 --without-systemd \227 --without-systemdsystemunitdir</userinput></screen>228 229 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \230 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \231 --host=x86_64-pc-linux-gnux32 \232 --libdir=/usr/libx32 \233 --docdir=/usr/share/doc/util-linux-&util-linux-version; \234 --disable-chfn-chsh \235 --disable-login \236 --disable-nologin \237 --disable-su \238 --disable-setpriv \239 --disable-runuser \240 --disable-pylibmount \241 --disable-static \242 --without-python</userinput></screen>243 244 <para>Restore the tool previously moved away:</para>245 246 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>247 248 <para>Compile the package:</para>249 250 <screen><userinput remap="make">make</userinput></screen>251 252 <para>Install the package:</para>253 254 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install255 cp -Rv DESTDIR/usr/libx32/* /usr/libx32256 rm -rf DESTDIR</userinput></screen>257 258 </sect2><!-- mx32 -->259 127 260 128 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r7b3d536 rf976691 68 68 69 69 </sect2> 70 71 <!-- - - - - - - - - - -->72 <!-- Multilib - 32bit -->73 <!-- - - - - - - - - - -->74 75 <sect2 arch="ml_32,ml_all" role="installation">76 <title>Installation of Xz - 32bit</title>77 78 <para>Clean previous build:</para>79 80 <screen><userinput remap="pre">make distclean</userinput></screen>81 82 <para>Prepare Xz for compilation:</para>83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \85 --host=i686-pc-linux-gnu \86 --prefix=/usr \87 --libdir=/usr/lib32 \88 --disable-static</userinput></screen>89 90 <para>Compile the package:</para>91 92 <screen><userinput remap="make">make</userinput></screen>93 94 <para>Install the package:</para>95 96 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install97 cp -Rv DESTDIR/usr/lib32/* /usr/lib3298 rm -rf DESTDIR</userinput></screen>99 100 </sect2><!-- m32 -->101 102 <!-- - - - - - - - - - -->103 <!-- Multilib - x32bit -->104 <!-- - - - - - - - - - -->105 106 <sect2 arch="ml_x32,ml_all" role="installation">107 <title>Installation of Xz - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Xz for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-static</userinput></screen>120 121 <para>Compile the package:</para>122 123 <screen><userinput remap="make">make</userinput></screen>124 125 <para>Install the package:</para>126 127 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install128 cp -Rv DESTDIR/usr/libx32/* /usr/libx32129 rm -rf DESTDIR</userinput></screen>130 131 </sect2><!-- mx32 -->132 70 133 71 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
r7b3d536 rf976691 64 64 </sect2> 65 65 66 <!-- - - - - - - - - - -->67 <!-- Multilib - 32bit -->68 <!-- - - - - - - - - - -->69 70 <sect2 arch="ml_32,ml_all" role="installation">71 <title>Installation of Zlib - 32bit</title>72 73 <para>Clean previous build:</para>74 75 <screen><userinput remap="pre">make distclean</userinput></screen>76 77 <para>Prepare Zlib for compilation:</para>78 79 <screen><userinput remap="configure">CFLAGS+=" -m32" CXXFLAGS+=" -m32" \80 ./configure --prefix=/usr \81 --libdir=/usr/lib32</userinput></screen>82 83 <para>Compile the package:</para>84 85 <screen><userinput remap="make">make</userinput></screen>86 87 <para>Install the package:</para>88 89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install90 cp -Rv DESTDIR/usr/lib32/* /usr/lib3291 rm -rf DESTDIR</userinput></screen>92 93 </sect2><!-- m32 -->94 95 <!-- - - - - - - - - - -->96 <!-- Multilib - x32bit -->97 <!-- - - - - - - - - - -->98 99 <sect2 arch="ml_x32,ml_all" role="installation">100 <title>Installation of Zlib - x32bit</title>101 102 <screen><userinput remap="pre">make distclean</userinput></screen>103 104 <para>Prepare Zlib for compilation:</para>105 106 <screen><userinput remap="configure">CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \107 ./configure --prefix=/usr \108 --libdir=/usr/libx32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 122 66 <sect2 id="contents-zlib" role="content"> 123 67 <title>Contents of Zlib</title> -
chapter08/zstd.xml
r7b3d536 rf976691 65 65 66 66 </sect2> 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Zstd - 32bit</title>74 75 <para>Clean previous build:</para>76 77 <screen><userinput remap="pre">make clean</userinput></screen>78 79 <para>Compile the package:</para>80 81 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>82 83 <para>Install the package:</para>84 85 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install86 cp -Rv DESTDIR/usr/lib/* /usr/lib32/87 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc88 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of Zstd - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make clean</userinput></screen>102 103 <para>Compile the package:</para>104 105 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>106 107 <para>Install the package:</para>108 109 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install110 cp -Rv DESTDIR/usr/lib/* /usr/libx32/111 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc112 rm -rf DESTDIR</userinput></screen>113 114 </sect2><!-- mx32 -->115 67 116 68 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r7b3d536 rf976691 244 244 </note> 245 245 246 <note arch="ml_32,ml_x32,ml_all">247 <para>248 The kernel on a multilib system needs to be able to249 identify and start binaries compiled for different architectures250 than the default.251 </para>252 253 <para arch="ml_32,ml_all">254 If support for any 32bit ABI was built, make sure that the option255 "IA32 Emulation" is selected. The option 'IA32 a.out support' is256 optional.257 </para>258 259 <para arch="ml_x32,ml_all">260 If support for the x32bit ABI was built, make sure that the option261 "x32 ABI for 64-bit mode" is selected.262 </para>263 264 <screen arch="ml_32">Binary Emulations --->265 [*] IA32 Emulation [CONFIG_IA32_EMULATION]266 <M> IA32 a.out support [CONFIG_IA32_AOUT]267 </screen>268 <screen arch="ml_x32">Binary Emulations --->269 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]270 </screen>271 <screen arch="ml_all">Binary Emulations --->272 [*] IA32 Emulation [CONFIG_IA32_EMULATION]273 <M> IA32 a.out support [CONFIG_IA32_AOUT]274 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]275 </screen>276 </note>277 278 246 <variablelist> 279 247 <title>The rationale for the above configuration items:</title> -
packages.ent
r7b3d536 rf976691 359 359 <!ENTITY iproute2-fin-sbu "0.1 SBU"> 360 360 361 <!ENTITY isl-version "0.24">362 <!ENTITY isl-size "2.1 MB">363 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->364 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">365 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">366 <!ENTITY isl-home "http://isl.gforge.inria.fr/">367 <!ENTITY isl-fin-du "20 MB">368 <!ENTITY isl-fin-sbu "0.1 SBU">369 370 361 <!ENTITY jinja2-version "3.1.2"> 371 362 <!ENTITY jinja2-size "262 KB"> -
prologue/bookinfo.xml
r7b3d536 rf976691 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 10 <subtitle>Version &version;< phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase></subtitle>10 <subtitle>Version &version;</subtitle> 11 11 <subtitle>Published &releasedate;</subtitle> 12 12 … … 29 29 <firstname>Editor: DJ</firstname> 30 30 <surname>Lucas</surname> 31 </author>32 33 <author arch="ml_32,ml_x32,ml_all">34 <firstname>Editor: Thomas</firstname>35 <surname>Trepl</surname>36 31 </author> 37 32 </authorgroup> -
prologue/preface.xml
r7b3d536 rf976691 16 16 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/> 17 17 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="prerequisites.xml"/> 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="multilib.xml"/>19 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/> 20 19 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note:
See TracChangeset
for help on using the changeset viewer.