Changes in / [16cdca7b:2f67a2a]
- Files:
-
- 2 deleted
- 50 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 347 347 <para>Download: <ulink url="&iproute2-url;"/></para> 348 348 <para>MD5 sum: <literal>&iproute2-md5;</literal></para> 349 </listitem>350 </varlistentry>351 352 <varlistentry arch="ml_32,ml_x32,ml_all">353 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>354 <listitem>355 <para>Home page: <ulink url="&isl-home;"/></para>356 <para>Download: <ulink url="&isl-url;"/></para>357 <para>MD5 sum: <literal>&isl-md5;</literal></para>358 349 </listitem> 359 350 </varlistentry> -
chapter04/addinguser.xml
r16cdca7b r2f67a2a 85 85 x86_64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 <screen arch="ml_32" ><userinput>chown -v lfs $LFS/lib32</userinput></screen>88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>90 87 91 88 <para>If a separate working directory was created as suggested, give -
chapter04/creatingminlayout.xml
r16cdca7b r2f67a2a 30 30 x86_64) mkdir -pv $LFS/lib64 ;; 31 31 esac</userinput></screen> 32 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib3233 ln -sv usr/lib32 $LFS/lib32</userinput></screen>34 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx3235 ln -sv usr/libx32 $LFS/libx32</userinput></screen>36 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}3237 ln -sv usr/lib32 $LFS/lib3238 ln -sv usr/libx32 $LFS/libx32</userinput></screen>39 32 40 33 <note> -
chapter04/settingenviron.xml
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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=..\/lib32$(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
r16cdca7b r2f67a2a 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 <para>Some of the Glibc programs use the non-FHS compliant … … 84 81 <para>Next, prepare Glibc for compilation:</para> 85 82 86 <screen arch="default"><userinput remap="configure">../configure \83 <screen><userinput remap="configure">../configure \ 87 84 --prefix=/usr \ 88 85 --host=$LFS_TGT \ … … 90 87 --enable-kernel=&min-kernel; \ 91 88 --with-headers=$LFS/usr/include \ 92 libc_cv_slibdir=/usr/lib</userinput></screen>93 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \94 --prefix=/usr \95 --host=$LFS_TGT \96 --build=$(../scripts/config.guess) \97 --enable-kernel=&min-kernel; \98 --with-headers=$LFS/usr/include \99 --enable-multi-arch \100 89 libc_cv_slibdir=/usr/lib</userinput></screen> 101 90 … … 222 211 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 223 212 224 <para arch="default">Note that for 32-bit machines, the interpreter name will be213 <para>Note that for 32-bit machines, the interpreter name will be 225 214 <filename>/lib/ld-linux.so.2</filename>.</para> 226 215 … … 250 239 </sect2> 251 240 252 <!-- - - - - - - - - - -->253 <!-- Multilib - 32bit -->254 <!-- - - - - - - - - - -->255 <sect2 arch="ml_32,ml_all">256 <title>Building Glibc - 32bit</title>257 258 <para>Now recompile for m32. The extracted source can be259 reused but needs to be cleaned before installing the m32260 version of Glibc.</para>261 262 <para>Clear the build directory and remove artefacts from263 previous build:</para>264 265 <screen><userinput remap="pre">make clean266 find .. -name "*.a" -delete</userinput></screen>267 268 <para>Configure Glibc for m32 with the following commands:</para>269 270 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \271 CXX="$LFS_TGT-g++ -m32" \272 ../configure \273 --prefix=/usr \274 --host=$LFS_TGT32 \275 --build=$(../scripts/config.guess) \276 --enable-kernel=&min-kernel; \277 --with-headers=$LFS/usr/include \278 --enable-multi-arch \279 --libdir=/usr/lib32 \280 --libexecdir=/usr/lib32 \281 libc_cv_slibdir=/usr/lib32</userinput></screen>282 283 <para>Compile the package:</para>284 285 <screen><userinput remap="make">make</userinput></screen>286 287 <para>Install the package:</para>288 289 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install290 cp -a DESTDIR/usr/lib32 $LFS/usr/291 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \292 $LFS/usr/include/gnu/293 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>294 295 296 <caution>297 <para>At this point, it is imperative to stop and ensure that the basic298 functions (compiling and linking) of the new toolchain are working as299 expected. To perform a sanity check, run the following commands:</para>300 301 <screen><userinput>echo 'int main(){}' > dummy.c302 $LFS_TGT-gcc -m32 dummy.c303 readelf -l a.out | grep '/ld-linux'</userinput></screen>304 305 <para>If everything is working correctly, there should be no errors,306 and the output of the last command will be of the form:</para>307 308 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>309 310 <para>If the output is not shown as above or there was no output at all,311 then something is wrong. Investigate and retrace the steps to find out312 where the problem is and correct it. This issue must be resolved before313 continuing on.</para>314 315 <para>Once all is well, clean up the test files:</para>316 317 <screen><userinput>rm -v dummy.c a.out</userinput></screen>318 319 </caution>320 321 </sect2><!-- m32 -->322 323 <!-- - - - - - - - - - -->324 <!-- Multilib - x32bit -->325 <!-- - - - - - - - - - -->326 327 <sect2 arch="ml_x32,ml_all">328 <title>Building Glibc - x32bit</title>329 330 <para>Now recompile for mx32. The extracted source can be331 reused but needs to be cleaned before installing the mx32332 version of Glibc.</para>333 334 <para>Clear the build directory and remove artefacts from335 previous build:</para>336 337 <screen><userinput remap="pre">make clean338 find .. -name "*.a" -delete</userinput></screen>339 340 <para>Configure Glibc for mx32 with the following commands:</para>341 342 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \343 CXX="$LFS_TGT-g++ -mx32" \344 ../configure \345 --prefix=/usr \346 --host=$LFS_TGTX32 \347 --build=$(../scripts/config.guess) \348 --enable-kernel=&min-kernel; \349 --with-headers=$LFS/usr/include \350 --enable-multi-arch \351 --libdir=/usr/libx32 \352 --libexecdir=/usr/libx32 \353 libc_cv_slibdir=/usr/libx32</userinput></screen>354 355 <para>Compile the package:</para>356 357 <screen><userinput remap="make">make</userinput></screen>358 359 <para>Install the package:</para>360 361 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install362 cp -a DESTDIR/usr/libx32 $LFS/usr/363 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \364 $LFS/usr/include/gnu/365 ln -svf ../libx32/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 241 <sect2 role="content"> 395 242 <title/> -
chapter05/libstdc++.xml
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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=..\/lib32$(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
r16cdca7b r2f67a2a 151 151 </sect2> 152 152 153 <!-- - - - - - - - - - -->154 <!-- Multilib - 32bit -->155 <!-- - - - - - - - - - -->156 <sect2 arch="ml_32,ml_all">157 <title>Building Ncurses - 32bit</title>158 159 <para>Clean previous build:</para>160 161 <screen><userinput remap="pre">make distclean</userinput></screen>162 163 <para>Prepare Ncurses for compilation:</para>164 165 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \166 CXX="$LFS_TGT-g++ -m32" \167 ./configure --prefix=/usr \168 --host=$LFS_TGT32 \169 --build=$(./config.guess) \170 --libdir=/usr/lib32 \171 --mandir=/usr/share/man \172 --with-shared \173 --without-debug \174 --without-ada \175 --without-normal \176 --enable-pc-files \177 --enable-widec \178 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>179 180 <para>Compile the package:</para>181 182 <screen><userinput remap="make">make</userinput></screen>183 184 <para>Install the package:</para>185 186 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install187 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so188 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32189 rm -rf DESTDIR</userinput></screen>190 191 </sect2><!-- m32 -->192 193 <!-- - - - - - - - - - -->194 <!-- Multilib - x32bit -->195 <!-- - - - - - - - - - -->196 <sect2 arch="ml_x32,ml_all">197 <title>Building Ncurses - x32bit</title>198 199 <para>Clean previous build:</para>200 201 <screen><userinput remap="pre">make distclean</userinput></screen>202 203 <para>Prepare Ncurses for compilation:</para>204 205 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \206 CXX="$LFS_TGT-g++ -mx32" \207 ./configure --prefix=/usr \208 --host=$LFS_TGTX32 \209 --build=$(./config.guess) \210 --libdir=/usr/libx32 \211 --mandir=/usr/share/man \212 --with-shared \213 --without-debug \214 --without-ada \215 --without-normal \216 --enable-pc-files \217 --enable-widec \218 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>219 220 <para>Compile the package:</para>221 222 <screen><userinput remap="make">make</userinput></screen>223 224 <para>Install the package:</para>225 226 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install227 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so228 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32229 rm -rf DESTDIR</userinput></screen>230 231 </sect2><!-- mx32 -->232 233 153 <sect2 role="content"> 234 154 <title/> -
chapter07/changingowner.xml
r16cdca7b r2f67a2a 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for42 multilib support. Change their ownership, too:</para>43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>45 46 41 </sect1> -
chapter07/creatingdirs.xml
r16cdca7b r2f67a2a 42 42 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 43 43 44 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib45 support has already been created while previous installation steps.</para>46 47 44 <para>Directories are, by default, created with permission mode 755, but 48 45 this is not desirable for all directories. In the commands above, two -
chapter07/libstdc++-pass2.xml
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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>$LFS_TGT-strip --strip-unneeded $LFS/usr/lib/* 94 $LFS_TGT-strip --strip-unneeded $LFS/usr/{,s}bin/* 95 $LFS_TGT-strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 96 <screen arch="ml_32" role="nodump"><userinput>$LFS_TGT-strip --strip-unneeded $LFS/usr/lib{,32}/* 97 $LFS_TGT-strip --strip-unneeded $LFS/usr/{,s}bin/* 98 $LFS_TGT-strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 99 <screen arch="ml_x32" role="nodump"><userinput>$LFS_TGT-strip --strip-unneeded $LFS/usr/lib{,x32}/* 100 $LFS_TGT-strip --strip-unneeded $LFS/usr/{,s}bin/* 101 $LFS_TGT-strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> 102 <screen arch="ml_all" role="nodump"><userinput>$LFS_TGT-strip --strip-unneeded $LFS/usr/lib{,{,x}32}/* 90 <screen role="nodump"><userinput>$LFS_TGT-strip --strip-unneeded $LFS/usr/lib/* 103 91 $LFS_TGT-strip --strip-unneeded $LFS/usr/{,s}bin/* 104 92 $LFS_TGT-strip --strip-unneeded $LFS/tools/bin/*</userinput></screen> -
chapter07/util-linux.xml
r16cdca7b r2f67a2a 127 127 </sect2> 128 128 129 <!-- - - - - - - - - - -->130 <!-- Multilib - 32bit -->131 <!-- - - - - - - - - - -->132 133 <sect2 arch="ml_32,ml_all" role="installation">134 <title>Installation of Util-linux - 32-bit</title>135 136 <para>Clean previous build:</para>137 138 <screen><userinput remap="pre">make distclean</userinput></screen>139 140 <para>Prepare Util-linux for compilation:</para>141 142 <screen><userinput remap="configure">CC="gcc -m32" \143 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \144 --docdir=/usr/share/doc/util-linux-&util-linux-version; \145 --disable-chfn-chsh \146 --disable-login \147 --disable-nologin \148 --disable-su \149 --disable-setpriv \150 --disable-runuser \151 --disable-pylibmount \152 --disable-static \153 --without-python \154 --libdir=/usr/lib32 \155 --host=i686-pc-linux-gnu</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/lib32/* /usr/lib32165 rm -rf DESTDIR</userinput></screen>166 167 </sect2><!-- m32 -->168 169 <!-- - - - - - - - - - -->170 <!-- Multilib - x32bit -->171 <!-- - - - - - - - - - -->172 173 <sect2 arch="ml_x32,ml_all" role="installation">174 <title>Installation of Util-linux - x32-bit</title>175 176 <para>Clean previous build:</para>177 178 <screen><userinput remap="pre">make distclean</userinput></screen>179 180 <para>Prepare Util-linux for compilation:</para>181 182 <screen><userinput remap="configure">CC="gcc -mx32" \183 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \184 --docdir=/usr/share/doc/util-linux-&util-linux-version; \185 --disable-chfn-chsh \186 --disable-login \187 --disable-nologin \188 --disable-su \189 --disable-setpriv \190 --disable-runuser \191 --disable-pylibmount \192 --disable-static \193 --without-python \194 --libdir=/usr/libx32 \195 --host=x86_64-pc-linux-gnux32</userinput></screen>196 197 <para>Compile the package:</para>198 199 <screen><userinput remap="make">make</userinput></screen>200 201 <para>Install the package:</para>202 203 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install204 cp -Rv DESTDIR/usr/libx32/* /usr/libx32205 rm -rf DESTDIR</userinput></screen>206 207 </sect2><!-- mx32 -->208 209 129 <sect2 role="content"> 210 130 <title/> -
chapter08/acl.xml
r16cdca7b r2f67a2a 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Acl - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Xz for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --libdir=/usr/lib32 \84 --libexecdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Acl - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Xz for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --libdir=/usr/libx32 \116 --libexecdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 66 131 67 <sect2 id="contents-acl" role="content"> -
chapter08/attr.xml
r16cdca7b r2f67a2a 65 65 </sect2> 66 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Attr - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Attr for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --libdir=/usr/lib32 \84 --host=i686-pc-linux-gnu</userinput></screen>85 86 <para>Compile the package:</para>87 88 <screen><userinput remap="make">make</userinput></screen>89 90 <para>Install the package:</para>91 92 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install93 cp -Rv DESTDIR/usr/lib32/* /usr/lib3294 rm -rf DESTDIR</userinput></screen>95 96 </sect2><!-- m32 -->97 98 <!-- - - - - - - - - - -->99 <!-- Multilib - x32bit -->100 <!-- - - - - - - - - - -->101 102 <sect2 arch="ml_x32,ml_all" role="installation">103 <title>Installation of Attr - x32bit</title>104 105 <para>Clean previous build:</para>106 107 <screen><userinput remap="pre">make distclean</userinput></screen>108 109 <para>Prepare Attr for compilation:</para>110 111 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \112 --prefix=/usr \113 --disable-static \114 --libdir=/usr/libx32 \115 --host=x86_64-pc-linux-gnux32</userinput></screen>116 117 <para>Compile the package:</para>118 119 <screen><userinput remap="make">make</userinput></screen>120 121 <para>Install the package:</para>122 123 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install124 cp -Rv DESTDIR/usr/libx32/* /usr/libx32125 rm -rf DESTDIR</userinput></screen>126 127 </sect2><!-- mx32 -->128 129 67 <sect2 id="contents-attr" role="content"> 130 68 <title>Contents of Attr</title> -
chapter08/binutils.xml
r16cdca7b r2f67a2a 78 78 <para>Prepare Binutils for compilation:</para> 79 79 80 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \80 <screen><userinput remap="configure">../configure --prefix=/usr \ 81 81 --enable-gold \ 82 82 --enable-ld=default \ … … 86 86 --enable-64-bit-bfd \ 87 87 --with-system-zlib</userinput></screen> 88 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \89 --enable-gold \90 --enable-ld=default \91 --enable-plugins \92 --enable-shared \93 --disable-werror \94 --enable-64-bit-bfd \95 --with-system-zlib \96 --enable-multilib</userinput></screen>97 98 88 <variablelist> 99 89 <title>The meaning of the configure parameters:</title> … … 127 117 <para>Enables 64-bit support (on hosts with narrower word sizes). 128 118 May not be needed on 64-bit systems, but does no harm.</para> 129 </listitem>130 </varlistentry>131 132 <varlistentry arch="ml_32,ml_x32,ml_all">133 <term><parameter>--enable-multilib</parameter></term>134 <listitem>135 <para>Enables multilib support in bintutils.</para>136 119 </listitem> 137 120 </varlistentry> -
chapter08/bzip2.xml
r16cdca7b r2f67a2a 103 103 104 104 </sect2> 105 106 <!-- - - - - - - - - - -->107 <!-- Multilib - 32bit -->108 <!-- - - - - - - - - - -->109 110 <sect2 arch="ml_32,ml_all" role="installation">111 <title>Installation of Bzip2 - 32bit</title>112 113 <para>Clean previous build:</para>114 115 <screen><userinput remap="pre">make clean</userinput></screen>116 117 <para>Compile the package:</para>118 119 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so}120 make -f Makefile-libbz2_so121 make libbz2.a</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0.8126 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so127 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1128 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0129 install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>130 131 </sect2><!-- m32 -->132 133 <!-- - - - - - - - - - -->134 <!-- Multilib - x32bit -->135 <!-- - - - - - - - - - -->136 137 <sect2 arch="ml_x32,ml_all" role="installation">138 <title>Installation of Bzip2 - x32bit</title>139 140 <para>Clean previous build:</para>141 142 <screen><userinput remap="pre">make clean</userinput></screen>143 144 <para>Compile the package:</para>145 146 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so}147 make -f Makefile-libbz2_so148 make libbz2.a</userinput></screen>149 150 <para>Install the package:</para>151 152 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8153 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so154 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1155 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0156 install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen>157 158 </sect2><!-- mx32 -->159 105 160 106 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 84 84 85 85 </sect2> 86 87 <!-- - - - - - - - - - -->88 <!-- Multilib - 32bit -->89 <!-- - - - - - - - - - -->90 91 <sect2 arch="ml_32,ml_all" role="installation">92 <title>Installation of Eudev - 32bit</title>93 94 <para>Clean previous build:</para>95 96 <screen><userinput remap="pre">make distclean</userinput></screen>97 98 <para>Prepare Eudev for compilation:</para>99 100 <screen><userinput remap="configure">CC="gcc -m32" \101 ./configure --host=i686-pc-linux-gnu \102 --prefix=/usr \103 --bindir=/usr/sbin \104 --libdir=/usr/lib32 \105 --sysconfdir=/etc \106 --disable-manpages \107 --disable-static \108 --config-cache</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/lib32/* /usr/lib32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- m32 -->121 122 <!-- - - - - - - - - - -->123 <!-- Multilib - x32bit -->124 <!-- - - - - - - - - - -->125 126 <sect2 arch="ml_x32,ml_all" role="installation">127 <title>Installation of Eudev - x32bit</title>128 129 <para>Clean previous build:</para>130 131 <screen><userinput remap="pre">make distclean</userinput></screen>132 133 <para>Prepare Eudev for compilation:</para>134 135 <screen><userinput remap="configure">CC="gcc -mx32" \136 ./configure --host=x86_64-lfs-linux-gnux32 \137 --prefix=/usr \138 --bindir=/usr/sbin \139 --libdir=/usr/libx32 \140 --sysconfdir=/etc \141 --disable-manpages \142 --disable-static \143 --config-cache</userinput></screen>144 145 <para>Compile the package:</para>146 147 <screen><userinput remap="make">make</userinput></screen>148 149 <para>Install the package:</para>150 151 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install152 cp -Rv DESTDIR/usr/libx32/* /usr/libx32153 rm -rf DESTDIR</userinput></screen>154 155 </sect2><!-- mx32 -->156 86 157 87 <sect2 id="conf-eudev" role="configuration"> -
chapter08/expat.xml
r16cdca7b r2f67a2a 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/lib32 \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/lib32/* /usr/lib3296 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/libx32 \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/libx32/* /usr/libx32128 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
r16cdca7b r2f67a2a 60 60 </sect2> 61 61 62 <!-- - - - - - - - - - -->63 <!-- Multilib - 32bit -->64 <!-- - - - - - - - - - -->65 66 <sect2 arch="ml_32,ml_all" role="installation">67 <title>Installation of File - 32bit</title>68 69 <para>Clean previous build:</para>70 71 <screen><userinput remap="pre">make distclean</userinput></screen>72 73 <para>Prepare File for compilation:</para>74 75 <screen><userinput remap="configure">CC="gcc -m32" ./configure \76 --prefix=/usr \77 --libdir=/usr/lib32 \78 --host=i686-pc-linux-gnu</userinput></screen>79 80 <para>Compile the package:</para>81 82 <screen><userinput remap="make">make</userinput></screen>83 84 <para>Install the package:</para>85 86 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install87 cp -Rv DESTDIR/usr/lib32/* /usr/lib3288 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of File - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make distclean</userinput></screen>102 103 <para>Prepare File for compilation:</para>104 105 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \106 --prefix=/usr \107 --libdir=/usr/libx32 \108 --host=x86_64-pc-linux-gnux32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 62 122 63 <sect2 id="contents-file" role="content"> -
chapter08/gcc.xml
r16cdca7b r2f67a2a 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=..\/lib32$(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 … … 285 267 SEARCH_DIR("/usr/lib");</computeroutput></screen> 286 268 287 <para arch="default">A 32-bit system may see a few different directories. For example, here269 <para>A 32-bit system may see a few different directories. For example, here 288 270 is the output from an i686 machine:</para> 289 271 290 <!-- not using entities here as the dir names has nothing to do with multilib --> 291 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 272 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 292 273 SEARCH_DIR("/usr/local/lib32") 293 274 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
r16cdca7b r2f67a2a 74 74 <para>Prepare Glibc for compilation:</para> 75 75 76 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \76 <screen><userinput remap="configure">../configure --prefix=/usr \ 77 77 --disable-werror \ 78 78 --enable-kernel=&min-kernel; \ 79 79 --enable-stack-protector=strong \ 80 80 --with-headers=/usr/include \ 81 libc_cv_slibdir=/usr/lib</userinput></screen>82 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \83 --disable-werror \84 --enable-kernel=&min-kernel; \85 --enable-stack-protector=strong \86 --with-headers=/usr/include \87 --enable-multi-arch \88 81 libc_cv_slibdir=/usr/lib</userinput></screen> 89 82 … … 499 492 </sect2> 500 493 501 <!-- - - - - - - - - - -->502 <!-- Multilib - 32bit -->503 <!-- - - - - - - - - - -->504 <sect2 arch="ml_32,ml_all">505 <title>Building Glibc - 32bit</title>506 507 <para>Now recompile for m32. The extracted source can be508 reused but needs to be cleaned before installing the m32509 version of Glibc.</para>510 511 <para>Clear the build directory and remove artefacts from512 previous build:</para>513 514 <screen><userinput remap="pre">rm -rf ./*515 find .. -name "*.a" -delete</userinput></screen>516 517 <para>Configure Glibc for m32 with the following commands:</para>518 519 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \520 ../configure \521 --prefix=/usr \522 --host=i686-pc-linux-gnu \523 --build=$(../scripts/config.guess) \524 --enable-kernel=&min-kernel; \525 --with-headers=/usr/include \526 --enable-multi-arch \527 --libdir=/usr/lib32 \528 --libexecdir=/usr/lib32 \529 libc_cv_slibdir=/usr/lib32</userinput></screen>530 531 <para>Compile the package:</para>532 533 <screen><userinput remap="make">make</userinput></screen>534 535 <para>Install the package:</para>536 537 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install538 cp -a DESTDIR/usr/lib32/* /usr/lib32/539 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \540 /usr/include/gnu/</userinput></screen>541 <!-- no longer required as they are created in chap5542 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2543 -->544 545 <para>Add the library name to the dynamic loader config:</para>546 547 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen>548 549 <caution>550 <para>At this point, it is imperative to stop and ensure that the basic551 functions (compiling and linking) of the new toolchain are working as552 expected. To perform a sanity check, run the following commands:</para>553 554 <screen><userinput>echo 'int main(){}' > dummy.c555 gcc -m32 dummy.c556 readelf -l a.out | grep '/ld-linux'</userinput></screen>557 558 <para>If everything is working correctly, there should be no errors,559 and the output of the last command will be of the form:</para>560 561 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>562 563 <para>If the output is not shown as above or there was no output at all,564 then something is wrong. Investigate and retrace the steps to find out565 where the problem is and correct it. This issue must be resolved before566 continuing on.</para>567 568 <para>Once all is well, clean up the test files:</para>569 570 <screen><userinput>rm -v dummy.c a.out</userinput></screen>571 572 </caution>573 574 </sect2><!-- m32 -->575 576 <!-- - - - - - - - - - -->577 <!-- Multilib - x32bit -->578 <!-- - - - - - - - - - -->579 580 <sect2 arch="ml_x32,ml_all">581 <title>Building Glibc - x32bit</title>582 583 <para>Now recompile for mx32. The extracted source can be584 reused but needs to be cleaned before installing the mx32585 version of Glibc.</para>586 587 <para>Clear the build directory and remove artefacts from588 previous build:</para>589 590 <screen><userinput remap="pre">rm -rf ./*591 find .. -name "*.a" -delete</userinput></screen>592 593 <para>Configure Glibc for mx32 with the following commands:</para>594 595 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \596 ../configure \597 --prefix=/usr \598 --host=x86_64-pc-linux-gnux32 \599 --build=$(../scripts/config.guess) \600 --enable-kernel=&min-kernel; \601 --with-headers=/usr/include \602 --enable-multi-arch \603 --libdir=/usr/libx32 \604 --libexecdir=/usr/libx32 \605 libc_cv_slibdir=/usr/libx32</userinput></screen>606 607 <para>Compile the package:</para>608 609 <screen><userinput remap="make">make</userinput></screen>610 611 <para>Install the package:</para>612 613 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install614 cp -a DESTDIR/usr/libx32/* /usr/libx32/615 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \616 /usr/include/gnu/</userinput></screen>617 <!-- no longer required as they are created in chap5618 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2619 -->620 <para>Add the library name to the dynamic loader config:</para>621 622 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen>623 624 <caution>625 <para>At this point, it is imperative to stop and ensure that the basic626 functions (compiling and linking) of the new toolchain are working as627 expected. To perform a sanity check, run the following commands:</para>628 629 <screen><userinput>echo 'int main(){}' > dummy.c630 gcc -mx32 dummy.c631 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>632 633 <para>If everything is working correctly, there should be no errors,634 and the output of the last command will be of the form:</para>635 636 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>637 638 <para>If the output is not shown as above or there was no output at all,639 then something is wrong. Investigate and retrace the steps to find out640 where the problem is and correct it. This issue must be resolved before641 continuing on.</para>642 643 <para>Once all is well, clean up the test files:</para>644 645 <screen><userinput>rm -v dummy.c a.out</userinput></screen>646 647 </caution>648 649 </sect2><!-- mx32 -->650 651 494 <sect2 id="contents-glibc" role="content"> 652 495 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r16cdca7b r2f67a2a 121 121 </sect2> 122 122 123 <!-- - - - - - - - - - -->124 <!-- Multilib - 32bit -->125 <!-- - - - - - - - - - -->126 127 <sect2 arch="ml_32,ml_all" role="installation">128 <title>Installation of GMP - 32bit</title>129 130 <para>Clean previous build:</para>131 132 <screen><userinput remap="pre">make distclean</userinput></screen>133 134 <para>Generic libraries can be created by running135 the following:</para>136 137 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess138 cp -v configfsf.sub config.sub</userinput></screen>139 140 <para>Prepare GMP for compilation:</para>141 142 <screen><userinput remap="configure">ABI="32" \143 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \144 CXXFLAGS="$CFLAGS" \145 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \146 ./configure \147 --host=i686-pc-linux-gnu \148 --prefix=/usr \149 --disable-static \150 --enable-cxx \151 --libdir=/usr/lib32 \152 --includedir=/usr/include/m32/gmp</userinput></screen>153 154 <variablelist>155 <title>The meaning of the new configure options:</title>156 157 <varlistentry>158 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>159 <listitem>160 <para>Some definitions in gmp.h differs for each arch but161 has same name. Therefore, the headers must be separated from162 each other.</para>163 </listitem>164 </varlistentry>165 166 </variablelist>167 168 <para>Compile the package:</para>169 170 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile171 make</userinput></screen>172 173 <important>174 <para>The test suite for GMP in this section is considered critical.175 Do not skip it under any circumstances.</para>176 </important>177 178 <para>Test the results:</para>179 180 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>181 182 <para>Ensure that all 197 tests in the test suite passed.183 Check the results by issuing the following command:</para>184 185 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>186 187 <para>Install the package:</para>188 189 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install190 cp -Rv DESTDIR/usr/lib32/* /usr/lib32191 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/192 rm -rf DESTDIR</userinput></screen>193 194 </sect2><!-- m32 -->195 196 <!-- - - - - - - - - - -->197 <!-- Multilib - x32bit -->198 <!-- - - - - - - - - - -->199 200 <sect2 arch="ml_x32,ml_all" role="installation">201 <title>Installation of GMP - x32-bit</title>202 203 <para>Clean previous build:</para>204 205 <screen><userinput remap="pre">make distclean</userinput></screen>206 207 <para>Generic libraries can be created by running208 the following:</para>209 210 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess211 cp -v configfsf.sub config.sub</userinput></screen>212 213 <para>Prepare GMP for compilation:</para>214 215 <screen><userinput remap="configure">ABI="x32" \216 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \217 CXXFLAGS="$CFLAGS" \218 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \219 ./configure \220 --host=x86_64-pc-linux-gnux32 \221 --prefix=/usr \222 --disable-static \223 --enable-cxx \224 --libdir=/usr/libx32 \225 --includedir=/usr/include/mx32/gmp</userinput></screen>226 227 <para>Compile the package:</para>228 229 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile230 make</userinput></screen>231 232 <important>233 <para>The test suite for GMP in this section is considered critical.234 Do not skip it under any circumstances.</para>235 </important>236 237 <para>Test the results:</para>238 239 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>240 241 <para>Ensure that all 197 tests in the test suite passed.242 Check the results by issuing the following command:</para>243 244 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>245 246 <para>Install the package:</para>247 248 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install249 cp -Rv DESTDIR/usr/libx32/* /usr/libx32250 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/251 rm -rf DESTDIR</userinput></screen>252 253 </sect2><!-- mx32 -->254 255 123 <sect2 id="contents-gmp" role="content"> 256 124 <title>Contents of GMP</title> -
chapter08/kmod.xml
r16cdca7b r2f67a2a 83 83 84 84 </sect2> 85 86 <!-- - - - - - - - - - -->87 <!-- Multilib - 32bit -->88 <!-- - - - - - - - - - -->89 90 <sect2 arch="ml_32,ml_all" role="installation">91 <title>Installation of Kmod - 32bit</title>92 93 <para>Clean previous build but keep man pages as they cannot94 be recreated since xsltproc isn't installed yet:</para>95 96 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile97 make clean</userinput></screen>98 99 <para>Prepare Kmod for compilation:</para>100 101 <screen><userinput remap="configure">CC="gcc -m32" ./configure \102 --host=i686-pc-linux-gnu \103 --prefix=/usr \104 --libdir=/usr/lib32 \105 --sysconfdir=/etc \106 --with-xz \107 --with-zlib \108 --with-rootlibdir=/usr/lib32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/lib32/* /usr/lib32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- m32 -->121 122 <!-- - - - - - - - - - -->123 <!-- Multilib - x32bit -->124 <!-- - - - - - - - - - -->125 126 <sect2 arch="ml_x32,ml_all" role="installation">127 <title>Installation of Kmod - x32bit</title>128 129 <para>Clean previous build but keep man pages as they cannot130 be recreated since xsltproc isn't installed yet:</para>131 132 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile133 make clean</userinput></screen>134 135 <para>Prepare Kmod for compilation:</para>136 137 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \138 --host=x86_64-pc-linux-gnux32 \139 --prefix=/usr \140 --libdir=/usr/libx32 \141 --sysconfdir=/etc \142 --with-xz \143 --with-zlib \144 --with-rootlibdir=/usr/libx32</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/libx32/* /usr/libx32154 rm -rf DESTDIR</userinput></screen>155 156 </sect2><!-- mx32 -->157 85 158 86 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
r16cdca7b r2f67a2a 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 Libcap - 32bit</title>88 89 <para>Clean previous build:</para>90 91 <screen><userinput remap="pre">make distclean</userinput></screen>92 93 <para>Compile the package:</para>94 95 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen>96 97 <para>Install the package:</para>98 99 <screen><userinput remap="install">make lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install100 cp -Rv DESTDIR/usr/lib32/* /usr/lib32101 sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc102 chmod -v 755 /usr/lib32/libcap.so.&libcap-version;103 rm -rf DESTDIR</userinput></screen>104 105 </sect2><!-- m32 -->106 107 <!-- - - - - - - - - - -->108 <!-- Multilib - x32bit -->109 <!-- - - - - - - - - - -->110 111 <sect2 arch="ml_x32,ml_all" role="installation">112 <title>Installation of Libcap - x32bit</title>113 114 <para>Clean previous build:</para>115 116 <screen><userinput remap="pre">make distclean</userinput></screen>117 118 <para>Compile the package:</para>119 120 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>121 122 <para>Install the package:</para>123 124 <screen><userinput remap="install">make lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install125 cp -Rv DESTDIR/usr/libx32/* /usr/libx32126 sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc127 chmod -v 755 /usr/libx32/libcap.so.&libcap-version;128 rm -rf DESTDIR</userinput></screen>129 130 </sect2><!-- mx32 -->131 81 132 82 <sect2 id="contents-libcap" role="content"> -
chapter08/libelf.xml
r16cdca7b r2f67a2a 69 69 </sect2> 70 70 71 <!-- - - - - - - - - - -->72 <!-- Multilib - 32bit -->73 <!-- - - - - - - - - - -->74 75 <sect2 arch="ml_32,ml_all" role="installation">76 <title>Installation of Libelf - 32bit</title>77 78 <para>Clean previous build:</para>79 80 <screen><userinput remap="pre">make distclean</userinput></screen>81 82 <para>Prepare Libtool for compilation:</para>83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \85 --host=i686-pc-linux-gnu \86 --prefix=/usr \87 --libdir=/usr/lib32 \88 --disable-debuginfod \89 --enable-libdebuginfod=dummy</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 -C libelf install98 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc99 cp -Rv DESTDIR/usr/lib32/* /usr/lib32100 rm -rf DESTDIR</userinput></screen>101 102 </sect2><!-- m32 -->103 104 <!-- - - - - - - - - - -->105 <!-- Multilib - x32bit -->106 <!-- - - - - - - - - - -->107 108 <sect2 arch="ml_x32,ml_all" role="installation">109 <title>Installation of Libelf - x32bit</title>110 111 <para>Clean previous build:</para>112 113 <screen><userinput remap="pre">make distclean</userinput></screen>114 115 <para>Prepare Libtool for compilation:</para>116 117 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \118 --host=x86_64-pc-linux-gnux32 \119 --prefix=/usr \120 --libdir=/usr/libx32 \121 --disable-debuginfod \122 --enable-libdebuginfod=dummy</userinput></screen>123 124 <para>Compile the package:</para>125 126 <screen><userinput remap="make">make</userinput></screen>127 128 <para>Install the package:</para>129 130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install131 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc132 cp -Rv DESTDIR/usr/libx32/* /usr/libx32133 rm -rf DESTDIR</userinput></screen>134 135 </sect2><!-- mx32 -->136 137 71 <sect2 id="contents-elfutils" role="content"> 138 72 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r16cdca7b r2f67a2a 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/lib32 \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/lib32/* /usr/lib32122 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/libx32 \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/libx32/* /usr/libx32158 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
r16cdca7b r2f67a2a 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 --host=i686-pc-linux-gnu \95 --prefix=/usr \96 --libdir=/usr/lib32</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/lib32/* /usr/lib32106 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 --host=x86_64-pc-linux-gnux32 \125 --prefix=/usr \126 --libdir=/usr/libx32</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/libx32/* /usr/libx32136 rm -rf DESTDIR</userinput></screen>137 138 </sect2><!-- mx32 -->139 80 140 81 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
r16cdca7b r2f67a2a 150 150 151 151 </sect2> 152 153 <!-- - - - - - - - - - -->154 <!-- Multilib - 32bit -->155 <!-- - - - - - - - - - -->156 <sect2 arch="ml_32,ml_all">157 <title>Building Ncurses - 32bit</title>158 159 <para>Clean previous build:</para>160 161 <screen><userinput remap="pre">make distclean</userinput></screen>162 163 <para>Prepare Ncurses for compilation:</para>164 165 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \166 ./configure --prefix=/usr \167 --host=i686-pc-linux-gnu \168 --libdir=/usr/lib32 \169 --mandir=/usr/share/man \170 --with-shared \171 --without-debug \172 --without-normal \173 --enable-pc-files \174 --enable-widec \175 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>176 177 <para>Compile the package:</para>178 179 <screen><userinput remap="make">make</userinput></screen>180 181 <para>Install the package:</para>182 183 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install184 mkdir -p DESTDIR/usr/lib32/pkgconfig185 for lib in ncurses form panel menu ; do186 rm -vf DESTDIR/usr/lib32/lib${lib}.so187 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so188 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc189 done190 rm -vf DESTDIR/usr/lib32/libcursesw.so191 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so192 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so193 cp -Rv DESTDIR/usr/lib32/* /usr/lib32194 rm -rf DESTDIR</userinput></screen>195 196 </sect2><!-- m32 -->197 198 <!-- - - - - - - - - - -->199 <!-- Multilib - x32bit -->200 <!-- - - - - - - - - - -->201 <sect2 arch="ml_x32,ml_all">202 <title>Building Ncurses - x32bit</title>203 204 <para>Clean previous build:</para>205 206 <screen><userinput remap="pre">make distclean</userinput></screen>207 208 <para>Prepare Ncurses for compilation:</para>209 210 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \211 ./configure --prefix=/usr \212 --host=x86_64-pc-linux-gnux32 \213 --libdir=/usr/libx32 \214 --mandir=/usr/share/man \215 --with-shared \216 --without-debug \217 --without-normal \218 --enable-pc-files \219 --enable-widec \220 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>221 222 <para>Compile the package:</para>223 224 <screen><userinput remap="make">make</userinput></screen>225 226 <para>Install the package:</para>227 228 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install229 mkdir -p DESTDIR/usr/libx32/pkgconfig230 for lib in ncurses form panel menu ; do231 rm -vf DESTDIR/usr/libx32/lib${lib}.so232 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so233 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc234 done235 rm -vf DESTDIR/usr/libx32/libcursesw.so236 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so237 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so238 cp -Rv DESTDIR/usr/libx32/* /usr/libx32239 rm -rf DESTDIR</userinput></screen>240 241 </sect2><!-- mx32 -->242 152 243 153 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r16cdca7b r2f67a2a 99 99 </sect2> 100 100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - 32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_32,ml_all" role="installation">106 <title>Installation of OpenSSL - 32bit</title>107 108 <para>Clean previous build:</para>109 110 <screen><userinput remap="pre">make distclean</userinput></screen>111 112 <para>Prepare OpenSSL for compilation:</para>113 114 <screen><userinput remap="configure">MACHINE="i686" \115 CC="gcc -m32 -march=i686" \116 CXX="g++ -m32 -march=i686" \117 ./config \118 --prefix=/usr \119 --openssldir=/etc/ssl \120 --libdir=lib32 \121 shared \122 zlib-dynamic</userinput></screen>123 124 <para>Compile the package:</para>125 126 <screen><userinput remap="make">make</userinput></screen>127 128 <para>Install the package:</para>129 130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install131 cp -Rv DESTDIR/usr/lib32/* /usr/lib32132 rm -rf DESTDIR</userinput></screen>133 134 </sect2><!-- m32 -->135 136 <!-- - - - - - - - - - -->137 <!-- Multilib - x32bit -->138 <!-- - - - - - - - - - -->139 140 <sect2 arch="ml_x32,ml_all" role="installation">141 <title>Installation of OpenSSL - x32bit</title>142 143 <para>Clean previous build:</para>144 145 <screen><userinput remap="pre">make distclean</userinput></screen>146 147 <para>Prepare OpenSSL for compilation:</para>148 149 <screen><userinput remap="configure">MACHINE="x86_64" \150 CC="gcc -mx32" \151 CXX="g++ -mx32" \152 ./config \153 --prefix=/usr \154 --openssldir=/etc/ssl \155 --libdir=libx32 \156 shared \157 zlib-dynamic</userinput></screen>158 159 <para>Compile the package:</para>160 161 <screen><userinput remap="make">make</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 101 <sect2 id="contents-openssl" role="content"> 172 102 <title>Contents of OpenSSL</title> -
chapter08/readline.xml
r16cdca7b r2f67a2a 101 101 </sect2> 102 102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - 32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_32,ml_all" role="installation">108 <title>Installation of Readline - 32bit</title>109 110 <para>Clean previous build:</para>111 112 <screen><userinput remap="pre">make distclean</userinput></screen>113 114 <para>Prepare Readline for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \117 --host=i686-pc-linux-gnu \118 --prefix=/usr \119 --libdir=/usr/lib32 \120 --disable-static</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install129 cp -Rv DESTDIR/usr/lib32/* /usr/lib32130 rm -rf DESTDIR</userinput></screen>131 132 </sect2><!-- m32 -->133 134 <!-- - - - - - - - - - -->135 <!-- Multilib - x32bit -->136 <!-- - - - - - - - - - -->137 138 <sect2 arch="ml_x32,ml_all" role="installation">139 <title>Installation of Readline - x32bit</title>140 141 <para>Clean previous build:</para>142 143 <screen><userinput remap="pre">make distclean</userinput></screen>144 145 <para>Prepare Readline for compilation:</para>146 147 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \148 --host=x86_64-pc-linux-gnux32 \149 --prefix=/usr \150 --libdir=/usr/libx32 \151 --disable-static</userinput></screen>152 153 <para>Compile the package:</para>154 155 <screen><userinput remap="make">make</userinput></screen>156 157 <para>Install the package:</para>158 159 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install160 cp -Rv DESTDIR/usr/libx32/* /usr/libx32161 rm -rf DESTDIR</userinput></screen>162 163 </sect2><!-- mx32 -->164 165 103 <sect2 id="contents-readline" role="content"> 166 104 <title>Contents of Readline</title> -
chapter08/revisedchroot.xml
r16cdca7b r2f67a2a 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/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 48 find /usr/libx32 -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
r16cdca7b r2f67a2a 49 49 50 50 cd /usr/lib 51 51 52 for LIB in $save_usrlib; do 52 53 objcopy --only-keep-debug $LIB $LIB.dbg … … 56 57 install -vm755 /tmp/$LIB /usr/lib 57 58 rm /tmp/$LIB 58 done</userinput> 59 <userinput arch="ml_32,ml_all"> 60 cd /usr/lib32 61 for LIB in $save_usrlib; do 62 objcopy --only-keep-debug $LIB $LIB.dbg 63 cp $LIB /tmp/$LIB 64 strip --strip-unneeded /tmp/$LIB 65 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 66 install -vm755 /tmp/$LIB /usr/lib32 67 rm /tmp/$LIB 68 done</userinput> 69 <userinput arch="ml_x32,ml_all"> 70 cd /usr/libx32 71 for LIB in $save_usrlib; do 72 objcopy --only-keep-debug $LIB $LIB.dbg 73 cp $LIB /tmp/$LIB 74 strip --strip-unneeded /tmp/$LIB 75 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 76 install -vm755 /tmp/$LIB /usr/libx32 77 rm /tmp/$LIB 78 done</userinput><userinput> 59 done 79 60 80 61 online_usrbin="bash find strip" … … 97 78 install -vm755 /tmp/$LIB /usr/lib 98 79 rm /tmp/$LIB 99 done</userinput><userinput arch="ml_32,ml_all"> 100 for LIB in $online_usrlib; do 101 cp /usr/lib32/$LIB /tmp/$LIB 102 strip --strip-unneeded /tmp/$LIB 103 install -vm755 /tmp/$LIB /usr/lib32 104 rm /tmp/$LIB 105 done</userinput><userinput arch="ml_x32,ml_all"> 106 for LIB in $online_usrlib; do 107 cp /usr/libx32/$LIB /tmp/$LIB 108 strip --strip-unneeded /tmp/$LIB 109 install -vm755 /tmp/$LIB /usr/libx32 110 rm /tmp/$LIB 111 done</userinput><userinput> 80 done 112 81 113 82 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 120 89 ;; 121 90 esac 122 done</userinput><userinput arch="ml_32,ml_all"> 123 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg); do 124 case "$online_usrlib $save_usrlib" in 125 *$(basename $i)* ) ;; 126 * ) strip --strip-unneeded $i ;; 127 esac 128 done</userinput><userinput arch="ml_x32,ml_all"> 129 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg); do 130 case "$online_usrlib $save_usrlib" in 131 *$(basename $i)* ) ;; 132 * ) strip --strip-unneeded $i ;; 133 esac 134 done</userinput><userinput> 91 done 135 92 136 93 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
r16cdca7b r2f67a2a 219 219 220 220 </sect2> 221 222 <!-- - - - - - - - - - -->223 <!-- Multilib - 32bit -->224 <!-- - - - - - - - - - -->225 226 <sect2 arch="ml_32,ml_all" role="installation">227 <title>Installation of systemd - 32-bit</title>228 229 <para>Clean previous build:</para>230 231 <screen><userinput remap="pre">rm -rf *</userinput></screen>232 233 <para>Create a symlink to work around missing xsltproc:</para>234 235 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->236 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>237 238 <!-- with cross-LFS we have util-linux in place:239 <para>Because we have not yet installed the final version of Util-Linux,240 create links to the libraries in the approprite location:</para>241 242 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do243 ln -sf $file /usr/lib32/244 done</userinput></screen>245 -->246 247 <para>Prepare systemd for compilation:</para>248 249 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \250 CC="gcc -m32 -march=i686" \251 CXX="g++ -m32 -march=i686" \252 LANG=en_US.UTF-8 \253 meson --prefix=/usr \254 --sysconfdir=/etc \255 --localstatedir=/var \256 -Dblkid=true \257 -Dbuildtype=release \258 -Ddefault-dnssec=no \259 -Dfirstboot=false \260 -Dinstall-tests=false \261 -Dkill-path=/bin/kill \262 -Dkmod-path=/bin/kmod \263 -Dldconfig=false \264 -Dmount-path=/bin/mount \265 -Drootprefix= \266 -Drootlibdir=/usr/lib32 \267 -Dsplit-usr=true \268 -Dsulogin-path=/sbin/sulogin \269 -Dsysusers=false \270 -Dumount-path=/bin/umount \271 -Db_lto=false \272 ..</userinput></screen>273 274 <para>Compile the package:</para>275 276 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>277 278 <para>Install the package:</para>279 280 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install281 cp -Rv DESTDIR/usr/lib32/* /usr/lib32282 rm -rf DESTDIR283 rm -f /usr/bin/xsltproc</userinput></screen>284 285 </sect2><!-- m32 -->286 287 <!-- - - - - - - - - - -->288 <!-- Multilib - x32bit -->289 <!-- - - - - - - - - - -->290 291 <sect2 arch="ml_x32,ml_all" role="installation">292 <title>Installation of systemd - x32-bit</title>293 294 <para>Clean previous build:</para>295 296 <screen><userinput remap="pre">rm -rf *</userinput></screen>297 298 <para>Create a symlink to work around missing xsltproc:</para>299 300 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>301 302 <para>Fix an issue on x32:</para>303 304 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c305 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>306 307 <para>Prepare systemd for compilation:</para>308 309 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \310 CC="gcc -mx32" \311 CXX="g++ -mx32" \312 CFLAGS+="-Wno-error=shift-overflow" \313 CXXFLAGS+="-Wno-error=shift-overflow" \314 LANG=en_US.UTF-8 \315 meson --prefix=/usr \316 --sysconfdir=/etc \317 --localstatedir=/var \318 -Dblkid=true \319 -Dbuildtype=release \320 -Ddefault-dnssec=no \321 -Dfirstboot=false \322 -Dinstall-tests=false \323 -Dkill-path=/bin/kill \324 -Dkmod-path=/bin/kmod \325 -Dldconfig=false \326 -Dmount-path=/bin/mount \327 -Drootprefix= \328 -Drootlibdir=/usr/libx32 \329 -Dsplit-usr=true \330 -Dsulogin-path=/sbin/sulogin \331 -Dsysusers=false \332 -Dumount-path=/bin/umount \333 -Db_lto=false \334 ..</userinput></screen>335 336 <para>Compile the package:</para>337 338 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>339 340 <para>Install the package:</para>341 342 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install343 cp -Rv DESTDIR/usr/lib32/* /usr/lib32344 rm -rf DESTDIR345 rm -f /usr/bin/xsltproc</userinput></screen>346 347 </sect2><!-- mx32 -->348 221 349 222 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
r16cdca7b r2f67a2a 116 116 --> 117 117 </sect2> 118 119 <!-- - - - - - - - - - -->120 <!-- Multilib - 32bit -->121 <!-- - - - - - - - - - -->122 123 <sect2 arch="ml_32,ml_all" role="installation">124 <title>Installation of Util-linux - 32-bit</title>125 126 <para>Clean previous build:</para>127 128 <screen><userinput remap="pre">make distclean</userinput></screen>129 130 <para>Prepare Util-linux for compilation:</para>131 132 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \133 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \134 --host=i686-pc-linux-gnu \135 --libdir=/usr/lib32 \136 --docdir=/usr/share/doc/util-linux-&util-linux-version; \137 --disable-chfn-chsh \138 --disable-login \139 --disable-nologin \140 --disable-su \141 --disable-setpriv \142 --disable-runuser \143 --disable-pylibmount \144 --disable-static \145 --without-python \146 --without-systemd \147 --without-systemdsystemunitdir \148 --enable-libmount-force-mountinfo</userinput></screen>149 150 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \151 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \152 --host=i686-pc-linux-gnu \153 --libdir=/usr/lib32 \154 --docdir=/usr/share/doc/util-linux-&util-linux-version; \155 --disable-chfn-chsh \156 --disable-login \157 --disable-nologin \158 --disable-su \159 --disable-setpriv \160 --disable-runuser \161 --disable-pylibmount \162 --disable-static \163 --without-python \164 --enable-libmount-force-mountinfo</userinput></screen>165 166 <para>Compile the package:</para>167 168 <screen><userinput remap="make">make</userinput></screen>169 170 <para>Install the package:</para>171 172 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install173 cp -Rv DESTDIR/usr/lib32/* /usr/lib32174 rm -rf DESTDIR</userinput></screen>175 176 </sect2><!-- m32 -->177 178 <!-- - - - - - - - - - -->179 <!-- Multilib - x32bit -->180 <!-- - - - - - - - - - -->181 182 <sect2 arch="ml_x32,ml_all" role="installation">183 <title>Installation of Util-linux - x32-bit</title>184 185 <para>Clean previous build:</para>186 187 <screen><userinput remap="pre">make distclean</userinput></screen>188 189 <para>Prepare Util-linux for compilation:</para>190 191 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \192 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \193 --host=x86_64-pc-linux-gnux32 \194 --libdir=/usr/libx32 \195 --docdir=/usr/share/doc/util-linux-&util-linux-version; \196 --disable-chfn-chsh \197 --disable-login \198 --disable-nologin \199 --disable-su \200 --disable-setpriv \201 --disable-runuser \202 --disable-pylibmount \203 --disable-static \204 --without-python \205 --without-systemd \206 --without-systemdsystemunitdir \207 --enable-libmount-force-mountinfo</userinput></screen>208 209 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \210 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \211 --host=x86_64-pc-linux-gnux32 \212 --libdir=/usr/libx32 \213 --docdir=/usr/share/doc/util-linux-&util-linux-version; \214 --disable-chfn-chsh \215 --disable-login \216 --disable-nologin \217 --disable-su \218 --disable-setpriv \219 --disable-runuser \220 --disable-pylibmount \221 --disable-static \222 --without-python \223 --enable-libmount-force-mountinfo</userinput></screen>224 225 <para>Compile the package:</para>226 227 <screen><userinput remap="make">make</userinput></screen>228 229 <para>Install the package:</para>230 231 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install232 cp -Rv DESTDIR/usr/libx32/* /usr/libx32233 rm -rf DESTDIR</userinput></screen>234 235 </sect2><!-- mx32 -->236 118 237 119 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r16cdca7b r2f67a2a 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Xz - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Xz for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --host=i686-pc-linux-gnu \82 --prefix=/usr \83 --libdir=/usr/lib32 \84 --disable-static</userinput></screen>85 86 <para>Compile the package:</para>87 88 <screen><userinput remap="make">make</userinput></screen>89 90 <para>Install the package:</para>91 92 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install93 cp -Rv DESTDIR/usr/lib32/* /usr/lib3294 rm -rf DESTDIR</userinput></screen>95 96 </sect2><!-- m32 -->97 98 <!-- - - - - - - - - - -->99 <!-- Multilib - x32bit -->100 <!-- - - - - - - - - - -->101 102 <sect2 arch="ml_x32,ml_all" role="installation">103 <title>Installation of Xz - x32bit</title>104 105 <para>Clean previous build:</para>106 107 <screen><userinput remap="pre">make distclean</userinput></screen>108 109 <para>Prepare Xz for compilation:</para>110 111 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \112 --host=x86_64-pc-linux-gnux32 \113 --prefix=/usr \114 --libdir=/usr/libx32 \115 --disable-static</userinput></screen>116 117 <para>Compile the package:</para>118 119 <screen><userinput remap="make">make</userinput></screen>120 121 <para>Install the package:</para>122 123 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install124 cp -Rv DESTDIR/usr/libx32/* /usr/libx32125 rm -rf DESTDIR</userinput></screen>126 127 </sect2><!-- mx32 -->128 66 129 67 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
r16cdca7b r2f67a2a 64 64 </sect2> 65 65 66 <!-- - - - - - - - - - -->67 <!-- Multilib - 32bit -->68 <!-- - - - - - - - - - -->69 70 <sect2 arch="ml_32,ml_all" role="installation">71 <title>Installation of Zlib - 32bit</title>72 73 <para>Clean previous build:</para>74 75 <screen><userinput remap="pre">make distclean</userinput></screen>76 77 <para>Prepare Zlib for compilation:</para>78 79 <screen><userinput remap="configure">CC="gcc -m32" \80 ./configure --prefix=/usr \81 --libdir=/usr/lib32</userinput></screen>82 83 <para>Compile the package:</para>84 85 <screen><userinput remap="make">make</userinput></screen>86 87 <para>Install the package:</para>88 89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install90 cp -Rv DESTDIR/usr/lib32/* /usr/lib3291 rm -rf DESTDIR</userinput></screen>92 93 </sect2><!-- m32 -->94 95 <!-- - - - - - - - - - -->96 <!-- Multilib - x32bit -->97 <!-- - - - - - - - - - -->98 99 <sect2 arch="ml_x32,ml_all" role="installation">100 <title>Installation of Zlib - x32bit</title>101 102 <screen><userinput remap="pre">make distclean</userinput></screen>103 104 <para>Prepare Zlib for compilation:</para>105 106 <screen><userinput remap="configure">CC="gcc -mx32" \107 ./configure --prefix=/usr \108 --libdir=/usr/libx32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 122 66 <sect2 id="contents-zlib" role="content"> 123 67 <title>Contents of Zlib</title> -
chapter08/zstd.xml
r16cdca7b r2f67a2a 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">make prefix=/usr DESTDIR=$PWD/DESTDIR install86 cp -Rv DESTDIR/usr/lib/* /usr/lib32/87 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc88 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of Zstd - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make clean</userinput></screen>102 103 <para>Compile the package:</para>104 105 <screen><userinput remap="make">CC="gcc -mx32" make</userinput></screen>106 107 <para>Install the package:</para>108 109 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install110 cp -Rv DESTDIR/usr/lib/* /usr/libx32/111 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc112 rm -rf DESTDIR</userinput></screen>113 114 </sect2><!-- mx32 -->115 67 116 68 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r16cdca7b r2f67a2a 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> -
packages.ent
r16cdca7b r2f67a2a 355 355 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 356 356 357 <!ENTITY isl-version "0.22.1">358 <!ENTITY isl-size "1.6 MB">359 <!ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz">360 <!ENTITY isl-md5 "6e124849a9b62e3e2d5d51e955323f6e">361 <!ENTITY isl-home "http://isl.gforge.inria.fr/">362 <!ENTITY isl-fin-du "20 MB">363 <!ENTITY isl-fin-sbu "0.1 SBU">364 365 357 <!ENTITY jinja2-version "3.0.1"> 366 358 <!ENTITY jinja2-size "264 KB"> -
prologue/bookinfo.xml
r16cdca7b r2f67a2a 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
r16cdca7b r2f67a2a 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.