Changes in / [54ee51d4:bfee8ec]
- Files:
-
- 2 added
- 51 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r54ee51d4 rbfee8ec 35 35 endif 36 36 37 ifndef ARCH 38 ARCH = default 39 endif 40 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 endif 46 endif 47 endif 48 endif 49 37 50 book: validate profile-html 38 51 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 129 142 --output $(RENDERTMP)/lfs-html2.xml \ 130 143 --stringparam profile.revision $(REV) \ 144 --stringparam profile.arch $(ARCH) \ 131 145 stylesheets/lfs-xsl/profile.xsl \ 132 146 index.xml … … 176 190 $(Q)xsltproc --nonet --xinclude \ 177 191 --stringparam profile.revision $(REV) \ 192 --stringparam profile.arch $(ARCH) \ 178 193 --output $(RENDERTMP)/sysv-md5sum.xml \ 179 194 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r54ee51d4 rbfee8ec 39 39 <itemizedlist> 40 40 <listitem> 41 <para>The version of the book being used (in this case 42 <phrase revision="sysv">&version;</phrase> 43 <phrase revision="systemd">&versiond;</phrase>)</para> 41 <para> 42 The version of the book being used (in this case 43 <phrase arch="default" revision="sysv">&version;</phrase> 44 <phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase> 45 <phrase arch="default" revision="systemd">&versiond;</phrase> 46 <phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-multilib</phrase>) 47 </para> 44 48 </listitem> 45 49 <listitem> … … 56 60 </listitem> 57 61 <listitem> 58 <para>Note whether you have deviated from the book at all 62 <para>Note whether you have deviated from the book at all</para> 59 63 </listitem> 60 64 </itemizedlist> -
chapter01/changelog.xml
r54ee51d4 rbfee8ec 12 12 13 13 <para>This is version 14 <phrase revision="sysv">&version;</phrase> 15 <phrase revision="systemd">&versiond;</phrase> 14 <phrase arch="default" revision="sysv">&version;</phrase> 15 <phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase> 16 <phrase arch="default" revision="systemd">&versiond;</phrase> 17 <phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-multilib</phrase> 16 18 of the Linux From Scratch book, dated 17 19 &releasedate;. If this book is more than six months old, a newer and better -
chapter02/hostreqs.xml
r54ee51d4 rbfee8ec 235 235 --> 236 236 237 <para arch="ml_32,ml_x32,ml_all"> 238 Building multilib support requires the kernel of the host system 239 to have 32-bit emulation support included. 240 </para> 241 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 242 [*] IA32 Emulation 243 <M> IA32 a.out support 244 [*] x32 ABI for 64-bit mode 245 </screen> 246 247 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 248 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 249 enabled but only 'IA32 Emulation', you can continue to build your 250 system but you have to leave out any sections showing instructions 251 for building x32 objects. If neither 'IA32 Emulation' nor 252 'x32 ABI for 64-bit mode' is enabled, you will run in errors 253 latest when building <application>glibc</application> in Chapter 6, 254 so an upgrade of your host system kernel is required. 255 </para> 256 237 257 </sect1> -
chapter03/packages.xml
r54ee51d4 rbfee8ec 344 344 <para>Download: <ulink url="&iproute2-url;"/></para> 345 345 <para>MD5 sum: <literal>&iproute2-md5;</literal></para> 346 </listitem> 347 </varlistentry> 348 349 <varlistentry arch="ml_32,ml_x32,ml_all"> 350 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term> 351 <listitem> 352 <para>Home page: <ulink url="&isl-home;"/></para> 353 <para>Download: <ulink url="&isl-url;"/></para> 354 <para>MD5 sum: <literal>&isl-md5;</literal></para> 346 355 </listitem> 347 356 </varlistentry> -
chapter04/addinguser.xml
r54ee51d4 rbfee8ec 85 85 x86_64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 <screen arch="ml_32" ><userinput>chown -v lfs $LFS&lib-m32;</userinput></screen> 88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS&lib-mx32;</userinput></screen> 89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen> 87 90 88 91 <para>If a separate working directory was created as suggested, give -
chapter04/creatingminlayout.xml
r54ee51d4 rbfee8ec 25 25 x86_64) mkdir -pv $LFS/lib64 ;; 26 26 esac</userinput></screen> 27 27 <screen arch="ml_32" ><userinput>mkdir -pv $LFS&lib-m32;</userinput></screen> 28 <screen arch="ml_x32" ><userinput>mkdir -pv $LFS&lib-mx32;</userinput></screen> 29 <screen arch="ml_all" ><userinput>mkdir -pv $LFS/lib{,x}32</userinput></screen> 30 <!-- 31 <screen arch="ml_32" ><userinput>mkdir -pv $LFS/{usr/,}lib32</userinput></screen> 32 <screen arch="ml_x32" ><userinput>mkdir -pv $LFS/{usr/,}libx32</userinput></screen> 33 <screen arch="ml_all" ><userinput>mkdir -pv $LFS/{usr/,}{lib32,libx32}</userinput></screen> 34 <screen arch="ml_32" ><userinput>mkdir -pv $LFS&usr-inc-m32;</userinput></screen> 35 <screen arch="ml_x32" ><userinput>mkdir -pv $LFS&usr-inc-mx32;</userinput></screen> 36 <screen arch="ml_all" ><userinput>mkdir -pv $LFS&usr-inc-m32; 37 mkdir -pv $LFS&usr-inc-mx32;</userinput></screen> 38 --> 28 39 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled 29 40 with a cross-compiler (more details in section <xref -
chapter04/settingenviron.xml
r54ee51d4 rbfee8ec 38 38 <filename>.bashrc</filename> file now:</para> 39 39 40 <screen ><userinput>cat > ~/.bashrc << "EOF"40 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF" 41 41 <literal>set +h 42 42 umask 022 … … 50 50 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 51 51 EOF</userinput></screen> 52 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF" 53 <literal>set +h 54 umask 022 55 LFS=/mnt/lfs 56 LC_ALL=POSIX 57 LFS_TGT=x86_64-lfs-linux-gnu 58 LFS_TGT32=i686-lfs-linux-gnu 59 LFS_TGTX32=x86_64-lfs-linux-gnux32 60 PATH=/usr/bin 61 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi 62 PATH=$LFS/tools/bin:$PATH 63 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal> 64 EOF</userinput></screen> 52 65 53 66 <variablelist> -
chapter05/binutils-pass1.xml
r54ee51d4 rbfee8ec 71 71 <para>Now prepare Binutils for compilation:</para> 72 72 73 <screen ><userinput remap="configure">../configure --prefix=$LFS/tools \73 <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \ 74 74 --with-sysroot=$LFS \ 75 75 --target=$LFS_TGT \ 76 76 --disable-nls \ 77 77 --disable-werror</userinput></screen> 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \ 79 --with-sysroot=$LFS \ 80 --target=$LFS_TGT \ 81 --disable-nls \ 82 --disable-werror \ 83 --enable-multilib</userinput></screen> 78 84 79 85 <variablelist> … … 124 130 </varlistentry> 125 131 132 <varlistentry arch="ml_32,ml_x32,ml_all"> 133 <term><parameter>--enable-multilib</parameter></term> 134 <listitem> 135 <para>Enables multilib support.</para> 136 </listitem> 137 </varlistentry> 138 126 139 </variablelist> 127 140 -
chapter05/gcc-pass1.xml
r54ee51d4 rbfee8ec 61 61 mv -v gmp-&gmp-version; gmp 62 62 tar -xf ../mpc-&mpc-version;.tar.gz 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 65 <para>On x86_64 hosts, set the default directory name for 63 mv -v mpc-&mpc-version; mpc</userinput> 64 <userinput remap="pre" arch="ml_32,ml_x32,ml_all">tar -xf ../isl-&isl-version;.tar.xz 65 mv -v isl-&isl-version; isl</userinput></screen> 66 67 <para arch="default">On x86_64 hosts, set the default directory name for 66 68 64-bit libraries to <quote>lib</quote>:</para> 67 69 68 <screen ><userinput remap="pre">case $(uname -m) in70 <screen arch="default"><userinput remap="pre">case $(uname -m) in 69 71 x86_64) 70 72 sed -e '/m64=/s/lib64/lib/' \ … … 73 75 esac</userinput></screen> 74 76 77 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 78 libraries:</para> 79 80 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 81 -e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \ 82 -i.orig gcc/config/i386/t-linux64 83 </userinput></screen> 84 75 85 <para>The GCC documentation recommends building GCC 76 86 in a dedicated build directory:</para> … … 81 91 <para>Prepare GCC for compilation:</para> 82 92 83 <screen ><userinput remap="configure">../configure \93 <screen arch="default"><userinput remap="configure">../configure \ 84 94 --target=$LFS_TGT \ 85 95 --prefix=$LFS/tools \ … … 101 111 --disable-libstdcxx \ 102 112 --enable-languages=c,c++</userinput></screen> 113 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 114 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure" 115 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 116 arch="ml_all">mlist=m64,m32,mx32</userinput> 117 <userinput remap="configure">../configure \ 118 --target=$LFS_TGT \ 119 --prefix=$LFS/tools \ 120 --with-glibc-version=2.11 \ 121 --with-sysroot=$LFS \ 122 --with-newlib \ 123 --without-headers \ 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 103 138 <variablelist> 104 139 <title>The meaning of the configure options:</title> … … 150 185 </varlistentry> 151 186 152 <varlistentry >187 <varlistentry arch="default"> 153 188 <term><parameter>--disable-multilib</parameter></term> 154 189 <listitem> 155 190 <para>On x86_64, LFS does not support a multilib configuration. 156 191 This switch is harmless for x86.</para> 192 </listitem> 193 </varlistentry> 194 <varlistentry arch="ml_32,ml_x32,ml_all"> 195 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term> 196 <listitem> 197 <para>LFS canbe used to support multilib. Which they are is 198 specified in the multilib list.</para> 157 199 </listitem> 158 200 </varlistentry> -
chapter05/glibc.xml
r54ee51d4 rbfee8ec 48 48 operation of the dynamic library loader:</para> 49 49 50 <screen ><userinput remap="pre">case $(uname -m) in50 <screen arch="default"><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/lib64 59 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen> 57 60 58 61 <note> … … 80 83 <para>Next, prepare Glibc for compilation:</para> 81 84 82 <screen ><userinput remap="configure">../configure \85 <screen arch="default"><userinput remap="configure">../configure \ 83 86 --prefix=/usr \ 84 87 --host=$LFS_TGT \ … … 86 89 --enable-kernel=&min-kernel; \ 87 90 --with-headers=$LFS/usr/include \ 91 libc_cv_slibdir=/lib</userinput></screen> 92 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 93 --prefix=/usr \ 94 --host=$LFS_TGT \ 95 --build=$(../scripts/config.guess) \ 96 --enable-kernel=&min-kernel; \ 97 --with-headers=$LFS/usr/include \ 98 --enable-multi-arch \ 99 --libdir=/usr/lib \ 100 --libexecdir=/usr/lib \ 88 101 libc_cv_slibdir=/lib</userinput></screen> 89 102 <!-- … … 208 221 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 209 222 210 <para >Note that for 32-bit machines, the interpreter name will be223 <para arch="default">Note that for 32-bit machines, the interpreter name will be 211 224 <filename>/lib/ld-linux.so.2</filename>.</para> 212 225 … … 236 249 </sect2> 237 250 251 <!-- - - - - - - - - - --> 252 <!-- Multilib - 32bit --> 253 <!-- - - - - - - - - - --> 254 <sect2 arch="ml_32,ml_all"> 255 <title>Building Glibc - 32bit</title> 256 257 <para>Now recompile for m32. The extracted source can be 258 reused but needs to cleaned before installing the m32 259 version of Glibc.</para> 260 261 <para>Clear the build directory and remove artefacts from 262 previous build:</para> 263 264 <screen><userinput remap="pre">make clean 265 find .. -name "*.a" -delete</userinput></screen> 266 267 <para>Configure Glibc for m32 with the following commands:</para> 268 269 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 270 CXX="$LFS_TGT-g++ -m32" \ 271 ../configure \ 272 --prefix=/usr \ 273 --host=$LFS_TGT32 \ 274 --build=$(../scripts/config.guess) \ 275 --enable-kernel=&min-kernel; \ 276 --with-headers=$LFS/usr/include \ 277 --enable-multi-arch \ 278 --libdir=&usr-lib-m32; \ 279 --libexecdir=&usr-lib-m32; \ 280 libc_cv_slibdir=&lib-m32;</userinput></screen> 281 282 <para>Compile the package:</para> 283 284 <screen><userinput remap="make">make</userinput></screen> 285 286 <para>Install the package:</para> 287 288 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 289 cp -a DESTDIR&lib-m32;/* $LFS&lib-m32;/ 290 cp -a DESTDIR&usr-lib-m32; $LFS/usr/ 291 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 292 $LFS/usr/include/gnu/ 293 ln -svf ..&lib-m32;/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen> 294 295 <caution> 296 <para>At this point, it is imperative to stop and ensure that the basic 297 functions (compiling and linking) of the new toolchain are working as 298 expected. To perform a sanity check, run the following commands:</para> 299 300 <screen><userinput>echo 'int main(){}' > dummy.c 301 $LFS_TGT-gcc -m32 dummy.c 302 readelf -l a.out | grep '/ld-linux'</userinput></screen> 303 304 <para>If everything is working correctly, there should be no errors, 305 and the output of the last command will be of the form:</para> 306 307 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 308 309 <para>If the output is not shown as above or there was no output at all, 310 then something is wrong. Investigate and retrace the steps to find out 311 where the problem is and correct it. This issue must be resolved before 312 continuing on.</para> 313 314 <para>Once all is well, clean up the test files:</para> 315 316 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 317 318 </caution> 319 320 </sect2><!-- m32 --> 321 322 <!-- - - - - - - - - - --> 323 <!-- Multilib - x32bit --> 324 <!-- - - - - - - - - - --> 325 326 <sect2 arch="ml_x32,ml_all"> 327 <title>Building Glibc - x32bit</title> 328 329 <para>Now recompile for mx32. The extracted source can be 330 reused but needs to cleaned before installing the mx32 331 version of Glibc.</para> 332 333 <para>Clear the build directory and remove artefacts from 334 previous build:</para> 335 336 <screen><userinput remap="pre">make clean 337 find .. -name "*.a" -delete</userinput></screen> 338 339 <para>Configure Glibc for mx32 with the following commands:</para> 340 341 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 342 CXX="$LFS_TGT-g++ -mx32" \ 343 ../configure \ 344 --prefix=/usr \ 345 --host=$LFS_TGTX32 \ 346 --build=$(../scripts/config.guess) \ 347 --enable-kernel=&min-kernel; \ 348 --with-headers=$LFS/usr/include \ 349 --enable-multi-arch \ 350 --libdir=&usr-lib-mx32; \ 351 --libexecdir=&usr-lib-mx32; \ 352 libc_cv_slibdir=&lib-mx32;</userinput></screen> 353 354 <para>Compile the package:</para> 355 356 <screen><userinput remap="make">make</userinput></screen> 357 358 <para>Install the package:</para> 359 360 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 361 cp -a DESTDIR&lib-mx32;/* $LFS&lib-mx32;/ 362 cp -a DESTDIR&usr-lib-mx32; $LFS/usr/ 363 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 364 $LFS/usr/include/gnu/ 365 ln -svf ..&lib-mx32;/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen> 366 367 <caution> 368 <para>At this point, it is imperative to stop and ensure that the basic 369 functions (compiling and linking) of the new toolchain are working as 370 expected. To perform a sanity check, run the following commands:</para> 371 372 <screen><userinput>echo 'int main(){}' > dummy.c 373 $LFS_TGT-gcc -mx32 dummy.c 374 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 375 376 <para>If everything is working correctly, there should be no errors, 377 and the output of the last command will be of the form:</para> 378 379 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 380 381 <para>If the output is not shown as above or there was no output at all, 382 then something is wrong. Investigate and retrace the steps to find out 383 where the problem is and correct it. This issue must be resolved before 384 continuing on.</para> 385 386 <para>Once all is well, clean up the test files:</para> 387 388 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 389 390 </caution> 391 392 </sect2><!-- mx32 --> 393 238 394 <sect2 role="content"> 239 395 <title/> -
chapter05/libstdc++.xml
r54ee51d4 rbfee8ec 82 82 </varlistentry> 83 83 84 <varlistentry arch="ml_32,ml_x32,ml_all"> 85 <term><parameter>--disable-multilib</parameter></term> 86 <listitem> 87 <para>Even when building the multilib version, this switch is 88 given. This is because the additionally built libraries are 89 not required in this stage and some disk space and compile 90 time can be saved.</para> 91 </listitem> 92 </varlistentry> 93 84 94 <varlistentry> 85 95 <term><parameter>--disable-libstdcxx-pch</parameter></term> -
chapter06/binutils-pass2.xml
r54ee51d4 rbfee8ec 51 51 <para>Prepare Binutils for compilation:</para> 52 52 53 <screen ><userinput remap="configure">../configure \53 <screen arch="default"><userinput remap="configure">../configure \ 54 54 --prefix=/usr \ 55 55 --build=$(../config.guess) \ … … 59 59 --disable-werror \ 60 60 --enable-64-bit-bfd</userinput></screen> 61 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 62 --prefix=/usr \ 63 --build=$(../config.guess) \ 64 --host=$LFS_TGT \ 65 --disable-nls \ 66 --enable-shared \ 67 --disable-werror \ 68 --enable-64-bit-bfd \ 69 --enable-multilib</userinput></screen> 61 70 62 71 <variablelist> … … 77 86 <para>Enables 64-bit support (on hosts with narrower word sizes). 78 87 May not be needed on 64-bit systems, but does no harm.</para> 88 </listitem> 89 </varlistentry> 90 91 <varlistentry arch="ml_32,ml_x32,ml_all"> 92 <term><parameter>--enable-multilib</parameter></term> 93 <listitem> 94 <para>Enables multilib support in bintutils.</para> 79 95 </listitem> 80 96 </varlistentry> -
chapter06/gcc-pass2.xml
r54ee51d4 rbfee8ec 53 53 mv -v gmp-&gmp-version; gmp 54 54 tar -xf ../mpc-&mpc-version;.tar.gz 55 mv -v mpc-&mpc-version; mpc</userinput></screen> 55 mv -v mpc-&mpc-version; mpc</userinput> 56 <userinput remap="pre" arch="ml_32,ml_x32,ml_all">tar -xf ../isl-&isl-version;.tar.xz 57 mv -v isl-&isl-version; isl</userinput></screen> 56 58 57 <para>If building on x86_64, change the default directory name for 64-bit 59 60 <para arch="default">If building on x86_64, change the default directory name for 64-bit 58 61 libraries to <quote>lib</quote>:</para> 59 62 60 <screen ><userinput remap="pre">case $(uname -m) in63 <screen arch="default"><userinput remap="pre">case $(uname -m) in 61 64 x86_64) 62 65 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 63 66 ;; 64 67 esac</userinput></screen> 68 69 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 70 libraries:</para> 71 72 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 73 -e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \ 74 -i.orig gcc/config/i386/t-linux64</userinput></screen> 65 75 <!-- 66 <para>Fix an issue with GCC-10.1 when building with a cross67 compiler:</para>68 69 76 <screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen> 70 77 --> … … 85 92 <para>Now prepare GCC for compilation:</para> 86 93 87 <screen ><userinput remap="configure">../configure \94 <screen arch="default"><userinput remap="configure">../configure \ 88 95 --build=$(../config.guess) \ 89 96 --host=$LFS_TGT \ … … 94 101 --disable-nls \ 95 102 --disable-multilib \ 103 --disable-decimal-float \ 104 --disable-libatomic \ 105 --disable-libgomp \ 106 --disable-libquadmath \ 107 --disable-libssp \ 108 --disable-libvtv \ 109 --disable-libstdcxx \ 110 --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 --prefix=/usr \ 119 CC_FOR_TARGET=$LFS_TGT-gcc \ 120 --with-build-sysroot=$LFS \ 121 --enable-initfini-array \ 122 --disable-nls \ 123 --enable-multilib --with-multilib-list=$mlist \ 96 124 --disable-decimal-float \ 97 125 --disable-libatomic \ -
chapter06/ncurses.xml
r54ee51d4 rbfee8ec 160 160 <screen><userinput remap="install">ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so</userinput></screen> 161 161 162 163 162 </sect2> 163 164 <!-- - - - - - - - - - --> 165 <!-- Multilib - 32bit --> 166 <!-- - - - - - - - - - --> 167 <sect2 arch="ml_32,ml_all"> 168 <title>Building Ncurses - 32bit</title> 169 170 <para>Clean previous build:</para> 171 172 <screen><userinput remap="pre">make distclean</userinput></screen> 173 174 <para>Prepare Ncurses for compilation:</para> 175 176 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 177 CXX="$LFS_TGT-g++ -m32" \ 178 ./configure --prefix=/usr \ 179 --host=$LFS_TGT32 \ 180 --build=$(./config.guess) \ 181 --libdir=&usr-lib-m32; \ 182 --mandir=/usr/share/man \ 183 --with-shared \ 184 --without-debug \ 185 --without-ada \ 186 --without-normal \ 187 --enable-pc-files \ 188 --enable-widec \ 189 --with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen> 190 191 <para>Compile the package:</para> 192 193 <screen><userinput remap="make">make</userinput></screen> 194 195 <para>Install the package:</para> 196 197 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 198 ln -s libncursesw.so DESTDIR&usr-lib-m32;/libcursesw.so 199 cp -Rv DESTDIR&usr-lib-m32;/* $LFS&usr-lib-m32; 200 rm -rf DESTDIR</userinput></screen> 201 202 </sect2><!-- m32 --> 203 204 <!-- - - - - - - - - - --> 205 <!-- Multilib - x32bit --> 206 <!-- - - - - - - - - - --> 207 <sect2 arch="ml_x32,ml_all"> 208 <title>Building Ncurses - x32bit</title> 209 210 <para>Clean previous build:</para> 211 212 <screen><userinput remap="pre">make distclean</userinput></screen> 213 214 <para>Prepare Ncurses for compilation:</para> 215 216 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 217 CXX="$LFS_TGT-g++ -mx32" \ 218 ./configure --prefix=/usr \ 219 --host=$LFS_TGTX32 \ 220 --build=$(./config.guess) \ 221 --libdir=&usr-lib-mx32; \ 222 --mandir=/usr/share/man \ 223 --with-shared \ 224 --without-debug \ 225 --without-ada \ 226 --without-normal \ 227 --enable-pc-files \ 228 --enable-widec \ 229 --with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen> 230 231 <para>Compile the package:</para> 232 233 <screen><userinput remap="make">make</userinput></screen> 234 235 <para>Install the package:</para> 236 237 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 238 ln -s libncursesw.so DESTDIR&usr-lib-mx32;/libcursesw.so 239 cp -Rv DESTDIR&usr-lib-mx32;/* $LFS&usr-lib-mx32; 240 rm -rf DESTDIR</userinput></screen> 241 242 </sect2><!-- mx32 --> 164 243 165 244 <sect2 role="content"> -
chapter07/changingowner.xml
r54ee51d4 rbfee8ec 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for 42 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&lib-m32;</userinput> 44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS&lib-mx32;</userinput></screen> 45 41 46 </sect1> -
chapter07/creatingdirs.xml
r54ee51d4 rbfee8ec 41 41 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 42 42 43 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib 44 support has already been created while previous installation steps.</para> 45 43 46 <para>Directories are, by default, created with permission mode 755, but 44 47 this is not desirable for all directories. In the commands above, two -
chapter07/libstdc++-pass2.xml
r54ee51d4 rbfee8ec 63 63 <para>Prepare libstdc++ for compilation:</para> 64 64 65 <screen ><userinput remap="configure">../libstdc++-v3/configure \65 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \ 66 66 CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ 67 67 --prefix=/usr \ 68 68 --disable-multilib \ 69 --disable-nls \ 70 --host=$(uname -m)-lfs-linux-gnu \ 71 --disable-libstdcxx-pch</userinput></screen> 72 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \ 73 CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ 74 --prefix=/usr \ 75 --enable-multilib \ 69 76 --disable-nls \ 70 77 --host=$(uname -m)-lfs-linux-gnu \ … … 99 106 </varlistentry> 100 107 108 <varlistentry arch="ml_32,ml_x32,ml_all"> 109 <term><parameter>--enable-multilib</parameter></term> 110 <listitem> 111 <para>This switch is set by default but it is added here 112 explicitly for documentary purpose. The libstdc++ libraries 113 will be built for every arch (m64, m32, mx32) which are 114 made available in <xref linkend="ch-tools-gcc-pass1"/>.</para> 115 </listitem> 116 </varlistentry> 117 101 118 </variablelist> 102 119 -
chapter07/stripping.xml
r54ee51d4 rbfee8ec 16 16 While still in chroot, remove those files now:</para> 17 17 18 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 18 <screen arch="default"><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 19 <screen arch="ml_32"><userinput>find /usr/{lib{,32},libexec} -name \*.la -delete</userinput></screen> 20 <screen arch="ml_x32"><userinput>find /usr/{lib{,x32},libexec} -name \*.la -delete</userinput></screen> 21 <screen arch="ml_all"><userinput>find /usr/{lib{,{,x}32},libexec} -name \*.la -delete</userinput></screen> 19 22 20 23 <para>Remove the documentation of the temporary tools, to prevent them … … 88 91 89 92 <para>Strip off debugging symbols from binaries:</para> 90 <screen role="nodump"><userinput>strip --strip-debug $LFS/usr/lib/* 93 <screen arch="default" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib/* 94 strip --strip-unneeded $LFS/usr/{,s}bin/* 95 strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 96 <screen arch="ml_32" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,32}/* 97 strip --strip-unneeded $LFS/usr/{,s}bin/* 98 strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 99 <screen arch="ml_x32" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,x32}/* 100 strip --strip-unneeded $LFS/usr/{,s}bin/* 101 strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 102 <screen arch="ml_all" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,{,x}32}/* 91 103 strip --strip-unneeded $LFS/usr/{,s}bin/* 92 104 strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> -
chapter07/util-linux.xml
r54ee51d4 rbfee8ec 116 116 </sect2> 117 117 118 <!-- - - - - - - - - - --> 119 <!-- Multilib - 32bit --> 120 <!-- - - - - - - - - - --> 121 122 <sect2 arch="ml_32,ml_all" role="installation"> 123 <title>Installation of Util-linux - 32-bit</title> 124 125 <para>Clean previous build:</para> 126 127 <screen><userinput remap="pre">make distclean</userinput></screen> 128 129 <para>Prepare Util-linux for compilation:</para> 130 131 <screen><userinput remap="configure">CC="gcc -m32" \ 132 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 133 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 134 --disable-chfn-chsh \ 135 --disable-login \ 136 --disable-nologin \ 137 --disable-su \ 138 --disable-setpriv \ 139 --disable-runuser \ 140 --disable-pylibmount \ 141 --disable-static \ 142 --without-python \ 143 --libdir=&usr-lib-m32; \ 144 --host=i686-pc-linux-gnu</userinput></screen> 145 146 <para>Compile the package:</para> 147 148 <screen><userinput remap="make">make</userinput></screen> 149 150 <para>Install the package:</para> 151 152 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 153 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 154 rm -rf DESTDIR</userinput></screen> 155 156 </sect2><!-- m32 --> 157 158 <!-- - - - - - - - - - --> 159 <!-- Multilib - x32bit --> 160 <!-- - - - - - - - - - --> 161 162 <sect2 arch="ml_x32,ml_all" role="installation"> 163 <title>Installation of Util-linux - x32-bit</title> 164 165 <para>Clean previous build:</para> 166 167 <screen><userinput remap="pre">make distclean</userinput></screen> 168 169 <para>Prepare Util-linux for compilation:</para> 170 171 <screen><userinput remap="configure">CC="gcc -mx32" \ 172 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 173 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 174 --disable-chfn-chsh \ 175 --disable-login \ 176 --disable-nologin \ 177 --disable-su \ 178 --disable-setpriv \ 179 --disable-runuser \ 180 --disable-pylibmount \ 181 --disable-static \ 182 --without-python \ 183 --libdir=&usr-lib-mx32; \ 184 --host=x86_64-pc-linux-gnux32</userinput></screen> 185 186 <para>Compile the package:</para> 187 188 <screen><userinput remap="make">make</userinput></screen> 189 190 <para>Install the package:</para> 191 192 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 193 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 194 rm -rf DESTDIR</userinput></screen> 195 196 </sect2><!-- mx32 --> 197 118 198 <sect2 role="content"> 119 199 <title/> -
chapter08/acl.xml
r54ee51d4 rbfee8ec 80 80 </sect2> 81 81 82 <!-- - - - - - - - - - --> 83 <!-- Multilib - 32bit --> 84 <!-- - - - - - - - - - --> 85 86 <sect2 arch="ml_32,ml_all" role="installation"> 87 <title>Installation of Acl - 32bit</title> 88 89 <para>Clean previous build:</para> 90 91 <screen><userinput remap="pre">make distclean</userinput></screen> 92 93 <para>Prepare Xz for compilation:</para> 94 95 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 96 --prefix=/usr \ 97 --disable-static \ 98 --libdir=&usr-lib-m32; \ 99 --libexecdir=&usr-lib-m32; \ 100 --host=i686-pc-linux-gnu</userinput></screen> 101 102 <para>Compile the package:</para> 103 104 <screen><userinput remap="make">make</userinput></screen> 105 106 <para>Install the package:</para> 107 108 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 109 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 110 rm -rf DESTDIR</userinput></screen> 111 112 </sect2><!-- m32 --> 113 114 <!-- - - - - - - - - - --> 115 <!-- Multilib - x32bit --> 116 <!-- - - - - - - - - - --> 117 118 <sect2 arch="ml_x32,ml_all" role="installation"> 119 <title>Installation of Acl - x32bit</title> 120 121 <para>Clean previous build:</para> 122 123 <screen><userinput remap="pre">make distclean</userinput></screen> 124 125 <para>Prepare Xz for compilation:</para> 126 127 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 128 --prefix=/usr \ 129 --disable-static \ 130 --libdir=&usr-lib-mx32; \ 131 --libexecdir=&usr-lib-mx32; \ 132 --host=x86_64-pc-linux-gnux32</userinput></screen> 133 134 <para>Compile the package:</para> 135 136 <screen><userinput remap="make">make</userinput></screen> 137 138 <para>Install the package:</para> 139 140 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 141 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 142 rm -rf DESTDIR</userinput></screen> 143 144 </sect2><!-- mx32 --> 145 82 146 <sect2 id="contents-acl" role="content"> 83 147 <title>Contents of Acl</title> -
chapter08/attr.xml
r54ee51d4 rbfee8ec 79 79 </sect2> 80 80 81 <!-- - - - - - - - - - --> 82 <!-- Multilib - 32bit --> 83 <!-- - - - - - - - - - --> 84 85 <sect2 arch="ml_32,ml_all" role="installation"> 86 <title>Installation of Attr - 32bit</title> 87 88 <para>Clean previous build:</para> 89 90 <screen><userinput remap="pre">make distclean</userinput></screen> 91 92 <para>Prepare Attr for compilation:</para> 93 94 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 95 --prefix=/usr \ 96 --disable-static \ 97 --libdir=&usr-lib-m32; \ 98 --host=i686-pc-linux-gnu</userinput></screen> 99 100 <para>Compile the package:</para> 101 102 <screen><userinput remap="make">make</userinput></screen> 103 104 <para>Install the package:</para> 105 106 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 107 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 108 rm -rf DESTDIR</userinput></screen> 109 110 </sect2><!-- m32 --> 111 112 <!-- - - - - - - - - - --> 113 <!-- Multilib - x32bit --> 114 <!-- - - - - - - - - - --> 115 116 <sect2 arch="ml_x32,ml_all" role="installation"> 117 <title>Installation of Attr - x32bit</title> 118 119 <para>Clean previous build:</para> 120 121 <screen><userinput remap="pre">make distclean</userinput></screen> 122 123 <para>Prepare Attr for compilation:</para> 124 125 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 126 --prefix=/usr \ 127 --disable-static \ 128 --libdir=&usr-lib-mx32; \ 129 --host=x86_64-pc-linux-gnux32</userinput></screen> 130 131 <para>Compile the package:</para> 132 133 <screen><userinput remap="make">make</userinput></screen> 134 135 <para>Install the package:</para> 136 137 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 138 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 139 rm -rf DESTDIR</userinput></screen> 140 141 </sect2><!-- mx32 --> 142 81 143 <sect2 id="contents-attr" role="content"> 82 144 <title>Contents of Attr</title> -
chapter08/binutils.xml
r54ee51d4 rbfee8ec 71 71 <para>Prepare Binutils for compilation:</para> 72 72 73 <screen ><userinput remap="configure">../configure --prefix=/usr \73 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 74 74 --enable-gold \ 75 75 --enable-ld=default \ … … 79 79 --enable-64-bit-bfd \ 80 80 --with-system-zlib</userinput></screen> 81 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 82 --enable-gold \ 83 --enable-ld=default \ 84 --enable-plugins \ 85 --enable-shared \ 86 --disable-werror \ 87 --enable-64-bit-bfd \ 88 --with-system-zlib \ 89 --enable-multilib</userinput></screen> 90 81 91 <variablelist> 82 92 <title>The meaning of the configure parameters:</title> … … 110 120 <para>Enables 64-bit support (on hosts with narrower word sizes). 111 121 May not be needed on 64-bit systems, but does no harm.</para> 122 </listitem> 123 </varlistentry> 124 125 <varlistentry arch="ml_32,ml_x32,ml_all"> 126 <term><parameter>--enable-multilib</parameter></term> 127 <listitem> 128 <para>Enables multilib support in bintutils.</para> 112 129 </listitem> 113 130 </varlistentry> -
chapter08/bzip2.xml
r54ee51d4 rbfee8ec 101 101 102 102 </sect2> 103 104 <!-- - - - - - - - - - --> 105 <!-- Multilib - 32bit --> 106 <!-- - - - - - - - - - --> 107 108 <sect2 arch="ml_32,ml_all" role="installation"> 109 <title>Installation of Bzip2 - 32bit</title> 110 111 <para>Clean previous build:</para> 112 113 <screen><userinput remap="pre">make clean</userinput></screen> 114 115 <para>Compile the package:</para> 116 117 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so} 118 make -f Makefile-libbz2_so 119 make libbz2.a</userinput></screen> 120 121 <para>Install the package:</para> 122 123 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0.8 124 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so 125 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1 126 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0 127 install -Dm644 libbz2.a &usr-lib-m32;/libbz2.a</userinput></screen> 128 129 </sect2><!-- m32 --> 130 131 <!-- - - - - - - - - - --> 132 <!-- Multilib - x32bit --> 133 <!-- - - - - - - - - - --> 134 135 <sect2 arch="ml_x32,ml_all" role="installation"> 136 <title>Installation of Bzip2 - x32bit</title> 137 138 <para>Clean previous build:</para> 139 140 <screen><userinput remap="pre">make clean</userinput></screen> 141 142 <para>Compile the package:</para> 143 144 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so} 145 make -f Makefile-libbz2_so 146 make libbz2.a</userinput></screen> 147 148 <para>Install the package:</para> 149 150 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0.8 151 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so 152 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1 153 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0 154 install -Dm644 libbz2.a &usr-lib-mx32;/libbz2.a</userinput></screen> 155 156 </sect2><!-- mx32 --> 103 157 104 158 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
r54ee51d4 rbfee8ec 35 35 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 36 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/> 37 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 38 39 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/eudev.xml
r54ee51d4 rbfee8ec 90 90 </sect2> 91 91 92 <!-- - - - - - - - - - --> 93 <!-- Multilib - 32bit --> 94 <!-- - - - - - - - - - --> 95 96 <sect2 arch="ml_32,ml_all" role="installation"> 97 <title>Installation of Eudev - 32bit</title> 98 99 <para>Clean previous build:</para> 100 101 <screen><userinput remap="pre">make distclean</userinput></screen> 102 103 <para>Prepare Eudev for compilation:</para> 104 105 <screen><userinput remap="configure">CC="gcc -m32" \ 106 ./configure --host=i686-pc-linux-gnu \ 107 --prefix=/usr \ 108 --bindir=/sbin \ 109 --sbindir=/sbin \ 110 --libdir=&usr-lib-m32; \ 111 --sysconfdir=/etc \ 112 --libexecdir=&lib-m32; \ 113 --with-rootprefix= \ 114 --with-rootlibdir=&usr-lib-m32; \ 115 --disable-manpages \ 116 --disable-static \ 117 --config-cache</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 install 126 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 127 rm -rf DESTDIR</userinput></screen> 128 129 </sect2><!-- m32 --> 130 131 <!-- - - - - - - - - - --> 132 <!-- Multilib - x32bit --> 133 <!-- - - - - - - - - - --> 134 135 <sect2 arch="ml_x32,ml_all" role="installation"> 136 <title>Installation of Eudev - x32bit</title> 137 138 <para>Clean previous build:</para> 139 140 <screen><userinput remap="pre">make distclean</userinput></screen> 141 142 <para>Prepare Eudev for compilation:</para> 143 144 <screen><userinput remap="configure">CC="gcc -mx32" \ 145 ./configure --prefix=/usr \ 146 --bindir=/sbin \ 147 --sbindir=/sbin \ 148 --libdir=&usr-lib-mx32; \ 149 --sysconfdir=/etc \ 150 --libexecdir=&lib-mx32; \ 151 --with-rootprefix= \ 152 --with-rootlibdir=&usr-lib-mx32; \ 153 --disable-manpages \ 154 --disable-static \ 155 --config-cache</userinput></screen> 156 157 <para>Compile the package:</para> 158 159 <screen><userinput remap="make">make</userinput></screen> 160 161 <para>Install the package:</para> 162 163 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 164 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 165 rm -rf DESTDIR</userinput></screen> 166 167 </sect2><!-- mx32 --> 168 92 169 <sect2 id="conf-eudev" role="configuration"> 93 170 <title>Configuring Eudev</title> -
chapter08/expat.xml
r54ee51d4 rbfee8ec 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 it 76 cannot be rebuilt in this stage of the system:</para> 77 78 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile 79 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 --libdir=&usr-lib-m32; \ 86 --host=i686-pc-linux-gnu</userinput></screen> 87 88 <para>Compile the package:</para> 89 90 <screen><userinput remap="make">make</userinput></screen> 91 92 <para>Install the package:</para> 93 94 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 95 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 96 rm -rf DESTDIR</userinput></screen> 97 98 </sect2><!-- m32 --> 99 100 <!-- - - - - - - - - - --> 101 <!-- Multilib - x32bit --> 102 <!-- - - - - - - - - - --> 103 104 <sect2 arch="ml_x32,ml_all" role="installation"> 105 <title>Installation of Expat - x32bit</title> 106 107 <para>Clean previous build but keep precompiled doc because it 108 cannot be rebuilt in this stage of the system:</para> 109 110 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile 111 make clean</userinput></screen> 112 113 <para>Prepare Expat for compilation:</para> 114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 116 --prefix=/usr \ 117 --libdir=&usr-lib-mx32; \ 118 --host=x86_64-pc-linux-gnux32</userinput></screen> 119 120 <para>Compile the package:</para> 121 122 <screen><userinput remap="make">make</userinput></screen> 123 124 <para>Install the package:</para> 125 126 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 127 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 128 rm -rf DESTDIR</userinput></screen> 129 130 </sect2><!-- mx32 --> 131 68 132 <sect2 id="contents-expat" role="content"> 69 133 <title>Contents of Expat</title> -
chapter08/file.xml
r54ee51d4 rbfee8ec 70 70 </sect2> 71 71 72 <!-- - - - - - - - - - --> 73 <!-- Multilib - 32bit --> 74 <!-- - - - - - - - - - --> 75 76 <sect2 arch="ml_32,ml_all" role="installation"> 77 <title>Installation of File - 32bit</title> 78 79 <para>Clean previous build:</para> 80 81 <screen><userinput remap="pre">make distclean</userinput></screen> 82 83 <para>Prepare File for compilation:</para> 84 85 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 86 --prefix=/usr \ 87 --libdir=&usr-lib-m32; \ 88 --host=i686-pc-linux-gnu</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 install 97 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 98 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 File - x32bit</title> 108 109 <para>Clean previous build:</para> 110 111 <screen><userinput remap="pre">make distclean</userinput></screen> 112 113 <para>Prepare File for compilation:</para> 114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 116 --prefix=/usr \ 117 --libdir=&usr-lib-mx32; \ 118 --host=x86_64-pc-linux-gnux32</userinput></screen> 119 120 <para>Compile the package:</para> 121 122 <screen><userinput remap="make">make</userinput></screen> 123 124 <para>Install the package:</para> 125 126 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 127 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 128 rm -rf DESTDIR</userinput></screen> 129 130 </sect2><!-- mx32 --> 72 131 73 132 <sect2 id="contents-file" role="content"> -
chapter08/gcc.xml
r54ee51d4 rbfee8ec 42 42 <title>Installation of GCC</title> 43 43 44 <para >If building on x86_64, change the default directory name for 64-bit44 <para arch="default">If building on x86_64, change the default directory name for 64-bit 45 45 libraries to <quote>lib</quote>:</para> 46 46 47 <screen ><userinput remap="pre">case $(uname -m) in47 <screen arch="default"><userinput remap="pre">case $(uname -m) in 48 48 x86_64) 49 49 sed -e '/m64=/s/lib64/lib/' \ … … 52 52 esac</userinput></screen> 53 53 54 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit 55 libraries to <quote>lib</quote>:</para> 56 57 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 58 -e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \ 59 -i.orig gcc/config/i386/t-linux64</userinput></screen> 60 54 61 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 55 62 … … 59 66 <para>Prepare GCC for compilation:</para> 60 67 61 <screen ><userinput remap="configure">../configure --prefix=/usr \68 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 62 69 LD=ld \ 63 70 --enable-languages=c,c++ \ 64 71 --disable-multilib \ 65 72 --disable-bootstrap \ 73 --with-system-zlib</userinput></screen> 74 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 75 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure" 76 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 77 arch="ml_all">mlist=m64,m32,mx32</userinput> 78 <userinput remap="configure">../configure --prefix=/usr \ 79 LD=ld \ 80 --enable-languages=c,c++ \ 81 --enable-multilib \ 82 --with-multilib-list=$mlist \ 83 --disable-bootstrap \ 66 84 --with-system-zlib</userinput></screen> 67 85 … … 257 275 SEARCH_DIR("/usr/lib");</computeroutput></screen> 258 276 259 <para >A 32-bit system may see a few different directories. For example, here277 <para arch="default">A 32-bit system may see a few different directories. For example, here 260 278 is the output from an i686 machine:</para> 261 279 262 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 280 <!-- not using entities here as the dir names has nothing to do with multilib --> 281 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 263 282 SEARCH_DIR("/usr/local/lib32") 264 283 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
r54ee51d4 rbfee8ec 64 64 <para>Prepare Glibc for compilation:</para> 65 65 66 <screen ><userinput remap="configure">../configure --prefix=/usr \66 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 67 67 --disable-werror \ 68 68 --enable-kernel=&min-kernel; \ 69 69 --enable-stack-protector=strong \ 70 70 --with-headers=/usr/include \ 71 libc_cv_slibdir=/lib</userinput></screen> 72 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 73 --disable-werror \ 74 --enable-kernel=&min-kernel; \ 75 --enable-stack-protector=strong \ 76 --with-headers=/usr/include \ 77 --enable-multi-arch \ 71 78 libc_cv_slibdir=/lib</userinput></screen> 72 79 … … 465 472 </sect2> 466 473 474 <!-- - - - - - - - - - --> 475 <!-- Multilib - 32bit --> 476 <!-- - - - - - - - - - --> 477 <sect2 arch="ml_32,ml_all"> 478 <title>Building Glibc - 32bit</title> 479 480 <para>Now recompile for m32. The extracted source can be 481 reused but needs to cleaned before installing the m32 482 version of Glibc.</para> 483 484 <para>Clear the build directory and remove artefacts from 485 previous build:</para> 486 487 <screen><userinput remap="pre">rm -rf ./* 488 find .. -name "*.a" -delete</userinput></screen> 489 490 <para>Configure Glibc for m32 with the following commands:</para> 491 492 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \ 493 ../configure \ 494 --prefix=/usr \ 495 --host=i686-pc-linux-gnu \ 496 --build=$(../scripts/config.guess) \ 497 --enable-kernel=&min-kernel; \ 498 --with-headers=/usr/include \ 499 --enable-multi-arch \ 500 --libdir=&usr-lib-m32; \ 501 --libexecdir=&usr-lib-m32; \ 502 libc_cv_slibdir=&lib-m32;</userinput></screen> 503 504 <para>Compile the package:</para> 505 506 <screen><userinput remap="make">make</userinput></screen> 507 508 <para>Install the package:</para> 509 510 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 511 cp -a DESTDIR&lib-m32;/* &lib-m32;/ 512 cp -a DESTDIR&usr-lib-m32;/* &usr-lib-m32;/ 513 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 514 /usr/include/gnu/ 515 ln -svf ..&lib-m32;/ld-linux.so.2 /lib/ld-linux.so.2</userinput></screen> 516 517 <para>Add the library name to the dynamic loader config:</para> 518 519 <screen role="install"><userinput>echo "&usr-lib-m32;" >> /etc/ld.so.conf</userinput></screen> 520 521 <caution> 522 <para>At this point, it is imperative to stop and ensure that the basic 523 functions (compiling and linking) of the new toolchain are working as 524 expected. To perform a sanity check, run the following commands:</para> 525 526 <screen><userinput>echo 'int main(){}' > dummy.c 527 gcc -m32 dummy.c 528 readelf -l a.out | grep '/ld-linux'</userinput></screen> 529 530 <para>If everything is working correctly, there should be no errors, 531 and the output of the last command will be of the form:</para> 532 533 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 534 535 <para>If the output is not shown as above or there was no output at all, 536 then something is wrong. Investigate and retrace the steps to find out 537 where the problem is and correct it. This issue must be resolved before 538 continuing on.</para> 539 540 <para>Once all is well, clean up the test files:</para> 541 542 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 543 544 </caution> 545 546 </sect2><!-- m32 --> 547 548 <!-- - - - - - - - - - --> 549 <!-- Multilib - x32bit --> 550 <!-- - - - - - - - - - --> 551 552 <sect2 arch="ml_x32,ml_all"> 553 <title>Building Glibc - x32bit</title> 554 555 <para>Now recompile for mx32. The extracted source can be 556 reused but needs to cleaned before installing the mx32 557 version of Glibc.</para> 558 559 <para>Clear the build directory and remove artefacts from 560 previous build:</para> 561 562 <screen><userinput remap="pre">rm -rf ./* 563 find .. -name "*.a" -delete</userinput></screen> 564 565 <para>Configure Glibc for mx32 with the following commands:</para> 566 567 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 568 ../configure \ 569 --prefix=/usr \ 570 --host=x86_64-pc-linux-gnux32 \ 571 --build=$(../scripts/config.guess) \ 572 --enable-kernel=&min-kernel; \ 573 --with-headers=$LFS/usr/include \ 574 --enable-multi-arch \ 575 --libdir=&usr-lib-mx32; \ 576 --libexecdir=&usr-lib-mx32; \ 577 libc_cv_slibdir=&lib-mx32;</userinput></screen> 578 579 <para>Compile the package:</para> 580 581 <screen><userinput remap="make">make</userinput></screen> 582 583 <para>Install the package:</para> 584 585 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 586 cp -a DESTDIR&lib-mx32;/* &lib-mx32;/ 587 cp -a DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;/ 588 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 589 /usr/include/gnu/ 590 ln -svf ..&lib-mx32;/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2</userinput></screen> 591 592 <para>Add the library name to the dynamic loader config:</para> 593 594 <screen role="install"><userinput>echo "&usr-lib-mx32;" >> /etc/ld.so.conf</userinput></screen> 595 596 <caution> 597 <para>At this point, it is imperative to stop and ensure that the basic 598 functions (compiling and linking) of the new toolchain are working as 599 expected. To perform a sanity check, run the following commands:</para> 600 601 <screen><userinput>echo 'int main(){}' > dummy.c 602 gcc -mx32 dummy.c 603 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 604 605 <para>If everything is working correctly, there should be no errors, 606 and the output of the last command will be of the form:</para> 607 608 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 609 610 <para>If the output is not shown as above or there was no output at all, 611 then something is wrong. Investigate and retrace the steps to find out 612 where the problem is and correct it. This issue must be resolved before 613 continuing on.</para> 614 615 <para>Once all is well, clean up the test files:</para> 616 617 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 618 619 </caution> 620 621 </sect2><!-- mx32 --> 622 467 623 <sect2 id="contents-glibc" role="content"> 468 624 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r54ee51d4 rbfee8ec 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 running 135 the following:</para> 136 137 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess 138 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-lib-m32;/pkgconfig" \ 146 ./configure \ 147 --prefix=/usr \ 148 --disable-static \ 149 --enable-cxx \ 150 --libdir=&usr-lib-m32; \ 151 --includedir=&usr-inc-m32;/gmp</userinput></screen> 152 153 <variablelist> 154 <title>The meaning of the new configure options:</title> 155 156 <varlistentry> 157 <term><parameter>--includedir=&usr-inc-m32;/gmp</parameter></term> 158 <listitem> 159 <para>Some definitions in gmp.h differs for each arch but 160 has same name. Therefore, the headers must be separated from 161 each other.</para> 162 </listitem> 163 </varlistentry> 164 165 </variablelist> 166 167 <para>Compile the package:</para> 168 169 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 170 make</userinput></screen> 171 172 <important> 173 <para>The test suite for GMP in this section is considered critical. 174 Do not skip it under any circumstances.</para> 175 </important> 176 177 <para>Test the results:</para> 178 179 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 180 181 <para>Ensure that all 197 tests in the test suite passed. 182 Check the results by issuing the following command:</para> 183 184 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 185 186 <para>Install the package:</para> 187 188 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 189 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 190 cp -Rv DESTDIR&usr-inc-m32;/* &usr-inc-m32;/ 191 rm -rf DESTDIR</userinput></screen> 192 193 </sect2><!-- m32 --> 194 195 <!-- - - - - - - - - - --> 196 <!-- Multilib - x32bit --> 197 <!-- - - - - - - - - - --> 198 199 <sect2 arch="ml_x32,ml_all" role="installation"> 200 <title>Installation of GMP - x32-bit</title> 201 202 <para>Clean previous build:</para> 203 204 <screen><userinput remap="pre">make distclean</userinput></screen> 205 206 <para>Generic libraries can be created by running 207 the following:</para> 208 209 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess 210 cp -v configfsf.sub config.sub</userinput></screen> 211 212 <para>Prepare GMP for compilation:</para> 213 214 <screen><userinput remap="configure">ABI="x32" \ 215 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \ 216 CXXFLAGS="$CFLAGS" \ 217 PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \ 218 ./configure \ 219 --prefix=/usr \ 220 --disable-static \ 221 --enable-cxx \ 222 --libdir=&usr-lib-mx32; \ 223 --includedir=&usr-inc-mx32;/gmp</userinput></screen> 224 225 <para>Compile the package:</para> 226 227 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 228 make</userinput></screen> 229 230 <important> 231 <para>The test suite for GMP in this section is considered critical. 232 Do not skip it under any circumstances.</para> 233 </important> 234 235 <para>Test the results:</para> 236 237 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 238 239 <para>Ensure that all 197 tests in the test suite passed. 240 Check the results by issuing the following command:</para> 241 242 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 243 244 <para>Install the package:</para> 245 246 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 247 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 248 cp -Rv DESTDIR&usr-inc-mx32;/* &usr-inc-mx32;/ 249 rm -rf DESTDIR</userinput></screen> 250 251 </sect2><!-- mx32 --> 252 123 253 <sect2 id="contents-gmp" role="content"> 124 254 <title>Contents of GMP</title> -
chapter08/kmod.xml
r54ee51d4 rbfee8ec 94 94 </sect2> 95 95 96 <!-- - - - - - - - - - --> 97 <!-- Multilib - 32bit --> 98 <!-- - - - - - - - - - --> 99 100 <sect2 arch="ml_32,ml_all" role="installation"> 101 <title>Installation of Kmod - 32bit</title> 102 103 <para>Clean previous build but keep man pages as they cannot 104 be recreated since xsltproc isn't installed yet:</para> 105 106 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 107 make clean</userinput></screen> 108 109 <para>Prepare Kmod for compilation:</para> 110 111 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 112 --prefix=/usr \ 113 --bindir=/bin \ 114 --libdir=&usr-lib-m32; \ 115 --sysconfdir=/etc \ 116 --with-xz \ 117 --with-zlib \ 118 --host=i686-pc-linux-gnu \ 119 --with-rootlibdir=&usr-lib-m32;</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 install 128 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 129 rm -rf DESTDIR</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 Kmod - x32bit</title> 139 140 <para>Clean previous build but keep man pages as they cannot 141 be recreated since xsltproc isn't installed yet:</para> 142 143 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 144 make clean</userinput></screen> 145 146 <para>Prepare Kmod for compilation:</para> 147 148 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 149 --prefix=/usr \ 150 --bindir=/bin \ 151 --libdir=&usr-lib-mx32; \ 152 --sysconfdir=/etc \ 153 --with-xz \ 154 --with-zlib \ 155 --host=x86_64-pc-linux-gnux32 \ 156 --with-rootlibdir=&usr-lib-mx32;</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 install 165 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 166 rm -rf DESTDIR</userinput></screen> 167 168 </sect2><!-- mx32 --> 169 96 170 <sect2 id="contents-kmod" role="content"> 97 171 <title>Contents of Kmod</title> -
chapter08/libcap.xml
r54ee51d4 rbfee8ec 82 82 </sect2> 83 83 84 <!-- - - - - - - - - - --> 85 <!-- Multilib - 32bit --> 86 <!-- - - - - - - - - - --> 87 88 <sect2 arch="ml_32,ml_all" role="installation"> 89 <title>Installation of Libcap - 32bit</title> 90 91 <para>Clean previous build:</para> 92 93 <screen><userinput remap="pre">make distclean</userinput></screen> 94 95 <para>Compile the package:</para> 96 97 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen> 98 99 <para>Install the package:</para> 100 101 <screen><userinput remap="install">make lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install 102 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 103 sed -e "s|^libdir=.*|libdir=&usr-lib-m32;|" -i &usr-lib-m32;/pkgconfig/lib{cap,psx}.pc 104 chmod -v 755 &usr-lib-m32;/libcap.so.&libcap-version; 105 rm -rf DESTDIR</userinput></screen> 106 107 </sect2><!-- m32 --> 108 109 <!-- - - - - - - - - - --> 110 <!-- Multilib - x32bit --> 111 <!-- - - - - - - - - - --> 112 113 <sect2 arch="ml_x32,ml_all" role="installation"> 114 <title>Installation of Libcap - x32bit</title> 115 116 <para>Clean previous build:</para> 117 118 <screen><userinput remap="pre">make distclean</userinput></screen> 119 120 <para>Compile the package:</para> 121 122 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen> 123 124 <para>Install the package:</para> 125 126 <screen><userinput remap="install">make lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install 127 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 128 sed -e "s|^libdir=.*|libdir=&usr-lib-mx32;|" -i &usr-lib-mx32;/pkgconfig/lib{cap,psx}.pc 129 chmod -v 755 &usr-lib-mx32;/libcap.so.&libcap-version; 130 rm -rf DESTDIR</userinput></screen> 131 132 </sect2><!-- mx32 --> 133 84 134 <sect2 id="contents-libcap" role="content"> 85 135 <title>Contents of Libcap</title> -
chapter08/libelf.xml
r54ee51d4 rbfee8ec 70 70 </sect2> 71 71 72 <!-- - - - - - - - - - --> 73 <!-- Multilib - 32bit --> 74 <!-- - - - - - - - - - --> 75 76 <sect2 arch="ml_32,ml_all" role="installation"> 77 <title>Installation of Libelf - 32bit</title> 78 79 <para>Clean previous build:</para> 80 81 <screen><userinput remap="pre">make distclean</userinput></screen> 82 83 <para>Prepare Libtool for compilation:</para> 84 85 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 86 --prefix=/usr \ 87 --libdir=&usr-lib-m32; \ 88 --host=i686-pc-linux-gnu \ 89 --disable-debuginfod \ 90 --enable-libdebuginfod=dummy</userinput></screen> 91 92 <para>Compile the package:</para> 93 94 <screen><userinput remap="make">make</userinput></screen> 95 96 <para>Install the package:</para> 97 98 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 99 install -vDm644 config/libelf.pc DESTDIR&usr-lib-m32;/pkgconfig/libelf.pc 100 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 101 rm -rf DESTDIR</userinput></screen> 102 103 </sect2><!-- m32 --> 104 105 <!-- - - - - - - - - - --> 106 <!-- Multilib - x32bit --> 107 <!-- - - - - - - - - - --> 108 109 <sect2 arch="ml_x32,ml_all" role="installation"> 110 <title>Installation of Libelf - x32bit</title> 111 112 <para>Clean previous build:</para> 113 114 <screen><userinput remap="pre">make distclean</userinput></screen> 115 116 <para>Prepare Libtool for compilation:</para> 117 118 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 119 --prefix=/usr \ 120 --libdir=&usr-lib-m32; \ 121 --host=x86_64-pc-linux-gnux32 \ 122 --disable-debuginfod \ 123 --enable-libdebuginfod=dummy</userinput></screen> 124 125 <para>Compile the package:</para> 126 127 <screen><userinput remap="make">make</userinput></screen> 128 129 <para>Install the package:</para> 130 131 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 132 install -vDm644 config/libelf.pc DESTDIR&usr-lib-mx32;/pkgconfig/libelf.pc 133 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 134 rm -rf DESTDIR</userinput></screen> 135 136 </sect2><!-- mx32 --> 137 72 138 <sect2 id="contents-elfutils" role="content"> 73 139 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r54ee51d4 rbfee8ec 88 88 </sect2> 89 89 90 <!-- - - - - - - - - - --> 91 <!-- Multilib - 32bit --> 92 <!-- - - - - - - - - - --> 93 94 <sect2 arch="ml_32,ml_all" role="installation"> 95 <title>Installation of Libffi - 32bit</title> 96 97 <para>Clean previous build:</para> 98 99 <screen><userinput remap="pre">make distclean</userinput></screen> 100 101 <para>Prepare Libffi for compilation:</para> 102 103 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 104 --prefix=/usr \ 105 --disable-static \ 106 --libdir=&usr-lib-m32; \ 107 --with-gcc-arch=i686 \ 108 --host=i686-pc-linux-gnu</userinput></screen> 109 110 <para>Compile the package:</para> 111 112 <screen><userinput remap="make">make</userinput></screen> 113 114 <para>To test the results, issue:</para> 115 116 <screen><userinput remap="test">make check</userinput></screen> 117 118 <para>Install the package:</para> 119 120 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 121 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 122 rm -rf DESTDIR</userinput></screen> 123 124 </sect2><!-- m32 --> 125 126 <!-- - - - - - - - - - --> 127 <!-- Multilib - x32bit --> 128 <!-- - - - - - - - - - --> 129 130 <sect2 arch="ml_x32,ml_all" role="installation"> 131 <title>Installation of Libffi - x32bit</title> 132 133 <para>Clean previous build:</para> 134 135 <screen><userinput remap="pre">make distclean</userinput></screen> 136 137 <para>Prepare Libffi for compilation:</para> 138 139 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 140 --prefix=/usr \ 141 --disable-static \ 142 --libdir=&usr-lib-mx32; \ 143 --with-gcc-arch=x86_64 \ 144 --host=x86_64-unknown-linux-gnux32</userinput></screen> 145 146 <para>Compile the package:</para> 147 148 <screen><userinput remap="make">make</userinput></screen> 149 150 <para>To test the results, issue:</para> 151 152 <screen><userinput remap="test">make check</userinput></screen> 153 154 <para>Install the package:</para> 155 156 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 157 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 158 rm -rf DESTDIR</userinput></screen> 159 160 </sect2><!-- mx32 --> 161 90 162 <sect2 id="contents-libffi" role="content"> 91 163 <title>Contents of Libffi</title> -
chapter08/libtool.xml
r54ee51d4 rbfee8ec 78 78 </sect2> 79 79 80 <!-- - - - - - - - - - --> 81 <!-- Multilib - 32bit --> 82 <!-- - - - - - - - - - --> 83 84 <sect2 arch="ml_32,ml_all" role="installation"> 85 <title>Installation of Libtool - 32bit</title> 86 87 <para>Clean previous build:</para> 88 89 <screen><userinput remap="pre">make distclean</userinput></screen> 90 91 <para>Prepare Libtool for compilation:</para> 92 93 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 94 --prefix=/usr \ 95 --libdir=&usr-lib-m32; \ 96 --host=i686-pc-linux-gnu</userinput></screen> 97 98 <para>Compile the package:</para> 99 100 <screen><userinput remap="make">make</userinput></screen> 101 102 <para>Install the package:</para> 103 104 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 105 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 106 rm -rf DESTDIR</userinput></screen> 107 108 </sect2><!-- m32 --> 109 110 <!-- - - - - - - - - - --> 111 <!-- Multilib - x32bit --> 112 <!-- - - - - - - - - - --> 113 114 <sect2 arch="ml_x32,ml_all" role="installation"> 115 <title>Installation of Libtool - x32bit</title> 116 117 <para>Clean previous build:</para> 118 119 <screen><userinput remap="pre">make distclean</userinput></screen> 120 121 <para>Prepare Libtool for compilation:</para> 122 123 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 124 --prefix=/usr \ 125 --libdir=&usr-lib-mx32; \ 126 --host=x86_64-pc-linux-gnux32</userinput></screen> 127 128 <para>Compile the package:</para> 129 130 <screen><userinput remap="make">make</userinput></screen> 131 132 <para>Install the package:</para> 133 134 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 135 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 136 rm -rf DESTDIR</userinput></screen> 137 138 </sect2><!-- mx32 --> 80 139 81 140 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
r54ee51d4 rbfee8ec 161 161 162 162 </sect2> 163 164 <!-- - - - - - - - - - --> 165 <!-- Multilib - 32bit --> 166 <!-- - - - - - - - - - --> 167 <sect2 arch="ml_32,ml_all"> 168 <title>Building Ncurses - 32bit</title> 169 170 <para>Clean previous build:</para> 171 172 <screen><userinput remap="pre">make distclean</userinput></screen> 173 174 <para>Prepare Ncurses for compilation:</para> 175 176 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \ 177 ./configure --prefix=/usr \ 178 --host=i686-pc-linux-gnu \ 179 --libdir=&usr-lib-m32; \ 180 --mandir=/usr/share/man \ 181 --with-shared \ 182 --without-debug \ 183 --without-normal \ 184 --enable-pc-files \ 185 --enable-widec \ 186 --with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen> 187 188 <para>Compile the package:</para> 189 190 <screen><userinput remap="make">make</userinput></screen> 191 192 <para>Install the package:</para> 193 194 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 195 mkdir -p DESTDIR&usr-lib-m32;/pkgconfig 196 for lib in ncurses form panel menu ; do 197 rm -vf DESTDIR&usr-lib-m32;/lib${lib}.so 198 echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-m32;/lib${lib}.so 199 ln -svf ${lib}w.pc DESTDIR&usr-lib-m32;/pkgconfig/$lib.pc 200 done 201 rm -vf DESTDIR&usr-lib-m32;/libcursesw.so 202 echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-m32;/libcursesw.so 203 ln -sfv libncurses.so DESTDIR&usr-lib-m32;/libcurses.so 204 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 205 rm -rf DESTDIR</userinput></screen> 206 207 </sect2><!-- m32 --> 208 209 <!-- - - - - - - - - - --> 210 <!-- Multilib - x32bit --> 211 <!-- - - - - - - - - - --> 212 <sect2 arch="ml_x32,ml_all"> 213 <title>Building Ncurses - x32bit</title> 214 215 <para>Clean previous build:</para> 216 217 <screen><userinput remap="pre">make distclean</userinput></screen> 218 219 <para>Prepare Ncurses for compilation:</para> 220 221 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 222 ./configure --prefix=/usr \ 223 --host=x86_64-pc-linux-gnux32 \ 224 --libdir=&usr-lib-mx32; \ 225 --mandir=/usr/share/man \ 226 --with-shared \ 227 --without-debug \ 228 --without-normal \ 229 --enable-pc-files \ 230 --enable-widec \ 231 --with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen> 232 233 <para>Compile the package:</para> 234 235 <screen><userinput remap="make">make</userinput></screen> 236 237 <para>Install the package:</para> 238 239 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 240 mkdir -p DESTDIR&usr-lib-mx32;/pkgconfig 241 for lib in ncurses form panel menu ; do 242 rm -vf DESTDIR&usr-lib-mx32;/lib${lib}.so 243 echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-mx32;/lib${lib}.so 244 ln -svf ${lib}w.pc DESTDIR&usr-lib-mx32;/pkgconfig/$lib.pc 245 done 246 rm -vf DESTDIR&usr-lib-mx32;/libcursesw.so 247 echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-mx32;/libcursesw.so 248 ln -sfv libncurses.so DESTDIR&usr-lib-mx32;/libcurses.so 249 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 250 rm -rf DESTDIR</userinput></screen> 251 252 </sect2><!-- mx32 --> 163 253 164 254 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r54ee51d4 rbfee8ec 79 79 80 80 </sect2> 81 82 <!-- - - - - - - - - - --> 83 <!-- Multilib - 32bit --> 84 <!-- - - - - - - - - - --> 85 86 <sect2 arch="ml_32,ml_all" role="installation"> 87 <title>Installation of OpenSSL - 32bit</title> 88 89 <para>Clean previous build:</para> 90 91 <screen><userinput remap="pre">make distclean</userinput></screen> 92 93 <para>Prepare OpenSSL for compilation:</para> 94 95 <screen><userinput remap="configure">MACHINE="i686" \ 96 CC="gcc -m32 -march=i686" \ 97 CXX="g++ -m32 -march=i686" \ 98 ./config \ 99 --prefix=/usr \ 100 --libdir=&usr-lib-m32; \ 101 --openssldir=/etc/ssl \ 102 --libdir=lib32 \ 103 shared \ 104 zlib-dynamic</userinput></screen> 105 106 <para>Compile the package:</para> 107 108 <screen><userinput remap="make">make</userinput></screen> 109 110 <para>Install the package:</para> 111 112 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 113 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 114 rm -rf DESTDIR</userinput></screen> 115 116 </sect2><!-- m32 --> 117 118 <!-- - - - - - - - - - --> 119 <!-- Multilib - x32bit --> 120 <!-- - - - - - - - - - --> 121 122 <sect2 arch="ml_x32,ml_all" role="installation"> 123 <title>Installation of OpenSSL - x32bit</title> 124 125 <para>Clean previous build:</para> 126 127 <screen><userinput remap="pre">make distclean</userinput></screen> 128 129 <para>Prepare OpenSSL for compilation:</para> 130 131 <screen><userinput remap="configure">MACHINE="x86_64" \ 132 CC="gcc -mx32" \ 133 CXX="g++ -mx32" \ 134 ./config \ 135 --prefix=/usr \ 136 --libdir=&usr-lib-mx32; \ 137 --openssldir=/etc/ssl \ 138 --libdir=libx32 \ 139 shared \ 140 zlib-dynamic</userinput></screen> 141 142 <para>Compile the package:</para> 143 144 <screen><userinput remap="make">make</userinput></screen> 145 146 <para>Install the package:</para> 147 148 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 149 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 150 rm -rf DESTDIR</userinput></screen> 151 152 </sect2><!-- mx32 --> 81 153 82 154 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
r54ee51d4 rbfee8ec 108 108 </sect2> 109 109 110 <!-- - - - - - - - - - --> 111 <!-- Multilib - 32bit --> 112 <!-- - - - - - - - - - --> 113 114 <sect2 arch="ml_32,ml_all" role="installation"> 115 <title>Installation of Readline - 32bit</title> 116 117 <para>Clean previous build:</para> 118 119 <screen><userinput remap="pre">make distclean</userinput></screen> 120 121 <para>Prepare Readline for compilation:</para> 122 123 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 124 --prefix=/usr \ 125 --libdir=&usr-lib-m32; \ 126 --disable-static \ 127 --host=i686-pc-linux-gnu</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 install 136 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 137 rm -rf DESTDIR</userinput></screen> 138 139 </sect2><!-- m32 --> 140 141 <!-- - - - - - - - - - --> 142 <!-- Multilib - x32bit --> 143 <!-- - - - - - - - - - --> 144 145 <sect2 arch="ml_x32,ml_all" role="installation"> 146 <title>Installation of Readline - x32bit</title> 147 148 <para>Clean previous build:</para> 149 150 <screen><userinput remap="pre">make distclean</userinput></screen> 151 152 <para>Prepare Readline for compilation:</para> 153 154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 155 --prefix=/usr \ 156 --libdir=&usr-lib-mx32; \ 157 --disable-static \ 158 --host=x86_64-pc-linux-gnux32</userinput></screen> 159 160 <para>Compile the package:</para> 161 162 <screen><userinput remap="make">make</userinput></screen> 163 164 <para>Install the package:</para> 165 166 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 167 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 168 rm -rf DESTDIR</userinput></screen> 169 170 </sect2><!-- mx32 --> 171 110 172 <sect2 id="contents-readline" role="content"> 111 173 <title>Contents of Readline</title> -
chapter08/revisedchroot.xml
r54ee51d4 rbfee8ec 44 44 To remove them, run:</para> 45 45 46 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 46 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all"> 47 find &usr-lib-m32; -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 48 find &usr-lib-mx32; -name \*.la -delete</userinput></screen> 47 49 48 50 <para>For more information about libtool archive files, see the <ulink -
chapter08/strippingagain.xml
r54ee51d4 rbfee8ec 37 37 38 38 cd /lib 39 40 39 for LIB in $save_lib; do 41 40 objcopy --only-keep-debug $LIB $LIB.dbg 42 41 strip --strip-unneeded $LIB 43 42 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 44 done 43 done</userinput> 44 <userinput arch="ml_32,ml_all"> 45 cd &lib-m32; 46 for LIB in $save_lib; do 47 objcopy --only-keep-debug $LIB $LIB.dbg 48 strip --strip-unneeded $LIB 49 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 50 done</userinput> 51 <userinput arch="ml_x32,ml_all"> 52 cd &lib-mx32; 53 for LIB in $save_lib; do 54 objcopy --only-keep-debug $LIB $LIB.dbg 55 strip --strip-unneeded $LIB 56 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 57 done</userinput><userinput> 45 58 46 59 save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; … … 48 61 49 62 cd /usr/lib 50 51 63 for LIB in $save_usrlib; do 52 64 objcopy --only-keep-debug $LIB $LIB.dbg 53 65 strip --strip-unneeded $LIB 54 66 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 55 done 67 done</userinput> 68 <userinput arch="ml_32,ml_all"> 69 cd &usr-lib-m32; 70 for LIB in $save_usrlib; do 71 objcopy --only-keep-debug $LIB $LIB.dbg 72 strip --strip-unneeded $LIB 73 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 74 done</userinput> 75 <userinput arch="ml_x32,ml_all"> 76 cd &usr-lib-mx32; 77 for LIB in $save_usrlib; do 78 objcopy --only-keep-debug $LIB $LIB.dbg 79 strip --strip-unneeded $LIB 80 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 81 done</userinput><userinput> 56 82 57 83 unset LIB save_lib save_usrlib</userinput></screen> … … 66 92 <para>Now the binaries and libraries can be stripped:</para> 67 93 <screen><userinput>find /usr/lib -type f -name \*.a \ 68 -exec strip --strip-debug {} ';' 94 -exec strip --strip-debug {} ';'</userinput> 95 <userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.a \ 96 -exec strip --strip-debug {} ';'</userinput> 97 <userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.a \ 98 -exec strip --strip-debug {} ';'</userinput><userinput> 69 99 70 100 find /lib /usr/lib -type f -name \*.so* ! -name \*dbg \ 71 -exec strip --strip-unneeded {} ';' 101 -exec strip --strip-unneeded {} ';'</userinput> 102 <userinput arch="ml_32,ml_all">find &lib-m32; &usr-lib-m32; -type f -name \*.so* ! -name \*dbg \ 103 -exec strip --strip-unneeded {} ';'</userinput> 104 <userinput arch="ml_x32,ml_all">find &lib-mx32; &usr-lib-mx32; -type f -name \*.so* ! -name \*dbg \ 105 -exec strip --strip-unneeded {} ';'</userinput><userinput> 72 106 73 107 find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ -
chapter08/systemd.xml
r54ee51d4 rbfee8ec 246 246 247 247 </sect2> 248 249 <!-- - - - - - - - - - --> 250 <!-- Multilib - 32bit --> 251 <!-- - - - - - - - - - --> 252 253 <sect2 arch="ml_32,ml_all" role="installation"> 254 <title>Installation of systemd - 32-bit</title> 255 256 <para>Clean previous build:</para> 257 258 <screen><userinput remap="pre">rm -rf *</userinput></screen> 259 260 <para>Create a symlink to work around missing xsltproc:</para> 261 262 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen --> 263 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 264 265 <!-- with cross-LFS we have util-linux in place: 266 <para>Because we have not yet installed the final version of Util-Linux, 267 create links to the libraries in the approprite location:</para> 268 269 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do 270 ln -sf $file /usr/lib32/ 271 done</userinput></screen> 272 --> 273 274 <para>Prepare systemd for compilation:</para> 275 276 <screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-m32;/pkgconfig" \ 277 CC="gcc -m32 -march=i686" \ 278 CXX="g++ -m32 -march=i686" \ 279 LANG=en_US.UTF-8 \ 280 meson --prefix=/usr \ 281 --sysconfdir=/etc \ 282 --localstatedir=/var \ 283 -Dblkid=true \ 284 -Dbuildtype=release \ 285 -Ddefault-dnssec=no \ 286 -Dfirstboot=false \ 287 -Dinstall-tests=false \ 288 -Dkill-path=/bin/kill \ 289 -Dkmod-path=/bin/kmod \ 290 -Dldconfig=false \ 291 -Dmount-path=/bin/mount \ 292 -Drootprefix= \ 293 -Drootlibdir=&usr-lib-m32; \ 294 -Dsplit-usr=true \ 295 -Dsulogin-path=/sbin/sulogin \ 296 -Dsysusers=false \ 297 -Dumount-path=/bin/umount \ 298 -Db_lto=false \ 299 ..</userinput></screen> 300 301 <para>Compile the package:</para> 302 303 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 304 305 <para>Install the package:</para> 306 307 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 308 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 309 rm -rf DESTDIR 310 rm -f /usr/bin/xsltproc</userinput></screen> 311 312 </sect2><!-- m32 --> 313 314 <!-- - - - - - - - - - --> 315 <!-- Multilib - x32bit --> 316 <!-- - - - - - - - - - --> 317 318 <sect2 arch="ml_x32,ml_all" role="installation"> 319 <title>Installation of systemd - x32-bit</title> 320 321 <para>Clean previous build:</para> 322 323 <screen><userinput remap="pre">rm -rf *</userinput></screen> 324 325 <para>Create a symlink to work around missing xsltproc:</para> 326 327 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 328 329 <para>Fix an issue on x32:</para> 330 331 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c 332 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen> 333 334 <para>Prepare systemd for compilation:</para> 335 336 <screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \ 337 CC="gcc -mx32" \ 338 CXX="g++ -mx32" \ 339 CFLAGS+="-Wno-error=shift-overflow" \ 340 CXXFLAGS+="-Wno-error=shift-overflow" \ 341 LANG=en_US.UTF-8 \ 342 meson --prefix=/usr \ 343 --sysconfdir=/etc \ 344 --localstatedir=/var \ 345 -Dblkid=true \ 346 -Dbuildtype=release \ 347 -Ddefault-dnssec=no \ 348 -Dfirstboot=false \ 349 -Dinstall-tests=false \ 350 -Dkill-path=/bin/kill \ 351 -Dkmod-path=/bin/kmod \ 352 -Dldconfig=false \ 353 -Dmount-path=/bin/mount \ 354 -Drootprefix= \ 355 -Drootlibdir=&usr-lib-mx32; \ 356 -Dsplit-usr=true \ 357 -Dsulogin-path=/sbin/sulogin \ 358 -Dsysusers=false \ 359 -Dumount-path=/bin/umount \ 360 -Db_lto=false \ 361 ..</userinput></screen> 362 363 <para>Compile the package:</para> 364 365 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 366 367 <para>Install the package:</para> 368 369 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 370 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 371 rm -rf DESTDIR 372 rm -f /usr/bin/xsltproc</userinput></screen> 373 374 </sect2><!-- mx32 --> 248 375 249 376 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
r54ee51d4 rbfee8ec 102 102 103 103 </sect2> 104 105 <!-- - - - - - - - - - --> 106 <!-- Multilib - 32bit --> 107 <!-- - - - - - - - - - --> 108 109 <sect2 arch="ml_32,ml_all" role="installation"> 110 <title>Installation of Util-linux - 32-bit</title> 111 112 <para>Clean previous build:</para> 113 114 <screen><userinput remap="pre">make distclean</userinput></screen> 115 116 <para>Prepare Util-linux for compilation:</para> 117 118 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \ 119 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 120 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 121 --disable-chfn-chsh \ 122 --disable-login \ 123 --disable-nologin \ 124 --disable-su \ 125 --disable-setpriv \ 126 --disable-runuser \ 127 --disable-pylibmount \ 128 --disable-static \ 129 --without-python \ 130 --without-systemd \ 131 --libdir=&usr-lib-m32; \ 132 --host=i686-pc-linux-gnu \ 133 --without-systemdsystemunitdir \ 134 --enable-libmount-force-mountinfo</userinput></screen> 135 136 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \ 137 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 138 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 139 --disable-chfn-chsh \ 140 --disable-login \ 141 --disable-nologin \ 142 --disable-su \ 143 --disable-setpriv \ 144 --disable-runuser \ 145 --disable-pylibmount \ 146 --disable-static \ 147 --without-python \ 148 --libdir=&usr-lib-m32; \ 149 --host=i686-pc-linux-gnu \ 150 --enable-libmount-force-mountinfo</userinput></screen> 151 152 <para>Compile the package:</para> 153 154 <screen><userinput remap="make">make</userinput></screen> 155 156 <para>Install the package:</para> 157 158 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 159 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 160 rm -rf DESTDIR</userinput></screen> 161 162 </sect2><!-- m32 --> 163 164 <!-- - - - - - - - - - --> 165 <!-- Multilib - x32bit --> 166 <!-- - - - - - - - - - --> 167 168 <sect2 arch="ml_x32,ml_all" role="installation"> 169 <title>Installation of Util-linux - x32-bit</title> 170 171 <para>Clean previous build:</para> 172 173 <screen><userinput remap="pre">make distclean</userinput></screen> 174 175 <para>Prepare Util-linux for compilation:</para> 176 177 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \ 178 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 179 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 180 --disable-chfn-chsh \ 181 --disable-login \ 182 --disable-nologin \ 183 --disable-su \ 184 --disable-setpriv \ 185 --disable-runuser \ 186 --disable-pylibmount \ 187 --disable-static \ 188 --without-python \ 189 --without-systemd \ 190 --without-systemdsystemunitdir \ 191 --libdir=&usr-lib-mx32; \ 192 --host=x86_64-pc-linux-gnux32 \ 193 --enable-libmount-force-mountinfo</userinput></screen> 194 195 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \ 196 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 197 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 198 --disable-chfn-chsh \ 199 --disable-login \ 200 --disable-nologin \ 201 --disable-su \ 202 --disable-setpriv \ 203 --disable-runuser \ 204 --disable-pylibmount \ 205 --disable-static \ 206 --without-python \ 207 --libdir=&usr-lib-mx32; \ 208 --host=x86_64-pc-linux-gnux32 \ 209 --enable-libmount-force-mountinfo</userinput></screen> 210 211 <para>Compile the package:</para> 212 213 <screen><userinput remap="make">make</userinput></screen> 214 215 <para>Install the package:</para> 216 217 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 218 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 219 rm -rf DESTDIR</userinput></screen> 220 221 </sect2><!-- mx32 --> 104 222 105 223 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r54ee51d4 rbfee8ec 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 --prefix=/usr \ 86 --disable-static \ 87 --libdir=&usr-lib-m32; \ 88 --host=i686-pc-linux-gnu</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 install 97 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 98 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 --prefix=/usr \ 117 --disable-static \ 118 --libdir=&usr-lib-mx32; \ 119 --host=x86_64-pc-linux-gnux32</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 install 128 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 129 rm -rf DESTDIR</userinput></screen> 130 131 </sect2><!-- mx32 --> 70 132 71 133 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
r54ee51d4 rbfee8ec 72 72 </sect2> 73 73 74 <!-- - - - - - - - - - --> 75 <!-- Multilib - 32bit --> 76 <!-- - - - - - - - - - --> 77 78 <sect2 arch="ml_32,ml_all" role="installation"> 79 <title>Installation of Zlib - 32bit</title> 80 81 <para>Clean previous build:</para> 82 83 <screen><userinput remap="pre">make distclean</userinput></screen> 84 85 <para>Prepare Zlib for compilation:</para> 86 87 <screen><userinput remap="configure">CC="gcc -m32" \ 88 ./configure --prefix=/usr \ 89 --libdir=&usr-lib-m32;</userinput></screen> 90 91 <para>Compile the package:</para> 92 93 <screen><userinput remap="make">make</userinput></screen> 94 95 <para>Install the package:</para> 96 97 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 98 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32; 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 Zlib - x32bit</title> 109 110 <screen><userinput remap="pre">make distclean</userinput></screen> 111 112 <para>Prepare Zlib for compilation:</para> 113 114 <screen><userinput remap="configure">CC="gcc -mx32" \ 115 ./configure --prefix=/usr \ 116 --libdir=&usr-lib-mx32;</userinput></screen> 117 118 <para>Compile the package:</para> 119 120 <screen><userinput remap="make">make</userinput></screen> 121 122 <para>Install the package:</para> 123 124 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 125 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32; 126 rm -rf DESTDIR</userinput></screen> 127 128 </sect2><!-- mx32 --> 129 74 130 <sect2 id="contents-zlib" role="content"> 75 131 <title>Contents of Zlib</title> -
chapter08/zstd.xml
r54ee51d4 rbfee8ec 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</userinput></screen> 82 83 <para>Install the package:</para> 84 85 <screen><userinput remap="install">CC="gcc -m32" make prefix=/usr DESTDIR=$PWD/DESTDIR install 86 cp -Rv DESTDIR/usr/lib/* &usr-lib-m32;/ 87 sed -e "/^libdir/s/lib$&lib-m32;/" -i &usr-lib-m32;/pkgconfig/libzstd.pc 88 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</userinput></screen> 106 107 <para>Install the package:</para> 108 109 <screen><userinput remap="install">CC="gcc -mx32" make prefix=/usr DESTDIR=$PWD/DESTDIR install 110 cp -Rv DESTDIR/usr/lib/* &usr-lib-mx32;/ 111 sed -e "/^libdir/s/lib$&lib-mx32;/" -i &usr-lib-mx32;/pkgconfig/libzstd.pc 112 rm -rf DESTDIR</userinput></screen> 113 114 </sect2><!-- mx32 --> 67 115 68 116 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r54ee51d4 rbfee8ec 156 156 </note> 157 157 158 <note arch="ml_32,ml_x32,ml_all"> 159 <para> 160 The kernel on a multilib system needs to be able to 161 identify and start binaries compiled for different architectures 162 than the default. 163 </para> 164 165 <para arch="ml_32,ml_all"> 166 If support for any 32bit ABI was built, make sure that the option 167 "IA32 Emulation" is selected. The option 'IA32 a.out support' is 168 optional. 169 </para> 170 171 <para arch="ml_x32,ml_all"> 172 If support for the x32bit ABI was built, make sure that the option 173 "x32 ABI for 64-bit mode" is selected. 174 </para> 175 176 <screen arch="ml_32">Binary Emulations ---> 177 [*] IA32 Emulation 178 <M> IA32 a.out support 179 </screen> 180 <screen arch="ml_x32">Binary Emulations ---> 181 [*] x32 ABI for 64-bit mode 182 </screen> 183 <screen arch="ml_all">Binary Emulations ---> 184 [*] IA32 Emulation 185 <M> IA32 a.out support 186 [*] x32 ABI for 64-bit mode 187 </screen> 188 189 </note> 190 158 191 <variablelist> 159 192 <title>The rationale for the above configuration items:</title> -
general.ent
r54ee51d4 rbfee8ec 64 64 <!ENTITY % patches-entities SYSTEM "patches.ent"> 65 65 %patches-entities; 66 67 <!-- multilib definitions --> 68 <!ENTITY lib-m32 "/lib32"> 69 <!ENTITY lib-mx32 "/libx32"> 70 <!ENTITY usr-lib-m32 "/usr/lib32"> 71 <!ENTITY usr-lib-mx32 "/usr/libx32"> 72 <!ENTITY usr-inc-m32 "/usr/include/m32"> 73 <!ENTITY usr-inc-mx32 "/usr/include/mx32"> -
packages.ent
r54ee51d4 rbfee8ec 352 352 <!ENTITY iproute2-fin-du "15 MB"> 353 353 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 354 355 <!ENTITY isl-version "0.22.1"> 356 <!ENTITY isl-size "1.6 MB"> 357 <!ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz"> 358 <!ENTITY isl-md5 "6e124849a9b62e3e2d5d51e955323f6e"> 359 <!ENTITY isl-home "http://isl.gforge.inria.fr/"> 360 <!ENTITY isl-fin-du "20 MB"> 361 <!ENTITY isl-fin-sbu "0.1 SBU"> 354 362 355 363 <!ENTITY kbd-version "2.4.0"> -
prologue/bookinfo.xml
r54ee51d4 rbfee8ec 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 10 <subtitle revision='sysv' >Version &version; </subtitle> 11 <subtitle revision='systemd'>Version &versiond;</subtitle> 10 <subtitle arch="default" revision='sysv'>Version &version;</subtitle> 11 <subtitle arch="default" revision='systemd'>Version &versiond;</subtitle> 12 <subtitle arch="ml_32,ml_x32,ml_all" revision='sysv'>Version &version;-multilib</subtitle> 13 <subtitle arch="ml_32,ml_x32,ml_all" revision='systemd'>Version &versiond;-multilib</subtitle> 12 14 <subtitle>Published &releasedate;</subtitle> 13 15 … … 30 32 <firstname>Editor: DJ</firstname> 31 33 <surname>Lucas</surname> 34 </author> 35 36 <author arch="ml_32,ml_x32,ml_all"> 37 <firstname>Editor: Thomas</firstname> 38 <surname>Trepl</surname> 32 39 </author> 33 40 </authorgroup> -
prologue/preface.xml
r54ee51d4 rbfee8ec 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"/> 18 19 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/> 19 20 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note:
See TracChangeset
for help on using the changeset viewer.