Changes in / [9707b7b:5b6d5c8]
- Files:
-
- 2 added
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r9707b7b r5b6d5c8 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 … … 183 197 $(Q)xsltproc --nonet --xinclude \ 184 198 --stringparam profile.revision $(REV) \ 199 --stringparam profile.arch $(ARCH) \ 185 200 --output $(RENDERTMP)/md5sum.xml \ 186 201 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r9707b7b r5b6d5c8 39 39 <itemizedlist> 40 40 <listitem> 41 <para>The version of the book being used (in this case &version; )</para>41 <para>The version of the book being used (in this case &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para> 42 42 </listitem> 43 43 <listitem> … … 54 54 </listitem> 55 55 <listitem> 56 <para>Note whether you have deviated from the book at all 56 <para>Note whether you have deviated from the book at all</para> 57 57 </listitem> 58 58 </itemizedlist> -
chapter01/changelog.xml
r9707b7b r5b6d5c8 11 11 <title>Changelog</title> 12 12 13 <para>This is version &version; of the Linux From Scratch book, dated13 <para>This is version &version;<phrase arch="ml_32,ml_x32,ml_all">&version;-multilib</phrase> of the Linux From Scratch book, dated 14 14 &releasedate;. If this book is more than six months old, a newer and better 15 15 version is probably already available. To find out, please check one of the -
chapter02/hostreqs.xml
r9707b7b r5b6d5c8 226 226 --> 227 227 228 <para arch="ml_32,ml_x32,ml_all"> 229 Building multilib support requires the kernel of the host system 230 to have 32-bit emulation support included. 231 </para> 232 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 233 [*] IA32 Emulation 234 <M> IA32 a.out support 235 [*] x32 ABI for 64-bit mode 236 </screen> 237 238 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 239 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 240 enabled but only 'IA32 Emulation', you can continue to build your 241 system but you have to leave out any sections showing instructions 242 for building x32 objects. If neither 'IA32 Emulation' nor 243 'x32 ABI for 64-bit mode' is enabled, you will run in errors 244 latest when building <application>glibc</application> in Chapter 6, 245 so an upgrade of your host system kernel is required. 246 </para> 247 228 248 </sect1> -
chapter03/packages.xml
r9707b7b r5b6d5c8 362 362 <para>Download: <ulink url="&iproute2-url;"/></para> 363 363 <para>MD5 sum: <literal>&iproute2-md5;</literal></para> 364 </listitem> 365 </varlistentry> 366 367 <varlistentry arch="ml_32,ml_x32,ml_all"> 368 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term> 369 <listitem> 370 <para>Home page: <ulink url="&isl-home;"/></para> 371 <para>Download: <ulink url="&isl-url;"/></para> 372 <para>MD5 sum: <literal>&isl-md5;</literal></para> 364 373 </listitem> 365 374 </varlistentry> -
chapter04/addinguser.xml
r9707b7b r5b6d5c8 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 <note><para>In some host systems, the following <command>su</command> command does not complete -
chapter04/creatingminlayout.xml
r9707b7b r5b6d5c8 31 31 x86_64) mkdir -pv $LFS/lib64 ;; 32 32 esac</userinput></screen> 33 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib32 34 ln -sv usr/lib32 $LFS/lib32</userinput></screen> 35 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx32 36 ln -sv usr/libx32 $LFS/libx32</userinput></screen> 37 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}32 38 ln -sv usr/lib32 $LFS/lib32 39 ln -sv usr/libx32 $LFS/libx32</userinput></screen> 33 40 34 41 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled -
chapter04/settingenviron.xml
r9707b7b r5b6d5c8 39 39 <filename>.bashrc</filename> file now:</para> 40 40 41 <screen ><userinput>cat > ~/.bashrc << "EOF"41 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF" 42 42 <literal>set +h 43 43 umask 022 … … 50 50 CONFIG_SITE=$LFS/usr/share/config.site 51 51 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 52 EOF</userinput></screen> 53 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF" 54 <literal>set +h 55 umask 022 56 LFS=/mnt/lfs 57 LC_ALL=POSIX 58 LFS_TGT=x86_64-lfs-linux-gnu 59 LFS_TGT32=i686-lfs-linux-gnu 60 LFS_TGTX32=x86_64-lfs-linux-gnux32 61 PATH=/usr/bin 62 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi 63 PATH=$LFS/tools/bin:$PATH 64 CONFIG_SITE=$LFS/usr/share/config.site 65 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal> 52 66 EOF</userinput></screen> 53 67 -
chapter05/binutils-pass1.xml
r9707b7b r5b6d5c8 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 \ … … 77 77 --enable-gprofng=no \ 78 78 --disable-werror</userinput></screen> 79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \ 80 --with-sysroot=$LFS \ 81 --target=$LFS_TGT \ 82 --disable-nls \ 83 --enable-gprofng=no \ 84 --disable-werror \ 85 --enable-multilib</userinput></screen> 79 86 80 87 <variablelist> … … 133 140 </varlistentry> 134 141 142 <varlistentry arch="ml_32,ml_x32,ml_all"> 143 <term><parameter>--enable-multilib</parameter></term> 144 <listitem> 145 <para>Enables multilib support.</para> 146 </listitem> 147 </varlistentry> 148 135 149 </variablelist> 136 150 -
chapter05/gcc-pass1.xml
r9707b7b r5b6d5c8 63 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 64 65 <para >On x86_64 hosts, set the default directory name for65 <para arch="default">On x86_64 hosts, set the default directory name for 66 66 64-bit libraries to <quote>lib</quote>:</para> 67 67 68 <screen ><userinput remap="pre">case $(uname -m) in68 <screen arch="default"><userinput remap="pre">case $(uname -m) in 69 69 x86_64) 70 70 sed -e '/m64=/s/lib64/lib/' \ … … 73 73 esac</userinput></screen> 74 74 75 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 76 libraries:</para> 77 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 79 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 80 -i.orig gcc/config/i386/t-linux64 81 </userinput></screen> 82 75 83 <para>The GCC documentation recommends building GCC 76 84 in a dedicated build directory:</para> … … 81 89 <para>Prepare GCC for compilation:</para> 82 90 83 <screen ><userinput remap="configure">../configure \91 <screen arch="default"><userinput remap="configure">../configure \ 84 92 --target=$LFS_TGT \ 85 93 --prefix=$LFS/tools \ … … 101 109 --disable-libstdcxx \ 102 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 --target=$LFS_TGT \ 117 --prefix=$LFS/tools \ 118 --with-glibc-version=&glibc-version; \ 119 --with-sysroot=$LFS \ 120 --with-newlib \ 121 --without-headers \ 122 --enable-default-pie \ 123 --enable-default-ssp \ 124 --enable-initfini-array \ 125 --disable-nls \ 126 --disable-shared \ 127 --enable-multilib --with-multilib-list=$mlist \ 128 --disable-decimal-float \ 129 --disable-threads \ 130 --disable-libatomic \ 131 --disable-libgomp \ 132 --disable-libquadmath \ 133 --disable-libssp \ 134 --disable-libvtv \ 135 --disable-libstdcxx \ 136 --enable-languages=c,c++</userinput></screen> 137 103 138 <variablelist> 104 139 <title>The meaning of the configure options:</title> … … 157 192 </varlistentry> 158 193 159 <varlistentry >194 <varlistentry arch="default"> 160 195 <term><parameter>--disable-multilib</parameter></term> 161 196 <listitem> 162 197 <para>On x86_64, LFS does not support a multilib configuration. 163 198 This switch is harmless for x86.</para> 199 </listitem> 200 </varlistentry> 201 <varlistentry arch="ml_32,ml_x32,ml_all"> 202 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term> 203 <listitem> 204 <para>LFS canbe used to support multilib. Which they are is 205 specified in the multilib list.</para> 164 206 </listitem> 165 207 </varlistentry> -
chapter05/glibc.xml
r9707b7b r5b6d5c8 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 <note> … … 91 94 <para>Next, prepare Glibc for compilation:</para> 92 95 93 <screen ><userinput remap="configure">../configure \96 <screen arch="default"><userinput remap="configure">../configure \ 94 97 --prefix=/usr \ 95 98 --host=$LFS_TGT \ … … 97 100 --enable-kernel=&min-kernel; \ 98 101 --with-headers=$LFS/usr/include \ 102 libc_cv_slibdir=/usr/lib</userinput></screen> 103 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 104 --prefix=/usr \ 105 --host=$LFS_TGT \ 106 --build=$(../scripts/config.guess) \ 107 --enable-kernel=&min-kernel; \ 108 --with-headers=$LFS/usr/include \ 109 --enable-multi-arch \ 99 110 libc_cv_slibdir=/usr/lib</userinput></screen> 100 111 … … 209 220 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 210 221 211 <para >Note that for 32-bit machines, the interpreter name will be222 <para arch="default">Note that for 32-bit machines, the interpreter name will be 212 223 <filename>/lib/ld-linux.so.2</filename>.</para> 213 224 … … 237 248 </sect2> 238 249 250 <!-- - - - - - - - - - --> 251 <!-- Multilib - 32bit --> 252 <!-- - - - - - - - - - --> 253 <sect2 arch="ml_32,ml_all"> 254 <title>Building Glibc - 32bit</title> 255 256 <para>Now recompile for m32. The extracted source can be 257 reused but needs to be cleaned before installing the m32 258 version of Glibc.</para> 259 260 <para>Clear the build directory and remove artefacts from 261 previous build:</para> 262 263 <screen><userinput remap="pre">make clean 264 find .. -name "*.a" -delete</userinput></screen> 265 266 <para>Configure Glibc for m32 with the following commands:</para> 267 268 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 269 CXX="$LFS_TGT-g++ -m32" \ 270 ../configure \ 271 --prefix=/usr \ 272 --host=$LFS_TGT32 \ 273 --build=$(../scripts/config.guess) \ 274 --enable-kernel=&min-kernel; \ 275 --with-headers=$LFS/usr/include \ 276 --enable-multi-arch \ 277 --libdir=/usr/lib32 \ 278 --libexecdir=/usr/lib32 \ 279 libc_cv_slibdir=/usr/lib32</userinput></screen> 280 281 <para>Compile the package:</para> 282 283 <screen><userinput remap="make">make</userinput></screen> 284 285 <para>Install the package:</para> 286 287 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 288 cp -a DESTDIR/usr/lib32 $LFS/usr/ 289 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 290 $LFS/usr/include/gnu/ 291 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen> 292 293 294 <caution> 295 <para>At this point, it is imperative to stop and ensure that the basic 296 functions (compiling and linking) of the new toolchain are working as 297 expected. To perform a sanity check, run the following commands:</para> 298 299 <screen><userinput>echo 'int main(){}' > dummy.c 300 $LFS_TGT-gcc -m32 dummy.c 301 readelf -l a.out | grep '/ld-linux'</userinput></screen> 302 303 <para>If everything is working correctly, there should be no errors, 304 and the output of the last command will be of the form:</para> 305 306 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 307 308 <para>If the output is not shown as above or there was no output at all, 309 then something is wrong. Investigate and retrace the steps to find out 310 where the problem is and correct it. This issue must be resolved before 311 continuing on.</para> 312 313 <para>Once all is well, clean up the test files:</para> 314 315 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 316 317 </caution> 318 319 </sect2><!-- m32 --> 320 321 <!-- - - - - - - - - - --> 322 <!-- Multilib - x32bit --> 323 <!-- - - - - - - - - - --> 324 325 <sect2 arch="ml_x32,ml_all"> 326 <title>Building Glibc - x32bit</title> 327 328 <para>Now recompile for mx32. The extracted source can be 329 reused but needs to be cleaned before installing the mx32 330 version of Glibc.</para> 331 332 <para>Clear the build directory and remove artefacts from 333 previous build:</para> 334 335 <screen><userinput remap="pre">make clean 336 find .. -name "*.a" -delete</userinput></screen> 337 338 <para>Configure Glibc for mx32 with the following commands:</para> 339 340 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 341 CXX="$LFS_TGT-g++ -mx32" \ 342 ../configure \ 343 --prefix=/usr \ 344 --host=$LFS_TGTX32 \ 345 --build=$(../scripts/config.guess) \ 346 --enable-kernel=&min-kernel; \ 347 --with-headers=$LFS/usr/include \ 348 --enable-multi-arch \ 349 --libdir=/usr/libx32 \ 350 --libexecdir=/usr/libx32 \ 351 libc_cv_slibdir=/usr/libx32</userinput></screen> 352 353 <para>Compile the package:</para> 354 355 <screen><userinput remap="make">make</userinput></screen> 356 357 <para>Install the package:</para> 358 359 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 360 cp -a DESTDIR/usr/libx32 $LFS/usr/ 361 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 362 $LFS/usr/include/gnu/ 363 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen> 364 365 <caution> 366 <para>At this point, it is imperative to stop and ensure that the basic 367 functions (compiling and linking) of the new toolchain are working as 368 expected. To perform a sanity check, run the following commands:</para> 369 370 <screen><userinput>echo 'int main(){}' > dummy.c 371 $LFS_TGT-gcc -mx32 dummy.c 372 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 373 374 <para>If everything is working correctly, there should be no errors, 375 and the output of the last command will be of the form:</para> 376 377 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 378 379 <para>If the output is not shown as above or there was no output at all, 380 then something is wrong. Investigate and retrace the steps to find out 381 where the problem is and correct it. This issue must be resolved before 382 continuing on.</para> 383 384 <para>Once all is well, clean up the test files:</para> 385 386 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 387 388 </caution> 389 390 </sect2><!-- mx32 --> 391 239 392 <sect2 role="content"> 240 393 <title/> -
chapter05/libstdc++.xml
r9707b7b r5b6d5c8 61 61 <para>Prepare Libstdc++ for compilation:</para> 62 62 63 <screen><userinput remap="configure">../libstdc++-v3/configure \ 63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \ 64 --host=$LFS_TGT \ 65 --build=$(../config.guess) \ 66 --prefix=/usr \ 67 --enable-multilib \ 68 --disable-nls \ 69 --disable-libstdcxx-pch \ 70 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen> 71 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \ 64 72 --host=$LFS_TGT \ 65 73 --build=$(../config.guess) \ … … 79 87 should be used instead of the one in 80 88 <filename>/usr/bin</filename>.</para> 89 </listitem> 90 </varlistentry> 91 92 <varlistentry arch="ml_32,ml_x32,ml_all"> 93 <term><parameter>--enable-multilib</parameter></term> 94 <listitem> 95 <para>Enable building multilib objects.</para> 81 96 </listitem> 82 97 </varlistentry> -
chapter06/binutils-pass2.xml
r9707b7b r5b6d5c8 59 59 <para>Prepare Binutils for compilation:</para> 60 60 61 <screen ><userinput remap="configure">../configure \61 <screen arch="default"><userinput remap="configure">../configure \ 62 62 --prefix=/usr \ 63 63 --build=$(../config.guess) \ … … 68 68 --disable-werror \ 69 69 --enable-64-bit-bfd</userinput></screen> 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 71 --prefix=/usr \ 72 --build=$(../config.guess) \ 73 --host=$LFS_TGT \ 74 --disable-nls \ 75 --enable-shared \ 76 --enable-gprofng=no \ 77 --disable-werror \ 78 --enable-64-bit-bfd \ 79 --enable-multilib</userinput></screen> 70 80 71 81 <variablelist> … … 86 96 <para>Enables 64-bit support (on hosts with smaller word sizes). 87 97 This may not be needed on 64-bit systems, but it does no harm.</para> 98 </listitem> 99 </varlistentry> 100 101 <varlistentry arch="ml_32,ml_x32,ml_all"> 102 <term><parameter>--enable-multilib</parameter></term> 103 <listitem> 104 <para>Enables multilib support in bintutils.</para> 88 105 </listitem> 89 106 </varlistentry> -
chapter06/gcc-pass2.xml
r9707b7b r5b6d5c8 58 58 mv -v mpc-&mpc-version; mpc</userinput></screen> 59 59 60 <para>If building on x86_64, change the default directory name for 64-bit 60 61 <para arch="default">If building on x86_64, change the default directory name for 64-bit 61 62 libraries to <quote>lib</quote>:</para> 62 63 63 <screen ><userinput remap="pre">case $(uname -m) in64 <screen arch="default"><userinput remap="pre">case $(uname -m) in 64 65 x86_64) 65 66 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 … … 67 68 esac</userinput></screen> 68 69 70 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the 71 libraries:</para> 72 73 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 74 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 75 -i.orig gcc/config/i386/t-linux64</userinput></screen> 76 69 77 <para>Override the building rule of libgcc and libstdc++ headers, to 70 78 allow building these libraries with POSIX threads support:</para> … … 83 91 <para>Now prepare GCC for compilation:</para> 84 92 85 <screen ><userinput remap="configure">../configure \93 <screen arch="default"><userinput remap="configure">../configure \ 86 94 --build=$(../config.guess) \ 87 95 --host=$LFS_TGT \ … … 100 108 --disable-libvtv \ 101 109 --enable-languages=c,c++</userinput></screen> 102 110 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 111 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure" 112 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 113 arch="ml_all">mlist=m64,m32,mx32</userinput> 114 <userinput remap="configure">../configure \ 115 --build=$(../config.guess) \ 116 --host=$LFS_TGT \ 117 --target=$LFS_TGT \ 118 LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ 119 --prefix=/usr \ 120 --with-build-sysroot=$LFS \ 121 --enable-default-pie \ 122 --enable-default-ssp \ 123 --enable-initfini-array \ 124 --disable-nls \ 125 --enable-multilib --with-multilib-list=$mlist \ 126 --disable-decimal-float \ 127 --disable-libatomic \ 128 --disable-libgomp \ 129 --disable-libquadmath \ 130 --disable-libssp \ 131 --disable-libvtv \ 132 --enable-languages=c,c++</userinput></screen> 133 <!-- 134 LDFLAGS_FOR_TARGET="-L$PWD/$LFS_TGT/libgcc -L$PWD/$LFS_TGT/32/libgcc -L$PWD/$LFS_TGT/x32/libgcc" \ 135 --> 103 136 <variablelist> 104 137 <title>The meaning of the new configure options:</title><!-- WIP --> -
chapter06/ncurses.xml
r9707b7b r5b6d5c8 190 190 </sect2> 191 191 192 <!-- - - - - - - - - - --> 193 <!-- Multilib - 32bit --> 194 <!-- - - - - - - - - - --> 195 <sect2 arch="ml_32,ml_all"> 196 <title>Building Ncurses - 32bit</title> 197 198 <para>Clean previous build:</para> 199 200 <screen><userinput remap="pre">make distclean</userinput></screen> 201 202 <para>Prepare Ncurses for compilation:</para> 203 204 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 205 CXX="$LFS_TGT-g++ -m32" \ 206 ./configure --prefix=/usr \ 207 --host=$LFS_TGT32 \ 208 --build=$(./config.guess) \ 209 --libdir=/usr/lib32 \ 210 --mandir=/usr/share/man \ 211 --with-shared \ 212 --without-normal \ 213 --with-cxx-shared \ 214 --without-debug \ 215 --without-ada \ 216 --disable-stripping \ 217 --enable-widec</userinput></screen> 218 219 <para>Compile the package:</para> 220 221 <screen><userinput remap="make">make</userinput></screen> 222 223 <para>Install the package:</para> 224 225 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 226 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so 227 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32 228 rm -rf DESTDIR</userinput></screen> 229 230 </sect2><!-- m32 --> 231 232 <!-- - - - - - - - - - --> 233 <!-- Multilib - x32bit --> 234 <!-- - - - - - - - - - --> 235 <sect2 arch="ml_x32,ml_all"> 236 <title>Building Ncurses - x32bit</title> 237 238 <para>Clean previous build:</para> 239 240 <screen><userinput remap="pre">make distclean</userinput></screen> 241 242 <para>Prepare Ncurses for compilation:</para> 243 244 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 245 CXX="$LFS_TGT-g++ -mx32" \ 246 ./configure --prefix=/usr \ 247 --host=$LFS_TGTX32 \ 248 --build=$(./config.guess) \ 249 --libdir=/usr/libx32 \ 250 --mandir=/usr/share/man \ 251 --with-shared \ 252 --without-normal \ 253 --with-cxx-shared \ 254 --without-debug \ 255 --without-ada \ 256 --disable-stripping \ 257 --enable-widec</userinput></screen> 258 259 <para>Compile the package:</para> 260 261 <screen><userinput remap="make">make</userinput></screen> 262 263 <para>Install the package:</para> 264 265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 266 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so 267 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32 268 rm -rf DESTDIR</userinput></screen> 269 270 </sect2><!-- mx32 --> 271 192 272 <sect2 role="content"> 193 273 <title/> -
chapter07/changingowner.xml
r9707b7b r5b6d5c8 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
r9707b7b r5b6d5c8 24 24 failures. 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
r9707b7b r5b6d5c8 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 everywhere. In the commands above, two -
chapter07/util-linux.xml
r9707b7b r5b6d5c8 127 127 </sect2> 128 128 129 <!-- - - - - - - - - - --> 130 <!-- Multilib - 32bit --> 131 <!-- - - - - - - - - - --> 132 133 <sect2 arch="ml_32,ml_all" role="installation"> 134 <title>Installation of Util-linux - 32-bit</title> 135 136 <para>Clean previous build:</para> 137 138 <screen><userinput remap="pre">make distclean</userinput></screen> 139 140 <para>Prepare Util-linux for compilation:</para> 141 142 <screen><userinput remap="configure">CC="gcc -m32" \ 143 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 144 --libdir=/usr/lib32 \ 145 --host=i686-pc-linux-gnu \ 146 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 147 --disable-chfn-chsh \ 148 --disable-login \ 149 --disable-nologin \ 150 --disable-su \ 151 --disable-setpriv \ 152 --disable-runuser \ 153 --disable-pylibmount \ 154 --disable-static \ 155 --without-python \ 156 runstatedir=/run</userinput></screen> 157 158 <para>Compile the package:</para> 159 160 <screen><userinput remap="make">make</userinput></screen> 161 162 <para>Install the package:</para> 163 164 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 165 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 166 rm -rf DESTDIR</userinput></screen> 167 168 </sect2><!-- m32 --> 169 170 <!-- - - - - - - - - - --> 171 <!-- Multilib - x32bit --> 172 <!-- - - - - - - - - - --> 173 174 <sect2 arch="ml_x32,ml_all" role="installation"> 175 <title>Installation of Util-linux - x32-bit</title> 176 177 <para>Clean previous build:</para> 178 179 <screen><userinput remap="pre">make distclean</userinput></screen> 180 181 <para>Prepare Util-linux for compilation:</para> 182 183 <screen><userinput remap="configure">CC="gcc -mx32" \ 184 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 185 --libdir=/usr/libx32 \ 186 --host=x86_64-pc-linux-gnux32 \ 187 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 188 --disable-chfn-chsh \ 189 --disable-login \ 190 --disable-nologin \ 191 --disable-su \ 192 --disable-setpriv \ 193 --disable-runuser \ 194 --disable-pylibmount \ 195 --disable-static \ 196 --without-python \ 197 runstatedir=/run</userinput></screen> 198 199 <para>Compile the package:</para> 200 201 <screen><userinput remap="make">make</userinput></screen> 202 203 <para>Install the package:</para> 204 205 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 206 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 207 rm -rf DESTDIR</userinput></screen> 208 209 </sect2><!-- mx32 --> 210 129 211 <sect2 role="content"> 130 212 <title/> -
chapter08/acl.xml
r9707b7b r5b6d5c8 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
r9707b7b r5b6d5c8 65 65 </sect2> 66 66 67 <!-- - - - - - - - - - --> 68 <!-- Multilib - 32bit --> 69 <!-- - - - - - - - - - --> 70 71 <sect2 arch="ml_32,ml_all" role="installation"> 72 <title>Installation of Attr - 32bit</title> 73 74 <para>Clean previous build:</para> 75 76 <screen><userinput remap="pre">make distclean</userinput></screen> 77 78 <para>Prepare Attr for compilation:</para> 79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 81 --prefix=/usr \ 82 --disable-static \ 83 --sysconfdir=/etc \ 84 --libdir=/usr/lib32 \ 85 --host=i686-pc-linux-gnu</userinput></screen> 86 87 <para>Compile the package:</para> 88 89 <screen><userinput remap="make">make</userinput></screen> 90 91 <para>Install the package:</para> 92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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 Attr - x32bit</title> 105 106 <para>Clean previous build:</para> 107 108 <screen><userinput remap="pre">make distclean</userinput></screen> 109 110 <para>Prepare Attr for compilation:</para> 111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 113 --prefix=/usr \ 114 --disable-static \ 115 --sysconfdir=/etc \ 116 --libdir=/usr/libx32 \ 117 --host=x86_64-pc-linux-gnux32</userinput></screen> 118 119 <para>Compile the package:</para> 120 121 <screen><userinput remap="make">make</userinput></screen> 122 123 <para>Install the package:</para> 124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 127 rm -rf DESTDIR</userinput></screen> 128 129 </sect2><!-- mx32 --> 130 67 131 <sect2 id="contents-attr" role="content"> 68 132 <title>Contents of Attr</title> -
chapter08/binutils.xml
r9707b7b r5b6d5c8 73 73 <para>Prepare Binutils for compilation:</para> 74 74 75 <screen ><userinput remap="configure">../configure --prefix=/usr \75 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 76 76 --sysconfdir=/etc \ 77 77 --enable-gold \ … … 82 82 --enable-64-bit-bfd \ 83 83 --with-system-zlib</userinput></screen> 84 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 85 --sysconfdir=/etc \ 86 --enable-gold \ 87 --enable-ld=default \ 88 --enable-plugins \ 89 --enable-shared \ 90 --disable-werror \ 91 --enable-64-bit-bfd \ 92 --with-system-zlib \ 93 --enable-multilib</userinput></screen> 94 84 95 <variablelist> 85 96 <title>The meaning of the configure parameters:</title> … … 113 124 <para>Enables 64-bit support (on hosts with narrower word sizes). 114 125 May not be needed on 64-bit systems, but does no harm.</para> 126 </listitem> 127 </varlistentry> 128 129 <varlistentry arch="ml_32,ml_x32,ml_all"> 130 <term><parameter>--enable-multilib</parameter></term> 131 <listitem> 132 <para>Enables multilib support in bintutils.</para> 115 133 </listitem> 116 134 </varlistentry> -
chapter08/bzip2.xml
r9707b7b r5b6d5c8 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
r9707b7b r5b6d5c8 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/cleanup.xml
r9707b7b r5b6d5c8 22 22 builds. Remove those files now:</para> 23 23 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all"> 25 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 26 find /usr/libx32 -name \*.la -delete</userinput></screen> 25 27 26 28 <para>For more information about libtool archive files, see the <ulink -
chapter08/eudev.xml
r9707b7b r5b6d5c8 81 81 </sect2> 82 82 83 <!-- - - - - - - - - - --> 84 <!-- Multilib - 32bit --> 85 <!-- - - - - - - - - - --> 86 87 <sect2 arch="ml_32,ml_all" role="installation"> 88 <title>Installation of Eudev - 32bit</title> 89 90 <para>Clean previous build:</para> 91 92 <screen><userinput remap="pre">make distclean</userinput></screen> 93 94 <para>Prepare Eudev for compilation:</para> 95 96 <screen><userinput remap="configure">CC="gcc -m32" \ 97 ./configure --host=i686-pc-linux-gnu \ 98 --prefix=/usr \ 99 --bindir=/usr/sbin \ 100 --libdir=/usr/lib32 \ 101 --sysconfdir=/etc \ 102 --disable-manpages \ 103 --disable-static</userinput></screen> 104 105 <para>Compile the package:</para> 106 107 <screen><userinput remap="make">make</userinput></screen> 108 109 <para>Install the package:</para> 110 111 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 112 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 113 rm -rf DESTDIR</userinput></screen> 114 115 </sect2><!-- m32 --> 116 117 <!-- - - - - - - - - - --> 118 <!-- Multilib - x32bit --> 119 <!-- - - - - - - - - - --> 120 121 <sect2 arch="ml_x32,ml_all" role="installation"> 122 <title>Installation of Eudev - x32bit</title> 123 124 <para>Clean previous build:</para> 125 126 <screen><userinput remap="pre">make distclean</userinput></screen> 127 128 <para>Prepare Eudev for compilation:</para> 129 130 <screen><userinput remap="configure">CC="gcc -mx32" \ 131 ./configure --host=x86_64-lfs-linux-gnux32 \ 132 --prefix=/usr \ 133 --bindir=/usr/sbin \ 134 --libdir=/usr/libx32 \ 135 --sysconfdir=/etc \ 136 --disable-manpages \ 137 --disable-static</userinput></screen> 138 139 <para>Compile the package:</para> 140 141 <screen><userinput remap="make">make</userinput></screen> 142 143 <para>Install the package:</para> 144 145 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 146 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 147 rm -rf DESTDIR</userinput></screen> 148 149 </sect2><!-- mx32 --> 150 83 151 <sect2 id="conf-eudev" role="configuration"> 84 152 <title>Configuring Eudev</title> -
chapter08/expat.xml
r9707b7b r5b6d5c8 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 --disable-static \ 86 --libdir=/usr/lib32 \ 87 --host=i686-pc-linux-gnu</userinput></screen> 88 89 <para>Compile the package:</para> 90 91 <screen><userinput remap="make">make</userinput></screen> 92 93 <para>Install the package:</para> 94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 96 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 97 rm -rf DESTDIR</userinput></screen> 98 99 </sect2><!-- m32 --> 100 101 <!-- - - - - - - - - - --> 102 <!-- Multilib - x32bit --> 103 <!-- - - - - - - - - - --> 104 105 <sect2 arch="ml_x32,ml_all" role="installation"> 106 <title>Installation of Expat - x32bit</title> 107 108 <para>Clean previous build but keep precompiled doc because it 109 cannot be rebuilt in this stage of the system:</para> 110 111 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile 112 make clean</userinput></screen> 113 114 <para>Prepare Expat for compilation:</para> 115 116 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 117 --prefix=/usr \ 118 --disable-static \ 119 --libdir=/usr/libx32 \ 120 --host=x86_64-pc-linux-gnux32</userinput></screen> 121 122 <para>Compile the package:</para> 123 124 <screen><userinput remap="make">make</userinput></screen> 125 126 <para>Install the package:</para> 127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 129 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 130 rm -rf DESTDIR</userinput></screen> 131 132 </sect2><!-- mx32 --> 133 68 134 <sect2 id="contents-expat" role="content"> 69 135 <title>Contents of Expat</title> -
chapter08/file.xml
r9707b7b r5b6d5c8 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
r9707b7b r5b6d5c8 58 58 libraries to <quote>lib</quote>:</para> 59 59 60 <screen ><userinput remap="pre">case $(uname -m) in60 <screen arch="default"><userinput remap="pre">case $(uname -m) in 61 61 x86_64) 62 62 sed -e '/m64=/s/lib64/lib/' \ … … 65 65 esac</userinput></screen> 66 66 67 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit 68 libraries to <quote>lib</quote>:</para> 69 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 71 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 72 -i.orig gcc/config/i386/t-linux64</userinput></screen> 73 67 74 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 68 75 … … 72 79 <para>Prepare GCC for compilation:</para> 73 80 74 <screen ><userinput remap="configure">../configure --prefix=/usr \81 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 75 82 LD=ld \ 76 83 --enable-languages=c,c++ \ … … 79 86 --disable-multilib \ 80 87 --disable-bootstrap \ 88 --with-system-zlib</userinput></screen> 89 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 90 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure" 91 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 92 arch="ml_all">mlist=m64,m32,mx32</userinput> 93 <userinput remap="configure">../configure --prefix=/usr \ 94 LD=ld \ 95 --enable-languages=c,c++ \ 96 --enable-default-pie \ 97 --enable-default-ssp \ 98 --enable-multilib \ 99 --with-multilib-list=$mlist \ 100 --disable-bootstrap \ 81 101 --with-system-zlib</userinput></screen> 82 102 … … 275 295 SEARCH_DIR("/usr/lib");</computeroutput></screen> 276 296 277 <para >A 32-bit system may use a few other directories. For example, here297 <para arch="default">A 32-bit system may use a few other directories. For example, here 278 298 is the output from an i686 machine:</para> 279 299 280 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 300 <!-- not using entities here as the dir names has nothing to do with multilib --> 301 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 281 302 SEARCH_DIR("/usr/local/lib32") 282 303 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
r9707b7b r5b6d5c8 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 … … 484 491 </sect2> 485 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</userinput></screen> 522 523 <para>Compile the package:</para> 524 525 <screen><userinput remap="make">make</userinput></screen> 526 527 <para>Install the package:</para> 528 529 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 530 cp -a DESTDIR/usr/lib32/* /usr/lib32/ 531 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 532 /usr/include/gnu/</userinput></screen> 533 <!-- no longer required as they are created in chap5 534 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2 535 --> 536 537 <para>Add the library name to the dynamic loader config:</para> 538 539 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen> 540 541 <caution> 542 <para>At this point, it is imperative to stop and ensure that the basic 543 functions (compiling and linking) of the new toolchain are working as 544 expected. To perform a sanity check, run the following commands:</para> 545 546 <screen><userinput>echo 'int main(){}' > dummy.c 547 gcc -m32 dummy.c 548 readelf -l a.out | grep '/ld-linux'</userinput></screen> 549 550 <para>If everything is working correctly, there should be no errors, 551 and the output of the last command will be of the form:</para> 552 553 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 554 555 <para>If the output is not shown as above or there was no output at all, 556 then something is wrong. Investigate and retrace the steps to find out 557 where the problem is and correct it. This issue must be resolved before 558 continuing on.</para> 559 560 <para>Once all is well, clean up the test files:</para> 561 562 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 563 564 </caution> 565 566 </sect2><!-- m32 --> 567 568 <!-- - - - - - - - - - --> 569 <!-- Multilib - x32bit --> 570 <!-- - - - - - - - - - --> 571 572 <sect2 arch="ml_x32,ml_all"> 573 <title>Building Glibc - x32bit</title> 574 575 <para>Now recompile for mx32. The extracted source can be 576 reused but needs to be cleaned before installing the mx32 577 version of Glibc.</para> 578 579 <para>Clear the build directory and remove artefacts from 580 previous build:</para> 581 582 <screen><userinput remap="pre">rm -rf ./* 583 find .. -name "*.a" -delete</userinput></screen> 584 585 <para>Configure Glibc for mx32 with the following commands:</para> 586 587 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 588 ../configure \ 589 --prefix=/usr \ 590 --host=x86_64-pc-linux-gnux32 \ 591 --build=$(../scripts/config.guess) \ 592 --enable-kernel=&min-kernel; \ 593 --with-headers=/usr/include \ 594 --enable-multi-arch \ 595 --libdir=/usr/libx32 \ 596 --libexecdir=/usr/libx32 \ 597 libc_cv_slibdir=/usr/libx32</userinput></screen> 598 599 <para>Compile the package:</para> 600 601 <screen><userinput remap="make">make</userinput></screen> 602 603 <para>Install the package:</para> 604 605 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 606 cp -a DESTDIR/usr/libx32/* /usr/libx32/ 607 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 608 /usr/include/gnu/</userinput></screen> 609 <!-- no longer required as they are created in chap5 610 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2 611 --> 612 <para>Add the library name to the dynamic loader config:</para> 613 614 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen> 615 616 <caution> 617 <para>At this point, it is imperative to stop and ensure that the basic 618 functions (compiling and linking) of the new toolchain are working as 619 expected. To perform a sanity check, run the following commands:</para> 620 621 <screen><userinput>echo 'int main(){}' > dummy.c 622 gcc -mx32 dummy.c 623 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 624 625 <para>If everything is working correctly, there should be no errors, 626 and the output of the last command will be of the form:</para> 627 628 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 629 630 <para>If the output is not shown as above or there was no output at all, 631 then something is wrong. Investigate and retrace the steps to find out 632 where the problem is and correct it. This issue must be resolved before 633 continuing on.</para> 634 635 <para>Once all is well, clean up the test files:</para> 636 637 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 638 639 </caution> 640 641 </sect2><!-- mx32 --> 642 486 643 <sect2 id="contents-glibc" role="content"> 487 644 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r9707b7b r5b6d5c8 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
r9707b7b r5b6d5c8 98 98 99 99 </sect2> 100 101 <!-- - - - - - - - - - --> 102 <!-- Multilib - 32bit --> 103 <!-- - - - - - - - - - --> 104 105 <sect2 arch="ml_32,ml_all" role="installation"> 106 <title>Installation of Kmod - 32bit</title> 107 108 <para>Clean previous build but keep man pages as they cannot 109 be recreated since xsltproc isn't installed yet:</para> 110 111 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 112 make clean</userinput></screen> 113 114 <para>Prepare Kmod for compilation:</para> 115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 117 --host=i686-pc-linux-gnu \ 118 --prefix=/usr \ 119 --libdir=/usr/lib32 \ 120 --sysconfdir=/etc \ 121 --with-openssl \ 122 --with-xz \ 123 --with-zstd \ 124 --with-zlib \ 125 --with-rootlibdir=/usr/lib32</userinput></screen> 126 127 <para>Compile the package:</para> 128 129 <screen><userinput remap="make">make</userinput></screen> 130 131 <para>Install the package:</para> 132 133 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 135 rm -rf DESTDIR</userinput></screen> 136 137 </sect2><!-- m32 --> 138 139 <!-- - - - - - - - - - --> 140 <!-- Multilib - x32bit --> 141 <!-- - - - - - - - - - --> 142 143 <sect2 arch="ml_x32,ml_all" role="installation"> 144 <title>Installation of Kmod - x32bit</title> 145 146 <para>Clean previous build but keep man pages as they cannot 147 be recreated since xsltproc isn't installed yet:</para> 148 149 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 150 make clean</userinput></screen> 151 152 <para>Prepare Kmod for compilation:</para> 153 154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 155 --host=x86_64-pc-linux-gnux32 \ 156 --prefix=/usr \ 157 --libdir=/usr/libx32 \ 158 --sysconfdir=/etc \ 159 --with-openssl \ 160 --with-xz \ 161 --with-zstd \ 162 --with-zlib \ 163 --with-rootlibdir=/usr/libx32</userinput></screen> 164 165 <para>Compile the package:</para> 166 167 <screen><userinput remap="make">make</userinput></screen> 168 169 <para>Install the package:</para> 170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 173 rm -rf DESTDIR</userinput></screen> 174 175 </sect2><!-- mx32 --> 100 176 101 177 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
r9707b7b r5b6d5c8 76 76 </sect2> 77 77 78 <!-- - - - - - - - - - --> 79 <!-- Multilib - 32bit --> 80 <!-- - - - - - - - - - --> 81 82 <sect2 arch="ml_32,ml_all" role="installation"> 83 <title>Installation of Libcap - 32bit</title> 84 85 <para>Clean previous build:</para> 86 87 <screen><userinput remap="pre">make distclean</userinput></screen> 88 89 <para>Compile the package:</para> 90 91 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen> 92 93 <para>Install the package:</para> 94 95 <screen><userinput remap="install">make CC="gcc -m32 -march=i686" lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install 96 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 97 sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc 98 chmod -v 755 /usr/lib32/libcap.so.&libcap-version; 99 rm -rf DESTDIR</userinput></screen> 100 101 </sect2><!-- m32 --> 102 103 <!-- - - - - - - - - - --> 104 <!-- Multilib - x32bit --> 105 <!-- - - - - - - - - - --> 106 107 <sect2 arch="ml_x32,ml_all" role="installation"> 108 <title>Installation of Libcap - x32bit</title> 109 110 <para>Clean previous build:</para> 111 112 <screen><userinput remap="pre">make distclean</userinput></screen> 113 114 <para>Compile the package:</para> 115 116 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen> 117 118 <para>Install the package:</para> 119 120 <screen><userinput remap="install">make CC="gcc -mx32 -march=x86-64" lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install 121 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 122 sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc 123 chmod -v 755 /usr/libx32/libcap.so.&libcap-version; 124 rm -rf DESTDIR</userinput></screen> 125 126 </sect2><!-- mx32 --> 127 78 128 <sect2 id="contents-libcap" role="content"> 79 129 <title>Contents of Libcap</title> -
chapter08/libelf.xml
r9707b7b r5b6d5c8 70 70 </sect2> 71 71 72 <!-- - - - - - - - - - --> 73 <!-- Multilib - 32bit --> 74 <!-- - - - - - - - - - --> 75 76 <sect2 arch="ml_32,ml_all" role="installation"> 77 <title>Installation of Libelf - 32bit</title> 78 79 <para>Clean previous build:</para> 80 81 <screen><userinput remap="pre">make distclean</userinput></screen> 82 83 <para>Prepare Libtool for compilation:</para> 84 85 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 86 --host=i686-pc-linux-gnu \ 87 --prefix=/usr \ 88 --libdir=/usr/lib32 \ 89 --disable-debuginfod \ 90 --enable-libdebuginfod=dummy</userinput></screen> 91 92 <para>Compile the package:</para> 93 94 <screen><userinput remap="make">make</userinput></screen> 95 96 <para>Install the package:</para> 97 98 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 99 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc 100 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 101 rm -rf DESTDIR</userinput></screen> 102 103 </sect2><!-- m32 --> 104 105 <!-- - - - - - - - - - --> 106 <!-- Multilib - x32bit --> 107 <!-- - - - - - - - - - --> 108 109 <sect2 arch="ml_x32,ml_all" role="installation"> 110 <title>Installation of Libelf - x32bit</title> 111 112 <para>Clean previous build:</para> 113 114 <screen><userinput remap="pre">make distclean</userinput></screen> 115 116 <para>Prepare Libtool for compilation:</para> 117 118 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 119 --host=x86_64-pc-linux-gnux32 \ 120 --prefix=/usr \ 121 --libdir=/usr/libx32 \ 122 --disable-debuginfod \ 123 --enable-libdebuginfod=dummy</userinput></screen> 124 125 <para>Compile the package:</para> 126 127 <screen><userinput remap="make">make</userinput></screen> 128 129 <para>Install the package:</para> 130 131 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 132 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc 133 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 134 rm -rf DESTDIR</userinput></screen> 135 136 </sect2><!-- mx32 --> 137 72 138 <sect2 id="contents-elfutils" role="content"> 73 139 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r9707b7b r5b6d5c8 109 109 </sect2> 110 110 111 <!-- - - - - - - - - - --> 112 <!-- Multilib - 32bit --> 113 <!-- - - - - - - - - - --> 114 115 <sect2 arch="ml_32,ml_all" role="installation"> 116 <title>Installation of Libffi - 32bit</title> 117 118 <para>Clean previous build:</para> 119 120 <screen><userinput remap="pre">make distclean</userinput></screen> 121 122 <para>Prepare Libffi for compilation:</para> 123 124 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 125 --host=i686-pc-linux-gnu \ 126 --prefix=/usr \ 127 --libdir=/usr/lib32 \ 128 --disable-static \ 129 --with-gcc-arch=i686 \ 130 --disable-exec-static-tramp</userinput></screen> 131 132 <para>Compile the package:</para> 133 134 <screen><userinput remap="make">make</userinput></screen> 135 136 <para>To test the results, issue:</para> 137 138 <screen><userinput remap="test">make check</userinput></screen> 139 140 <para>Install the package:</para> 141 142 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 143 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 144 rm -rf DESTDIR</userinput></screen> 145 146 </sect2><!-- m32 --> 147 148 <!-- - - - - - - - - - --> 149 <!-- Multilib - x32bit --> 150 <!-- - - - - - - - - - --> 151 152 <sect2 arch="ml_x32,ml_all" role="installation"> 153 <title>Installation of Libffi - x32bit</title> 154 155 <para>Clean previous build:</para> 156 157 <screen><userinput remap="pre">make distclean</userinput></screen> 158 159 <para>Prepare Libffi for compilation:</para> 160 161 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 162 --host=x86_64-unknown-linux-gnux32 \ 163 --prefix=/usr \ 164 --libdir=/usr/libx32 \ 165 --disable-static \ 166 --with-gcc-arch=x86_64 \ 167 --disable-exec-static-tramp</userinput></screen> 168 169 <para>Compile the package:</para> 170 171 <screen><userinput remap="make">make</userinput></screen> 172 173 <para>To test the results, issue:</para> 174 175 <screen><userinput remap="test">make check</userinput></screen> 176 177 <para>Install the package:</para> 178 179 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 180 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 181 rm -rf DESTDIR</userinput></screen> 182 183 </sect2><!-- mx32 --> 184 111 185 <sect2 id="contents-libffi" role="content"> 112 186 <title>Contents of Libffi</title> … … 139 213 140 214 </sect1> 141 -
chapter08/libtool.xml
r9707b7b r5b6d5c8 79 79 </sect2> 80 80 81 <!-- - - - - - - - - - --> 82 <!-- Multilib - 32bit --> 83 <!-- - - - - - - - - - --> 84 85 <sect2 arch="ml_32,ml_all" role="installation"> 86 <title>Installation of Libtool - 32bit</title> 87 88 <para>Clean previous build:</para> 89 90 <screen><userinput remap="pre">make distclean</userinput></screen> 91 92 <para>Prepare Libtool for compilation:</para> 93 94 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 95 --host=i686-pc-linux-gnu \ 96 --prefix=/usr \ 97 --libdir=/usr/lib32</userinput></screen> 98 99 <para>Compile the package:</para> 100 101 <screen><userinput remap="make">make</userinput></screen> 102 103 <para>Install the package:</para> 104 105 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 106 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 107 rm -rf DESTDIR</userinput></screen> 108 109 </sect2><!-- m32 --> 110 111 <!-- - - - - - - - - - --> 112 <!-- Multilib - x32bit --> 113 <!-- - - - - - - - - - --> 114 115 <sect2 arch="ml_x32,ml_all" role="installation"> 116 <title>Installation of Libtool - x32bit</title> 117 118 <para>Clean previous build:</para> 119 120 <screen><userinput remap="pre">make distclean</userinput></screen> 121 122 <para>Prepare Libtool for compilation:</para> 123 124 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 125 --host=x86_64-pc-linux-gnux32 \ 126 --prefix=/usr \ 127 --libdir=/usr/libx32</userinput></screen> 128 129 <para>Compile the package:</para> 130 131 <screen><userinput remap="make">make</userinput></screen> 132 133 <para>Install the package:</para> 134 135 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 136 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 137 rm -rf DESTDIR</userinput></screen> 138 139 </sect2><!-- mx32 --> 81 140 82 141 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
r9707b7b r5b6d5c8 173 173 174 174 <screen role="nodump"><userinput>make distclean 175 ./configure --prefix=/usr \ 176 --with-shared \ 177 --without-normal \ 178 --without-debug \ 175 ./configure --prefix=/usr \ 176 --with-shared \ 177 --without-normal \ 178 --with-cxx-shared \ 179 --without-debug \ 179 180 --without-cxx-binding \ 180 181 --with-abi-version=5 … … 184 185 185 186 </sect2> 187 188 <!-- - - - - - - - - - --> 189 <!-- Multilib - 32bit --> 190 <!-- - - - - - - - - - --> 191 <sect2 arch="ml_32,ml_all"> 192 <title>Building Ncurses - 32bit</title> 193 194 <para>Clean previous build:</para> 195 196 <screen><userinput remap="pre">make distclean</userinput></screen> 197 198 <para>Prepare Ncurses for compilation:</para> 199 200 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \ 201 ./configure --prefix=/usr \ 202 --host=i686-pc-linux-gnu \ 203 --libdir=/usr/lib32 \ 204 --mandir=/usr/share/man \ 205 --with-shared \ 206 --without-debug \ 207 --without-normal \ 208 --with-cxx-shared \ 209 --enable-pc-files \ 210 --enable-widec \ 211 --with-pkg-config-libdir=/usr/lib32/pkgconfig</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 mkdir -p DESTDIR/usr/lib32/pkgconfig 221 for lib in ncurses form panel menu ; do 222 rm -vf DESTDIR/usr/lib32/lib${lib}.so 223 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so 224 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc 225 done 226 rm -vf DESTDIR/usr/lib32/libcursesw.so 227 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so 228 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so 229 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 230 rm -rf DESTDIR</userinput></screen> 231 232 </sect2><!-- m32 --> 233 234 <!-- - - - - - - - - - --> 235 <!-- Multilib - x32bit --> 236 <!-- - - - - - - - - - --> 237 <sect2 arch="ml_x32,ml_all"> 238 <title>Building Ncurses - x32bit</title> 239 240 <para>Clean previous build:</para> 241 242 <screen><userinput remap="pre">make distclean</userinput></screen> 243 244 <para>Prepare Ncurses for compilation:</para> 245 246 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 247 ./configure --prefix=/usr \ 248 --host=x86_64-pc-linux-gnux32 \ 249 --libdir=/usr/libx32 \ 250 --mandir=/usr/share/man \ 251 --with-shared \ 252 --without-debug \ 253 --without-normal \ 254 --enable-pc-files \ 255 --enable-widec \ 256 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen> 257 258 <para>Compile the package:</para> 259 260 <screen><userinput remap="make">make</userinput></screen> 261 262 <para>Install the package:</para> 263 264 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 265 mkdir -p DESTDIR/usr/libx32/pkgconfig 266 for lib in ncurses form panel menu ; do 267 rm -vf DESTDIR/usr/libx32/lib${lib}.so 268 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so 269 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc 270 done 271 rm -vf DESTDIR/usr/libx32/libcursesw.so 272 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so 273 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so 274 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 275 rm -rf DESTDIR</userinput></screen> 276 277 </sect2><!-- mx32 --> 186 278 187 279 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r9707b7b r5b6d5c8 108 108 109 109 </sect2> 110 111 <!-- - - - - - - - - - --> 112 <!-- Multilib - 32bit --> 113 <!-- - - - - - - - - - --> 114 115 <sect2 arch="ml_32,ml_all" role="installation"> 116 <title>Installation of OpenSSL - 32bit</title> 117 118 <para>Clean previous build:</para> 119 120 <screen><userinput remap="pre">make distclean</userinput></screen> 121 122 <para>Prepare OpenSSL for compilation:</para> 123 124 <screen><userinput remap="configure">CFLAGS="-m32 -march=i686 -Wall -O3" CXXFLAGS="$CFLAGS" \ 125 ./config --prefix=/usr \ 126 --openssldir=/etc/ssl \ 127 --libdir=lib32 \ 128 shared \ 129 zlib-dynamic \ 130 linux-generic32</userinput></screen> 131 132 <para>Compile the package:</para> 133 134 <screen><userinput remap="make">make</userinput></screen> 135 136 <para>Install the package:</para> 137 138 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 139 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 140 rm -rf DESTDIR</userinput></screen> 141 142 </sect2><!-- m32 --> 143 144 <!-- - - - - - - - - - --> 145 <!-- Multilib - x32bit --> 146 <!-- - - - - - - - - - --> 147 148 <sect2 arch="ml_x32,ml_all" role="installation"> 149 <title>Installation of OpenSSL - x32bit</title> 150 151 <para>Clean previous build:</para> 152 153 <screen><userinput remap="pre">make distclean</userinput></screen> 154 155 <para>Prepare OpenSSL for compilation:</para> 156 157 <screen><userinput remap="configure">CFLAGS="-mx32 -march=x86-64 -Wall -O3" CXXFLAGS="$CFLAGS" \ 158 ./config --prefix=/usr \ 159 --openssldir=/etc/ssl \ 160 --libdir=libx32 \ 161 shared \ 162 zlib-dynamic \ 163 linux-x32</userinput></screen> 164 165 <para>Compile the package:</para> 166 167 <screen><userinput remap="make">make</userinput></screen> 168 169 <para>Install the package:</para> 170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 173 rm -rf DESTDIR</userinput></screen> 174 175 </sect2><!-- mx32 --> 110 176 111 177 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
r9707b7b r5b6d5c8 105 105 </sect2> 106 106 107 <!-- - - - - - - - - - --> 108 <!-- Multilib - 32bit --> 109 <!-- - - - - - - - - - --> 110 111 <sect2 arch="ml_32,ml_all" role="installation"> 112 <title>Installation of Readline - 32bit</title> 113 114 <para>Clean previous build:</para> 115 116 <screen><userinput remap="pre">make distclean</userinput></screen> 117 118 <para>Prepare Readline for compilation:</para> 119 120 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 121 --host=i686-pc-linux-gnu \ 122 --prefix=/usr \ 123 --libdir=/usr/lib32 \ 124 --disable-static \ 125 --with-curses</userinput></screen> 126 127 <para>Compile the package:</para> 128 129 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen> 130 131 <para>Install the package:</para> 132 133 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install 134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 135 rm -rf DESTDIR</userinput></screen> 136 137 </sect2><!-- m32 --> 138 139 <!-- - - - - - - - - - --> 140 <!-- Multilib - x32bit --> 141 <!-- - - - - - - - - - --> 142 143 <sect2 arch="ml_x32,ml_all" role="installation"> 144 <title>Installation of Readline - x32bit</title> 145 146 <para>Clean previous build:</para> 147 148 <screen><userinput remap="pre">make distclean</userinput></screen> 149 150 <para>Prepare Readline for compilation:</para> 151 152 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 153 --host=x86_64-pc-linux-gnux32 \ 154 --prefix=/usr \ 155 --libdir=/usr/libx32 \ 156 --disable-static \ 157 --with-curses</userinput></screen> 158 159 <para>Compile the package:</para> 160 161 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen> 162 163 <para>Install the package:</para> 164 165 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install 166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 167 rm -rf DESTDIR</userinput></screen> 168 169 </sect2><!-- mx32 --> 170 107 171 <sect2 id="contents-readline" role="content"> 108 172 <title>Contents of Readline</title> -
chapter08/stripping.xml
r9707b7b r5b6d5c8 65 65 66 66 cd /usr/lib 67 68 67 for LIB in $save_usrlib; do 69 68 objcopy --only-keep-debug $LIB $LIB.dbg … … 73 72 install -vm755 /tmp/$LIB /usr/lib 74 73 rm /tmp/$LIB 75 done 74 done</userinput> 75 <userinput arch="ml_32,ml_all"> 76 cd /usr/lib32 77 for LIB in $save_usrlib; do 78 objcopy --only-keep-debug $LIB $LIB.dbg 79 cp $LIB /tmp/$LIB 80 strip --strip-unneeded /tmp/$LIB 81 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 82 install -vm755 /tmp/$LIB /usr/lib32 83 rm /tmp/$LIB 84 done</userinput> 85 <userinput arch="ml_x32,ml_all"> 86 cd /usr/libx32 87 for LIB in $save_usrlib; do 88 objcopy --only-keep-debug $LIB $LIB.dbg 89 cp $LIB /tmp/$LIB 90 strip --strip-unneeded /tmp/$LIB 91 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 92 install -vm755 /tmp/$LIB /usr/libx32 93 rm /tmp/$LIB 94 done</userinput><userinput> 76 95 77 96 online_usrbin="bash find strip" … … 96 115 install -vm755 /tmp/$LIB /usr/lib 97 116 rm /tmp/$LIB 98 done 117 done</userinput><userinput arch="ml_32,ml_all"> 118 for LIB in $online_usrlib; do 119 cp /usr/lib32/$LIB /tmp/$LIB 120 strip --strip-unneeded /tmp/$LIB 121 install -vm755 /tmp/$LIB /usr/lib32 122 rm /tmp/$LIB 123 done</userinput><userinput arch="ml_x32,ml_all"> 124 for LIB in $online_usrlib; do 125 cp /usr/libx32/$LIB /tmp/$LIB 126 strip --strip-unneeded /tmp/$LIB 127 install -vm755 /tmp/$LIB /usr/libx32 128 rm /tmp/$LIB 129 done</userinput><userinput> 99 130 100 131 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 107 138 ;; 108 139 esac 109 done 140 done</userinput><userinput arch="ml_32,ml_all"> 141 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 142 $(find /usr/lib32 -type f -name \*.a); do 143 case "$online_usrbin $online_usrlib $save_usrlib" in 144 *$(basename $i)* ) 145 ;; 146 * ) strip --strip-unneeded $i 147 ;; 148 esac 149 done</userinput><userinput arch="ml_x32,ml_all"> 150 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 151 $(find /usr/libx32 -type f -name \*.a); do 152 case "$online_usrbin $online_usrlib $save_usrlib" in 153 *$(basename $i)* ) 154 ;; 155 * ) strip --strip-unneeded $i 156 ;; 157 esac 158 done</userinput><userinput> 110 159 111 160 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
r9707b7b r5b6d5c8 215 215 216 216 </sect2> 217 218 <!-- - - - - - - - - - --> 219 <!-- Multilib - 32bit --> 220 <!-- - - - - - - - - - --> 221 222 <sect2 arch="ml_32,ml_all" role="installation"> 223 <title>Installation of systemd - 32-bit</title> 224 225 <para>Clean previous build:</para> 226 227 <screen><userinput remap="pre">rm -rf *</userinput></screen> 228 229 <para>Create a symlink to work around missing xsltproc:</para> 230 231 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen --> 232 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 233 234 <!-- with cross-LFS we have util-linux in place: 235 <para>Because we have not yet installed the final version of Util-Linux, 236 create links to the libraries in the approprite location:</para> 237 238 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do 239 ln -sf $file /usr/lib32/ 240 done</userinput></screen> 241 --> 242 243 <para>Prepare systemd for compilation:</para> 244 245 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ 246 CC="gcc -m32 -march=i686" \ 247 CXX="g++ -m32 -march=i686" \ 248 LANG=en_US.UTF-8 \ 249 meson --prefix=/usr \ 250 --sysconfdir=/etc \ 251 --localstatedir=/var \ 252 --libdir=/usr/lib32 \ 253 -Drootlibdir=/usr/lib32 \ 254 -Dblkid=true \ 255 -Ddefault-dnssec=no \ 256 -Dfirstboot=false \ 257 -Dinstall-tests=false \ 258 -Dldconfig=false \ 259 -Dsysusers=false \ 260 -Db_lto=false \ 261 -Drpmmacrosdir=no \ 262 -Dhomed=false \ 263 -Duserdb=false \ 264 -Dman=false \ 265 -Dmode=release \ 266 ..</userinput></screen> 267 268 <para>Compile the package:</para> 269 270 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 271 272 <para>Install the package:</para> 273 274 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 275 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 276 rm -rf DESTDIR 277 rm -f /usr/bin/xsltproc</userinput></screen> 278 279 </sect2><!-- m32 --> 280 281 <!-- - - - - - - - - - --> 282 <!-- Multilib - x32bit --> 283 <!-- - - - - - - - - - --> 284 285 <sect2 arch="ml_x32,ml_all" role="installation"> 286 <title>Installation of systemd - x32-bit</title> 287 288 <para>Clean previous build:</para> 289 290 <screen><userinput remap="pre">rm -rf *</userinput></screen> 291 292 <para>Create a symlink to work around missing xsltproc:</para> 293 294 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 295 <!-- 296 <para>Fix an issue on x32:</para> 297 298 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c 299 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen> 300 --> 301 <para>Prepare systemd for compilation:</para> 302 303 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 304 CC="gcc -mx32" \ 305 CXX="g++ -mx32" \ 306 CFLAGS+="-Wno-error=shift-overflow" \ 307 CXXFLAGS+="-Wno-error=shift-overflow" \ 308 LANG=en_US.UTF-8 \ 309 meson --prefix=/usr \ 310 --sysconfdir=/etc \ 311 --localstatedir=/var \ 312 --libdir=/usr/libx32 \ 313 -Drootlibdir=/usr/libx32 \ 314 -Dblkid=true \ 315 -Ddefault-dnssec=no \ 316 -Dfirstboot=false \ 317 -Dinstall-tests=false \ 318 -Dldconfig=false \ 319 -Dsysusers=false \ 320 -Db_lto=false \ 321 -Drpmmacrosdir=no \ 322 -Dhomed=false \ 323 -Duserdb=false \ 324 -Dman=false \ 325 -Dmode=release \ 326 ..</userinput></screen> 327 328 <para>Compile the package:</para> 329 330 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 331 332 <para>Install the package:</para> 333 334 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 335 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 336 rm -rf DESTDIR 337 rm -f /usr/bin/xsltproc</userinput></screen> 338 339 </sect2><!-- mx32 --> 217 340 218 341 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
r9707b7b r5b6d5c8 113 113 --> 114 114 </sect2> 115 116 <!-- - - - - - - - - - --> 117 <!-- Multilib - 32bit --> 118 <!-- - - - - - - - - - --> 119 120 <sect2 arch="ml_32,ml_all" role="installation"> 121 <title>Installation of Util-linux - 32-bit</title> 122 123 <para>Clean previous build:</para> 124 125 <screen><userinput remap="pre">make distclean</userinput></screen> 126 127 <para>Move a tool out of the way which is optionally used by 128 configure but will report invalid pathes for multilib builds.</para> 129 130 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen> 131 132 <para>Prepare Util-linux for compilation:</para> 133 134 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \ 135 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 136 --host=i686-pc-linux-gnu \ 137 --libdir=/usr/lib32 \ 138 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 139 --disable-chfn-chsh \ 140 --disable-login \ 141 --disable-nologin \ 142 --disable-su \ 143 --disable-setpriv \ 144 --disable-runuser \ 145 --disable-pylibmount \ 146 --disable-static \ 147 --without-python \ 148 --without-systemd \ 149 --without-systemdsystemunitdir</userinput></screen> 150 151 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \ 152 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 153 --host=i686-pc-linux-gnu \ 154 --libdir=/usr/lib32 \ 155 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 156 --disable-chfn-chsh \ 157 --disable-login \ 158 --disable-nologin \ 159 --disable-su \ 160 --disable-setpriv \ 161 --disable-runuser \ 162 --disable-pylibmount \ 163 --disable-static \ 164 --without-python</userinput></screen> 165 166 <para>Restore the tool previously moved away:</para> 167 168 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen> 169 170 <para>Compile the package:</para> 171 172 <screen><userinput remap="make">make</userinput></screen> 173 174 <para>Install the package:</para> 175 176 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 177 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 178 rm -rf DESTDIR</userinput></screen> 179 180 </sect2><!-- m32 --> 181 182 <!-- - - - - - - - - - --> 183 <!-- Multilib - x32bit --> 184 <!-- - - - - - - - - - --> 185 186 <sect2 arch="ml_x32,ml_all" role="installation"> 187 <title>Installation of Util-linux - x32-bit</title> 188 189 <para>Clean previous build:</para> 190 191 <screen><userinput remap="pre">make distclean</userinput></screen> 192 193 <para>Move a tool out of the way which is optionally used by 194 configure but will report invalid pathes for multilib builds.</para> 195 196 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen> 197 198 <para>Prepare Util-linux for compilation:</para> 199 200 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \ 201 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 202 --host=x86_64-pc-linux-gnux32 \ 203 --libdir=/usr/libx32 \ 204 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 205 --disable-chfn-chsh \ 206 --disable-login \ 207 --disable-nologin \ 208 --disable-su \ 209 --disable-setpriv \ 210 --disable-runuser \ 211 --disable-pylibmount \ 212 --disable-static \ 213 --without-python \ 214 --without-systemd \ 215 --without-systemdsystemunitdir</userinput></screen> 216 217 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \ 218 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 219 --host=x86_64-pc-linux-gnux32 \ 220 --libdir=/usr/libx32 \ 221 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 222 --disable-chfn-chsh \ 223 --disable-login \ 224 --disable-nologin \ 225 --disable-su \ 226 --disable-setpriv \ 227 --disable-runuser \ 228 --disable-pylibmount \ 229 --disable-static \ 230 --without-python</userinput></screen> 231 232 <para>Restore the tool previously moved away:</para> 233 234 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen> 235 236 <para>Compile the package:</para> 237 238 <screen><userinput remap="make">make</userinput></screen> 239 240 <para>Install the package:</para> 241 242 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 243 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 244 rm -rf DESTDIR</userinput></screen> 245 246 </sect2><!-- mx32 --> 115 247 116 248 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r9707b7b r5b6d5c8 68 68 69 69 </sect2> 70 71 <!-- - - - - - - - - - --> 72 <!-- Multilib - 32bit --> 73 <!-- - - - - - - - - - --> 74 75 <sect2 arch="ml_32,ml_all" role="installation"> 76 <title>Installation of Xz - 32bit</title> 77 78 <para>Clean previous build:</para> 79 80 <screen><userinput remap="pre">make distclean</userinput></screen> 81 82 <para>Prepare Xz for compilation:</para> 83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 85 --host=i686-pc-linux-gnu \ 86 --prefix=/usr \ 87 --libdir=/usr/lib32 \ 88 --disable-static</userinput></screen> 89 90 <para>Compile the package:</para> 91 92 <screen><userinput remap="make">make</userinput></screen> 93 94 <para>Install the package:</para> 95 96 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 97 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 98 rm -rf DESTDIR</userinput></screen> 99 100 </sect2><!-- m32 --> 101 102 <!-- - - - - - - - - - --> 103 <!-- Multilib - x32bit --> 104 <!-- - - - - - - - - - --> 105 106 <sect2 arch="ml_x32,ml_all" role="installation"> 107 <title>Installation of Xz - x32bit</title> 108 109 <para>Clean previous build:</para> 110 111 <screen><userinput remap="pre">make distclean</userinput></screen> 112 113 <para>Prepare Xz for compilation:</para> 114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 116 --host=x86_64-pc-linux-gnux32 \ 117 --prefix=/usr \ 118 --libdir=/usr/libx32 \ 119 --disable-static</userinput></screen> 120 121 <para>Compile the package:</para> 122 123 <screen><userinput remap="make">make</userinput></screen> 124 125 <para>Install the package:</para> 126 127 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 128 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 129 rm -rf DESTDIR</userinput></screen> 130 131 </sect2><!-- mx32 --> 70 132 71 133 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
r9707b7b r5b6d5c8 64 64 </sect2> 65 65 66 <!-- - - - - - - - - - --> 67 <!-- Multilib - 32bit --> 68 <!-- - - - - - - - - - --> 69 70 <sect2 arch="ml_32,ml_all" role="installation"> 71 <title>Installation of Zlib - 32bit</title> 72 73 <para>Clean previous build:</para> 74 75 <screen><userinput remap="pre">make distclean</userinput></screen> 76 77 <para>Prepare Zlib for compilation:</para> 78 79 <screen><userinput remap="configure">CFLAGS+=" -m32" CXXFLAGS+=" -m32" \ 80 ./configure --prefix=/usr \ 81 --libdir=/usr/lib32</userinput></screen> 82 83 <para>Compile the package:</para> 84 85 <screen><userinput remap="make">make</userinput></screen> 86 87 <para>Install the package:</para> 88 89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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">CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \ 107 ./configure --prefix=/usr \ 108 --libdir=/usr/libx32</userinput></screen> 109 110 <para>Compile the package:</para> 111 112 <screen><userinput remap="make">make</userinput></screen> 113 114 <para>Install the package:</para> 115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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
r9707b7b r5b6d5c8 69 69 70 70 </sect2> 71 72 <!-- - - - - - - - - - --> 73 <!-- Multilib - 32bit --> 74 <!-- - - - - - - - - - --> 75 76 <sect2 arch="ml_32,ml_all" role="installation"> 77 <title>Installation of Zstd - 32bit</title> 78 79 <para>Clean previous build:</para> 80 81 <screen><userinput remap="pre">make clean</userinput></screen> 82 83 <para>Compile the package:</para> 84 85 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen> 86 87 <para>Install the package:</para> 88 89 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install 90 cp -Rv DESTDIR/usr/lib/* /usr/lib32/ 91 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc 92 rm -rf DESTDIR</userinput></screen> 93 94 </sect2><!-- m32 --> 95 96 <!-- - - - - - - - - - --> 97 <!-- Multilib - x32bit --> 98 <!-- - - - - - - - - - --> 99 100 <sect2 arch="ml_x32,ml_all" role="installation"> 101 <title>Installation of Zstd - x32bit</title> 102 103 <para>Clean previous build:</para> 104 105 <screen><userinput remap="pre">make clean</userinput></screen> 106 107 <para>Compile the package:</para> 108 109 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen> 110 111 <para>Install the package:</para> 112 113 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install 114 cp -Rv DESTDIR/usr/lib/* /usr/libx32/ 115 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc 116 rm -rf DESTDIR</userinput></screen> 117 118 </sect2><!-- mx32 --> 71 119 72 120 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r9707b7b r5b6d5c8 201 201 </note> 202 202 203 <note arch="ml_32,ml_x32,ml_all"> 204 <para> 205 The kernel on a multilib system needs to be able to 206 identify and start binaries compiled for different architectures 207 than the default. 208 </para> 209 210 <para arch="ml_32,ml_all"> 211 If support for any 32bit ABI was built, make sure that the option 212 "IA32 Emulation" is selected. The option 'IA32 a.out support' is 213 optional. 214 </para> 215 216 <para arch="ml_x32,ml_all"> 217 If support for the x32bit ABI was built, make sure that the option 218 "x32 ABI for 64-bit mode" is selected. 219 </para> 220 221 <screen arch="ml_32">Binary Emulations ---> 222 [*] IA32 Emulation [CONFIG_IA32_EMULATION] 223 <M> IA32 a.out support [CONFIG_IA32_AOUT] 224 </screen> 225 <screen arch="ml_x32">Binary Emulations ---> 226 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32] 227 </screen> 228 <screen arch="ml_all">Binary Emulations ---> 229 [*] IA32 Emulation [CONFIG_IA32_EMULATION] 230 <M> IA32 a.out support [CONFIG_IA32_AOUT] 231 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32] 232 </screen> 233 </note> 234 203 235 <variablelist> 204 236 <title>The rationale for the above configuration items:</title> -
packages.ent
r9707b7b r5b6d5c8 351 351 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 352 352 353 <!ENTITY isl-version "0.24"> 354 <!ENTITY isl-size "2.1 MB"> 355 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" --> 356 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2"> 357 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d"> 358 <!ENTITY isl-home "http://isl.gforge.inria.fr/"> 359 <!ENTITY isl-fin-du "20 MB"> 360 <!ENTITY isl-fin-sbu "0.1 SBU"> 361 353 362 <!ENTITY jinja2-version "3.1.2"> 354 363 <!ENTITY jinja2-size "262 KB"> -
prologue/bookinfo.xml
r9707b7b r5b6d5c8 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 10 <subtitle>Version &version;< /subtitle>10 <subtitle>Version &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase></subtitle> 11 11 <subtitle>Published &releasedate;</subtitle> 12 12 … … 29 29 <firstname>Editor: DJ</firstname> 30 30 <surname>Lucas</surname> 31 </author> 32 33 <author arch="ml_32,ml_x32,ml_all"> 34 <firstname>Editor: Thomas</firstname> 35 <surname>Trepl</surname> 31 36 </author> 32 37 </authorgroup> -
prologue/preface.xml
r9707b7b r5b6d5c8 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.