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