Changes in / [a161ad9:d11686c]
- Files:
-
- 3 deleted
- 51 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
ra161ad9 rd11686c 35 35 endif 36 36 37 ifndef ARCH38 ARCH = default39 endif40 ifneq ($(ARCH), default)41 ifneq ($(ARCH), ml_32)42 ifneq ($(ARCH), ml_x32)43 ifneq ($(ARCH), ml_all)44 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)45 endif46 endif47 endif48 endif49 50 37 book: validate profile-html 51 38 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 143 130 --output $(RENDERTMP)/lfs-html2.xml \ 144 131 --stringparam profile.revision $(REV) \ 145 --stringparam profile.arch $(ARCH) \146 132 stylesheets/lfs-xsl/profile.xsl \ 147 133 index.xml … … 197 183 $(Q)xsltproc --nonet --xinclude \ 198 184 --stringparam profile.revision $(REV) \ 199 --stringparam profile.arch $(ARCH) \200 185 --output $(RENDERTMP)/md5sum.xml \ 201 186 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
ra161ad9 rd11686c 61 61 <itemizedlist> 62 62 <listitem> 63 <para>The version of the book being used (in this case &version; <phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>63 <para>The version of the book being used (in this case &version;)</para> 64 64 </listitem> 65 65 <listitem> … … 76 76 </listitem> 77 77 <listitem> 78 <para>Note whether you have deviated from the book at all </para>78 <para>Note whether you have deviated from the book at all </para> 79 79 </listitem> 80 80 </itemizedlist> -
chapter01/changelog.xml
ra161ad9 rd11686c 11 11 <title>Changelog</title> 12 12 13 <para>This is version &version; <phrase arch="ml_32,ml_x32,ml_all">&version;-multilib</phrase>of the Linux From Scratch book, dated13 <para>This is version &version; of the Linux From Scratch book, dated 14 14 &releasedate;. If this book is more than six months old, a newer and better 15 15 version is probably already available. To find out, please check one of the -
chapter02/hostreqs.xml
ra161ad9 rd11686c 265 265 bash version-check.sh</userinput></screen> 266 266 267 <para arch="ml_32,ml_x32,ml_all"> 268 Building multilib support requires the kernel of the host system 269 to have 32-bit emulation support included. 270 </para> 271 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 272 [*] IA32 Emulation 273 <M> IA32 a.out support 274 [*] x32 ABI for 64-bit mode 275 </screen> 276 277 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 278 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 279 enabled but only 'IA32 Emulation', you can continue to build your 280 system but you have to leave out any sections showing instructions 281 for building x32 objects. If neither 'IA32 Emulation' nor 282 'x32 ABI for 64-bit mode' is enabled, you will run in errors 283 latest when building <application>glibc</application> in Chapter 6, 284 so an upgrade of your host system kernel is required. 285 </para> 286 287 </sect2> 288 267 </sect2> 289 268 </sect1> -
chapter03/packages.xml
ra161ad9 rd11686c 378 378 379 379 <varlistentry> 380 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>381 <listitem>382 <para>Home page: <ulink url="&isl-home;"/></para>383 <para>Download: <ulink url="&isl-url;"/></para>384 <para>MD5 sum: <literal>&isl-md5;</literal></para>385 </listitem>386 </varlistentry>387 388 <varlistentry>389 380 <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> 390 381 <listitem> -
chapter04/addinguser.xml
ra161ad9 rd11686c 85 85 x86_64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 <screen arch="ml_32" ><userinput>chown -v lfs $LFS/lib32</userinput></screen>88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>90 87 91 88 <note><para>In some host systems, the following <command>su</command> command does not complete -
chapter04/creatingminlayout.xml
ra161ad9 rd11686c 31 31 x86_64) mkdir -pv $LFS/lib64 ;; 32 32 esac</userinput></screen> 33 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib3234 ln -sv usr/lib32 $LFS/lib32</userinput></screen>35 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx3236 ln -sv usr/libx32 $LFS/libx32</userinput></screen>37 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}3238 ln -sv usr/lib32 $LFS/lib3239 ln -sv usr/libx32 $LFS/libx32</userinput></screen>40 33 41 34 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled -
chapter04/settingenviron.xml
ra161ad9 rd11686c 39 39 <filename>.bashrc</filename> file now:</para> 40 40 41 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF"41 <screen><userinput>cat > ~/.bashrc << "EOF" 42 42 <literal>set +h 43 43 umask 022 … … 50 50 CONFIG_SITE=$LFS/usr/share/config.site 51 51 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 52 EOF</userinput></screen>53 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF"54 <literal>set +h55 umask 02256 LFS=/mnt/lfs57 LC_ALL=POSIX58 LFS_TGT=x86_64-lfs-linux-gnu59 LFS_TGT32=i686-lfs-linux-gnu60 LFS_TGTX32=x86_64-lfs-linux-gnux3261 PATH=/usr/bin62 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi63 PATH=$LFS/tools/bin:$PATH64 CONFIG_SITE=$LFS/usr/share/config.site65 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>66 52 EOF</userinput></screen> 67 53 -
chapter05/binutils-pass1.xml
ra161ad9 rd11686c 71 71 <para>Now prepare Binutils for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \73 <screen><userinput remap="configure">../configure --prefix=$LFS/tools \ 74 74 --with-sysroot=$LFS \ 75 75 --target=$LFS_TGT \ … … 77 77 --enable-gprofng=no \ 78 78 --disable-werror</userinput></screen> 79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \80 --with-sysroot=$LFS \81 --target=$LFS_TGT \82 --disable-nls \83 --enable-gprofng=no \84 --disable-werror \85 --enable-multilib</userinput></screen>86 79 87 80 <variablelist> … … 140 133 </varlistentry> 141 134 142 <varlistentry arch="ml_32,ml_x32,ml_all">143 <term><parameter>--enable-multilib</parameter></term>144 <listitem>145 <para>Enables multilib support.</para>146 </listitem>147 </varlistentry>148 149 135 </variablelist> 150 136 -
chapter05/gcc-pass1.xml
ra161ad9 rd11686c 63 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 64 65 <para arch="default">On x86_64 hosts, set the default directory name for65 <para>On x86_64 hosts, set the default directory name for 66 66 64-bit libraries to <quote>lib</quote>:</para> 67 67 68 <screen arch="default"><userinput remap="pre">case $(uname -m) in68 <screen><userinput remap="pre">case $(uname -m) in 69 69 x86_64) 70 70 sed -e '/m64=/s/lib64/lib/' \ … … 73 73 esac</userinput></screen> 74 74 75 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for76 libraries:</para>77 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \79 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \80 -i.orig gcc/config/i386/t-linux6481 </userinput></screen>82 83 75 <para>The GCC documentation recommends building GCC 84 76 in a dedicated build directory:</para> … … 89 81 <para>Prepare GCC for compilation:</para> 90 82 91 <screen arch="default"><userinput remap="configure">../configure \83 <screen><userinput remap="configure">../configure \ 92 84 --target=$LFS_TGT \ 93 85 --prefix=$LFS/tools \ … … 109 101 --disable-libstdcxx \ 110 102 --enable-languages=c,c++</userinput></screen> 111 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"112 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"113 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"114 arch="ml_all">mlist=m64,m32,mx32</userinput>115 <userinput remap="configure">../configure \116 --target=$LFS_TGT \117 --prefix=$LFS/tools \118 --with-glibc-version=&glibc-version; \119 --with-sysroot=$LFS \120 --with-newlib \121 --without-headers \122 --enable-default-pie \123 --enable-default-ssp \124 --enable-initfini-array \125 --disable-nls \126 --disable-shared \127 --enable-multilib --with-multilib-list=$mlist \128 --disable-decimal-float \129 --disable-threads \130 --disable-libatomic \131 --disable-libgomp \132 --disable-libquadmath \133 --disable-libssp \134 --disable-libvtv \135 --disable-libstdcxx \136 --enable-languages=c,c++</userinput></screen>137 138 103 <variablelist> 139 104 <title>The meaning of the configure options:</title> … … 192 157 </varlistentry> 193 158 194 <varlistentry arch="default">159 <varlistentry> 195 160 <term><parameter>--disable-multilib</parameter></term> 196 161 <listitem> 197 162 <para>On x86_64, LFS does not support a multilib configuration. 198 163 This switch is harmless for x86.</para> 199 </listitem>200 </varlistentry>201 <varlistentry arch="ml_32,ml_x32,ml_all">202 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>203 <listitem>204 <para>LFS canbe used to support multilib. Which they are is205 specified in the multilib list.</para>206 164 </listitem> 207 165 </varlistentry> -
chapter05/glibc.xml
ra161ad9 rd11686c 48 48 operation of the dynamic library loader:</para> 49 49 50 <screen arch="default"><userinput remap="pre">case $(uname -m) in50 <screen><userinput remap="pre">case $(uname -m) in 51 51 i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 52 52 ;; … … 55 55 ;; 56 56 esac</userinput></screen> 57 <!-- no ld-linux.so.2 here as multilib is based on x86_64, not on i686 -->58 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib6459 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>60 57 61 58 <note> … … 89 86 <para>Next, prepare Glibc for compilation:</para> 90 87 91 <screen arch="default"><userinput remap="configure">../configure \88 <screen><userinput remap="configure">../configure \ 92 89 --prefix=/usr \ 93 90 --host=$LFS_TGT \ … … 97 94 --disable-nscd \ 98 95 libc_cv_slibdir=/usr/lib</userinput></screen> 99 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \100 --prefix=/usr \101 --host=$LFS_TGT \102 --build=$(../scripts/config.guess) \103 --enable-kernel=&min-kernel; \104 --with-headers=$LFS/usr/include \105 --enable-multi-arch \106 libc_cv_slibdir=/usr/lib</userinput></screen>107 96 108 97 <variablelist> … … 224 213 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 225 214 226 <para arch="default">Note that for 32-bit machines, the interpreter name will be215 <para>Note that for 32-bit machines, the interpreter name will be 227 216 <filename>/lib/ld-linux.so.2</filename>.</para> 228 217 … … 252 241 </sect2> 253 242 254 <!-- - - - - - - - - - -->255 <!-- Multilib - 32bit -->256 <!-- - - - - - - - - - -->257 <sect2 arch="ml_32,ml_all">258 <title>Building Glibc - 32bit</title>259 260 <para>Now recompile for m32. The extracted source can be261 reused but needs to be cleaned before installing the m32262 version of Glibc.</para>263 264 <para>Clear the build directory and remove artefacts from265 previous build:</para>266 267 <screen><userinput remap="pre">make clean268 find .. -name "*.a" -delete</userinput></screen>269 270 <para>Configure Glibc for m32 with the following commands:</para>271 272 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \273 CXX="$LFS_TGT-g++ -m32" \274 ../configure \275 --prefix=/usr \276 --host=$LFS_TGT32 \277 --build=$(../scripts/config.guess) \278 --enable-kernel=&min-kernel; \279 --with-headers=$LFS/usr/include \280 --enable-multi-arch \281 --libdir=/usr/lib32 \282 --libexecdir=/usr/lib32 \283 libc_cv_slibdir=/usr/lib32</userinput></screen>284 285 <para>Compile the package:</para>286 287 <screen><userinput remap="make">make</userinput></screen>288 289 <para>Install the package:</para>290 291 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install292 cp -a DESTDIR/usr/lib32 $LFS/usr/293 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \294 $LFS/usr/include/gnu/295 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>296 297 298 <caution>299 <para>At this point, it is imperative to stop and ensure that the basic300 functions (compiling and linking) of the new toolchain are working as301 expected. To perform a sanity check, run the following commands:</para>302 303 <screen><userinput>echo 'int main(){}' > dummy.c304 $LFS_TGT-gcc -m32 dummy.c305 readelf -l a.out | grep '/ld-linux'</userinput></screen>306 307 <para>If everything is working correctly, there should be no errors,308 and the output of the last command will be of the form:</para>309 310 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>311 312 <para>If the output is not shown as above or there was no output at all,313 then something is wrong. Investigate and retrace the steps to find out314 where the problem is and correct it. This issue must be resolved before315 continuing on.</para>316 317 <para>Once all is well, clean up the test files:</para>318 319 <screen><userinput>rm -v dummy.c a.out</userinput></screen>320 321 </caution>322 323 </sect2><!-- m32 -->324 325 <!-- - - - - - - - - - -->326 <!-- Multilib - x32bit -->327 <!-- - - - - - - - - - -->328 329 <sect2 arch="ml_x32,ml_all">330 <title>Building Glibc - x32bit</title>331 332 <para>Now recompile for mx32. The extracted source can be333 reused but needs to be cleaned before installing the mx32334 version of Glibc.</para>335 336 <para>Clear the build directory and remove artefacts from337 previous build:</para>338 339 <screen><userinput remap="pre">make clean340 find .. -name "*.a" -delete</userinput></screen>341 342 <para>Configure Glibc for mx32 with the following commands:</para>343 344 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \345 CXX="$LFS_TGT-g++ -mx32" \346 ../configure \347 --prefix=/usr \348 --host=$LFS_TGTX32 \349 --build=$(../scripts/config.guess) \350 --enable-kernel=&min-kernel; \351 --with-headers=$LFS/usr/include \352 --enable-multi-arch \353 --libdir=/usr/libx32 \354 --libexecdir=/usr/libx32 \355 libc_cv_slibdir=/usr/libx32</userinput></screen>356 357 <para>Compile the package:</para>358 359 <screen><userinput remap="make">make</userinput></screen>360 361 <para>Install the package:</para>362 363 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install364 cp -a DESTDIR/usr/libx32 $LFS/usr/365 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \366 $LFS/usr/include/gnu/367 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>368 369 <caution>370 <para>At this point, it is imperative to stop and ensure that the basic371 functions (compiling and linking) of the new toolchain are working as372 expected. To perform a sanity check, run the following commands:</para>373 374 <screen><userinput>echo 'int main(){}' > dummy.c375 $LFS_TGT-gcc -mx32 dummy.c376 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>377 378 <para>If everything is working correctly, there should be no errors,379 and the output of the last command will be of the form:</para>380 381 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>382 383 <para>If the output is not shown as above or there was no output at all,384 then something is wrong. Investigate and retrace the steps to find out385 where the problem is and correct it. This issue must be resolved before386 continuing on.</para>387 388 <para>Once all is well, clean up the test files:</para>389 390 <screen><userinput>rm -v dummy.c a.out</userinput></screen>391 392 </caution>393 394 </sect2><!-- mx32 -->395 396 243 <sect2 role="content"> 397 244 <title/> -
chapter05/libstdc++.xml
ra161ad9 rd11686c 61 61 <para>Prepare Libstdc++ for compilation:</para> 62 62 63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \ 64 --host=$LFS_TGT \ 65 --build=$(../config.guess) \ 66 --prefix=/usr \ 67 --enable-multilib \ 68 --disable-nls \ 69 --disable-libstdcxx-pch \ 70 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen> 71 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \ 63 <screen><userinput remap="configure">../libstdc++-v3/configure \ 72 64 --host=$LFS_TGT \ 73 65 --build=$(../config.guess) \ … … 87 79 should be used instead of the one in 88 80 <filename>/usr/bin</filename>.</para> 89 </listitem>90 </varlistentry>91 92 <varlistentry arch="ml_32,ml_x32,ml_all">93 <term><parameter>--enable-multilib</parameter></term>94 <listitem>95 <para>Enable building multilib objects.</para>96 81 </listitem> 97 82 </varlistentry> -
chapter06/binutils-pass2.xml
ra161ad9 rd11686c 65 65 <para>Prepare Binutils for compilation:</para> 66 66 67 <screen arch="default"><userinput remap="configure">../configure \67 <screen><userinput remap="configure">../configure \ 68 68 --prefix=/usr \ 69 69 --build=$(../config.guess) \ … … 74 74 --disable-werror \ 75 75 --enable-64-bit-bfd</userinput></screen> 76 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \77 --prefix=/usr \78 --build=$(../config.guess) \79 --host=$LFS_TGT \80 --disable-nls \81 --enable-shared \82 --enable-gprofng=no \83 --disable-werror \84 --enable-64-bit-bfd \85 --enable-multilib</userinput></screen>86 76 87 77 <variablelist> … … 102 92 <para>Enables 64-bit support (on hosts with smaller word sizes). 103 93 This may not be needed on 64-bit systems, but it does no harm.</para> 104 </listitem>105 </varlistentry>106 107 <varlistentry arch="ml_32,ml_x32,ml_all">108 <term><parameter>--enable-multilib</parameter></term>109 <listitem>110 <para>Enables multilib support in bintutils.</para>111 94 </listitem> 112 95 </varlistentry> -
chapter06/gcc-pass2.xml
ra161ad9 rd11686c 58 58 mv -v mpc-&mpc-version; mpc</userinput></screen> 59 59 60 61 <para arch="default">If building on x86_64, change the default directory name for 64-bit 60 <para>If building on x86_64, change the default directory name for 64-bit 62 61 libraries to <quote>lib</quote>:</para> 63 62 64 <screen arch="default"><userinput remap="pre">case $(uname -m) in63 <screen><userinput remap="pre">case $(uname -m) in 65 64 x86_64) 66 65 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 67 66 ;; 68 67 esac</userinput></screen> 69 70 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the71 libraries:</para>72 73 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \74 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \75 -i.orig gcc/config/i386/t-linux64</userinput></screen>76 68 77 69 <para>Override the building rule of libgcc and libstdc++ headers, to … … 91 83 <para>Now prepare GCC for compilation:</para> 92 84 93 <screen arch="default"><userinput remap="configure">../configure \85 <screen><userinput remap="configure">../configure \ 94 86 --build=$(../config.guess) \ 95 87 --host=$LFS_TGT \ … … 102 94 --disable-nls \ 103 95 --disable-multilib \ 104 --disable-libatomic \105 --disable-libgomp \106 --disable-libquadmath \107 --disable-libsanitizer \108 --disable-libssp \109 --disable-libvtv \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 --target=$LFS_TGT \119 LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \120 --prefix=/usr \121 --with-build-sysroot=$LFS \122 --enable-default-pie \123 --enable-default-ssp \124 --disable-nls \125 --enable-multilib --with-multilib-list=$mlist \126 96 --disable-libatomic \ 127 97 --disable-libgomp \ -
chapter06/ncurses.xml
ra161ad9 rd11686c 190 190 </sect2> 191 191 192 <!-- - - - - - - - - - -->193 <!-- Multilib - 32bit -->194 <!-- - - - - - - - - - -->195 <sect2 arch="ml_32,ml_all">196 <title>Building Ncurses - 32bit</title>197 198 <para>Clean previous build:</para>199 200 <screen><userinput remap="pre">make distclean</userinput></screen>201 202 <para>Prepare Ncurses for compilation:</para>203 204 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \205 CXX="$LFS_TGT-g++ -m32" \206 ./configure --prefix=/usr \207 --host=$LFS_TGT32 \208 --build=$(./config.guess) \209 --libdir=/usr/lib32 \210 --mandir=/usr/share/man \211 --with-shared \212 --without-normal \213 --with-cxx-shared \214 --without-debug \215 --without-ada \216 --disable-stripping \217 --enable-widec</userinput></screen>218 219 <para>Compile the package:</para>220 221 <screen><userinput remap="make">make</userinput></screen>222 223 <para>Install the package:</para>224 225 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install226 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so227 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32228 rm -rf DESTDIR</userinput></screen>229 230 </sect2><!-- m32 -->231 232 <!-- - - - - - - - - - -->233 <!-- Multilib - x32bit -->234 <!-- - - - - - - - - - -->235 <sect2 arch="ml_x32,ml_all">236 <title>Building Ncurses - x32bit</title>237 238 <para>Clean previous build:</para>239 240 <screen><userinput remap="pre">make distclean</userinput></screen>241 242 <para>Prepare Ncurses for compilation:</para>243 244 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \245 CXX="$LFS_TGT-g++ -mx32" \246 ./configure --prefix=/usr \247 --host=$LFS_TGTX32 \248 --build=$(./config.guess) \249 --libdir=/usr/libx32 \250 --mandir=/usr/share/man \251 --with-shared \252 --without-normal \253 --with-cxx-shared \254 --without-debug \255 --without-ada \256 --disable-stripping \257 --enable-widec</userinput></screen>258 259 <para>Compile the package:</para>260 261 <screen><userinput remap="make">make</userinput></screen>262 263 <para>Install the package:</para>264 265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install266 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so267 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32268 rm -rf DESTDIR</userinput></screen>269 270 </sect2><!-- mx32 -->271 272 192 <sect2 role="content"> 273 193 <title/> -
chapter07/changingowner.xml
ra161ad9 rd11686c 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for42 multilib support. Change their ownership, too:</para>43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>45 46 41 </sect1> -
chapter07/cleanup.xml
ra161ad9 rd11686c 24 24 failures. Remove those files now:</para> 25 25 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32"> 27 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32"> 28 find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all"> 29 find /usr/lib{,x}32 -name \*.la -delete</userinput></screen> 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 30 27 31 28 <para> -
chapter07/creatingdirs.xml
ra161ad9 rd11686c 42 42 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 43 43 44 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib45 support has already been created while previous installation steps.</para>46 47 44 <para>Directories are, by default, created with permission mode 755, but 48 45 this is not desirable everywhere. In the commands above, two -
chapter07/util-linux.xml
ra161ad9 rd11686c 127 127 </sect2> 128 128 129 <!-- - - - - - - - - - -->130 <!-- Multilib - 32bit -->131 <!-- - - - - - - - - - -->132 133 <sect2 arch="ml_32,ml_all" role="installation">134 <title>Installation of Util-linux - 32-bit</title>135 136 <para>Clean previous build:</para>137 138 <screen><userinput remap="pre">make distclean</userinput></screen>139 140 <para>Prepare Util-linux for compilation:</para>141 142 <screen><userinput remap="configure">CC="gcc -m32" \143 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \144 --libdir=/usr/lib32 \145 --host=i686-pc-linux-gnu \146 --docdir=/usr/share/doc/util-linux-&util-linux-version; \147 --disable-chfn-chsh \148 --disable-login \149 --disable-nologin \150 --disable-su \151 --disable-setpriv \152 --disable-runuser \153 --disable-pylibmount \154 --disable-static \155 --without-python \156 runstatedir=/run</userinput></screen>157 158 <para>Compile the package:</para>159 160 <screen><userinput remap="make">make</userinput></screen>161 162 <para>Install the package:</para>163 164 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install165 cp -Rv DESTDIR/usr/lib32/* /usr/lib32166 rm -rf DESTDIR</userinput></screen>167 168 </sect2><!-- m32 -->169 170 <!-- - - - - - - - - - -->171 <!-- Multilib - x32bit -->172 <!-- - - - - - - - - - -->173 174 <sect2 arch="ml_x32,ml_all" role="installation">175 <title>Installation of Util-linux - x32-bit</title>176 177 <para>Clean previous build:</para>178 179 <screen><userinput remap="pre">make distclean</userinput></screen>180 181 <para>Prepare Util-linux for compilation:</para>182 183 <screen><userinput remap="configure">CC="gcc -mx32" \184 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \185 --libdir=/usr/libx32 \186 --host=x86_64-pc-linux-gnux32 \187 --docdir=/usr/share/doc/util-linux-&util-linux-version; \188 --disable-chfn-chsh \189 --disable-login \190 --disable-nologin \191 --disable-su \192 --disable-setpriv \193 --disable-runuser \194 --disable-pylibmount \195 --disable-static \196 --without-python \197 runstatedir=/run</userinput></screen>198 199 <para>Compile the package:</para>200 201 <screen><userinput remap="make">make</userinput></screen>202 203 <para>Install the package:</para>204 205 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install206 cp -Rv DESTDIR/usr/libx32/* /usr/libx32207 rm -rf DESTDIR</userinput></screen>208 209 </sect2><!-- mx32 -->210 211 129 <sect2 role="content"> 212 130 <title/> -
chapter08/acl.xml
ra161ad9 rd11686c 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 Acl 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 Acl 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
ra161ad9 rd11686c 65 65 </sect2> 66 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Attr - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Attr for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --sysconfdir=/etc \84 --libdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Attr - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Attr for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --sysconfdir=/etc \116 --libdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 131 67 <sect2 id="contents-attr" role="content"> 132 68 <title>Contents of Attr</title> -
chapter08/binutils.xml
ra161ad9 rd11686c 50 50 <para>Prepare Binutils for compilation:</para> 51 51 52 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \52 <screen><userinput remap="configure">../configure --prefix=/usr \ 53 53 --sysconfdir=/etc \ 54 54 --enable-gold \ … … 59 59 --enable-64-bit-bfd \ 60 60 --with-system-zlib</userinput></screen> 61 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \62 --sysconfdir=/etc \63 --enable-gold \64 --enable-ld=default \65 --enable-plugins \66 --enable-shared \67 --disable-werror \68 --enable-64-bit-bfd \69 --with-system-zlib \70 --enable-multilib</userinput></screen>71 72 61 <variablelist> 73 62 <title>The meaning of the configure parameters:</title> … … 101 90 <para>Enables 64-bit support (on hosts with narrower word sizes). 102 91 May not be needed on 64-bit systems, but does no harm.</para> 103 </listitem>104 </varlistentry>105 106 <varlistentry arch="ml_32,ml_x32,ml_all">107 <term><parameter>--enable-multilib</parameter></term>108 <listitem>109 <para>Enables multilib support in bintutils.</para>110 92 </listitem> 111 93 </varlistentry> -
chapter08/bzip2.xml
ra161ad9 rd11686c 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
ra161ad9 rd11686c 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/cleanup.xml
ra161ad9 rd11686c 22 22 builds. Remove those files now:</para> 23 23 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all"> 25 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 26 find /usr/libx32 -name \*.la -delete</userinput></screen> 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 27 25 28 26 <para>For more information about libtool archive files, see the <ulink -
chapter08/expat.xml
ra161ad9 rd11686c 66 66 </sect2> 67 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Expat - 32bit</title>74 75 <para>Clean previous build but keep precompiled doc because it76 cannot be rebuilt in this stage of the system:</para>77 78 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile79 make clean</userinput></screen>80 81 <para>Prepare Expat for compilation:</para>82 83 <screen><userinput remap="configure">CC="gcc -m32" ./configure \84 --prefix=/usr \85 --disable-static \86 --libdir=/usr/lib32 \87 --host=i686-pc-linux-gnu</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 rm -rf DESTDIR</userinput></screen>98 99 </sect2><!-- m32 -->100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - x32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_x32,ml_all" role="installation">106 <title>Installation of Expat - x32bit</title>107 108 <para>Clean previous build but keep precompiled doc because it109 cannot be rebuilt in this stage of the system:</para>110 111 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile112 make clean</userinput></screen>113 114 <para>Prepare Expat for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \117 --prefix=/usr \118 --disable-static \119 --libdir=/usr/libx32 \120 --host=x86_64-pc-linux-gnux32</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install129 cp -Rv DESTDIR/usr/libx32/* /usr/libx32130 rm -rf DESTDIR</userinput></screen>131 132 </sect2><!-- mx32 -->133 134 68 <sect2 id="contents-expat" role="content"> 135 69 <title>Contents of Expat</title> -
chapter08/file.xml
ra161ad9 rd11686c 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
ra161ad9 rd11686c 58 58 libraries to <quote>lib</quote>:</para> 59 59 60 <screen arch="default"><userinput remap="pre">case $(uname -m) in60 <screen><userinput remap="pre">case $(uname -m) in 61 61 x86_64) 62 62 sed -e '/m64=/s/lib64/lib/' \ … … 65 65 esac</userinput></screen> 66 66 67 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit68 libraries to <quote>lib</quote>:</para>69 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \71 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \72 -i.orig gcc/config/i386/t-linux64</userinput></screen>73 74 67 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 75 68 … … 79 72 <para>Prepare GCC for compilation:</para> 80 73 81 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \74 <screen><userinput remap="configure">../configure --prefix=/usr \ 82 75 LD=ld \ 83 76 --enable-languages=c,c++ \ … … 87 80 --disable-bootstrap \ 88 81 --disable-fixincludes \ 89 --with-system-zlib</userinput></screen>90 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"91 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"92 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"93 arch="ml_all">mlist=m64,m32,mx32</userinput>94 <userinput remap="configure">../configure --prefix=/usr \95 LD=ld \96 --enable-languages=c,c++ \97 --enable-default-pie \98 --enable-default-ssp \99 --enable-multilib \100 --with-multilib-list=$mlist \101 --disable-bootstrap \102 --disable-fixincludes \103 82 --with-system-zlib</userinput></screen> 104 83 … … 325 304 SEARCH_DIR("/usr/lib");</computeroutput></screen> 326 305 327 <para arch="default">A 32-bit system may use a few other directories. For example, here306 <para>A 32-bit system may use a few other directories. For example, here 328 307 is the output from an i686 machine:</para> 329 308 330 <!-- not using entities here as the dir names has nothing to do with multilib --> 331 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 309 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 332 310 SEARCH_DIR("/usr/local/lib32") 333 311 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
ra161ad9 rd11686c 70 70 <para>Prepare Glibc for compilation:</para> 71 71 72 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \72 <screen><userinput remap="configure">../configure --prefix=/usr \ 73 73 --disable-werror \ 74 74 --enable-kernel=&min-kernel; \ … … 76 76 --with-headers=/usr/include \ 77 77 --disable-nscd \ 78 libc_cv_slibdir=/usr/lib</userinput></screen>79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \80 --disable-werror \81 --enable-kernel=&min-kernel; \82 --enable-stack-protector=strong \83 --with-headers=/usr/include \84 --enable-multi-arch \85 78 libc_cv_slibdir=/usr/lib</userinput></screen> 86 79 … … 503 496 </sect2> 504 497 505 <!-- - - - - - - - - - -->506 <!-- Multilib - 32bit -->507 <!-- - - - - - - - - - -->508 <sect2 arch="ml_32,ml_all">509 <title>Building Glibc - 32bit</title>510 511 <para>Now recompile for m32. The extracted source can be512 reused but needs to be cleaned before installing the m32513 version of Glibc.</para>514 515 <para>Clear the build directory and remove artefacts from516 previous build:</para>517 518 <screen><userinput remap="pre">rm -rf ./*519 find .. -name "*.a" -delete</userinput></screen>520 521 <para>Configure Glibc for m32 with the following commands:</para>522 523 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \524 ../configure \525 --prefix=/usr \526 --host=i686-pc-linux-gnu \527 --build=$(../scripts/config.guess) \528 --enable-kernel=&min-kernel; \529 --with-headers=/usr/include \530 --enable-multi-arch \531 --libdir=/usr/lib32 \532 --libexecdir=/usr/lib32 \533 libc_cv_slibdir=/usr/lib32</userinput></screen>534 535 <para>Compile the package:</para>536 537 <screen><userinput remap="make">make</userinput></screen>538 539 <para>Install the package:</para>540 541 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install542 cp -a DESTDIR/usr/lib32/* /usr/lib32/543 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \544 /usr/include/gnu/</userinput></screen>545 <!-- no longer required as they are created in chap5546 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2547 -->548 549 <para>Add the library name to the dynamic loader config:</para>550 551 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen>552 553 <caution>554 <para>At this point, it is imperative to stop and ensure that the basic555 functions (compiling and linking) of the new toolchain are working as556 expected. To perform a sanity check, run the following commands:</para>557 558 <screen><userinput>echo 'int main(){}' > dummy.c559 gcc -m32 dummy.c560 readelf -l a.out | grep '/ld-linux'</userinput></screen>561 562 <para>If everything is working correctly, there should be no errors,563 and the output of the last command will be of the form:</para>564 565 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>566 567 <para>If the output is not shown as above or there was no output at all,568 then something is wrong. Investigate and retrace the steps to find out569 where the problem is and correct it. This issue must be resolved before570 continuing on.</para>571 572 <para>Once all is well, clean up the test files:</para>573 574 <screen><userinput>rm -v dummy.c a.out</userinput></screen>575 576 </caution>577 578 </sect2><!-- m32 -->579 580 <!-- - - - - - - - - - -->581 <!-- Multilib - x32bit -->582 <!-- - - - - - - - - - -->583 584 <sect2 arch="ml_x32,ml_all">585 <title>Building Glibc - x32bit</title>586 587 <para>Now recompile for mx32. The extracted source can be588 reused but needs to be cleaned before installing the mx32589 version of Glibc.</para>590 591 <para>Clear the build directory and remove artefacts from592 previous build:</para>593 594 <screen><userinput remap="pre">rm -rf ./*595 find .. -name "*.a" -delete</userinput></screen>596 597 <para>Configure Glibc for mx32 with the following commands:</para>598 599 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \600 ../configure \601 --prefix=/usr \602 --host=x86_64-pc-linux-gnux32 \603 --build=$(../scripts/config.guess) \604 --enable-kernel=&min-kernel; \605 --with-headers=/usr/include \606 --enable-multi-arch \607 --libdir=/usr/libx32 \608 --libexecdir=/usr/libx32 \609 libc_cv_slibdir=/usr/libx32</userinput></screen>610 611 <para>Compile the package:</para>612 613 <screen><userinput remap="make">make</userinput></screen>614 615 <para>Install the package:</para>616 617 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install618 cp -a DESTDIR/usr/libx32/* /usr/libx32/619 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \620 /usr/include/gnu/</userinput></screen>621 <!-- no longer required as they are created in chap5622 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2623 -->624 <para>Add the library name to the dynamic loader config:</para>625 626 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen>627 628 <caution>629 <para>At this point, it is imperative to stop and ensure that the basic630 functions (compiling and linking) of the new toolchain are working as631 expected. To perform a sanity check, run the following commands:</para>632 633 <screen><userinput>echo 'int main(){}' > dummy.c634 gcc -mx32 dummy.c635 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>636 637 <para>If everything is working correctly, there should be no errors,638 and the output of the last command will be of the form:</para>639 640 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>641 642 <para>If the output is not shown as above or there was no output at all,643 then something is wrong. Investigate and retrace the steps to find out644 where the problem is and correct it. This issue must be resolved before645 continuing on.</para>646 647 <para>Once all is well, clean up the test files:</para>648 649 <screen><userinput>rm -v dummy.c a.out</userinput></screen>650 651 </caution>652 653 </sect2><!-- mx32 -->654 655 498 <sect2 id="contents-glibc" role="content"> 656 499 <title>Contents of Glibc</title> -
chapter08/gmp.xml
ra161ad9 rd11686c 125 125 </sect2> 126 126 127 <!-- - - - - - - - - - -->128 <!-- Multilib - 32bit -->129 <!-- - - - - - - - - - -->130 131 <sect2 arch="ml_32,ml_all" role="installation">132 <title>Installation of GMP - 32bit</title>133 134 <para>Clean previous build:</para>135 136 <screen><userinput remap="pre">make distclean</userinput></screen>137 138 <para>Generic libraries can be created by running139 the following:</para>140 141 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess142 cp -v configfsf.sub config.sub</userinput></screen>143 144 <para>Prepare GMP for compilation:</para>145 146 <screen><userinput remap="configure">ABI="32" \147 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \148 CXXFLAGS="$CFLAGS" \149 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \150 ./configure \151 --host=i686-pc-linux-gnu \152 --prefix=/usr \153 --disable-static \154 --enable-cxx \155 --libdir=/usr/lib32 \156 --includedir=/usr/include/m32/gmp</userinput></screen>157 158 <variablelist>159 <title>The meaning of the new configure options:</title>160 161 <varlistentry>162 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>163 <listitem>164 <para>Some definitions in gmp.h differs for each arch but165 has same name. Therefore, the headers must be separated from166 each other.</para>167 </listitem>168 </varlistentry>169 170 </variablelist>171 172 <para>Compile the package:</para>173 174 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile175 make</userinput></screen>176 177 <important>178 <para>The test suite for GMP in this section is considered critical.179 Do not skip it under any circumstances.</para>180 </important>181 182 <para>Test the results:</para>183 184 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>185 186 <para>Ensure that all 197 tests in the test suite passed.187 Check the results by issuing the following command:</para>188 189 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>190 191 <para>Install the package:</para>192 193 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install194 cp -Rv DESTDIR/usr/lib32/* /usr/lib32195 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/196 rm -rf DESTDIR</userinput></screen>197 198 </sect2><!-- m32 -->199 200 <!-- - - - - - - - - - -->201 <!-- Multilib - x32bit -->202 <!-- - - - - - - - - - -->203 204 <sect2 arch="ml_x32,ml_all" role="installation">205 <title>Installation of GMP - x32-bit</title>206 207 <para>Clean previous build:</para>208 209 <screen><userinput remap="pre">make distclean</userinput></screen>210 211 <para>Generic libraries can be created by running212 the following:</para>213 214 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess215 cp -v configfsf.sub config.sub</userinput></screen>216 217 <para>Prepare GMP for compilation:</para>218 219 <screen><userinput remap="configure">ABI="x32" \220 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \221 CXXFLAGS="$CFLAGS" \222 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \223 ./configure \224 --host=x86_64-pc-linux-gnux32 \225 --prefix=/usr \226 --disable-static \227 --enable-cxx \228 --libdir=/usr/libx32 \229 --includedir=/usr/include/mx32/gmp</userinput></screen>230 231 <para>Compile the package:</para>232 233 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile234 make</userinput></screen>235 236 <important>237 <para>The test suite for GMP in this section is considered critical.238 Do not skip it under any circumstances.</para>239 </important>240 241 <para>Test the results:</para>242 243 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>244 245 <para>Ensure that all 197 tests in the test suite passed.246 Check the results by issuing the following command:</para>247 248 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>249 250 <para>Install the package:</para>251 252 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install253 cp -Rv DESTDIR/usr/libx32/* /usr/libx32254 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/255 rm -rf DESTDIR</userinput></screen>256 257 </sect2><!-- mx32 -->258 259 127 <sect2 id="contents-gmp" role="content"> 260 128 <title>Contents of GMP</title> -
chapter08/kmod.xml
ra161ad9 rd11686c 98 98 99 99 </sect2> 100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - 32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_32,ml_all" role="installation">106 <title>Installation of Kmod - 32bit</title>107 108 <para>Clean previous build but keep man pages as they cannot109 be recreated since xsltproc isn't installed yet:</para>110 111 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile112 make clean</userinput></screen>113 114 <para>Prepare Kmod for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \117 --host=i686-pc-linux-gnu \118 --prefix=/usr \119 --libdir=/usr/lib32 \120 --sysconfdir=/etc \121 --with-openssl \122 --with-xz \123 --with-zstd \124 --with-zlib \125 --with-rootlibdir=/usr/lib32</userinput></screen>126 127 <para>Compile the package:</para>128 129 <screen><userinput remap="make">make</userinput></screen>130 131 <para>Install the package:</para>132 133 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32135 rm -rf DESTDIR</userinput></screen>136 137 </sect2><!-- m32 -->138 139 <!-- - - - - - - - - - -->140 <!-- Multilib - x32bit -->141 <!-- - - - - - - - - - -->142 143 <sect2 arch="ml_x32,ml_all" role="installation">144 <title>Installation of Kmod - x32bit</title>145 146 <para>Clean previous build but keep man pages as they cannot147 be recreated since xsltproc isn't installed yet:</para>148 149 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile150 make clean</userinput></screen>151 152 <para>Prepare Kmod for compilation:</para>153 154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \155 --host=x86_64-pc-linux-gnux32 \156 --prefix=/usr \157 --libdir=/usr/libx32 \158 --sysconfdir=/etc \159 --with-openssl \160 --with-xz \161 --with-zstd \162 --with-zlib \163 --with-rootlibdir=/usr/libx32</userinput></screen>164 165 <para>Compile the package:</para>166 167 <screen><userinput remap="make">make</userinput></screen>168 169 <para>Install the package:</para>170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32173 rm -rf DESTDIR</userinput></screen>174 175 </sect2><!-- mx32 -->176 100 177 101 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
ra161ad9 rd11686c 75 75 76 76 </sect2> 77 78 <!-- - - - - - - - - - -->79 <!-- Multilib - 32bit -->80 <!-- - - - - - - - - - -->81 82 <sect2 arch="ml_32,ml_all" role="installation">83 <title>Installation of Libcap - 32bit</title>84 85 <para>Clean previous build:</para>86 87 <screen><userinput remap="pre">make distclean</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make CC="gcc -m32 -march=i686" lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc98 chmod -v 755 /usr/lib32/libcap.so.&libcap-version;99 rm -rf DESTDIR</userinput></screen>100 101 </sect2><!-- m32 -->102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - x32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_x32,ml_all" role="installation">108 <title>Installation of Libcap - x32bit</title>109 110 <para>Clean previous build:</para>111 112 <screen><userinput remap="pre">make distclean</userinput></screen>113 114 <para>Compile the package:</para>115 116 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>117 118 <para>Install the package:</para>119 120 <screen><userinput remap="install">make CC="gcc -mx32 -march=x86-64" lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install121 cp -Rv DESTDIR/usr/libx32/* /usr/libx32122 sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc123 chmod -v 755 /usr/libx32/libcap.so.&libcap-version;124 rm -rf DESTDIR</userinput></screen>125 126 </sect2><!-- mx32 -->127 77 128 78 <sect2 id="contents-libcap" role="content"> -
chapter08/libelf.xml
ra161ad9 rd11686c 67 67 </sect2> 68 68 69 <!-- - - - - - - - - - -->70 <!-- Multilib - 32bit -->71 <!-- - - - - - - - - - -->72 73 <sect2 arch="ml_32,ml_all" role="installation">74 <title>Installation of Libelf - 32bit</title>75 76 <para>Clean previous build:</para>77 78 <screen><userinput remap="pre">make distclean</userinput></screen>79 80 <para>Prepare Libelf for compilation:</para>81 82 <screen><userinput remap="configure">CC="gcc -m32" ./configure \83 --host=i686-pc-linux-gnu \84 --prefix=/usr \85 --libdir=/usr/lib32 \86 --disable-debuginfod \87 --enable-libdebuginfod=dummy</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install96 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc97 cp -Rv DESTDIR/usr/lib32/* /usr/lib3298 rm -rf DESTDIR</userinput></screen>99 100 </sect2><!-- m32 -->101 102 <!-- - - - - - - - - - -->103 <!-- Multilib - x32bit -->104 <!-- - - - - - - - - - -->105 106 <sect2 arch="ml_x32,ml_all" role="installation">107 <title>Installation of Libelf - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Libelf for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-debuginfod \120 --enable-libdebuginfod=dummy</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install129 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc130 cp -Rv DESTDIR/usr/libx32/* /usr/libx32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- mx32 -->134 135 69 <sect2 id="contents-elfutils" role="content"> 136 70 <title>Contents of Libelf</title> -
chapter08/libffi.xml
ra161ad9 rd11686c 97 97 </sect2> 98 98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - 32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_32,ml_all" role="installation">104 <title>Installation of Libffi - 32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Libffi for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \113 --host=i686-pc-linux-gnu \114 --prefix=/usr \115 --libdir=/usr/lib32 \116 --disable-static \117 --with-gcc-arch=i686</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>To test the results, issue:</para>124 125 <screen><userinput remap="test">make check</userinput></screen>126 127 <para>Install the package:</para>128 129 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install130 cp -Rv DESTDIR/usr/lib32/* /usr/lib32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- m32 -->134 135 <!-- - - - - - - - - - -->136 <!-- Multilib - x32bit -->137 <!-- - - - - - - - - - -->138 139 <sect2 arch="ml_x32,ml_all" role="installation">140 <title>Installation of Libffi - x32bit</title>141 142 <para>Clean previous build:</para>143 144 <screen><userinput remap="pre">make distclean</userinput></screen>145 146 <para>Prepare Libffi for compilation:</para>147 148 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \149 --host=x86_64-unknown-linux-gnux32 \150 --prefix=/usr \151 --libdir=/usr/libx32 \152 --disable-static \153 --with-gcc-arch=x86_64</userinput></screen>154 155 <para>Compile the package:</para>156 157 <screen><userinput remap="make">make</userinput></screen>158 159 <para>To test the results, issue:</para>160 161 <screen><userinput remap="test">make check</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 99 <sect2 id="contents-libffi" role="content"> 172 100 <title>Contents of Libffi</title> … … 199 127 200 128 </sect1> 129 -
chapter08/libtool.xml
ra161ad9 rd11686c 79 79 </sect2> 80 80 81 <!-- - - - - - - - - - -->82 <!-- Multilib - 32bit -->83 <!-- - - - - - - - - - -->84 85 <sect2 arch="ml_32,ml_all" role="installation">86 <title>Installation of Libtool - 32bit</title>87 88 <para>Clean previous build:</para>89 90 <screen><userinput remap="pre">make distclean</userinput></screen>91 92 <para>Prepare Libtool for compilation:</para>93 94 <screen><userinput remap="configure">CC="gcc -m32" ./configure \95 --host=i686-pc-linux-gnu \96 --prefix=/usr \97 --libdir=/usr/lib32</userinput></screen>98 99 <para>Compile the package:</para>100 101 <screen><userinput remap="make">make</userinput></screen>102 103 <para>Install the package:</para>104 105 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install106 cp -Rv DESTDIR/usr/lib32/* /usr/lib32107 rm -rf DESTDIR</userinput></screen>108 109 </sect2><!-- m32 -->110 111 <!-- - - - - - - - - - -->112 <!-- Multilib - x32bit -->113 <!-- - - - - - - - - - -->114 115 <sect2 arch="ml_x32,ml_all" role="installation">116 <title>Installation of Libtool - x32bit</title>117 118 <para>Clean previous build:</para>119 120 <screen><userinput remap="pre">make distclean</userinput></screen>121 122 <para>Prepare Libtool for compilation:</para>123 124 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \125 --host=x86_64-pc-linux-gnux32 \126 --prefix=/usr \127 --libdir=/usr/libx32</userinput></screen>128 129 <para>Compile the package:</para>130 131 <screen><userinput remap="make">make</userinput></screen>132 133 <para>Install the package:</para>134 135 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install136 cp -Rv DESTDIR/usr/libx32/* /usr/libx32137 rm -rf DESTDIR</userinput></screen>138 139 </sect2><!-- mx32 -->140 81 141 82 <sect2 id="contents-libtool" role="content"> -
chapter08/libxcrypt.xml
ra161ad9 rd11686c 116 116 </sect2> 117 117 118 <!-- - - - - - - - - - -->119 <!-- Multilib - 32bit -->120 <!-- - - - - - - - - - -->121 <sect2 arch="ml_32,ml_all" role="installation">122 <title>Installation of Libxcrypt - 32bit</title>123 124 <para>Clean previous build:</para>125 126 <screen><userinput remap="pre">make distclean</userinput></screen>127 128 <para>Prepare Libxcrypt for compilation:</para>129 130 <screen><userinput remap="configure">CC="gcc -m32" \131 ./configure --prefix=/usr \132 --host=i686-pc-linux-gnu \133 --libdir=/usr/lib32 \134 --enable-hashes=strong,glibc \135 --enable-obsolete-api=glibc \136 --disable-static \137 --disable-failure-tokens</userinput></screen>138 139 <para>Compile the package:</para>140 141 <screen><userinput remap="make">make</userinput></screen>142 143 <para>Install the package:</para>144 145 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/lib32/ &&146 make install-pkgconfigDATA &&147 ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc</userinput></screen>148 149 </sect2><!-- m32 -->150 151 <!-- - - - - - - - - - -->152 <!-- Multilib - x32bit -->153 <!-- - - - - - - - - - -->154 <sect2 arch="ml_x32,ml_all" role="installation">155 <title>Installation of Libxcrypt - x32bit</title>156 157 <para>Clean previous build:</para>158 159 <screen><userinput remap="pre">make distclean</userinput></screen>160 161 <para>Prepare Libxcrypt for compilation:</para>162 163 <screen><userinput remap="configure">CC="gcc -mx32" \164 ./configure --prefix=/usr \165 --host=x86_64-pc-linux-gnux32 \166 --libdir=/usr/libx32 \167 --enable-hashes=strong,glibc \168 --enable-obsolete-api=glibc \169 --disable-static \170 --disable-failure-tokens</userinput></screen>171 172 <para>Compile the package:</para>173 174 <screen><userinput remap="make">make</userinput></screen>175 176 <para>Install the package:</para>177 178 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/libx32/ &&179 make install-pkgconfigDATA &&180 ln -svf libxcrypt.pc /usr/libx32/pkgconfig/libcrypt.pc</userinput></screen>181 182 </sect2><!-- mx32 -->183 184 118 <sect2 id="contents-libxcrypt" role="content"> 185 119 <title>Contents of Libxcrypt</title> -
chapter08/ncurses.xml
ra161ad9 rd11686c 172 172 173 173 <screen role="nodump"><userinput>make distclean 174 ./configure --prefix=/usr \ 175 --with-shared \ 176 --without-normal \ 177 --with-cxx-shared \ 178 --without-debug \ 174 ./configure --prefix=/usr \ 175 --with-shared \ 176 --without-normal \ 177 --without-debug \ 179 178 --without-cxx-binding \ 180 179 --with-abi-version=5 … … 184 183 185 184 </sect2> 186 187 <!-- - - - - - - - - - -->188 <!-- Multilib - 32bit -->189 <!-- - - - - - - - - - -->190 <sect2 arch="ml_32,ml_all">191 <title>Building Ncurses - 32bit</title>192 193 <para>Clean previous build:</para>194 195 <screen><userinput remap="pre">make distclean</userinput></screen>196 197 <para>Prepare Ncurses for compilation:</para>198 199 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \200 ./configure --prefix=/usr \201 --host=i686-pc-linux-gnu \202 --libdir=/usr/lib32 \203 --mandir=/usr/share/man \204 --with-shared \205 --without-debug \206 --without-normal \207 --with-cxx-shared \208 --enable-pc-files \209 --enable-widec \210 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>211 212 <para>Compile the package:</para>213 214 <screen><userinput remap="make">make</userinput></screen>215 216 <para>Install the package:</para>217 218 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install219 mkdir -p DESTDIR/usr/lib32/pkgconfig220 for lib in ncurses form panel menu ; do221 rm -vf DESTDIR/usr/lib32/lib${lib}.so222 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so223 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc224 done225 rm -vf DESTDIR/usr/lib32/libcursesw.so226 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so227 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so228 cp -Rv DESTDIR/usr/lib32/* /usr/lib32229 rm -rf DESTDIR</userinput></screen>230 231 </sect2><!-- m32 -->232 233 <!-- - - - - - - - - - -->234 <!-- Multilib - x32bit -->235 <!-- - - - - - - - - - -->236 <sect2 arch="ml_x32,ml_all">237 <title>Building Ncurses - x32bit</title>238 239 <para>Clean previous build:</para>240 241 <screen><userinput remap="pre">make distclean</userinput></screen>242 243 <para>Prepare Ncurses for compilation:</para>244 245 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \246 ./configure --prefix=/usr \247 --host=x86_64-pc-linux-gnux32 \248 --libdir=/usr/libx32 \249 --mandir=/usr/share/man \250 --with-shared \251 --without-debug \252 --without-normal \253 --enable-pc-files \254 --enable-widec \255 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>256 257 <para>Compile the package:</para>258 259 <screen><userinput remap="make">make</userinput></screen>260 261 <para>Install the package:</para>262 263 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install264 mkdir -p DESTDIR/usr/libx32/pkgconfig265 for lib in ncurses form panel menu ; do266 rm -vf DESTDIR/usr/libx32/lib${lib}.so267 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so268 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc269 done270 rm -vf DESTDIR/usr/libx32/libcursesw.so271 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so272 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so273 cp -Rv DESTDIR/usr/libx32/* /usr/libx32274 rm -rf DESTDIR</userinput></screen>275 276 </sect2><!-- mx32 -->277 185 278 186 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
ra161ad9 rd11686c 111 111 112 112 </sect2> 113 114 <!-- - - - - - - - - - -->115 <!-- Multilib - 32bit -->116 <!-- - - - - - - - - - -->117 118 <sect2 arch="ml_32,ml_all" role="installation">119 <title>Installation of OpenSSL - 32bit</title>120 121 <para>Clean previous build:</para>122 123 <screen><userinput remap="pre">make distclean</userinput></screen>124 125 <para>Prepare OpenSSL for compilation:</para>126 127 <screen><userinput remap="configure">./config --prefix=/usr \128 --openssldir=/etc/ssl \129 --libdir=lib32 \130 shared \131 zlib-dynamic \132 linux-x86</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/lib32/* /usr/lib32142 rm -rf DESTDIR</userinput></screen>143 144 </sect2><!-- m32 -->145 146 <!-- - - - - - - - - - -->147 <!-- Multilib - x32bit -->148 <!-- - - - - - - - - - -->149 150 <sect2 arch="ml_x32,ml_all" role="installation">151 <title>Installation of OpenSSL - x32bit</title>152 153 <para>Clean previous build:</para>154 155 <screen><userinput remap="pre">make distclean</userinput></screen>156 157 <para>Prepare OpenSSL for compilation:</para>158 159 <screen><userinput remap="configure">./config --prefix=/usr \160 --openssldir=/etc/ssl \161 --libdir=libx32 \162 shared \163 zlib-dynamic \164 linux-x32</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/libx32/* /usr/libx32174 rm -rf DESTDIR</userinput></screen>175 176 </sect2><!-- mx32 -->177 113 178 114 <sect2 id="contents-openssl" role="content"> -
chapter08/pkgconf.xml
ra161ad9 rd11686c 69 69 <screen><userinput remap="install">ln -sv pkgconf /usr/bin/pkg-config 70 70 ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1</userinput></screen> 71 <!--72 <para arch="ml_32,ml_x32,ml_all">73 For better support of the multilib platform create some74 additional files by executing the following commands:75 </para>76 71 77 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="install">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config78 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnux32-pkg-config79 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config80 81 mkdir -pv /usr/share/pkgconfig/personality.d82 83 cat > /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality <<EOF84 Triplet: i686-pc-linux-gnu85 SysrootDir: /86 DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig87 SystemIncludePaths: /usr/include88 SystemLibraryPaths: /usr/lib3289 EOF90 91 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnux32.personality <<EOF92 Triplet: x86_64-pc-linux-gnux3293 SysrootDir: /94 DefaultSearchPaths: /usr/libx32/pkgconfig:/usr/share/pkgconfig95 SystemIncludePaths: /usr/include96 SystemLibraryPaths: /usr/libx3297 EOF98 99 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality <<EOF100 Triplet: x86_64-pc-linux-gnu101 SysrootDir: /102 DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig103 SystemIncludePaths: /usr/include104 SystemLibraryPaths: /usr/lib105 EOF106 </userinput></screen>107 -->108 72 </sect2> 109 73 -
chapter08/readline.xml
ra161ad9 rd11686c 105 105 </sect2> 106 106 107 <!-- - - - - - - - - - -->108 <!-- Multilib - 32bit -->109 <!-- - - - - - - - - - -->110 111 <sect2 arch="ml_32,ml_all" role="installation">112 <title>Installation of Readline - 32bit</title>113 114 <para>Clean previous build:</para>115 116 <screen><userinput remap="pre">make distclean</userinput></screen>117 118 <para>Prepare Readline for compilation:</para>119 120 <screen><userinput remap="configure">CC="gcc -m32" ./configure \121 --host=i686-pc-linux-gnu \122 --prefix=/usr \123 --libdir=/usr/lib32 \124 --disable-static \125 --with-curses</userinput></screen>126 127 <para>Compile the package:</para>128 129 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>130 131 <para>Install the package:</para>132 133 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32135 rm -rf DESTDIR</userinput></screen>136 137 </sect2><!-- m32 -->138 139 <!-- - - - - - - - - - -->140 <!-- Multilib - x32bit -->141 <!-- - - - - - - - - - -->142 143 <sect2 arch="ml_x32,ml_all" role="installation">144 <title>Installation of Readline - x32bit</title>145 146 <para>Clean previous build:</para>147 148 <screen><userinput remap="pre">make distclean</userinput></screen>149 150 <para>Prepare Readline for compilation:</para>151 152 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \153 --host=x86_64-pc-linux-gnux32 \154 --prefix=/usr \155 --libdir=/usr/libx32 \156 --disable-static \157 --with-curses</userinput></screen>158 159 <para>Compile the package:</para>160 161 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 107 <sect2 id="contents-readline" role="content"> 172 108 <title>Contents of Readline</title> -
chapter08/stripping.xml
ra161ad9 rd11686c 80 80 81 81 cd /usr/lib 82 82 83 for LIB in $save_usrlib; do 83 84 objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg … … 87 88 install -vm755 /tmp/$LIB /usr/lib 88 89 rm /tmp/$LIB 89 done</userinput> 90 <userinput arch="ml_32,ml_all"> 91 cd /usr/lib32 92 for LIB in $save_usrlib; do 93 objcopy --only-keep-debug $LIB $LIB.dbg 94 cp $LIB /tmp/$LIB 95 strip --strip-unneeded /tmp/$LIB 96 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 97 install -vm755 /tmp/$LIB /usr/lib32 98 rm /tmp/$LIB 99 done</userinput> 100 <userinput arch="ml_x32,ml_all"> 101 cd /usr/libx32 102 for LIB in $save_usrlib; do 103 objcopy --only-keep-debug $LIB $LIB.dbg 104 cp $LIB /tmp/$LIB 105 strip --strip-unneeded /tmp/$LIB 106 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 107 install -vm755 /tmp/$LIB /usr/libx32 108 rm /tmp/$LIB 109 done</userinput><userinput> 90 done 110 91 111 92 online_usrbin="bash find strip" … … 132 113 install -vm755 /tmp/$LIB /usr/lib 133 114 rm /tmp/$LIB 134 done</userinput><userinput arch="ml_32,ml_all"> 135 for LIB in $online_usrlib; do 136 cp /usr/lib32/$LIB /tmp/$LIB 137 strip --strip-unneeded /tmp/$LIB 138 install -vm755 /tmp/$LIB /usr/lib32 139 rm /tmp/$LIB 140 done</userinput><userinput arch="ml_x32,ml_all"> 141 for LIB in $online_usrlib; do 142 cp /usr/libx32/$LIB /tmp/$LIB 143 strip --strip-unneeded /tmp/$LIB 144 install -vm755 /tmp/$LIB /usr/libx32 145 rm /tmp/$LIB 146 done</userinput><userinput> 115 done 147 116 148 117 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 155 124 ;; 156 125 esac 157 done</userinput><userinput arch="ml_32,ml_all"> 158 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 159 $(find /usr/lib32 -type f -name \*.a); do 160 case "$online_usrbin $online_usrlib $save_usrlib" in 161 *$(basename $i)* ) 162 ;; 163 * ) strip --strip-unneeded $i 164 ;; 165 esac 166 done</userinput><userinput arch="ml_x32,ml_all"> 167 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 168 $(find /usr/libx32 -type f -name \*.a); do 169 case "$online_usrbin $online_usrlib $save_usrlib" in 170 *$(basename $i)* ) 171 ;; 172 * ) strip --strip-unneeded $i 173 ;; 174 esac 175 done</userinput><userinput> 126 done 176 127 177 128 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
ra161ad9 rd11686c 231 231 232 232 </sect2> 233 234 <!-- - - - - - - - - - -->235 <!-- Multilib - 32bit -->236 <!-- - - - - - - - - - -->237 238 <sect2 arch="ml_32,ml_all" role="installation">239 <title>Installation of systemd - 32-bit</title>240 241 <para>Clean previous build:</para>242 243 <screen><userinput remap="pre">rm -rf *</userinput></screen>244 245 <para>Create a symlink to work around missing xsltproc:</para>246 247 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->248 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>249 250 <!-- with cross-LFS we have util-linux in place:251 <para>Because we have not yet installed the final version of Util-Linux,252 create links to the libraries in the approprite location:</para>253 254 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do255 ln -sf $file /usr/lib32/256 done</userinput></screen>257 -->258 259 <para>Prepare systemd for compilation:</para>260 261 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \262 CC="gcc -m32 -march=i686" \263 CXX="g++ -m32 -march=i686" \264 LANG=en_US.UTF-8 \265 meson --prefix=/usr \266 --sysconfdir=/etc \267 --localstatedir=/var \268 --libdir=/usr/lib32 \269 -Drootlibdir=/usr/lib32 \270 -Dblkid=true \271 -Ddefault-dnssec=no \272 -Dfirstboot=false \273 -Dinstall-tests=false \274 -Dldconfig=false \275 -Dsysusers=false \276 -Db_lto=false \277 -Drpmmacrosdir=no \278 -Dhomed=false \279 -Duserdb=false \280 -Dman=false \281 -Dmode=release \282 ..</userinput></screen>283 284 <para>Compile the package:</para>285 286 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>287 288 <para>Install the package:</para>289 290 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install291 cp -Rv DESTDIR/usr/lib32/* /usr/lib32292 rm -rf DESTDIR293 rm -f /usr/bin/xsltproc</userinput></screen>294 295 </sect2><!-- m32 -->296 297 <!-- - - - - - - - - - -->298 <!-- Multilib - x32bit -->299 <!-- - - - - - - - - - -->300 301 <sect2 arch="ml_x32,ml_all" role="installation">302 <title>Installation of systemd - x32-bit</title>303 304 <para>Clean previous build:</para>305 306 <screen><userinput remap="pre">rm -rf *</userinput></screen>307 308 <para>Create a symlink to work around missing xsltproc:</para>309 310 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>311 <!--312 <para>Fix an issue on x32:</para>313 314 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c315 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>316 -->317 <para>Prepare systemd for compilation:</para>318 319 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \320 CC="gcc -mx32" \321 CXX="g++ -mx32" \322 CFLAGS+=" -Wno-error=shift-overflow" \323 CXXFLAGS+=" -Wno-error=shift-overflow" \324 LANG=en_US.UTF-8 \325 meson --prefix=/usr \326 --sysconfdir=/etc \327 --localstatedir=/var \328 --libdir=/usr/libx32 \329 -Drootlibdir=/usr/libx32 \330 -Dblkid=true \331 -Ddefault-dnssec=no \332 -Dfirstboot=false \333 -Dinstall-tests=false \334 -Dldconfig=false \335 -Dsysusers=false \336 -Db_lto=false \337 -Drpmmacrosdir=no \338 -Dhomed=false \339 -Duserdb=false \340 -Dman=false \341 -Dmode=release \342 ..</userinput></screen>343 344 <para>Compile the package:</para>345 346 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>347 348 <para>Install the package:</para>349 350 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install351 cp -Rv DESTDIR/usr/libx32/* /usr/libx32352 rm -rf DESTDIR353 rm -f /usr/bin/xsltproc</userinput></screen>354 355 </sect2><!-- mx32 -->356 233 357 234 <sect2 id="contents-systemd" role="content"> -
chapter08/udev.xml
ra161ad9 rd11686c 161 161 </sect2> 162 162 163 <!-- - - - - - - - - - -->164 <!-- Multilib - 32bit -->165 <!-- - - - - - - - - - -->166 <sect2 arch="ml_32,ml_all" role="installation">167 <title>Installation of Udev - 32bit</title>168 169 <para>Clean previous build (while still in the build directory):</para>170 171 <screen><userinput remap="pre">rm -rf *</userinput></screen>172 173 <para>Prepare Udev for compilation:</para>174 175 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \176 CC="gcc -m32 -march=i686" \177 CXX="g++ -m32 -march=i686" \178 LANG=en_US.UTF-8 \179 meson setup \180 --prefix=/usr \181 --buildtype=release \182 -Dmode=release \183 -Ddev-kvm-mode=0660 \184 -Dlink-udev-shared=false \185 ..</userinput></screen>186 187 <para>Compile the package:</para>188 189 <screen><userinput remap="make">ninja \190 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \191 build.ninja | awk '{ print $2 }') \192 $(realpath libudev.so --relative-to .)</userinput></screen>193 194 <para>Install the package:</para>195 196 <screen><userinput remap="install">mkdir -pv /usr/lib32/pkgconfig &&197 cp -av libudev.so{,*[0-9]} /usr/lib32/ &&198 sed -e "s;/usr/lib;&32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc</userinput></screen>199 200 </sect2><!-- m32 -->201 202 <!-- - - - - - - - - - -->203 <!-- Multilib - x32bit -->204 <!-- - - - - - - - - - -->205 <sect2 arch="ml_x32,ml_all" role="installation">206 <title>Installation of Udev - x32bit</title>207 <para>Clean previous build (while still in the build directory):</para>208 209 <screen><userinput remap="pre">rm -rf *</userinput></screen>210 211 <para>Prepare Udev for compilation:</para>212 213 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \214 CC="gcc -mx32" \215 CXX="g++ -mx32" \216 CFLAGS+=" -Wno-error=shift-overflow" \217 CXXFLAGS+=" -Wno-error=shift-overflow" \218 LANG=en_US.UTF-8 \219 meson setup \220 --prefix=/usr \221 --buildtype=release \222 -Dmode=release \223 -Ddev-kvm-mode=0660 \224 -Dlink-udev-shared=false \225 ..</userinput></screen>226 227 <para>Compile the package:</para>228 229 <screen><userinput remap="make">ninja \230 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \231 build.ninja | awk '{ print $2 }') \232 $(realpath libudev.so --relative-to .)</userinput></screen>233 234 <para>Install the package:</para>235 236 <screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig &&237 cp -av libudev.so{,*[0-9]} /usr/libx32/ &&238 sed -e "s;/usr/lib;&x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc</userinput></screen>239 240 </sect2><!-- mx32 -->241 242 163 <sect2 id="conf-udev" role="configuration"> 243 164 <title>Configuring Udev</title> -
chapter08/util-linux.xml
ra161ad9 rd11686c 125 125 --> 126 126 </sect2> 127 128 <!-- - - - - - - - - - -->129 <!-- Multilib - 32bit -->130 <!-- - - - - - - - - - -->131 132 <sect2 arch="ml_32,ml_all" role="installation">133 <title>Installation of Util-linux - 32-bit</title>134 135 <para>Clean previous build:</para>136 137 <screen><userinput remap="pre">make distclean</userinput></screen>138 139 <para>Move a tool out of the way which is optionally used by140 configure but will report invalid pathes for multilib builds.</para>141 142 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>143 144 <para>Prepare Util-linux for compilation:</para>145 146 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \147 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \148 --host=i686-pc-linux-gnu \149 --libdir=/usr/lib32 \150 --docdir=/usr/share/doc/util-linux-&util-linux-version; \151 --disable-chfn-chsh \152 --disable-login \153 --disable-nologin \154 --disable-su \155 --disable-setpriv \156 --disable-runuser \157 --disable-pylibmount \158 --disable-static \159 --without-python \160 --without-systemd \161 --without-systemdsystemunitdir</userinput></screen>162 163 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \164 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \165 --host=i686-pc-linux-gnu \166 --libdir=/usr/lib32 \167 --docdir=/usr/share/doc/util-linux-&util-linux-version; \168 --disable-chfn-chsh \169 --disable-login \170 --disable-nologin \171 --disable-su \172 --disable-setpriv \173 --disable-runuser \174 --disable-pylibmount \175 --disable-static \176 --without-python</userinput></screen>177 178 <para>Restore the tool previously moved away:</para>179 180 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>181 182 <para>Compile the package:</para>183 184 <screen><userinput remap="make">make</userinput></screen>185 186 <para>Install the package:</para>187 188 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install189 cp -Rv DESTDIR/usr/lib32/* /usr/lib32190 rm -rf DESTDIR</userinput></screen>191 192 </sect2><!-- m32 -->193 194 <!-- - - - - - - - - - -->195 <!-- Multilib - x32bit -->196 <!-- - - - - - - - - - -->197 198 <sect2 arch="ml_x32,ml_all" role="installation">199 <title>Installation of Util-linux - x32-bit</title>200 201 <para>Clean previous build:</para>202 203 <screen><userinput remap="pre">make distclean</userinput></screen>204 205 <para>Move a tool out of the way which is optionally used by206 configure but will report invalid pathes for multilib builds.</para>207 208 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>209 210 <para>Prepare Util-linux for compilation:</para>211 212 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \213 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \214 --host=x86_64-pc-linux-gnux32 \215 --libdir=/usr/libx32 \216 --docdir=/usr/share/doc/util-linux-&util-linux-version; \217 --disable-chfn-chsh \218 --disable-login \219 --disable-nologin \220 --disable-su \221 --disable-setpriv \222 --disable-runuser \223 --disable-pylibmount \224 --disable-static \225 --without-python \226 --without-systemd \227 --without-systemdsystemunitdir</userinput></screen>228 229 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \230 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \231 --host=x86_64-pc-linux-gnux32 \232 --libdir=/usr/libx32 \233 --docdir=/usr/share/doc/util-linux-&util-linux-version; \234 --disable-chfn-chsh \235 --disable-login \236 --disable-nologin \237 --disable-su \238 --disable-setpriv \239 --disable-runuser \240 --disable-pylibmount \241 --disable-static \242 --without-python</userinput></screen>243 244 <para>Restore the tool previously moved away:</para>245 246 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>247 248 <para>Compile the package:</para>249 250 <screen><userinput remap="make">make</userinput></screen>251 252 <para>Install the package:</para>253 254 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install255 cp -Rv DESTDIR/usr/libx32/* /usr/libx32256 rm -rf DESTDIR</userinput></screen>257 258 </sect2><!-- mx32 -->259 127 260 128 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
ra161ad9 rd11686c 68 68 69 69 </sect2> 70 71 <!-- - - - - - - - - - -->72 <!-- Multilib - 32bit -->73 <!-- - - - - - - - - - -->74 75 <sect2 arch="ml_32,ml_all" role="installation">76 <title>Installation of Xz - 32bit</title>77 78 <para>Clean previous build:</para>79 80 <screen><userinput remap="pre">make distclean</userinput></screen>81 82 <para>Prepare Xz for compilation:</para>83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \85 --host=i686-pc-linux-gnu \86 --prefix=/usr \87 --libdir=/usr/lib32 \88 --disable-static</userinput></screen>89 90 <para>Compile the package:</para>91 92 <screen><userinput remap="make">make</userinput></screen>93 94 <para>Install the package:</para>95 96 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install97 cp -Rv DESTDIR/usr/lib32/* /usr/lib3298 rm -rf DESTDIR</userinput></screen>99 100 </sect2><!-- m32 -->101 102 <!-- - - - - - - - - - -->103 <!-- Multilib - x32bit -->104 <!-- - - - - - - - - - -->105 106 <sect2 arch="ml_x32,ml_all" role="installation">107 <title>Installation of Xz - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Xz for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-static</userinput></screen>120 121 <para>Compile the package:</para>122 123 <screen><userinput remap="make">make</userinput></screen>124 125 <para>Install the package:</para>126 127 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install128 cp -Rv DESTDIR/usr/libx32/* /usr/libx32129 rm -rf DESTDIR</userinput></screen>130 131 </sect2><!-- mx32 -->132 70 133 71 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
ra161ad9 rd11686c 64 64 </sect2> 65 65 66 <!-- - - - - - - - - - -->67 <!-- Multilib - 32bit -->68 <!-- - - - - - - - - - -->69 70 <sect2 arch="ml_32,ml_all" role="installation">71 <title>Installation of Zlib - 32bit</title>72 73 <para>Clean previous build:</para>74 75 <screen><userinput remap="pre">make distclean</userinput></screen>76 77 <para>Prepare Zlib for compilation:</para>78 79 <screen><userinput remap="configure">CFLAGS+=" -m32" CXXFLAGS+=" -m32" \80 ./configure --prefix=/usr \81 --libdir=/usr/lib32</userinput></screen>82 83 <para>Compile the package:</para>84 85 <screen><userinput remap="make">make</userinput></screen>86 87 <para>Install the package:</para>88 89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install90 cp -Rv DESTDIR/usr/lib32/* /usr/lib3291 rm -rf DESTDIR</userinput></screen>92 93 </sect2><!-- m32 -->94 95 <!-- - - - - - - - - - -->96 <!-- Multilib - x32bit -->97 <!-- - - - - - - - - - -->98 99 <sect2 arch="ml_x32,ml_all" role="installation">100 <title>Installation of Zlib - x32bit</title>101 102 <screen><userinput remap="pre">make distclean</userinput></screen>103 104 <para>Prepare Zlib for compilation:</para>105 106 <screen><userinput remap="configure">CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \107 ./configure --prefix=/usr \108 --libdir=/usr/libx32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 122 66 <sect2 id="contents-zlib" role="content"> 123 67 <title>Contents of Zlib</title> -
chapter08/zstd.xml
ra161ad9 rd11686c 65 65 66 66 </sect2> 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Zstd - 32bit</title>74 75 <para>Clean previous build:</para>76 77 <screen><userinput remap="pre">make clean</userinput></screen>78 79 <para>Compile the package:</para>80 81 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>82 83 <para>Install the package:</para>84 85 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install86 cp -Rv DESTDIR/usr/lib/* /usr/lib32/87 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc88 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of Zstd - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make clean</userinput></screen>102 103 <para>Compile the package:</para>104 105 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>106 107 <para>Install the package:</para>108 109 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install110 cp -Rv DESTDIR/usr/lib/* /usr/libx32/111 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc112 rm -rf DESTDIR</userinput></screen>113 114 </sect2><!-- mx32 -->115 67 116 68 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
ra161ad9 rd11686c 187 187 </note> 188 188 189 <note arch="ml_32,ml_x32,ml_all">190 <para>191 The kernel on a multilib system needs to be able to192 identify and start binaries compiled for different architectures193 than the default.194 </para>195 196 <para arch="ml_32,ml_all">197 If support for any 32bit ABI was built, make sure that the option198 "IA32 Emulation" is selected. The option 'IA32 a.out support' is199 optional.200 </para>201 202 <para arch="ml_x32,ml_all">203 If support for the x32bit ABI was built, make sure that the option204 "x32 ABI for 64-bit mode" is selected.205 </para>206 207 <screen arch="ml_32">Binary Emulations --->208 [*] IA32 Emulation [CONFIG_IA32_EMULATION]209 <M> IA32 a.out support [CONFIG_IA32_AOUT]210 </screen>211 <screen arch="ml_x32">Binary Emulations --->212 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]213 </screen>214 <screen arch="ml_all">Binary Emulations --->215 [*] IA32 Emulation [CONFIG_IA32_EMULATION]216 <M> IA32 a.out support [CONFIG_IA32_AOUT]217 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]218 </screen>219 </note>220 221 189 <variablelist> 222 190 <title>The rationale for the above configuration items:</title> -
packages.ent
ra161ad9 rd11686c 349 349 <!ENTITY iproute2-fin-du "17 MB"> 350 350 <!ENTITY iproute2-fin-sbu "0.1 SBU"> 351 352 <!ENTITY isl-version "0.24">353 <!ENTITY isl-size "2.1 MB">354 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->355 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">356 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">357 <!ENTITY isl-home "http://isl.gforge.inria.fr/">358 <!ENTITY isl-fin-du "20 MB">359 <!ENTITY isl-fin-sbu "0.1 SBU">360 351 361 352 <!ENTITY jinja2-version "3.1.2"> -
prologue/bookinfo.xml
ra161ad9 rd11686c 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 10 <subtitle>Version &version;< phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase></subtitle>10 <subtitle>Version &version;</subtitle> 11 11 <subtitle>Published &releasedate;</subtitle> 12 12 … … 29 29 <firstname>Editor: DJ</firstname> 30 30 <surname>Lucas</surname> 31 </author>32 33 <author arch="ml_32,ml_x32,ml_all">34 <firstname>Editor: Thomas</firstname>35 <surname>Trepl</surname>36 31 </author> 37 32 </authorgroup> -
prologue/preface.xml
ra161ad9 rd11686c 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.