Changes in / [0e9fb93:0f7d4cb]
- Files:
-
- 2 deleted
- 51 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r0e9fb93 r0f7d4cb 35 35 endif 36 36 37 ifndef ARCH38 ARCH = default39 endif40 ifneq ($(ARCH), default)41 ifneq ($(ARCH), ml_32)42 ifneq ($(ARCH), ml_x32)43 ifneq ($(ARCH), ml_all)44 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)45 endif46 endif47 endif48 endif49 50 37 book: validate profile-html 51 38 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 142 129 --output $(RENDERTMP)/lfs-html2.xml \ 143 130 --stringparam profile.revision $(REV) \ 144 --stringparam profile.arch $(ARCH) \145 131 stylesheets/lfs-xsl/profile.xsl \ 146 132 index.xml … … 190 176 $(Q)xsltproc --nonet --xinclude \ 191 177 --stringparam profile.revision $(REV) \ 192 --stringparam profile.arch $(ARCH) \193 178 --output $(RENDERTMP)/sysv-md5sum.xml \ 194 179 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r0e9fb93 r0f7d4cb 39 39 <itemizedlist> 40 40 <listitem> 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> 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> 48 44 </listitem> 49 45 <listitem> … … 60 56 </listitem> 61 57 <listitem> 62 <para>Note whether you have deviated from the book at all </para>58 <para>Note whether you have deviated from the book at all </para> 63 59 </listitem> 64 60 </itemizedlist> -
chapter01/changelog.xml
r0e9fb93 r0f7d4cb 12 12 13 13 <para>This is version 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> 14 <phrase revision="sysv">&version;</phrase> 15 <phrase revision="systemd">&versiond;</phrase> 18 16 of the Linux From Scratch book, dated 19 17 &releasedate;. If this book is more than six months old, a newer and better -
chapter02/hostreqs.xml
r0e9fb93 r0f7d4cb 235 235 --> 236 236 237 <para arch="ml_32,ml_x32,ml_all">238 Building multilib support requires the kernel of the host system239 to have 32-bit emulation support included.240 </para>241 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations --->242 [*] IA32 Emulation243 <M> IA32 a.out support244 [*] x32 ABI for 64-bit mode245 </screen>246 247 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is248 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 your250 system but you have to leave out any sections showing instructions251 for building x32 objects. If neither 'IA32 Emulation' nor252 'x32 ABI for 64-bit mode' is enabled, you will run in errors253 latest when building <application>glibc</application> in Chapter 6,254 so an upgrade of your host system kernel is required.255 </para>256 257 237 </sect1> -
chapter03/packages.xml
r0e9fb93 r0f7d4cb 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>355 346 </listitem> 356 347 </varlistentry> -
chapter04/addinguser.xml
r0e9fb93 r0f7d4cb 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>90 87 91 88 <para>If a separate working directory was created as suggested, give -
chapter04/creatingminlayout.xml
r0e9fb93 r0f7d4cb 25 25 x86_64) mkdir -pv $LFS/lib64 ;; 26 26 esac</userinput></screen> 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 --> 27 39 28 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled 40 29 with a cross-compiler (more details in section <xref -
chapter04/settingenviron.xml
r0e9fb93 r0f7d4cb 38 38 <filename>.bashrc</filename> file now:</para> 39 39 40 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF"40 <screen><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 +h54 umask 02255 LFS=/mnt/lfs56 LC_ALL=POSIX57 LFS_TGT=x86_64-lfs-linux-gnu58 LFS_TGT32=i686-lfs-linux-gnu59 LFS_TGTX32=x86_64-lfs-linux-gnux3260 PATH=/usr/bin61 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi62 PATH=$LFS/tools/bin:$PATH63 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>64 EOF</userinput></screen>65 52 66 53 <variablelist> -
chapter05/binutils-pass1.xml
r0e9fb93 r0f7d4cb 71 71 <para>Now prepare Binutils for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \73 <screen><userinput remap="configure">../configure --prefix=$LFS/tools \ 74 74 --with-sysroot=$LFS \ 75 75 --target=$LFS_TGT \ 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>84 78 85 79 <variablelist> … … 130 124 </varlistentry> 131 125 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 139 126 </variablelist> 140 127 -
chapter05/gcc-pass1.xml
r0e9fb93 r0f7d4cb 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> 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 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 65 <para>On x86_64 hosts, set the default directory name for 68 66 64-bit libraries to <quote>lib</quote>:</para> 69 67 70 <screen arch="default"><userinput remap="pre">case $(uname -m) in68 <screen><userinput remap="pre">case $(uname -m) in 71 69 x86_64) 72 70 sed -e '/m64=/s/lib64/lib/' \ … … 75 73 esac</userinput></screen> 76 74 77 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for78 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-linux6483 </userinput></screen>84 85 75 <para>The GCC documentation recommends building GCC 86 76 in a dedicated build directory:</para> … … 91 81 <para>Prepare GCC for compilation:</para> 92 82 93 <screen arch="default"><userinput remap="configure">../configure \83 <screen><userinput remap="configure">../configure \ 94 84 --target=$LFS_TGT \ 95 85 --prefix=$LFS/tools \ … … 111 101 --disable-libstdcxx \ 112 102 --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 138 103 <variablelist> 139 104 <title>The meaning of the configure options:</title> … … 185 150 </varlistentry> 186 151 187 <varlistentry arch="default">152 <varlistentry> 188 153 <term><parameter>--disable-multilib</parameter></term> 189 154 <listitem> 190 155 <para>On x86_64, LFS does not support a multilib configuration. 191 156 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 is198 specified in the multilib list.</para>199 157 </listitem> 200 158 </varlistentry> -
chapter05/glibc.xml
r0e9fb93 r0f7d4cb 48 48 operation of the dynamic library loader:</para> 49 49 50 <screen arch="default"><userinput remap="pre">case $(uname -m) in50 <screen><userinput remap="pre">case $(uname -m) in 51 51 i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 52 52 ;; … … 55 55 ;; 56 56 esac</userinput></screen> 57 <!-- no ld-linux.so.2 here as multilib is based on x86_64, not on i686 -->58 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib6459 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>60 57 61 58 <note> … … 83 80 <para>Next, prepare Glibc for compilation:</para> 84 81 85 <screen arch="default"><userinput remap="configure">../configure \82 <screen><userinput remap="configure">../configure \ 86 83 --prefix=/usr \ 87 84 --host=$LFS_TGT \ … … 89 86 --enable-kernel=&min-kernel; \ 90 87 --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 \101 88 libc_cv_slibdir=/lib</userinput></screen> 102 89 <!-- … … 221 208 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 222 209 223 <para arch="default">Note that for 32-bit machines, the interpreter name will be210 <para>Note that for 32-bit machines, the interpreter name will be 224 211 <filename>/lib/ld-linux.so.2</filename>.</para> 225 212 … … 249 236 </sect2> 250 237 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 be258 reused but needs to cleaned before installing the m32259 version of Glibc.</para>260 261 <para>Clear the build directory and remove artefacts from262 previous build:</para>263 264 <screen><userinput remap="pre">make clean265 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 install289 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 basic297 functions (compiling and linking) of the new toolchain are working as298 expected. To perform a sanity check, run the following commands:</para>299 300 <screen><userinput>echo 'int main(){}' > dummy.c301 $LFS_TGT-gcc -m32 dummy.c302 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 out311 where the problem is and correct it. This issue must be resolved before312 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 be330 reused but needs to cleaned before installing the mx32331 version of Glibc.</para>332 333 <para>Clear the build directory and remove artefacts from334 previous build:</para>335 336 <screen><userinput remap="pre">make clean337 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 install361 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 basic369 functions (compiling and linking) of the new toolchain are working as370 expected. To perform a sanity check, run the following commands:</para>371 372 <screen><userinput>echo 'int main(){}' > dummy.c373 $LFS_TGT-gcc -mx32 dummy.c374 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 out383 where the problem is and correct it. This issue must be resolved before384 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 394 238 <sect2 role="content"> 395 239 <title/> -
chapter05/libstdc++.xml
r0e9fb93 r0f7d4cb 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 is88 given. This is because the additionally built libraries are89 not required in this stage and some disk space and compile90 time can be saved.</para>91 </listitem>92 </varlistentry>93 94 84 <varlistentry> 95 85 <term><parameter>--disable-libstdcxx-pch</parameter></term> -
chapter06/binutils-pass2.xml
r0e9fb93 r0f7d4cb 51 51 <para>Prepare Binutils for compilation:</para> 52 52 53 <screen arch="default"><userinput remap="configure">../configure \53 <screen><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>70 61 71 62 <variablelist> … … 86 77 <para>Enables 64-bit support (on hosts with narrower word sizes). 87 78 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>95 79 </listitem> 96 80 </varlistentry> -
chapter06/gcc-pass2.xml
r0e9fb93 r0f7d4cb 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> 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> 55 mv -v mpc-&mpc-version; mpc</userinput></screen> 58 56 59 60 <para arch="default">If building on x86_64, change the default directory name for 64-bit 57 <para>If building on x86_64, change the default directory name for 64-bit 61 58 libraries to <quote>lib</quote>:</para> 62 59 63 <screen arch="default"><userinput remap="pre">case $(uname -m) in60 <screen><userinput remap="pre">case $(uname -m) in 64 61 x86_64) 65 62 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 66 63 ;; 67 64 esac</userinput></screen> 65 <!-- 66 <para>Fix an issue with GCC-10.1 when building with a cross 67 compiler:</para> 68 68 69 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for70 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>75 <!--76 69 <screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen> 77 70 --> … … 92 85 <para>Now prepare GCC for compilation:</para> 93 86 94 <screen arch="default"><userinput remap="configure">../configure \87 <screen><userinput remap="configure">../configure \ 95 88 --build=$(../config.guess) \ 96 89 --host=$LFS_TGT \ … … 101 94 --disable-nls \ 102 95 --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 \124 96 --disable-decimal-float \ 125 97 --disable-libatomic \ -
chapter06/ncurses.xml
r0e9fb93 r0f7d4cb 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 162 163 </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 install198 ln -s libncursesw.so DESTDIR&usr-lib-m32;/libcursesw.so199 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 install238 ln -s libncursesw.so DESTDIR&usr-lib-mx32;/libcursesw.so239 cp -Rv DESTDIR&usr-lib-mx32;/* $LFS&usr-lib-mx32;240 rm -rf DESTDIR</userinput></screen>241 242 </sect2><!-- mx32 -->243 164 244 165 <sect2 role="content"> -
chapter07/changingowner.xml
r0e9fb93 r0f7d4cb 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for42 multilib support. Change their ownership, too:</para>43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS&lib-m32;</userinput>44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS&lib-mx32;</userinput></screen>45 46 41 </sect1> -
chapter07/creatingdirs.xml
r0e9fb93 r0f7d4cb 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 multilib44 support has already been created while previous installation steps.</para>45 46 43 <para>Directories are, by default, created with permission mode 755, but 47 44 this is not desirable for all directories. In the commands above, two -
chapter07/libstdc++-pass2.xml
r0e9fb93 r0f7d4cb 63 63 <para>Prepare libstdc++ for compilation:</para> 64 64 65 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \65 <screen><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 \76 69 --disable-nls \ 77 70 --host=$(uname -m)-lfs-linux-gnu \ … … 106 99 </varlistentry> 107 100 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 here112 explicitly for documentary purpose. The libstdc++ libraries113 will be built for every arch (m64, m32, mx32) which are114 made available in <xref linkend="ch-tools-gcc-pass1"/>.</para>115 </listitem>116 </varlistentry>117 118 101 </variablelist> 119 102 -
chapter07/stripping.xml
r0e9fb93 r0f7d4cb 16 16 While still in chroot, remove those files now:</para> 17 17 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> 18 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 22 19 23 20 <para>Remove the documentation of the temporary tools, to prevent them … … 91 88 92 89 <para>Strip off debugging symbols from binaries:</para> 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}/* 90 <screen role="nodump"><userinput>strip --strip-debug $LFS/usr/lib/* 103 91 strip --strip-unneeded $LFS/usr/{,s}bin/* 104 92 strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> -
chapter07/util-linux.xml
r0e9fb93 r0f7d4cb 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 install153 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 install193 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;194 rm -rf DESTDIR</userinput></screen>195 196 </sect2><!-- mx32 -->197 198 118 <sect2 role="content"> 199 119 <title/> -
chapter08/acl.xml
r0e9fb93 r0f7d4cb 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 install109 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 install141 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;142 rm -rf DESTDIR</userinput></screen>143 144 </sect2><!-- mx32 -->145 146 82 <sect2 id="contents-acl" role="content"> 147 83 <title>Contents of Acl</title> -
chapter08/attr.xml
r0e9fb93 r0f7d4cb 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 install107 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 install138 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;139 rm -rf DESTDIR</userinput></screen>140 141 </sect2><!-- mx32 -->142 143 81 <sect2 id="contents-attr" role="content"> 144 82 <title>Contents of Attr</title> -
chapter08/binutils.xml
r0e9fb93 r0f7d4cb 71 71 <para>Prepare Binutils for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \73 <screen><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 91 81 <variablelist> 92 82 <title>The meaning of the configure parameters:</title> … … 120 110 <para>Enables 64-bit support (on hosts with narrower word sizes). 121 111 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>129 112 </listitem> 130 113 </varlistentry> -
chapter08/bzip2.xml
r0e9fb93 r0f7d4cb 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_so119 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.8124 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so125 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1126 ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0127 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_so146 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.8151 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so152 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1153 ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0154 install -Dm644 libbz2.a &usr-lib-mx32;/libbz2.a</userinput></screen>155 156 </sect2><!-- mx32 -->157 103 158 104 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
r0e9fb93 r0f7d4cb 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"/>38 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 39 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/eudev.xml
r0e9fb93 r0f7d4cb 89 89 90 90 </sect2> 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 install126 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 install164 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;165 rm -rf DESTDIR</userinput></screen>166 167 </sect2><!-- mx32 -->168 91 169 92 <sect2 id="conf-eudev" role="configuration"> -
chapter08/expat.xml
r0e9fb93 r0f7d4cb 66 66 </sect2> 67 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Expat - 32bit</title>74 75 <para>Clean previous build but keep precompiled doc because it76 cannot be rebuilt in this stage of the system:</para>77 78 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile79 make clean</userinput></screen>80 81 <para>Prepare Expat for compilation:</para>82 83 <screen><userinput remap="configure">CC="gcc -m32" ./configure \84 --prefix=/usr \85 --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 install95 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 it108 cannot be rebuilt in this stage of the system:</para>109 110 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile111 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 install127 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;128 rm -rf DESTDIR</userinput></screen>129 130 </sect2><!-- mx32 -->131 132 68 <sect2 id="contents-expat" role="content"> 133 69 <title>Contents of Expat</title> -
chapter08/file.xml
r0e9fb93 r0f7d4cb 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 install97 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 install127 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;128 rm -rf DESTDIR</userinput></screen>129 130 </sect2><!-- mx32 -->131 72 132 73 <sect2 id="contents-file" role="content"> -
chapter08/gcc.xml
r0e9fb93 r0f7d4cb 42 42 <title>Installation of GCC</title> 43 43 44 <para arch="default">If building on x86_64, change the default directory name for 64-bit44 <para>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 arch="default"><userinput remap="pre">case $(uname -m) in47 <screen><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-bit55 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 61 54 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 62 55 … … 66 59 <para>Prepare GCC for compilation:</para> 67 60 68 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \61 <screen><userinput remap="configure">../configure --prefix=/usr \ 69 62 LD=ld \ 70 63 --enable-languages=c,c++ \ 71 64 --disable-multilib \ 72 65 --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 \84 66 --with-system-zlib</userinput></screen> 85 67 … … 275 257 SEARCH_DIR("/usr/lib");</computeroutput></screen> 276 258 277 <para arch="default">A 32-bit system may see a few different directories. For example, here259 <para>A 32-bit system may see a few different directories. For example, here 278 260 is the output from an i686 machine:</para> 279 261 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") 262 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 282 263 SEARCH_DIR("/usr/local/lib32") 283 264 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
r0e9fb93 r0f7d4cb 64 64 <para>Prepare Glibc for compilation:</para> 65 65 66 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \66 <screen><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 \78 71 libc_cv_slibdir=/lib</userinput></screen> 79 72 … … 472 465 </sect2> 473 466 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 be481 reused but needs to cleaned before installing the m32482 version of Glibc.</para>483 484 <para>Clear the build directory and remove artefacts from485 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 install511 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 basic523 functions (compiling and linking) of the new toolchain are working as524 expected. To perform a sanity check, run the following commands:</para>525 526 <screen><userinput>echo 'int main(){}' > dummy.c527 gcc -m32 dummy.c528 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 out537 where the problem is and correct it. This issue must be resolved before538 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 be556 reused but needs to cleaned before installing the mx32557 version of Glibc.</para>558 559 <para>Clear the build directory and remove artefacts from560 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 install586 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 basic598 functions (compiling and linking) of the new toolchain are working as599 expected. To perform a sanity check, run the following commands:</para>600 601 <screen><userinput>echo 'int main(){}' > dummy.c602 gcc -mx32 dummy.c603 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 out612 where the problem is and correct it. This issue must be resolved before613 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 623 467 <sect2 id="contents-glibc" role="content"> 624 468 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r0e9fb93 r0f7d4cb 121 121 </sect2> 122 122 123 <!-- - - - - - - - - - -->124 <!-- Multilib - 32bit -->125 <!-- - - - - - - - - - -->126 127 <sect2 arch="ml_32,ml_all" role="installation">128 <title>Installation of GMP - 32bit</title>129 130 <para>Clean previous build:</para>131 132 <screen><userinput remap="pre">make distclean</userinput></screen>133 134 <para>Generic libraries can be created by running135 the following:</para>136 137 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess138 cp -v configfsf.sub config.sub</userinput></screen>139 140 <para>Prepare GMP for compilation:</para>141 142 <screen><userinput remap="configure">ABI="32" \143 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \144 CXXFLAGS="$CFLAGS" \145 PKG_CONFIG_PATH="&usr-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 but160 has same name. Therefore, the headers must be separated from161 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\)/' Makefile170 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 install189 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 running207 the following:</para>208 209 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess210 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\)/' Makefile228 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 install247 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 253 123 <sect2 id="contents-gmp" role="content"> 254 124 <title>Contents of GMP</title> -
chapter08/kmod.xml
r0e9fb93 r0f7d4cb 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 cannot104 be recreated since xsltproc isn't installed yet:</para>105 106 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile107 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 install128 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 cannot141 be recreated since xsltproc isn't installed yet:</para>142 143 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile144 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 install165 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;166 rm -rf DESTDIR</userinput></screen>167 168 </sect2><!-- mx32 -->169 170 96 <sect2 id="contents-kmod" role="content"> 171 97 <title>Contents of Kmod</title> -
chapter08/libcap.xml
r0e9fb93 r0f7d4cb 81 81 82 82 </sect2> 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 install102 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}.pc104 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 install127 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}.pc129 chmod -v 755 &usr-lib-mx32;/libcap.so.&libcap-version;130 rm -rf DESTDIR</userinput></screen>131 132 </sect2><!-- mx32 -->133 83 134 84 <sect2 id="contents-libcap" role="content"> -
chapter08/libelf.xml
r0e9fb93 r0f7d4cb 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 install99 install -vDm644 config/libelf.pc DESTDIR&usr-lib-m32;/pkgconfig/libelf.pc100 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 install132 install -vDm644 config/libelf.pc DESTDIR&usr-lib-mx32;/pkgconfig/libelf.pc133 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;134 rm -rf DESTDIR</userinput></screen>135 136 </sect2><!-- mx32 -->137 138 72 <sect2 id="contents-elfutils" role="content"> 139 73 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r0e9fb93 r0f7d4cb 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 install121 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 install157 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;158 rm -rf DESTDIR</userinput></screen>159 160 </sect2><!-- mx32 -->161 162 90 <sect2 id="contents-libffi" role="content"> 163 91 <title>Contents of Libffi</title> -
chapter08/libtool.xml
r0e9fb93 r0f7d4cb 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 install105 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 install135 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;136 rm -rf DESTDIR</userinput></screen>137 138 </sect2><!-- mx32 -->139 80 140 81 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
r0e9fb93 r0f7d4cb 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 install195 mkdir -p DESTDIR&usr-lib-m32;/pkgconfig196 for lib in ncurses form panel menu ; do197 rm -vf DESTDIR&usr-lib-m32;/lib${lib}.so198 echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-m32;/lib${lib}.so199 ln -svf ${lib}w.pc DESTDIR&usr-lib-m32;/pkgconfig/$lib.pc200 done201 rm -vf DESTDIR&usr-lib-m32;/libcursesw.so202 echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-m32;/libcursesw.so203 ln -sfv libncurses.so DESTDIR&usr-lib-m32;/libcurses.so204 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 install240 mkdir -p DESTDIR&usr-lib-mx32;/pkgconfig241 for lib in ncurses form panel menu ; do242 rm -vf DESTDIR&usr-lib-mx32;/lib${lib}.so243 echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-mx32;/lib${lib}.so244 ln -svf ${lib}w.pc DESTDIR&usr-lib-mx32;/pkgconfig/$lib.pc245 done246 rm -vf DESTDIR&usr-lib-mx32;/libcursesw.so247 echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-mx32;/libcursesw.so248 ln -sfv libncurses.so DESTDIR&usr-lib-mx32;/libcurses.so249 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;250 rm -rf DESTDIR</userinput></screen>251 252 </sect2><!-- mx32 -->253 163 254 164 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r0e9fb93 r0f7d4cb 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 install113 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 install149 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;150 rm -rf DESTDIR</userinput></screen>151 152 </sect2><!-- mx32 -->153 81 154 82 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
r0e9fb93 r0f7d4cb 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 install136 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 install167 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;168 rm -rf DESTDIR</userinput></screen>169 170 </sect2><!-- mx32 -->171 172 110 <sect2 id="contents-readline" role="content"> 173 111 <title>Contents of Readline</title> -
chapter08/revisedchroot.xml
r0e9fb93 r0f7d4cb 44 44 To remove them, run:</para> 45 45 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> 46 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 49 47 50 48 <para>For more information about libtool archive files, see the <ulink -
chapter08/strippingagain.xml
r0e9fb93 r0f7d4cb 37 37 38 38 cd /lib 39 39 40 for LIB in $save_lib; do 40 41 objcopy --only-keep-debug $LIB $LIB.dbg 41 42 strip --strip-unneeded $LIB 42 43 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 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> 44 done 58 45 59 46 save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; … … 61 48 62 49 cd /usr/lib 50 63 51 for LIB in $save_usrlib; do 64 52 objcopy --only-keep-debug $LIB $LIB.dbg 65 53 strip --strip-unneeded $LIB 66 54 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 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> 55 done 82 56 83 57 unset LIB save_lib save_usrlib</userinput></screen> … … 92 66 <para>Now the binaries and libraries can be stripped:</para> 93 67 <screen><userinput>find /usr/lib -type f -name \*.a \ 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> 68 -exec strip --strip-debug {} ';' 99 69 100 70 find /lib /usr/lib -type f -name \*.so* ! -name \*dbg \ 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> 71 -exec strip --strip-unneeded {} ';' 106 72 107 73 find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ -
chapter08/systemd.xml
r0e9fb93 r0f7d4cb 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}*; do270 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 install308 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;309 rm -rf DESTDIR310 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.c332 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 install370 cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;371 rm -rf DESTDIR372 rm -f /usr/bin/xsltproc</userinput></screen>373 374 </sect2><!-- mx32 -->375 248 376 249 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
r0e9fb93 r0f7d4cb 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 install159 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 install218 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;219 rm -rf DESTDIR</userinput></screen>220 221 </sect2><!-- mx32 -->222 104 223 105 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r0e9fb93 r0f7d4cb 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 install97 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 install128 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;129 rm -rf DESTDIR</userinput></screen>130 131 </sect2><!-- mx32 -->132 70 133 71 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
r0e9fb93 r0f7d4cb 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 install98 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 install125 cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;126 rm -rf DESTDIR</userinput></screen>127 128 </sect2><!-- mx32 -->129 130 74 <sect2 id="contents-zlib" role="content"> 131 75 <title>Contents of Zlib</title> -
chapter08/zstd.xml
r0e9fb93 r0f7d4cb 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 install86 cp -Rv DESTDIR/usr/lib/* &usr-lib-m32;/87 sed -e "/^libdir/s/lib$&lib-m32;/" -i &usr-lib-m32;/pkgconfig/libzstd.pc88 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of Zstd - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make clean</userinput></screen>102 103 <para>Compile the package:</para>104 105 <screen><userinput remap="make">CC="gcc -mx32" make</userinput></screen>106 107 <para>Install the package:</para>108 109 <screen><userinput remap="install">CC="gcc -mx32" make prefix=/usr DESTDIR=$PWD/DESTDIR install110 cp -Rv DESTDIR/usr/lib/* &usr-lib-mx32;/111 sed -e "/^libdir/s/lib$&lib-mx32;/" -i &usr-lib-mx32;/pkgconfig/libzstd.pc112 rm -rf DESTDIR</userinput></screen>113 114 </sect2><!-- mx32 -->115 67 116 68 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r0e9fb93 r0f7d4cb 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 to161 identify and start binaries compiled for different architectures162 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 option167 "IA32 Emulation" is selected. The option 'IA32 a.out support' is168 optional.169 </para>170 171 <para arch="ml_x32,ml_all">172 If support for the x32bit ABI was built, make sure that the option173 "x32 ABI for 64-bit mode" is selected.174 </para>175 176 <screen arch="ml_32">Binary Emulations --->177 [*] IA32 Emulation178 <M> IA32 a.out support179 </screen>180 <screen arch="ml_x32">Binary Emulations --->181 [*] x32 ABI for 64-bit mode182 </screen>183 <screen arch="ml_all">Binary Emulations --->184 [*] IA32 Emulation185 <M> IA32 a.out support186 [*] x32 ABI for 64-bit mode187 </screen>188 189 </note>190 191 158 <variablelist> 192 159 <title>The rationale for the above configuration items:</title> -
general.ent
r0e9fb93 r0f7d4cb 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
r0e9fb93 r0f7d4cb 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">362 354 363 355 <!ENTITY kbd-version "2.4.0"> -
prologue/bookinfo.xml
r0e9fb93 r0f7d4cb 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 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> 10 <subtitle revision='sysv' >Version &version; </subtitle> 11 <subtitle revision='systemd'>Version &versiond;</subtitle> 14 12 <subtitle>Published &releasedate;</subtitle> 15 13 … … 32 30 <firstname>Editor: DJ</firstname> 33 31 <surname>Lucas</surname> 34 </author>35 36 <author arch="ml_32,ml_x32,ml_all">37 <firstname>Editor: Thomas</firstname>38 <surname>Trepl</surname>39 32 </author> 40 33 </authorgroup> -
prologue/preface.xml
r0e9fb93 r0f7d4cb 16 16 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/> 17 17 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="prerequisites.xml"/> 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="multilib.xml"/>19 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/> 20 19 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note:
See TracChangeset
for help on using the changeset viewer.