Changes in / [df732b5:69d280f]
- Files:
-
- 2 added
- 50 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
rdf732b5 r69d280f 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)/ ..." … … 130 143 --output $(RENDERTMP)/lfs-html2.xml \ 131 144 --stringparam profile.revision $(REV) \ 145 --stringparam profile.arch $(ARCH) \ 132 146 stylesheets/lfs-xsl/profile.xsl \ 133 147 index.xml … … 177 191 $(Q)xsltproc --nonet --xinclude \ 178 192 --stringparam profile.revision $(REV) \ 193 --stringparam profile.arch $(ARCH) \ 179 194 --output $(RENDERTMP)/sysv-md5sum.xml \ 180 195 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 237 237 --> 238 238 239 <para arch="ml_32,ml_x32,ml_all"> 240 Building multilib support requires the kernel of the host system 241 to have 32-bit emulation support included. 242 </para> 243 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 244 [*] IA32 Emulation 245 <M> IA32 a.out support 246 [*] x32 ABI for 64-bit mode 247 </screen> 248 249 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 250 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 251 enabled but only 'IA32 Emulation', you can continue to build your 252 system but you have to leave out any sections showing instructions 253 for building x32 objects. If neither 'IA32 Emulation' nor 254 'x32 ABI for 64-bit mode' is enabled, you will run in errors 255 latest when building <application>glibc</application> in Chapter 6, 256 so an upgrade of your host system kernel is required. 257 </para> 258 239 259 </sect1> -
chapter03/packages.xml
rdf732b5 r69d280f 347 347 <para>Download: <ulink url="&iproute2-url;"/></para> 348 348 <para>MD5 sum: <literal>&iproute2-md5;</literal></para> 349 </listitem> 350 </varlistentry> 351 352 <varlistentry arch="ml_32,ml_x32,ml_all"> 353 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term> 354 <listitem> 355 <para>Home page: <ulink url="&isl-home;"/></para> 356 <para>Download: <ulink url="&isl-url;"/></para> 357 <para>MD5 sum: <literal>&isl-md5;</literal></para> 349 358 </listitem> 350 359 </varlistentry> -
chapter04/addinguser.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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 … … 77 80 <para>Next, prepare Glibc for compilation:</para> 78 81 79 <screen ><userinput remap="configure">../configure \82 <screen arch="default"><userinput remap="configure">../configure \ 80 83 --prefix=/usr \ 81 84 --host=$LFS_TGT \ … … 83 86 --enable-kernel=&min-kernel; \ 84 87 --with-headers=$LFS/usr/include \ 88 libc_cv_slibdir=/usr/lib</userinput></screen> 89 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 90 --prefix=/usr \ 91 --host=$LFS_TGT \ 92 --build=$(../scripts/config.guess) \ 93 --enable-kernel=&min-kernel; \ 94 --with-headers=$LFS/usr/include \ 95 --enable-multi-arch \ 85 96 libc_cv_slibdir=/usr/lib</userinput></screen> 86 97 … … 196 207 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 197 208 198 <para >Note that for 32-bit machines, the interpreter name will be209 <para arch="default">Note that for 32-bit machines, the interpreter name will be 199 210 <filename>/lib/ld-linux.so.2</filename>.</para> 200 211 … … 224 235 </sect2> 225 236 237 <!-- - - - - - - - - - --> 238 <!-- Multilib - 32bit --> 239 <!-- - - - - - - - - - --> 240 <sect2 arch="ml_32,ml_all"> 241 <title>Building Glibc - 32bit</title> 242 243 <para>Now recompile for m32. The extracted source can be 244 reused but needs to be cleaned before installing the m32 245 version of Glibc.</para> 246 247 <para>Clear the build directory and remove artefacts from 248 previous build:</para> 249 250 <screen><userinput remap="pre">make clean 251 find .. -name "*.a" -delete</userinput></screen> 252 253 <para>Configure Glibc for m32 with the following commands:</para> 254 255 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 256 CXX="$LFS_TGT-g++ -m32" \ 257 ../configure \ 258 --prefix=/usr \ 259 --host=$LFS_TGT32 \ 260 --build=$(../scripts/config.guess) \ 261 --enable-kernel=&min-kernel; \ 262 --with-headers=$LFS/usr/include \ 263 --enable-multi-arch \ 264 --libdir=/usr/lib32 \ 265 --libexecdir=/usr/lib32 \ 266 libc_cv_slibdir=/usr/lib32</userinput></screen> 267 268 <para>Compile the package:</para> 269 270 <screen><userinput remap="make">make</userinput></screen> 271 272 <para>Install the package:</para> 273 274 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 275 cp -a DESTDIR/usr/lib32 $LFS/usr/ 276 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 277 $LFS/usr/include/gnu/ 278 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen> 279 280 281 <caution> 282 <para>At this point, it is imperative to stop and ensure that the basic 283 functions (compiling and linking) of the new toolchain are working as 284 expected. To perform a sanity check, run the following commands:</para> 285 286 <screen><userinput>echo 'int main(){}' > dummy.c 287 $LFS_TGT-gcc -m32 dummy.c 288 readelf -l a.out | grep '/ld-linux'</userinput></screen> 289 290 <para>If everything is working correctly, there should be no errors, 291 and the output of the last command will be of the form:</para> 292 293 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 294 295 <para>If the output is not shown as above or there was no output at all, 296 then something is wrong. Investigate and retrace the steps to find out 297 where the problem is and correct it. This issue must be resolved before 298 continuing on.</para> 299 300 <para>Once all is well, clean up the test files:</para> 301 302 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 303 304 </caution> 305 306 </sect2><!-- m32 --> 307 308 <!-- - - - - - - - - - --> 309 <!-- Multilib - x32bit --> 310 <!-- - - - - - - - - - --> 311 312 <sect2 arch="ml_x32,ml_all"> 313 <title>Building Glibc - x32bit</title> 314 315 <para>Now recompile for mx32. The extracted source can be 316 reused but needs to be cleaned before installing the mx32 317 version of Glibc.</para> 318 319 <para>Clear the build directory and remove artefacts from 320 previous build:</para> 321 322 <screen><userinput remap="pre">make clean 323 find .. -name "*.a" -delete</userinput></screen> 324 325 <para>Configure Glibc for mx32 with the following commands:</para> 326 327 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 328 CXX="$LFS_TGT-g++ -mx32" \ 329 ../configure \ 330 --prefix=/usr \ 331 --host=$LFS_TGTX32 \ 332 --build=$(../scripts/config.guess) \ 333 --enable-kernel=&min-kernel; \ 334 --with-headers=$LFS/usr/include \ 335 --enable-multi-arch \ 336 --libdir=/usr/libx32 \ 337 --libexecdir=/usr/libx32 \ 338 libc_cv_slibdir=/usr/libx32</userinput></screen> 339 340 <para>Compile the package:</para> 341 342 <screen><userinput remap="make">make</userinput></screen> 343 344 <para>Install the package:</para> 345 346 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 347 cp -a DESTDIR/usr/libx32 $LFS/usr/ 348 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 349 $LFS/usr/include/gnu/ 350 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen> 351 352 <caution> 353 <para>At this point, it is imperative to stop and ensure that the basic 354 functions (compiling and linking) of the new toolchain are working as 355 expected. To perform a sanity check, run the following commands:</para> 356 357 <screen><userinput>echo 'int main(){}' > dummy.c 358 $LFS_TGT-gcc -mx32 dummy.c 359 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 360 361 <para>If everything is working correctly, there should be no errors, 362 and the output of the last command will be of the form:</para> 363 364 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 365 366 <para>If the output is not shown as above or there was no output at all, 367 then something is wrong. Investigate and retrace the steps to find out 368 where the problem is and correct it. This issue must be resolved before 369 continuing on.</para> 370 371 <para>Once all is well, clean up the test files:</para> 372 373 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 374 375 </caution> 376 377 </sect2><!-- mx32 --> 378 226 379 <sect2 role="content"> 227 380 <title/> -
chapter05/libstdc++.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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/cleanup.xml
rdf732b5 r69d280f 24 24 While still in chroot, remove those files now:</para> 25 25 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32"> 27 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32"> 28 find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all"> 29 find /usr/lib{,x}32 -name \*.la -delete</userinput></screen> 27 30 28 31 <para> -
chapter07/creatingdirs.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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/util-linux.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 83 83 <para>Prepare Binutils for compilation:</para> 84 84 85 <screen ><userinput remap="configure">../configure --prefix=/usr \85 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 86 86 --enable-gold \ 87 87 --enable-ld=default \ … … 91 91 --enable-64-bit-bfd \ 92 92 --with-system-zlib</userinput></screen> 93 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 94 --enable-gold \ 95 --enable-ld=default \ 96 --enable-plugins \ 97 --enable-shared \ 98 --disable-werror \ 99 --enable-64-bit-bfd \ 100 --with-system-zlib \ 101 --enable-multilib</userinput></screen> 102 93 103 <variablelist> 94 104 <title>The meaning of the configure parameters:</title> … … 122 132 <para>Enables 64-bit support (on hosts with narrower word sizes). 123 133 May not be needed on 64-bit systems, but does no harm.</para> 134 </listitem> 135 </varlistentry> 136 137 <varlistentry arch="ml_32,ml_x32,ml_all"> 138 <term><parameter>--enable-multilib</parameter></term> 139 <listitem> 140 <para>Enables multilib support in bintutils.</para> 124 141 </listitem> 125 142 </varlistentry> -
chapter08/bzip2.xml
rdf732b5 r69d280f 103 103 104 104 </sect2> 105 106 <!-- - - - - - - - - - --> 107 <!-- Multilib - 32bit --> 108 <!-- - - - - - - - - - --> 109 110 <sect2 arch="ml_32,ml_all" role="installation"> 111 <title>Installation of Bzip2 - 32bit</title> 112 113 <para>Clean previous build:</para> 114 115 <screen><userinput remap="pre">make clean</userinput></screen> 116 117 <para>Compile the package:</para> 118 119 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so} 120 make -f Makefile-libbz2_so 121 make libbz2.a</userinput></screen> 122 123 <para>Install the package:</para> 124 125 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0.8 126 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so 127 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1 128 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0 129 install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen> 130 131 </sect2><!-- m32 --> 132 133 <!-- - - - - - - - - - --> 134 <!-- Multilib - x32bit --> 135 <!-- - - - - - - - - - --> 136 137 <sect2 arch="ml_x32,ml_all" role="installation"> 138 <title>Installation of Bzip2 - x32bit</title> 139 140 <para>Clean previous build:</para> 141 142 <screen><userinput remap="pre">make clean</userinput></screen> 143 144 <para>Compile the package:</para> 145 146 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so} 147 make -f Makefile-libbz2_so 148 make libbz2.a</userinput></screen> 149 150 <para>Install the package:</para> 151 152 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8 153 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so 154 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1 155 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0 156 install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen> 157 158 </sect2><!-- mx32 --> 105 159 106 160 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 85 85 </sect2> 86 86 87 <!-- - - - - - - - - - --> 88 <!-- Multilib - 32bit --> 89 <!-- - - - - - - - - - --> 90 91 <sect2 arch="ml_32,ml_all" role="installation"> 92 <title>Installation of Eudev - 32bit</title> 93 94 <para>Clean previous build:</para> 95 96 <screen><userinput remap="pre">make distclean</userinput></screen> 97 98 <para>Prepare Eudev for compilation:</para> 99 100 <screen><userinput remap="configure">CC="gcc -m32" \ 101 ./configure --host=i686-pc-linux-gnu \ 102 --prefix=/usr \ 103 --bindir=/usr/sbin \ 104 --libdir=/usr/lib32 \ 105 --sysconfdir=/etc \ 106 --disable-manpages \ 107 --disable-static \ 108 --config-cache</userinput></screen> 109 110 <para>Compile the package:</para> 111 112 <screen><userinput remap="make">make</userinput></screen> 113 114 <para>Install the package:</para> 115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 117 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 118 rm -rf DESTDIR</userinput></screen> 119 120 </sect2><!-- m32 --> 121 122 <!-- - - - - - - - - - --> 123 <!-- Multilib - x32bit --> 124 <!-- - - - - - - - - - --> 125 126 <sect2 arch="ml_x32,ml_all" role="installation"> 127 <title>Installation of Eudev - x32bit</title> 128 129 <para>Clean previous build:</para> 130 131 <screen><userinput remap="pre">make distclean</userinput></screen> 132 133 <para>Prepare Eudev for compilation:</para> 134 135 <screen><userinput remap="configure">CC="gcc -mx32" \ 136 ./configure --host=x86_64-lfs-linux-gnux32 \ 137 --prefix=/usr \ 138 --bindir=/usr/sbin \ 139 --libdir=/usr/libx32 \ 140 --sysconfdir=/etc \ 141 --disable-manpages \ 142 --disable-static \ 143 --config-cache</userinput></screen> 144 145 <para>Compile the package:</para> 146 147 <screen><userinput remap="make">make</userinput></screen> 148 149 <para>Install the package:</para> 150 151 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 152 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 153 rm -rf DESTDIR</userinput></screen> 154 155 </sect2><!-- mx32 --> 156 87 157 <sect2 id="conf-eudev" role="configuration"> 88 158 <title>Configuring Eudev</title> -
chapter08/expat.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 53 53 libraries to <quote>lib</quote>:</para> 54 54 55 <screen ><userinput remap="pre">case $(uname -m) in55 <screen arch="default"><userinput remap="pre">case $(uname -m) in 56 56 x86_64) 57 57 sed -e '/m64=/s/lib64/lib/' \ … … 60 60 esac</userinput></screen> 61 61 62 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit 63 libraries to <quote>lib</quote>:</para> 64 65 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 66 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 67 -i.orig gcc/config/i386/t-linux64</userinput></screen> 68 62 69 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 63 70 … … 67 74 <para>Prepare GCC for compilation:</para> 68 75 69 <screen ><userinput remap="configure">../configure --prefix=/usr \76 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 70 77 LD=ld \ 71 78 --enable-languages=c,c++ \ 72 79 --disable-multilib \ 73 80 --disable-bootstrap \ 81 --with-system-zlib</userinput></screen> 82 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 83 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure" 84 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 85 arch="ml_all">mlist=m64,m32,mx32</userinput> 86 <userinput remap="configure">../configure --prefix=/usr \ 87 LD=ld \ 88 --enable-languages=c,c++ \ 89 --enable-multilib \ 90 --with-multilib-list=$mlist \ 91 --disable-bootstrap \ 74 92 --with-system-zlib</userinput></screen> 75 93 … … 270 288 SEARCH_DIR("/usr/lib");</computeroutput></screen> 271 289 272 <para >A 32-bit system may see a few different directories. For example, here290 <para arch="default">A 32-bit system may see a few different directories. For example, here 273 291 is the output from an i686 machine:</para> 274 292 275 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 293 <!-- not using entities here as the dir names has nothing to do with multilib --> 294 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 276 295 SEARCH_DIR("/usr/local/lib32") 277 296 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
rdf732b5 r69d280f 70 70 <para>Prepare Glibc for compilation:</para> 71 71 72 <screen ><userinput remap="configure">../configure --prefix=/usr \72 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 73 73 --disable-werror \ 74 74 --enable-kernel=&min-kernel; \ 75 75 --enable-stack-protector=strong \ 76 76 --with-headers=/usr/include \ 77 libc_cv_slibdir=/usr/lib</userinput></screen> 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 79 --disable-werror \ 80 --enable-kernel=&min-kernel; \ 81 --enable-stack-protector=strong \ 82 --with-headers=/usr/include \ 83 --enable-multi-arch \ 77 84 libc_cv_slibdir=/usr/lib</userinput></screen> 78 85 … … 470 477 </sect2> 471 478 479 <!-- - - - - - - - - - --> 480 <!-- Multilib - 32bit --> 481 <!-- - - - - - - - - - --> 482 <sect2 arch="ml_32,ml_all"> 483 <title>Building Glibc - 32bit</title> 484 485 <para>Now recompile for m32. The extracted source can be 486 reused but needs to be cleaned before installing the m32 487 version of Glibc.</para> 488 489 <para>Clear the build directory and remove artefacts from 490 previous build:</para> 491 492 <screen><userinput remap="pre">rm -rf ./* 493 find .. -name "*.a" -delete</userinput></screen> 494 495 <para>Configure Glibc for m32 with the following commands:</para> 496 497 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \ 498 ../configure \ 499 --prefix=/usr \ 500 --host=i686-pc-linux-gnu \ 501 --build=$(../scripts/config.guess) \ 502 --enable-kernel=&min-kernel; \ 503 --with-headers=/usr/include \ 504 --enable-multi-arch \ 505 --libdir=/usr/lib32 \ 506 --libexecdir=/usr/lib32 \ 507 libc_cv_slibdir=/usr/lib32</userinput></screen> 508 509 <para>Compile the package:</para> 510 511 <screen><userinput remap="make">make</userinput></screen> 512 513 <para>Install the package:</para> 514 515 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 516 cp -a DESTDIR/usr/lib32/* /usr/lib32/ 517 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 518 /usr/include/gnu/</userinput></screen> 519 <!-- no longer required as they are created in chap5 520 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2 521 --> 522 523 <para>Add the library name to the dynamic loader config:</para> 524 525 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen> 526 527 <caution> 528 <para>At this point, it is imperative to stop and ensure that the basic 529 functions (compiling and linking) of the new toolchain are working as 530 expected. To perform a sanity check, run the following commands:</para> 531 532 <screen><userinput>echo 'int main(){}' > dummy.c 533 gcc -m32 dummy.c 534 readelf -l a.out | grep '/ld-linux'</userinput></screen> 535 536 <para>If everything is working correctly, there should be no errors, 537 and the output of the last command will be of the form:</para> 538 539 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 540 541 <para>If the output is not shown as above or there was no output at all, 542 then something is wrong. Investigate and retrace the steps to find out 543 where the problem is and correct it. This issue must be resolved before 544 continuing on.</para> 545 546 <para>Once all is well, clean up the test files:</para> 547 548 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 549 550 </caution> 551 552 </sect2><!-- m32 --> 553 554 <!-- - - - - - - - - - --> 555 <!-- Multilib - x32bit --> 556 <!-- - - - - - - - - - --> 557 558 <sect2 arch="ml_x32,ml_all"> 559 <title>Building Glibc - x32bit</title> 560 561 <para>Now recompile for mx32. The extracted source can be 562 reused but needs to be cleaned before installing the mx32 563 version of Glibc.</para> 564 565 <para>Clear the build directory and remove artefacts from 566 previous build:</para> 567 568 <screen><userinput remap="pre">rm -rf ./* 569 find .. -name "*.a" -delete</userinput></screen> 570 571 <para>Configure Glibc for mx32 with the following commands:</para> 572 573 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 574 ../configure \ 575 --prefix=/usr \ 576 --host=x86_64-pc-linux-gnux32 \ 577 --build=$(../scripts/config.guess) \ 578 --enable-kernel=&min-kernel; \ 579 --with-headers=/usr/include \ 580 --enable-multi-arch \ 581 --libdir=/usr/libx32 \ 582 --libexecdir=/usr/libx32 \ 583 libc_cv_slibdir=/usr/libx32</userinput></screen> 584 585 <para>Compile the package:</para> 586 587 <screen><userinput remap="make">make</userinput></screen> 588 589 <para>Install the package:</para> 590 591 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 592 cp -a DESTDIR/usr/libx32/* /usr/libx32/ 593 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 594 /usr/include/gnu/</userinput></screen> 595 <!-- no longer required as they are created in chap5 596 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2 597 --> 598 <para>Add the library name to the dynamic loader config:</para> 599 600 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen> 601 602 <caution> 603 <para>At this point, it is imperative to stop and ensure that the basic 604 functions (compiling and linking) of the new toolchain are working as 605 expected. To perform a sanity check, run the following commands:</para> 606 607 <screen><userinput>echo 'int main(){}' > dummy.c 608 gcc -mx32 dummy.c 609 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 610 611 <para>If everything is working correctly, there should be no errors, 612 and the output of the last command will be of the form:</para> 613 614 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 615 616 <para>If the output is not shown as above or there was no output at all, 617 then something is wrong. Investigate and retrace the steps to find out 618 where the problem is and correct it. This issue must be resolved before 619 continuing on.</para> 620 621 <para>Once all is well, clean up the test files:</para> 622 623 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 624 625 </caution> 626 627 </sect2><!-- mx32 --> 628 472 629 <sect2 id="contents-glibc" role="content"> 473 630 <title>Contents of Glibc</title> -
chapter08/gmp.xml
rdf732b5 r69d280f 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 --host=i686-pc-linux-gnu \ 148 --prefix=/usr \ 149 --disable-static \ 150 --enable-cxx \ 151 --libdir=/usr/lib32 \ 152 --includedir=/usr/include/m32/gmp</userinput></screen> 153 154 <variablelist> 155 <title>The meaning of the new configure options:</title> 156 157 <varlistentry> 158 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term> 159 <listitem> 160 <para>Some definitions in gmp.h differs for each arch but 161 has same name. Therefore, the headers must be separated from 162 each other.</para> 163 </listitem> 164 </varlistentry> 165 166 </variablelist> 167 168 <para>Compile the package:</para> 169 170 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 171 make</userinput></screen> 172 173 <important> 174 <para>The test suite for GMP in this section is considered critical. 175 Do not skip it under any circumstances.</para> 176 </important> 177 178 <para>Test the results:</para> 179 180 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 181 182 <para>Ensure that all 197 tests in the test suite passed. 183 Check the results by issuing the following command:</para> 184 185 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 186 187 <para>Install the package:</para> 188 189 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 190 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 191 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/ 192 rm -rf DESTDIR</userinput></screen> 193 194 </sect2><!-- m32 --> 195 196 <!-- - - - - - - - - - --> 197 <!-- Multilib - x32bit --> 198 <!-- - - - - - - - - - --> 199 200 <sect2 arch="ml_x32,ml_all" role="installation"> 201 <title>Installation of GMP - x32-bit</title> 202 203 <para>Clean previous build:</para> 204 205 <screen><userinput remap="pre">make distclean</userinput></screen> 206 207 <para>Generic libraries can be created by running 208 the following:</para> 209 210 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess 211 cp -v configfsf.sub config.sub</userinput></screen> 212 213 <para>Prepare GMP for compilation:</para> 214 215 <screen><userinput remap="configure">ABI="x32" \ 216 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \ 217 CXXFLAGS="$CFLAGS" \ 218 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 219 ./configure \ 220 --host=x86_64-pc-linux-gnux32 \ 221 --prefix=/usr \ 222 --disable-static \ 223 --enable-cxx \ 224 --libdir=/usr/libx32 \ 225 --includedir=/usr/include/mx32/gmp</userinput></screen> 226 227 <para>Compile the package:</para> 228 229 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 230 make</userinput></screen> 231 232 <important> 233 <para>The test suite for GMP in this section is considered critical. 234 Do not skip it under any circumstances.</para> 235 </important> 236 237 <para>Test the results:</para> 238 239 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 240 241 <para>Ensure that all 197 tests in the test suite passed. 242 Check the results by issuing the following command:</para> 243 244 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 245 246 <para>Install the package:</para> 247 248 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 249 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 250 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/ 251 rm -rf DESTDIR</userinput></screen> 252 253 </sect2><!-- mx32 --> 254 123 255 <sect2 id="contents-gmp" role="content"> 124 256 <title>Contents of GMP</title> -
chapter08/kmod.xml
rdf732b5 r69d280f 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 --host=i686-pc-linux-gnu \ 103 --prefix=/usr \ 104 --libdir=/usr/lib32 \ 105 --sysconfdir=/etc \ 106 --with-xz \ 107 --with-zlib \ 108 --with-rootlibdir=/usr/lib32</userinput></screen> 109 110 <para>Compile the package:</para> 111 112 <screen><userinput remap="make">make</userinput></screen> 113 114 <para>Install the package:</para> 115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 117 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 118 rm -rf DESTDIR</userinput></screen> 119 120 </sect2><!-- m32 --> 121 122 <!-- - - - - - - - - - --> 123 <!-- Multilib - x32bit --> 124 <!-- - - - - - - - - - --> 125 126 <sect2 arch="ml_x32,ml_all" role="installation"> 127 <title>Installation of Kmod - x32bit</title> 128 129 <para>Clean previous build but keep man pages as they cannot 130 be recreated since xsltproc isn't installed yet:</para> 131 132 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 133 make clean</userinput></screen> 134 135 <para>Prepare Kmod for compilation:</para> 136 137 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 138 --host=x86_64-pc-linux-gnux32 \ 139 --prefix=/usr \ 140 --libdir=/usr/libx32 \ 141 --sysconfdir=/etc \ 142 --with-xz \ 143 --with-zlib \ 144 --with-rootlibdir=/usr/libx32</userinput></screen> 145 146 <para>Compile the package:</para> 147 148 <screen><userinput remap="make">make</userinput></screen> 149 150 <para>Install the package:</para> 151 152 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 153 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 154 rm -rf DESTDIR</userinput></screen> 155 156 </sect2><!-- mx32 --> 85 157 86 158 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
rdf732b5 r69d280f 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 CC="gcc -m32 -march=i686" 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 CC="gcc -mx32 -march=x86-64" 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
rdf732b5 r69d280f 69 69 </sect2> 70 70 71 <!-- - - - - - - - - - --> 72 <!-- Multilib - 32bit --> 73 <!-- - - - - - - - - - --> 74 75 <sect2 arch="ml_32,ml_all" role="installation"> 76 <title>Installation of Libelf - 32bit</title> 77 78 <para>Clean previous build:</para> 79 80 <screen><userinput remap="pre">make distclean</userinput></screen> 81 82 <para>Prepare Libtool for compilation:</para> 83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 85 --host=i686-pc-linux-gnu \ 86 --prefix=/usr \ 87 --libdir=/usr/lib32 \ 88 --disable-debuginfod \ 89 --enable-libdebuginfod=dummy</userinput></screen> 90 91 <para>Compile the package:</para> 92 93 <screen><userinput remap="make">make</userinput></screen> 94 95 <para>Install the package:</para> 96 97 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf 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 --host=x86_64-pc-linux-gnux32 \ 119 --prefix=/usr \ 120 --libdir=/usr/libx32 \ 121 --disable-debuginfod \ 122 --enable-libdebuginfod=dummy</userinput></screen> 123 124 <para>Compile the package:</para> 125 126 <screen><userinput remap="make">make</userinput></screen> 127 128 <para>Install the package:</para> 129 130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf 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
rdf732b5 r69d280f 104 104 </sect2> 105 105 106 <!-- - - - - - - - - - --> 107 <!-- Multilib - 32bit --> 108 <!-- - - - - - - - - - --> 109 110 <sect2 arch="ml_32,ml_all" role="installation"> 111 <title>Installation of Libffi - 32bit</title> 112 113 <para>Clean previous build:</para> 114 115 <screen><userinput remap="pre">make distclean</userinput></screen> 116 117 <para>Prepare Libffi for compilation:</para> 118 119 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 120 --host=i686-pc-linux-gnu \ 121 --prefix=/usr \ 122 --libdir=/usr/lib32 \ 123 --disable-static \ 124 --with-gcc-arch=i686 \ 125 --disable-exec-static-tramp</userinput></screen> 126 127 <para>Compile the package:</para> 128 129 <screen><userinput remap="make">make</userinput></screen> 130 131 <para>To test the results, issue:</para> 132 133 <screen><userinput remap="test">make check</userinput></screen> 134 135 <para>Install the package:</para> 136 137 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 138 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 139 rm -rf DESTDIR</userinput></screen> 140 141 </sect2><!-- m32 --> 142 143 <!-- - - - - - - - - - --> 144 <!-- Multilib - x32bit --> 145 <!-- - - - - - - - - - --> 146 147 <sect2 arch="ml_x32,ml_all" role="installation"> 148 <title>Installation of Libffi - x32bit</title> 149 150 <para>Clean previous build:</para> 151 152 <screen><userinput remap="pre">make distclean</userinput></screen> 153 154 <para>Prepare Libffi for compilation:</para> 155 156 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 157 --host=x86_64-unknown-linux-gnux32 \ 158 --prefix=/usr \ 159 --libdir=/usr/libx32 \ 160 --disable-static \ 161 --with-gcc-arch=x86_64 \ 162 --disable-exec-static-tramp</userinput></screen> 163 164 <para>Compile the package:</para> 165 166 <screen><userinput remap="make">make</userinput></screen> 167 168 <para>To test the results, issue:</para> 169 170 <screen><userinput remap="test">make check</userinput></screen> 171 172 <para>Install the package:</para> 173 174 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 175 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 176 rm -rf DESTDIR</userinput></screen> 177 178 </sect2><!-- mx32 --> 179 106 180 <sect2 id="contents-libffi" role="content"> 107 181 <title>Contents of Libffi</title> … … 134 208 135 209 </sect1> 136 -
chapter08/libtool.xml
rdf732b5 r69d280f 78 78 </sect2> 79 79 80 <!-- - - - - - - - - - --> 81 <!-- Multilib - 32bit --> 82 <!-- - - - - - - - - - --> 83 84 <sect2 arch="ml_32,ml_all" role="installation"> 85 <title>Installation of Libtool - 32bit</title> 86 87 <para>Clean previous build:</para> 88 89 <screen><userinput remap="pre">make distclean</userinput></screen> 90 91 <para>Prepare Libtool for compilation:</para> 92 93 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 94 --host=i686-pc-linux-gnu \ 95 --prefix=/usr \ 96 --libdir=/usr/lib32</userinput></screen> 97 98 <para>Compile the package:</para> 99 100 <screen><userinput remap="make">make</userinput></screen> 101 102 <para>Install the package:</para> 103 104 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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 --host=x86_64-pc-linux-gnux32 \ 125 --prefix=/usr \ 126 --libdir=/usr/libx32</userinput></screen> 127 128 <para>Compile the package:</para> 129 130 <screen><userinput remap="make">make</userinput></screen> 131 132 <para>Install the package:</para> 133 134 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 98 98 99 99 </sect2> 100 101 <!-- - - - - - - - - - --> 102 <!-- Multilib - 32bit --> 103 <!-- - - - - - - - - - --> 104 105 <sect2 arch="ml_32,ml_all" role="installation"> 106 <title>Installation of OpenSSL - 32bit</title> 107 108 <para>Clean previous build:</para> 109 110 <screen><userinput remap="pre">make distclean</userinput></screen> 111 112 <para>Prepare OpenSSL for compilation:</para> 113 114 <screen><userinput remap="configure">MACHINE="i686" \ 115 CC="gcc -m32 -march=i686" \ 116 CXX="g++ -m32 -march=i686" \ 117 ./config \ 118 --prefix=/usr \ 119 --openssldir=/etc/ssl \ 120 --libdir=lib32 \ 121 shared \ 122 zlib-dynamic</userinput></screen> 123 124 <para>Compile the package:</para> 125 126 <screen><userinput remap="make">make</userinput></screen> 127 128 <para>Install the package:</para> 129 130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 131 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 132 rm -rf DESTDIR</userinput></screen> 133 134 </sect2><!-- m32 --> 135 136 <!-- - - - - - - - - - --> 137 <!-- Multilib - x32bit --> 138 <!-- - - - - - - - - - --> 139 140 <sect2 arch="ml_x32,ml_all" role="installation"> 141 <title>Installation of OpenSSL - x32bit</title> 142 143 <para>Clean previous build:</para> 144 145 <screen><userinput remap="pre">make distclean</userinput></screen> 146 147 <para>Prepare OpenSSL for compilation:</para> 148 149 <screen><userinput remap="configure">MACHINE="x86_64" \ 150 CC="gcc -mx32" \ 151 CXX="g++ -mx32" \ 152 ./config \ 153 --prefix=/usr \ 154 --openssldir=/etc/ssl \ 155 --libdir=libx32 \ 156 shared \ 157 zlib-dynamic</userinput></screen> 158 159 <para>Compile the package:</para> 160 161 <screen><userinput remap="make">make</userinput></screen> 162 163 <para>Install the package:</para> 164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 167 rm -rf DESTDIR</userinput></screen> 168 169 </sect2><!-- mx32 --> 100 170 101 171 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
rdf732b5 r69d280f 101 101 </sect2> 102 102 103 <!-- - - - - - - - - - --> 104 <!-- Multilib - 32bit --> 105 <!-- - - - - - - - - - --> 106 107 <sect2 arch="ml_32,ml_all" role="installation"> 108 <title>Installation of Readline - 32bit</title> 109 110 <para>Clean previous build:</para> 111 112 <screen><userinput remap="pre">make distclean</userinput></screen> 113 114 <para>Prepare Readline for compilation:</para> 115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 117 --host=i686-pc-linux-gnu \ 118 --prefix=/usr \ 119 --libdir=/usr/lib32 \ 120 --disable-static</userinput></screen> 121 122 <para>Compile the package:</para> 123 124 <screen><userinput remap="make">make</userinput></screen> 125 126 <para>Install the package:</para> 127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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 --host=x86_64-pc-linux-gnux32 \ 149 --prefix=/usr \ 150 --libdir=/usr/libx32 \ 151 --disable-static</userinput></screen> 152 153 <para>Compile the package:</para> 154 155 <screen><userinput remap="make">make</userinput></screen> 156 157 <para>Install the package:</para> 158 159 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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
rdf732b5 r69d280f 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/stripping.xml
rdf732b5 r69d280f 57 57 58 58 cd /usr/lib 59 60 59 for LIB in $save_usrlib; do 61 60 objcopy --only-keep-debug $LIB $LIB.dbg … … 65 64 install -vm755 /tmp/$LIB /usr/lib 66 65 rm /tmp/$LIB 67 done 66 done</userinput> 67 <userinput arch="ml_32,ml_all"> 68 cd /usr/lib32 69 for LIB in $save_usrlib; do 70 objcopy --only-keep-debug $LIB $LIB.dbg 71 cp $LIB /tmp/$LIB 72 strip --strip-unneeded /tmp/$LIB 73 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 74 install -vm755 /tmp/$LIB /usr/lib32 75 rm /tmp/$LIB 76 done</userinput> 77 <userinput arch="ml_x32,ml_all"> 78 cd /usr/libx32 79 for LIB in $save_usrlib; do 80 objcopy --only-keep-debug $LIB $LIB.dbg 81 cp $LIB /tmp/$LIB 82 strip --strip-unneeded /tmp/$LIB 83 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 84 install -vm755 /tmp/$LIB /usr/libx32 85 rm /tmp/$LIB 86 done</userinput><userinput> 68 87 69 88 online_usrbin="bash find strip" … … 88 107 install -vm755 /tmp/$LIB /usr/lib 89 108 rm /tmp/$LIB 90 done 109 done</userinput><userinput arch="ml_32,ml_all"> 110 for LIB in $online_usrlib; do 111 cp /usr/lib32/$LIB /tmp/$LIB 112 strip --strip-unneeded /tmp/$LIB 113 install -vm755 /tmp/$LIB /usr/lib32 114 rm /tmp/$LIB 115 done</userinput><userinput arch="ml_x32,ml_all"> 116 for LIB in $online_usrlib; do 117 cp /usr/libx32/$LIB /tmp/$LIB 118 strip --strip-unneeded /tmp/$LIB 119 install -vm755 /tmp/$LIB /usr/libx32 120 rm /tmp/$LIB 121 done</userinput><userinput> 91 122 92 123 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 99 130 ;; 100 131 esac 101 done 132 done</userinput><userinput arch="ml_32,ml_all"> 133 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg); do 134 case "$online_usrbin $online_usrlib $save_usrlib" in 135 *$(basename $i)* ) 136 ;; 137 * ) strip --strip-unneeded $i 138 ;; 139 esac 140 done</userinput><userinput arch="ml_x32,ml_all"> 141 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg); do 142 case "$online_usrbin $online_usrlib $save_usrlib" in 143 *$(basename $i)* ) 144 ;; 145 * ) strip --strip-unneeded $i 146 ;; 147 esac 148 done</userinput><userinput> 102 149 103 150 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
rdf732b5 r69d280f 219 219 220 220 </sect2> 221 222 <!-- - - - - - - - - - --> 223 <!-- Multilib - 32bit --> 224 <!-- - - - - - - - - - --> 225 226 <sect2 arch="ml_32,ml_all" role="installation"> 227 <title>Installation of systemd - 32-bit</title> 228 229 <para>Clean previous build:</para> 230 231 <screen><userinput remap="pre">rm -rf *</userinput></screen> 232 233 <para>Create a symlink to work around missing xsltproc:</para> 234 235 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen --> 236 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 237 238 <!-- with cross-LFS we have util-linux in place: 239 <para>Because we have not yet installed the final version of Util-Linux, 240 create links to the libraries in the approprite location:</para> 241 242 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do 243 ln -sf $file /usr/lib32/ 244 done</userinput></screen> 245 --> 246 247 <para>Prepare systemd for compilation:</para> 248 249 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ 250 CC="gcc -m32 -march=i686" \ 251 CXX="g++ -m32 -march=i686" \ 252 LANG=en_US.UTF-8 \ 253 meson --prefix=/usr \ 254 --sysconfdir=/etc \ 255 --localstatedir=/var \ 256 -Dblkid=true \ 257 -Dbuildtype=release \ 258 -Ddefault-dnssec=no \ 259 -Dfirstboot=false \ 260 -Dinstall-tests=false \ 261 -Dkill-path=/bin/kill \ 262 -Dkmod-path=/bin/kmod \ 263 -Dldconfig=false \ 264 -Dmount-path=/bin/mount \ 265 -Drootprefix= \ 266 -Drootlibdir=/usr/lib32 \ 267 -Dsplit-usr=true \ 268 -Dsulogin-path=/sbin/sulogin \ 269 -Dsysusers=false \ 270 -Dumount-path=/bin/umount \ 271 -Db_lto=false \ 272 ..</userinput></screen> 273 274 <para>Compile the package:</para> 275 276 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 277 278 <para>Install the package:</para> 279 280 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 281 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 282 rm -rf DESTDIR 283 rm -f /usr/bin/xsltproc</userinput></screen> 284 285 </sect2><!-- m32 --> 286 287 <!-- - - - - - - - - - --> 288 <!-- Multilib - x32bit --> 289 <!-- - - - - - - - - - --> 290 291 <sect2 arch="ml_x32,ml_all" role="installation"> 292 <title>Installation of systemd - x32-bit</title> 293 294 <para>Clean previous build:</para> 295 296 <screen><userinput remap="pre">rm -rf *</userinput></screen> 297 298 <para>Create a symlink to work around missing xsltproc:</para> 299 300 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 301 302 <para>Fix an issue on x32:</para> 303 304 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c 305 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen> 306 307 <para>Prepare systemd for compilation:</para> 308 309 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 310 CC="gcc -mx32" \ 311 CXX="g++ -mx32" \ 312 CFLAGS+="-Wno-error=shift-overflow" \ 313 CXXFLAGS+="-Wno-error=shift-overflow" \ 314 LANG=en_US.UTF-8 \ 315 meson --prefix=/usr \ 316 --sysconfdir=/etc \ 317 --localstatedir=/var \ 318 -Dblkid=true \ 319 -Dbuildtype=release \ 320 -Ddefault-dnssec=no \ 321 -Dfirstboot=false \ 322 -Dinstall-tests=false \ 323 -Dkill-path=/bin/kill \ 324 -Dkmod-path=/bin/kmod \ 325 -Dldconfig=false \ 326 -Dmount-path=/bin/mount \ 327 -Drootprefix= \ 328 -Drootlibdir=/usr/libx32 \ 329 -Dsplit-usr=true \ 330 -Dsulogin-path=/sbin/sulogin \ 331 -Dsysusers=false \ 332 -Dumount-path=/bin/umount \ 333 -Db_lto=false \ 334 ..</userinput></screen> 335 336 <para>Compile the package:</para> 337 338 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 339 340 <para>Install the package:</para> 341 342 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 343 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 344 rm -rf DESTDIR 345 rm -f /usr/bin/xsltproc</userinput></screen> 346 347 </sect2><!-- mx32 --> 221 348 222 349 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
rdf732b5 r69d280f 116 116 --> 117 117 </sect2> 118 119 <!-- - - - - - - - - - --> 120 <!-- Multilib - 32bit --> 121 <!-- - - - - - - - - - --> 122 123 <sect2 arch="ml_32,ml_all" role="installation"> 124 <title>Installation of Util-linux - 32-bit</title> 125 126 <para>Clean previous build:</para> 127 128 <screen><userinput remap="pre">make distclean</userinput></screen> 129 130 <para>Prepare Util-linux for compilation:</para> 131 132 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \ 133 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 134 --host=i686-pc-linux-gnu \ 135 --libdir=/usr/lib32 \ 136 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 137 --disable-chfn-chsh \ 138 --disable-login \ 139 --disable-nologin \ 140 --disable-su \ 141 --disable-setpriv \ 142 --disable-runuser \ 143 --disable-pylibmount \ 144 --disable-static \ 145 --without-python \ 146 --without-systemd \ 147 --without-systemdsystemunitdir \ 148 --enable-libmount-force-mountinfo</userinput></screen> 149 150 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \ 151 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 152 --host=i686-pc-linux-gnu \ 153 --libdir=/usr/lib32 \ 154 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 155 --disable-chfn-chsh \ 156 --disable-login \ 157 --disable-nologin \ 158 --disable-su \ 159 --disable-setpriv \ 160 --disable-runuser \ 161 --disable-pylibmount \ 162 --disable-static \ 163 --without-python \ 164 --enable-libmount-force-mountinfo</userinput></screen> 165 166 <para>Compile the package:</para> 167 168 <screen><userinput remap="make">make</userinput></screen> 169 170 <para>Install the package:</para> 171 172 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 173 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 174 rm -rf DESTDIR</userinput></screen> 175 176 </sect2><!-- m32 --> 177 178 <!-- - - - - - - - - - --> 179 <!-- Multilib - x32bit --> 180 <!-- - - - - - - - - - --> 181 182 <sect2 arch="ml_x32,ml_all" role="installation"> 183 <title>Installation of Util-linux - x32-bit</title> 184 185 <para>Clean previous build:</para> 186 187 <screen><userinput remap="pre">make distclean</userinput></screen> 188 189 <para>Prepare Util-linux for compilation:</para> 190 191 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \ 192 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 193 --host=x86_64-pc-linux-gnux32 \ 194 --libdir=/usr/libx32 \ 195 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 196 --disable-chfn-chsh \ 197 --disable-login \ 198 --disable-nologin \ 199 --disable-su \ 200 --disable-setpriv \ 201 --disable-runuser \ 202 --disable-pylibmount \ 203 --disable-static \ 204 --without-python \ 205 --without-systemd \ 206 --without-systemdsystemunitdir \ 207 --enable-libmount-force-mountinfo</userinput></screen> 208 209 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \ 210 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 211 --host=x86_64-pc-linux-gnux32 \ 212 --libdir=/usr/libx32 \ 213 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 214 --disable-chfn-chsh \ 215 --disable-login \ 216 --disable-nologin \ 217 --disable-su \ 218 --disable-setpriv \ 219 --disable-runuser \ 220 --disable-pylibmount \ 221 --disable-static \ 222 --without-python \ 223 --enable-libmount-force-mountinfo</userinput></screen> 224 225 <para>Compile the package:</para> 226 227 <screen><userinput remap="make">make</userinput></screen> 228 229 <para>Install the package:</para> 230 231 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 232 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 233 rm -rf DESTDIR</userinput></screen> 234 235 </sect2><!-- mx32 --> 118 236 119 237 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
rdf732b5 r69d280f 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - --> 68 <!-- Multilib - 32bit --> 69 <!-- - - - - - - - - - --> 70 71 <sect2 arch="ml_32,ml_all" role="installation"> 72 <title>Installation of Xz - 32bit</title> 73 74 <para>Clean previous build:</para> 75 76 <screen><userinput remap="pre">make distclean</userinput></screen> 77 78 <para>Prepare Xz for compilation:</para> 79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 81 --host=i686-pc-linux-gnu \ 82 --prefix=/usr \ 83 --libdir=/usr/lib32 \ 84 --disable-static</userinput></screen> 85 86 <para>Compile the package:</para> 87 88 <screen><userinput remap="make">make</userinput></screen> 89 90 <para>Install the package:</para> 91 92 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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 --host=x86_64-pc-linux-gnux32 \ 113 --prefix=/usr \ 114 --libdir=/usr/libx32 \ 115 --disable-static</userinput></screen> 116 117 <para>Compile the package:</para> 118 119 <screen><userinput remap="make">make</userinput></screen> 120 121 <para>Install the package:</para> 122 123 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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
rdf732b5 r69d280f 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
rdf732b5 r69d280f 65 65 66 66 </sect2> 67 68 <!-- - - - - - - - - - --> 69 <!-- Multilib - 32bit --> 70 <!-- - - - - - - - - - --> 71 72 <sect2 arch="ml_32,ml_all" role="installation"> 73 <title>Installation of Zstd - 32bit</title> 74 75 <para>Clean previous build:</para> 76 77 <screen><userinput remap="pre">make clean</userinput></screen> 78 79 <para>Compile the package:</para> 80 81 <screen><userinput remap="make">CC="gcc -m32" make</userinput></screen> 82 83 <para>Install the package:</para> 84 85 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install 86 cp -Rv DESTDIR/usr/lib/* /usr/lib32/ 87 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc 88 rm -rf DESTDIR</userinput></screen> 89 90 </sect2><!-- m32 --> 91 92 <!-- - - - - - - - - - --> 93 <!-- Multilib - x32bit --> 94 <!-- - - - - - - - - - --> 95 96 <sect2 arch="ml_x32,ml_all" role="installation"> 97 <title>Installation of Zstd - x32bit</title> 98 99 <para>Clean previous build:</para> 100 101 <screen><userinput remap="pre">make clean</userinput></screen> 102 103 <para>Compile the package:</para> 104 105 <screen><userinput remap="make">CC="gcc -mx32" make</userinput></screen> 106 107 <para>Install the package:</para> 108 109 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install 110 cp -Rv DESTDIR/usr/lib/* /usr/libx32/ 111 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc 112 rm -rf DESTDIR</userinput></screen> 113 114 </sect2><!-- mx32 --> 67 115 68 116 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 355 355 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 356 356 357 <!ENTITY isl-version "0.22.1"> 358 <!ENTITY isl-size "1.6 MB"> 359 <!ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz"> 360 <!ENTITY isl-md5 "6e124849a9b62e3e2d5d51e955323f6e"> 361 <!ENTITY isl-home "http://isl.gforge.inria.fr/"> 362 <!ENTITY isl-fin-du "20 MB"> 363 <!ENTITY isl-fin-sbu "0.1 SBU"> 364 357 365 <!ENTITY jinja2-version "3.0.1"> 358 366 <!ENTITY jinja2-size "264 KB"> -
prologue/bookinfo.xml
rdf732b5 r69d280f 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
rdf732b5 r69d280f 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.