Changes in / [7779960:c1c0428]
- Files:
-
- 3 added
- 53 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r7779960 rc1c0428 33 33 endif 34 34 35 ifndef ARCH 36 ARCH = default 37 endif 38 ifneq ($(ARCH), default) 39 ifneq ($(ARCH), ml_32) 40 ifneq ($(ARCH), ml_x32) 41 ifneq ($(ARCH), ml_all) 42 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.) 43 endif 44 endif 45 endif 46 endif 47 35 48 book: validate profile-html 36 49 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 125 138 --xinclude \ 126 139 --stringparam profile.revision $(REV) \ 140 --stringparam profile.arch $(ARCH) \ 127 141 --output $(RENDERTMP)/lfs-html2.xml \ 128 142 stylesheets/lfs-xsl/profile.xsl \ … … 182 196 --xinclude \ 183 197 --stringparam profile.revision $(REV) \ 198 --stringparam profile.arch $(ARCH) \ 184 199 --output $(RENDERTMP)/md5sum.xml \ 185 200 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r7779960 rc1c0428 61 61 <itemizedlist> 62 62 <listitem> 63 <para>The version of the book being used (in this case &version; )</para>63 <para>The version of the book being used (in this case &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para> 64 64 </listitem> 65 65 <listitem> … … 76 76 </listitem> 77 77 <listitem> 78 <para>Note whether you have deviated from the book at all 78 <para>Note whether you have deviated from the book at all</para> 79 79 </listitem> 80 80 </itemizedlist> -
chapter01/changelog.xml
r7779960 rc1c0428 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">-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
r7779960 rc1c0428 277 277 bash version-check.sh</userinput></screen> 278 278 279 </sect2> 279 <para arch="ml_32,ml_x32,ml_all"> 280 Building multilib support requires the kernel of the host system 281 to have 32-bit emulation support included. 282 </para> 283 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 284 [*] IA32 Emulation 285 <M> IA32 a.out support 286 [*] x32 ABI for 64-bit mode 287 </screen> 288 289 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 290 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 291 enabled but only 'IA32 Emulation', you can continue to build your 292 system but you have to leave out any sections showing instructions 293 for building x32 objects. If neither 'IA32 Emulation' nor 294 'x32 ABI for 64-bit mode' is enabled, you will run in errors 295 latest when building <application>glibc</application> in Chapter 6, 296 so an upgrade of your host system kernel is required. 297 </para> 298 299 </sect2> 300 280 301 </sect1> -
chapter03/packages.xml
r7779960 rc1c0428 378 378 379 379 <varlistentry> 380 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term> 381 <listitem> 382 <para>Home page: <ulink url="&isl-home;"/></para> 383 <para>Download: <ulink url="&isl-url;"/></para> 384 <para>MD5 sum: <literal>&isl-md5;</literal></para> 385 </listitem> 386 </varlistentry> 387 388 <varlistentry> 380 389 <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> 381 390 <listitem> -
chapter04/addinguser.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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
r7779960 rc1c0428 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
r7779960 rc1c0428 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 \ … … 79 79 --enable-new-dtags \ 80 80 --enable-default-hash-style=gnu</userinput></screen> 81 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \ 82 --with-sysroot=$LFS \ 83 --target=$LFS_TGT \ 84 --disable-nls \ 85 --enable-gprofng=no \ 86 --disable-werror \ 87 --enable-default-hash-style=gnu \ 88 --enable-multilib</userinput></screen> 81 89 82 90 <variablelist> … … 162 170 </varlistentry> 163 171 172 <varlistentry arch="ml_32,ml_x32,ml_all"> 173 <term><parameter>--enable-multilib</parameter></term> 174 <listitem> 175 <para>Enables multilib support.</para> 176 </listitem> 177 </varlistentry> 178 164 179 </variablelist> 165 180 -
chapter05/gcc-pass1.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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> … … 214 217 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 215 218 216 <para >Note that for 32-bit machines, the interpreter name will be219 <para arch="default">Note that for 32-bit machines, the interpreter name will be 217 220 <filename>/lib/ld-linux.so.2</filename>.</para> 218 221 … … 242 245 </sect2> 243 246 247 <!-- - - - - - - - - - --> 248 <!-- Multilib - 32bit --> 249 <!-- - - - - - - - - - --> 250 <sect2 arch="ml_32,ml_all"> 251 <title>Building Glibc - 32bit</title> 252 253 <para>Now recompile for m32. The extracted source can be 254 reused but needs to be cleaned before installing the m32 255 version of Glibc.</para> 256 257 <para>Clear the build directory and remove artefacts from 258 previous build:</para> 259 260 <screen><userinput remap="pre">make clean 261 find .. -name "*.a" -delete</userinput></screen> 262 263 <para>Configure Glibc for m32 with the following commands:</para> 264 265 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 266 CXX="$LFS_TGT-g++ -m32" \ 267 ../configure \ 268 --prefix=/usr \ 269 --host=$LFS_TGT32 \ 270 --build=$(../scripts/config.guess) \ 271 --enable-kernel=&min-kernel; \ 272 --with-headers=$LFS/usr/include \ 273 --disable-nscd \ 274 --libdir=/usr/lib32 \ 275 --libexecdir=/usr/lib32 \ 276 libc_cv_slibdir=/usr/lib32</userinput></screen> 277 278 <para>Compile the package:</para> 279 280 <screen><userinput remap="make">make</userinput></screen> 281 282 <para>Install the package:</para> 283 284 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 285 cp -a DESTDIR/usr/lib32 $LFS/usr/ 286 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 287 $LFS/usr/include/gnu/ 288 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen> 289 290 291 <caution> 292 <para>At this point, it is imperative to stop and ensure that the basic 293 functions (compiling and linking) of the new toolchain are working as 294 expected. To perform a sanity check, run the following commands:</para> 295 296 <screen><userinput>echo 'int main(){}' > dummy.c 297 $LFS_TGT-gcc -m32 dummy.c 298 readelf -l a.out | grep '/ld-linux'</userinput></screen> 299 300 <para>If everything is working correctly, there should be no errors, 301 and the output of the last command will be of the form:</para> 302 303 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 304 305 <para>If the output is not shown as above or there was no output at all, 306 then something is wrong. Investigate and retrace the steps to find out 307 where the problem is and correct it. This issue must be resolved before 308 continuing on.</para> 309 310 <para>Once all is well, clean up the test files:</para> 311 312 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 313 314 </caution> 315 316 </sect2><!-- m32 --> 317 318 <!-- - - - - - - - - - --> 319 <!-- Multilib - x32bit --> 320 <!-- - - - - - - - - - --> 321 322 <sect2 arch="ml_x32,ml_all"> 323 <title>Building Glibc - x32bit</title> 324 325 <para>Now recompile for mx32. The extracted source can be 326 reused but needs to be cleaned before installing the mx32 327 version of Glibc.</para> 328 329 <para>Clear the build directory and remove artefacts from 330 previous build:</para> 331 332 <screen><userinput remap="pre">make clean 333 find .. -name "*.a" -delete</userinput></screen> 334 335 <para>Configure Glibc for mx32 with the following commands:</para> 336 337 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 338 CXX="$LFS_TGT-g++ -mx32" \ 339 ../configure \ 340 --prefix=/usr \ 341 --host=$LFS_TGTX32 \ 342 --build=$(../scripts/config.guess) \ 343 --enable-kernel=&min-kernel; \ 344 --with-headers=$LFS/usr/include \ 345 --disable-nscd \ 346 --libdir=/usr/libx32 \ 347 --libexecdir=/usr/libx32 \ 348 libc_cv_slibdir=/usr/libx32</userinput></screen> 349 350 <para>Compile the package:</para> 351 352 <screen><userinput remap="make">make</userinput></screen> 353 354 <para>Install the package:</para> 355 356 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 357 cp -a DESTDIR/usr/libx32 $LFS/usr/ 358 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 359 $LFS/usr/include/gnu/ 360 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen> 361 362 <caution> 363 <para>At this point, it is imperative to stop and ensure that the basic 364 functions (compiling and linking) of the new toolchain are working as 365 expected. To perform a sanity check, run the following commands:</para> 366 367 <screen><userinput>echo 'int main(){}' > dummy.c 368 $LFS_TGT-gcc -mx32 dummy.c 369 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 370 371 <para>If everything is working correctly, there should be no errors, 372 and the output of the last command will be of the form:</para> 373 374 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 375 376 <para>If the output is not shown as above or there was no output at all, 377 then something is wrong. Investigate and retrace the steps to find out 378 where the problem is and correct it. This issue must be resolved before 379 continuing on.</para> 380 381 <para>Once all is well, clean up the test files:</para> 382 383 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 384 385 </caution> 386 387 </sect2><!-- mx32 --> 388 244 389 <sect2 role="content"> 245 390 <title/> -
chapter05/libstdc++.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 65 65 <para>Prepare Binutils for compilation:</para> 66 66 67 <screen ><userinput remap="configure">../configure \67 <screen arch="default"><userinput remap="configure">../configure \ 68 68 --prefix=/usr \ 69 69 --build=$(../config.guess) \ … … 76 76 --enable-new-dtags \ 77 77 --enable-default-hash-style=gnu</userinput></screen> 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \ 79 --prefix=/usr \ 80 --build=$(../config.guess) \ 81 --host=$LFS_TGT \ 82 --disable-nls \ 83 --enable-shared \ 84 --enable-gprofng=no \ 85 --disable-werror \ 86 --enable-64-bit-bfd \ 87 --enable-default-hash-style=gnu \ 88 --enable-multilib</userinput></screen> 78 89 79 90 <variablelist> … … 94 105 <para>Enables 64-bit support (on hosts with smaller word sizes). 95 106 This may not be needed on 64-bit systems, but it does no harm.</para> 107 </listitem> 108 </varlistentry> 109 110 <varlistentry arch="ml_32,ml_x32,ml_all"> 111 <term><parameter>--enable-multilib</parameter></term> 112 <listitem> 113 <para>Enables multilib support in bintutils.</para> 96 114 </listitem> 97 115 </varlistentry> -
chapter06/gcc-pass2.xml
r7779960 rc1c0428 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/' \ … … 68 69 esac</userinput></screen> 69 70 71 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the 72 libraries:</para> 73 74 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 75 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 76 -i.orig gcc/config/i386/t-linux64</userinput></screen> 77 70 78 <para>Override the building rule of libgcc and libstdc++ headers, to 71 79 allow building these libraries with POSIX threads support:</para> … … 84 92 <para>Now prepare GCC for compilation:</para> 85 93 86 <screen ><userinput remap="configure">../configure \94 <screen arch="default"><userinput remap="configure">../configure \ 87 95 --build=$(../config.guess) \ 88 96 --host=$LFS_TGT \ … … 102 110 --disable-libvtv \ 103 111 --enable-languages=c,c++</userinput></screen> 112 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 113 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure" 114 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 115 arch="ml_all">mlist=m64,m32,mx32</userinput> 116 <userinput remap="configure">../configure \ 117 --build=$(../config.guess) \ 118 --host=$LFS_TGT \ 119 --target=$LFS_TGT \ 120 LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ 121 --prefix=/usr \ 122 --with-build-sysroot=$LFS \ 123 --enable-default-pie \ 124 --enable-default-ssp \ 125 --disable-nls \ 126 --enable-multilib --with-multilib-list=$mlist \ 127 --disable-libatomic \ 128 --disable-libgomp \ 129 --disable-libquadmath \ 130 --disable-libsanitizer \ 131 --disable-libssp \ 132 --disable-libvtv \ 133 --enable-languages=c,c++</userinput></screen> 104 134 105 135 <variablelist> -
chapter06/ncurses.xml
r7779960 rc1c0428 207 207 </sect2> 208 208 209 <!-- - - - - - - - - - --> 210 <!-- Multilib - 32bit --> 211 <!-- - - - - - - - - - --> 212 <sect2 arch="ml_32,ml_all"> 213 <title>Building Ncurses - 32bit</title> 214 215 <para>Clean previous build:</para> 216 217 <screen><userinput remap="pre">make distclean</userinput></screen> 218 219 <para>Prepare Ncurses for compilation:</para> 220 221 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \ 222 CXX="$LFS_TGT-g++ -m32" \ 223 ./configure --prefix=/usr \ 224 --host=$LFS_TGT32 \ 225 --build=$(./config.guess) \ 226 --libdir=/usr/lib32 \ 227 --mandir=/usr/share/man \ 228 --with-shared \ 229 --without-normal \ 230 --with-cxx-shared \ 231 --without-debug \ 232 --without-ada \ 233 --disable-stripping</userinput></screen> 234 235 <para>Compile the package:</para> 236 237 <screen><userinput remap="make">make</userinput></screen> 238 239 <para>Install the package:</para> 240 241 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 242 ln -sv libncursesw.so DESTDIR/usr/lib32/libncurses.so 243 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32 244 rm -rf DESTDIR</userinput></screen> 245 246 </sect2><!-- m32 --> 247 248 <!-- - - - - - - - - - --> 249 <!-- Multilib - x32bit --> 250 <!-- - - - - - - - - - --> 251 <sect2 arch="ml_x32,ml_all"> 252 <title>Building Ncurses - x32bit</title> 253 254 <para>Clean previous build:</para> 255 256 <screen><userinput remap="pre">make distclean</userinput></screen> 257 258 <para>Prepare Ncurses for compilation:</para> 259 260 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \ 261 CXX="$LFS_TGT-g++ -mx32" \ 262 ./configure --prefix=/usr \ 263 --host=$LFS_TGTX32 \ 264 --build=$(./config.guess) \ 265 --libdir=/usr/libx32 \ 266 --mandir=/usr/share/man \ 267 --with-shared \ 268 --without-normal \ 269 --with-cxx-shared \ 270 --without-debug \ 271 --without-ada \ 272 --disable-stripping</userinput></screen> 273 274 <para>Compile the package:</para> 275 276 <screen><userinput remap="make">make</userinput></screen> 277 278 <para>Install the package:</para> 279 280 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install 281 ln -sv libncursesw.so DESTDIR/usr/libx32/libncurses.so 282 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32 283 rm -rf DESTDIR</userinput></screen> 284 285 </sect2><!-- mx32 --> 286 209 287 <sect2 role="content"> 210 288 <title/> -
chapter07/changingowner.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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
r7779960 rc1c0428 43 43 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 44 44 45 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib 46 support has already been created while previous installation steps.</para> 47 45 48 <para>Directories are, by default, created with permission mode 755, but 46 49 this is not desirable everywhere. In the commands above, two -
chapter07/util-linux.xml
r7779960 rc1c0428 128 128 </sect2> 129 129 130 <!-- - - - - - - - - - --> 131 <!-- Multilib - 32bit --> 132 <!-- - - - - - - - - - --> 133 134 <sect2 arch="ml_32,ml_all" role="installation"> 135 <title>Installation of Util-linux - 32-bit</title> 136 137 <para>Clean previous build:</para> 138 139 <screen><userinput remap="pre">make distclean</userinput></screen> 140 141 <para>Prepare Util-linux for compilation:</para> 142 143 <screen><userinput remap="configure">CC="gcc -m32" \ 144 ./configure --host=i686-pc-linux-gnu \ 145 --libdir=/usr/lib32 \ 146 --runstatedir=/run \ 147 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 148 --disable-chfn-chsh \ 149 --disable-login \ 150 --disable-nologin \ 151 --disable-su \ 152 --disable-setpriv \ 153 --disable-runuser \ 154 --disable-pylibmount \ 155 --disable-static \ 156 --disable-liblastlog2 \ 157 --without-python \ 158 ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen> 159 160 <para>Compile the package:</para> 161 162 <screen><userinput remap="make">make</userinput></screen> 163 164 <para>Install the package:</para> 165 166 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 167 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 168 rm -rf DESTDIR</userinput></screen> 169 170 </sect2><!-- m32 --> 171 172 <!-- - - - - - - - - - --> 173 <!-- Multilib - x32bit --> 174 <!-- - - - - - - - - - --> 175 176 <sect2 arch="ml_x32,ml_all" role="installation"> 177 <title>Installation of Util-linux - x32-bit</title> 178 179 <para>Clean previous build:</para> 180 181 <screen><userinput remap="pre">make distclean</userinput></screen> 182 183 <para>Prepare Util-linux for compilation:</para> 184 185 <screen><userinput remap="configure">CC="gcc -mx32" \ 186 ./configure --host=x86_64-pc-linux-gnux32 \ 187 --libdir=/usr/libx32 \ 188 --runstatedir=/run \ 189 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 190 --disable-chfn-chsh \ 191 --disable-login \ 192 --disable-nologin \ 193 --disable-su \ 194 --disable-setpriv \ 195 --disable-runuser \ 196 --disable-pylibmount \ 197 --disable-static \ 198 --disable-liblastlog2 \ 199 --without-python \ 200 ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen> 201 202 <para>Compile the package:</para> 203 204 <screen><userinput remap="make">make</userinput></screen> 205 206 <para>Install the package:</para> 207 208 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 209 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 210 rm -rf DESTDIR</userinput></screen> 211 212 </sect2><!-- mx32 --> 213 130 214 <sect2 role="content"> 131 215 <title/> -
chapter08/acl.xml
r7779960 rc1c0428 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - --> 68 <!-- Multilib - 32bit --> 69 <!-- - - - - - - - - - --> 70 71 <sect2 arch="ml_32,ml_all" role="installation"> 72 <title>Installation of Acl - 32bit</title> 73 74 <para>Clean previous build:</para> 75 76 <screen><userinput remap="pre">make distclean</userinput></screen> 77 78 <para>Prepare Acl for compilation:</para> 79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 81 --prefix=/usr \ 82 --disable-static \ 83 --libdir=/usr/lib32 \ 84 --libexecdir=/usr/lib32 \ 85 --host=i686-pc-linux-gnu</userinput></screen> 86 87 <para>Compile the package:</para> 88 89 <screen><userinput remap="make">make</userinput></screen> 90 91 <para>Install the package:</para> 92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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 Acl for compilation:</para> 111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 113 --prefix=/usr \ 114 --disable-static \ 115 --libdir=/usr/libx32 \ 116 --libexecdir=/usr/libx32 \ 117 --host=x86_64-pc-linux-gnux32</userinput></screen> 118 119 <para>Compile the package:</para> 120 121 <screen><userinput remap="make">make</userinput></screen> 122 123 <para>Install the package:</para> 124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR 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
r7779960 rc1c0428 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
r7779960 rc1c0428 50 50 <para>Prepare Binutils for compilation:</para> 51 51 52 <screen ><userinput remap="configure">../configure --prefix=/usr \52 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 53 53 --sysconfdir=/etc \ 54 54 --enable-gold \ … … 61 61 --with-system-zlib \ 62 62 --enable-default-hash-style=gnu</userinput></screen> 63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \ 64 --sysconfdir=/etc \ 65 --enable-gold \ 66 --enable-ld=default \ 67 --enable-plugins \ 68 --enable-shared \ 69 --disable-werror \ 70 --enable-64-bit-bfd \ 71 --with-system-zlib \ 72 --enable-default-hash-style=gnu \ 73 --enable-multilib</userinput></screen> 63 74 64 75 <variablelist> … … 93 104 <para>Use the installed zlib library instead of building the 94 105 included version.</para> 106 </listitem> 107 </varlistentry> 108 109 <varlistentry arch="ml_32,ml_x32,ml_all"> 110 <term><parameter>--enable-multilib</parameter></term> 111 <listitem> 112 <para>Enables multilib support in bintutils.</para> 95 113 </listitem> 96 114 </varlistentry> -
chapter08/bzip2.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 36 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 37 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/> 38 39 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 39 40 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/cleanup.xml
r7779960 rc1c0428 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/expat.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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
r7779960 rc1c0428 45 45 libraries to <quote>lib</quote>:</para> 46 46 47 <screen ><userinput remap="pre">case $(uname -m) in47 <screen arch="default"><userinput remap="pre">case $(uname -m) in 48 48 x86_64) 49 49 sed -e '/m64=/s/lib64/lib/' \ … … 52 52 esac</userinput></screen> 53 53 54 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit 55 libraries to <quote>lib</quote>:</para> 56 57 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \ 58 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ 59 -i.orig gcc/config/i386/t-linux64</userinput></screen> 60 54 61 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 55 62 … … 59 66 <para>Prepare GCC for compilation:</para> 60 67 61 <screen ><userinput remap="configure">../configure --prefix=/usr \68 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \ 62 69 LD=ld \ 63 70 --enable-languages=c,c++ \ … … 68 75 --disable-bootstrap \ 69 76 --disable-fixincludes \ 77 --with-system-zlib</userinput></screen> 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 79 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure" 80 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 81 arch="ml_all">mlist=m64,m32,mx32</userinput> 82 <userinput remap="configure">../configure --prefix=/usr \ 83 LD=ld \ 84 --enable-languages=c,c++ \ 85 --enable-default-pie \ 86 --enable-default-ssp \ 87 --enable-host-pie \ 88 --enable-multilib \ 89 --with-multilib-list=$mlist \ 90 --disable-bootstrap \ 91 --disable-fixincludes \ 70 92 --with-system-zlib</userinput></screen> 71 93 … … 288 310 SEARCH_DIR("/usr/lib");</computeroutput></screen> 289 311 290 <para >A 32-bit system may use a few other directories. For example, here312 <para arch="default">A 32-bit system may use a few other directories. For example, here 291 313 is the output from an i686 machine:</para> 292 314 293 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 315 <!-- not using entities here as the dir names has nothing to do with multilib --> 316 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 294 317 SEARCH_DIR("/usr/local/lib32") 295 318 SEARCH_DIR("/lib32") -
chapter08/gdbm.xml
r7779960 rc1c0428 86 86 </sect2> 87 87 88 <!-- - - - - - - - - - --> 89 <!-- Multilib - 32bit --> 90 <!-- - - - - - - - - - --> 91 92 <sect2 arch="ml_32,ml_all" role="installation"> 93 <title>Installation of GDBM - 32bit</title> 94 95 <para>Clean previous build:</para> 96 97 <screen><userinput remap="pre">make distclean</userinput></screen> 98 99 <para>Prepare GDBM for compilation:</para> 100 101 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 102 --host=i686-pc-linux-gnu \ 103 --prefix=/usr \ 104 --libdir=/usr/lib32 \ 105 --disable-static \ 106 --enable-libgdbm-compat</userinput></screen> 107 108 <para>Compile the package:</para> 109 110 <screen><userinput remap="make">make</userinput></screen> 111 112 <para>Install the package:</para> 113 114 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 115 cp -Rv DESTDIR/usr/lib32/* /usr/lib32/ 116 rm -rf DESTDIR</userinput></screen> 117 118 </sect2><!-- m32 --> 119 120 <!-- - - - - - - - - - --> 121 <!-- Multilib - x32bit --> 122 <!-- - - - - - - - - - --> 123 124 <sect2 arch="ml_x32,ml_all" role="installation"> 125 <title>Installation of GDBM - x32bit</title> 126 127 <para>Clean previous build:</para> 128 129 <screen><userinput remap="pre">make distclean</userinput></screen> 130 131 <para>Prepare GDBM for compilation:</para> 132 133 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 134 --host=x86_64-pc-linux-gnux32 \ 135 --prefix=/usr \ 136 --libdir=/usr/libx32 \ 137 --disable-static \ 138 --enable-libgdbm-compat</userinput></screen> 139 140 <para>Compile the package:</para> 141 142 <screen><userinput remap="make">make</userinput></screen> 143 144 <para>Install the package:</para> 145 146 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 147 cp -Rv DESTDIR/usr/libx32/* /usr/libx32/ 148 rm -rf DESTDIR</userinput></screen> 149 150 </sect2><!-- mx32 --> 151 88 152 <sect2 id="contents-gdbm" role="content"> 89 153 <title>Contents of GDBM</title> -
chapter08/glibc.xml
r7779960 rc1c0428 607 607 </sect2> 608 608 609 <!-- - - - - - - - - - --> 610 <!-- Multilib - 32bit --> 611 <!-- - - - - - - - - - --> 612 <sect2 arch="ml_32,ml_all"> 613 <title>Building Glibc - 32bit</title> 614 615 <para>Now recompile for m32. The extracted source can be 616 reused but needs to be cleaned before installing the m32 617 version of Glibc.</para> 618 619 <para>Clear the build directory and remove artefacts from 620 previous build:</para> 621 622 <screen><userinput remap="pre">rm -rf ./* 623 find .. -name "*.a" -delete</userinput></screen> 624 625 <para>Configure Glibc for m32 with the following commands:</para> 626 627 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \ 628 ../configure \ 629 --prefix=/usr \ 630 --host=i686-pc-linux-gnu \ 631 --build=$(../scripts/config.guess) \ 632 --enable-kernel=&min-kernel; \ 633 --disable-nscd \ 634 --libdir=/usr/lib32 \ 635 --libexecdir=/usr/lib32 \ 636 libc_cv_slibdir=/usr/lib32</userinput></screen> 637 638 <para>Compile the package:</para> 639 640 <screen><userinput remap="make">make</userinput></screen> 641 642 <para>Install the package:</para> 643 644 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 645 cp -a DESTDIR/usr/lib32/* /usr/lib32/ 646 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \ 647 /usr/include/gnu/</userinput></screen> 648 <!-- no longer required as they are created in chap5 649 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2 650 --> 651 652 <para>Add the library name to the dynamic loader config:</para> 653 654 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen> 655 656 <caution> 657 <para>At this point, it is imperative to stop and ensure that the basic 658 functions (compiling and linking) of the new toolchain are working as 659 expected. To perform a sanity check, run the following commands:</para> 660 661 <screen><userinput>echo 'int main(){}' > dummy.c 662 gcc -m32 dummy.c 663 readelf -l a.out | grep '/ld-linux'</userinput></screen> 664 665 <para>If everything is working correctly, there should be no errors, 666 and the output of the last command will be of the form:</para> 667 668 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 669 670 <para>If the output is not shown as above or there was no output at all, 671 then something is wrong. Investigate and retrace the steps to find out 672 where the problem is and correct it. This issue must be resolved before 673 continuing on.</para> 674 675 <para>Once all is well, clean up the test files:</para> 676 677 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 678 679 </caution> 680 681 </sect2><!-- m32 --> 682 683 <!-- - - - - - - - - - --> 684 <!-- Multilib - x32bit --> 685 <!-- - - - - - - - - - --> 686 687 <sect2 arch="ml_x32,ml_all"> 688 <title>Building Glibc - x32bit</title> 689 690 <para>Now recompile for mx32. The extracted source can be 691 reused but needs to be cleaned before installing the mx32 692 version of Glibc.</para> 693 694 <para>Clear the build directory and remove artefacts from 695 previous build:</para> 696 697 <screen><userinput remap="pre">rm -rf ./* 698 find .. -name "*.a" -delete</userinput></screen> 699 700 <para>Configure Glibc for mx32 with the following commands:</para> 701 702 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 703 ../configure \ 704 --prefix=/usr \ 705 --host=x86_64-pc-linux-gnux32 \ 706 --build=$(../scripts/config.guess) \ 707 --enable-kernel=&min-kernel; \ 708 --disable-nscd \ 709 --libdir=/usr/libx32 \ 710 --libexecdir=/usr/libx32 \ 711 libc_cv_slibdir=/usr/libx32</userinput></screen> 712 713 <para>Compile the package:</para> 714 715 <screen><userinput remap="make">make</userinput></screen> 716 717 <para>Install the package:</para> 718 719 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 720 cp -a DESTDIR/usr/libx32/* /usr/libx32/ 721 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \ 722 /usr/include/gnu/</userinput></screen> 723 <!-- no longer required as they are created in chap5 724 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2 725 --> 726 <para>Add the library name to the dynamic loader config:</para> 727 728 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen> 729 730 <caution> 731 <para>At this point, it is imperative to stop and ensure that the basic 732 functions (compiling and linking) of the new toolchain are working as 733 expected. To perform a sanity check, run the following commands:</para> 734 735 <screen><userinput>echo 'int main(){}' > dummy.c 736 gcc -mx32 dummy.c 737 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen> 738 739 <para>If everything is working correctly, there should be no errors, 740 and the output of the last command will be of the form:</para> 741 742 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen> 743 744 <para>If the output is not shown as above or there was no output at all, 745 then something is wrong. Investigate and retrace the steps to find out 746 where the problem is and correct it. This issue must be resolved before 747 continuing on.</para> 748 749 <para>Once all is well, clean up the test files:</para> 750 751 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 752 753 </caution> 754 755 </sect2><!-- mx32 --> 756 609 757 <sect2 id="contents-glibc" role="content"> 610 758 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r7779960 rc1c0428 126 126 </sect2> 127 127 128 <!-- - - - - - - - - - --> 129 <!-- Multilib - 32bit --> 130 <!-- - - - - - - - - - --> 131 132 <sect2 arch="ml_32,ml_all" role="installation"> 133 <title>Installation of GMP - 32bit</title> 134 135 <para>Clean previous build:</para> 136 137 <screen><userinput remap="pre">make distclean</userinput></screen> 138 139 <para>Generic libraries can be created by running 140 the following:</para> 141 142 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess 143 cp -v configfsf.sub config.sub</userinput></screen> 144 145 <para>Prepare GMP for compilation:</para> 146 147 <screen><userinput remap="configure">ABI="32" \ 148 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \ 149 CXXFLAGS="$CFLAGS" \ 150 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ 151 ./configure \ 152 --host=i686-pc-linux-gnu \ 153 --prefix=/usr \ 154 --disable-static \ 155 --enable-cxx \ 156 --libdir=/usr/lib32 \ 157 --includedir=/usr/include/m32/gmp</userinput></screen> 158 159 <variablelist> 160 <title>The meaning of the new configure options:</title> 161 162 <varlistentry> 163 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term> 164 <listitem> 165 <para>Some definitions in gmp.h differs for each arch but 166 has same name. Therefore, the headers must be separated from 167 each other.</para> 168 </listitem> 169 </varlistentry> 170 171 </variablelist> 172 173 <para>Compile the package:</para> 174 175 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 176 make</userinput></screen> 177 178 <important> 179 <para>The test suite for GMP in this section is considered critical. 180 Do not skip it under any circumstances.</para> 181 </important> 182 183 <para>Test the results:</para> 184 185 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 186 187 <para>Ensure that all 197 tests in the test suite passed. 188 Check the results by issuing the following command:</para> 189 190 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 191 192 <para>Install the package:</para> 193 194 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 195 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 196 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/ 197 rm -rf DESTDIR</userinput></screen> 198 199 </sect2><!-- m32 --> 200 201 <!-- - - - - - - - - - --> 202 <!-- Multilib - x32bit --> 203 <!-- - - - - - - - - - --> 204 205 <sect2 arch="ml_x32,ml_all" role="installation"> 206 <title>Installation of GMP - x32-bit</title> 207 208 <para>Clean previous build:</para> 209 210 <screen><userinput remap="pre">make distclean</userinput></screen> 211 212 <para>Generic libraries can be created by running 213 the following:</para> 214 215 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess 216 cp -v configfsf.sub config.sub</userinput></screen> 217 218 <para>Prepare GMP for compilation:</para> 219 220 <screen><userinput remap="configure">ABI="x32" \ 221 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \ 222 CXXFLAGS="$CFLAGS" \ 223 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 224 ./configure \ 225 --host=x86_64-pc-linux-gnux32 \ 226 --prefix=/usr \ 227 --disable-static \ 228 --enable-cxx \ 229 --libdir=/usr/libx32 \ 230 --includedir=/usr/include/mx32/gmp</userinput></screen> 231 232 <para>Compile the package:</para> 233 234 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile 235 make</userinput></screen> 236 237 <important> 238 <para>The test suite for GMP in this section is considered critical. 239 Do not skip it under any circumstances.</para> 240 </important> 241 242 <para>Test the results:</para> 243 244 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen> 245 246 <para>Ensure that all 197 tests in the test suite passed. 247 Check the results by issuing the following command:</para> 248 249 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> 250 251 <para>Install the package:</para> 252 253 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 254 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 255 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/ 256 rm -rf DESTDIR</userinput></screen> 257 258 </sect2><!-- mx32 --> 259 128 260 <sect2 id="contents-gmp" role="content"> 129 261 <title>Contents of GMP</title> -
chapter08/kmod.xml
r7779960 rc1c0428 112 112 </sect2> 113 113 114 <!-- - - - - - - - - - --> 115 <!-- Multilib - 32bit --> 116 <!-- - - - - - - - - - --> 117 118 <sect2 arch="ml_32,ml_all" role="installation"> 119 <title>Installation of Kmod - 32bit</title> 120 121 <para>Clean previous build but keep man pages as they cannot 122 be recreated since xsltproc isn't installed yet:</para> 123 124 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 125 make clean</userinput></screen> 126 127 <para>Prepare Kmod for compilation:</para> 128 129 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 130 --host=i686-pc-linux-gnu \ 131 --prefix=/usr \ 132 --libdir=/usr/lib32 \ 133 --sysconfdir=/etc \ 134 --with-openssl \ 135 --with-xz \ 136 --with-zstd \ 137 --with-zlib \ 138 --disable-manpages \ 139 --with-rootlibdir=/usr/lib32</userinput></screen> 140 141 <para>Compile the package:</para> 142 143 <screen><userinput remap="make">make</userinput></screen> 144 145 <para>Install the package:</para> 146 147 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 148 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 149 rm -rf DESTDIR</userinput></screen> 150 151 </sect2><!-- m32 --> 152 153 <!-- - - - - - - - - - --> 154 <!-- Multilib - x32bit --> 155 <!-- - - - - - - - - - --> 156 157 <sect2 arch="ml_x32,ml_all" role="installation"> 158 <title>Installation of Kmod - x32bit</title> 159 160 <para>Clean previous build but keep man pages as they cannot 161 be recreated since xsltproc isn't installed yet:</para> 162 163 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile 164 make clean</userinput></screen> 165 166 <para>Prepare Kmod for compilation:</para> 167 168 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 169 --host=x86_64-pc-linux-gnux32 \ 170 --prefix=/usr \ 171 --libdir=/usr/libx32 \ 172 --sysconfdir=/etc \ 173 --with-openssl \ 174 --with-xz \ 175 --with-zstd \ 176 --with-zlib \ 177 --disable-manpages \ 178 --with-rootlibdir=/usr/libx32</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 install 187 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 188 rm -rf DESTDIR</userinput></screen> 189 190 </sect2><!-- mx32 --> 191 114 192 <sect2 id="contents-kmod" role="content"> 115 193 <title>Contents of Kmod</title> -
chapter08/libcap.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 67 67 </sect2> 68 68 69 <!-- - - - - - - - - - --> 70 <!-- Multilib - 32bit --> 71 <!-- - - - - - - - - - --> 72 73 <sect2 arch="ml_32,ml_all" role="installation"> 74 <title>Installation of Libelf - 32bit</title> 75 76 <para>Clean previous build:</para> 77 78 <screen><userinput remap="pre">make distclean</userinput></screen> 79 80 <para>Prepare Libelf for compilation:</para> 81 82 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 83 --host=i686-pc-linux-gnu \ 84 --prefix=/usr \ 85 --libdir=/usr/lib32 \ 86 --disable-debuginfod \ 87 --enable-libdebuginfod=dummy</userinput></screen> 88 89 <para>Compile the package:</para> 90 91 <screen><userinput remap="make">make</userinput></screen> 92 93 <para>Install the package:</para> 94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 96 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc 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 Libelf - x32bit</title> 108 109 <para>Clean previous build:</para> 110 111 <screen><userinput remap="pre">make distclean</userinput></screen> 112 113 <para>Prepare Libelf for compilation:</para> 114 115 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 116 --host=x86_64-pc-linux-gnux32 \ 117 --prefix=/usr \ 118 --libdir=/usr/libx32 \ 119 --disable-debuginfod \ 120 --enable-libdebuginfod=dummy</userinput></screen> 121 122 <para>Compile the package:</para> 123 124 <screen><userinput remap="make">make</userinput></screen> 125 126 <para>Install the package:</para> 127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install 129 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc 130 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 131 rm -rf DESTDIR</userinput></screen> 132 133 </sect2><!-- mx32 --> 134 69 135 <sect2 id="contents-elfutils" role="content"> 70 136 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r7779960 rc1c0428 97 97 </sect2> 98 98 99 <!-- - - - - - - - - - --> 100 <!-- Multilib - 32bit --> 101 <!-- - - - - - - - - - --> 102 103 <sect2 arch="ml_32,ml_all" role="installation"> 104 <title>Installation of Libffi - 32bit</title> 105 106 <para>Clean previous build:</para> 107 108 <screen><userinput remap="pre">make distclean</userinput></screen> 109 110 <para>Prepare Libffi for compilation:</para> 111 112 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \ 113 --host=i686-pc-linux-gnu \ 114 --prefix=/usr \ 115 --libdir=/usr/lib32 \ 116 --disable-static \ 117 --with-gcc-arch=i686</userinput></screen> 118 119 <para>Compile the package:</para> 120 121 <screen><userinput remap="make">make</userinput></screen> 122 123 <para>To test the results, issue:</para> 124 125 <screen><userinput remap="test">make check</userinput></screen> 126 127 <para>Install the package:</para> 128 129 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 130 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 131 rm -rf DESTDIR</userinput></screen> 132 133 </sect2><!-- m32 --> 134 135 <!-- - - - - - - - - - --> 136 <!-- Multilib - x32bit --> 137 <!-- - - - - - - - - - --> 138 139 <sect2 arch="ml_x32,ml_all" role="installation"> 140 <title>Installation of Libffi - x32bit</title> 141 142 <para>Clean previous build:</para> 143 144 <screen><userinput remap="pre">make distclean</userinput></screen> 145 146 <para>Prepare Libffi for compilation:</para> 147 148 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \ 149 --host=x86_64-unknown-linux-gnux32 \ 150 --prefix=/usr \ 151 --libdir=/usr/libx32 \ 152 --disable-static \ 153 --with-gcc-arch=x86_64</userinput></screen> 154 155 <para>Compile the package:</para> 156 157 <screen><userinput remap="make">make</userinput></screen> 158 159 <para>To test the results, issue:</para> 160 161 <screen><userinput remap="test">make check</userinput></screen> 162 163 <para>Install the package:</para> 164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 167 rm -rf DESTDIR</userinput></screen> 168 169 </sect2><!-- mx32 --> 170 99 171 <sect2 id="contents-libffi" role="content"> 100 172 <title>Contents of Libffi</title> … … 127 199 128 200 </sect1> 129 -
chapter08/libtool.xml
r7779960 rc1c0428 74 74 </sect2> 75 75 76 <!-- - - - - - - - - - --> 77 <!-- Multilib - 32bit --> 78 <!-- - - - - - - - - - --> 79 80 <sect2 arch="ml_32,ml_all" role="installation"> 81 <title>Installation of Libtool - 32bit</title> 82 83 <para>Clean previous build:</para> 84 85 <screen><userinput remap="pre">make distclean</userinput></screen> 86 87 <para>Prepare Libtool for compilation:</para> 88 89 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 90 --host=i686-pc-linux-gnu \ 91 --prefix=/usr \ 92 --libdir=/usr/lib32</userinput></screen> 93 94 <para>Compile the package:</para> 95 96 <screen><userinput remap="make">make</userinput></screen> 97 98 <para>Install the package:</para> 99 100 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 101 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 102 rm -rf DESTDIR</userinput></screen> 103 104 </sect2><!-- m32 --> 105 106 <!-- - - - - - - - - - --> 107 <!-- Multilib - x32bit --> 108 <!-- - - - - - - - - - --> 109 110 <sect2 arch="ml_x32,ml_all" role="installation"> 111 <title>Installation of Libtool - x32bit</title> 112 113 <para>Clean previous build:</para> 114 115 <screen><userinput remap="pre">make distclean</userinput></screen> 116 117 <para>Prepare Libtool for compilation:</para> 118 119 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 120 --host=x86_64-pc-linux-gnux32 \ 121 --prefix=/usr \ 122 --libdir=/usr/libx32</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/libx32/* /usr/libx32 132 rm -rf DESTDIR</userinput></screen> 133 134 </sect2><!-- mx32 --> 76 135 77 136 <sect2 id="contents-libtool" role="content"> -
chapter08/libxcrypt.xml
r7779960 rc1c0428 116 116 </sect2> 117 117 118 <!-- - - - - - - - - - --> 119 <!-- Multilib - 32bit --> 120 <!-- - - - - - - - - - --> 121 <sect2 arch="ml_32,ml_all" role="installation"> 122 <title>Installation of Libxcrypt - 32bit</title> 123 124 <para>Clean previous build:</para> 125 126 <screen><userinput remap="pre">make distclean</userinput></screen> 127 128 <para>Prepare Libxcrypt for compilation:</para> 129 130 <screen><userinput remap="configure">CC="gcc -m32" \ 131 ./configure --prefix=/usr \ 132 --host=i686-pc-linux-gnu \ 133 --libdir=/usr/lib32 \ 134 --enable-hashes=strong,glibc \ 135 --enable-obsolete-api=glibc \ 136 --disable-static \ 137 --disable-failure-tokens</userinput></screen> 138 139 <para>Compile the package:</para> 140 141 <screen><userinput remap="make">make</userinput></screen> 142 143 <para>Install the package:</para> 144 145 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/lib32/ && 146 make install-pkgconfigDATA && 147 ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc</userinput></screen> 148 149 </sect2><!-- m32 --> 150 151 <!-- - - - - - - - - - --> 152 <!-- Multilib - x32bit --> 153 <!-- - - - - - - - - - --> 154 <sect2 arch="ml_x32,ml_all" role="installation"> 155 <title>Installation of Libxcrypt - x32bit</title> 156 157 <para>Clean previous build:</para> 158 159 <screen><userinput remap="pre">make distclean</userinput></screen> 160 161 <para>Prepare Libxcrypt for compilation:</para> 162 163 <screen><userinput remap="configure">CC="gcc -mx32" \ 164 ./configure --prefix=/usr \ 165 --host=x86_64-pc-linux-gnux32 \ 166 --libdir=/usr/libx32 \ 167 --enable-hashes=strong,glibc \ 168 --enable-obsolete-api=glibc \ 169 --disable-static \ 170 --disable-failure-tokens</userinput></screen> 171 172 <para>Compile the package:</para> 173 174 <screen><userinput remap="make">make</userinput></screen> 175 176 <para>Install the package:</para> 177 178 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/libx32/ && 179 make install-pkgconfigDATA && 180 ln -svf libxcrypt.pc /usr/libx32/pkgconfig/libcrypt.pc</userinput></screen> 181 182 </sect2><!-- mx32 --> 183 118 184 <sect2 id="contents-libxcrypt" role="content"> 119 185 <title>Contents of Libxcrypt</title> -
chapter08/lz4.xml
r7779960 rc1c0428 60 60 61 61 </sect2> 62 63 <!-- - - - - - - - - - --> 64 <!-- Multilib - 32bit --> 65 <!-- - - - - - - - - - --> 66 <sect2 arch="ml_32,ml_all" role="installation"> 67 <title>Installation of Lz4 - 32bit</title> 68 69 <para>Clean previous build:</para> 70 71 <screen><userinput remap="pre">make clean</userinput></screen> 72 73 <para>Compile the package:</para> 74 75 <screen><userinput remap="make">CC="gcc -m32" make BUILD_STATIC=no</userinput></screen> 76 77 <para>Install the package:</para> 78 79 <screen><userinput remap="install">make BUILD_STATIC=no PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR=$(pwd)/m32 install && 80 cp -a m32/usr/lib32/* /usr/lib32/ 81 </userinput></screen> 82 83 </sect2><!-- m32 --> 84 85 <!-- - - - - - - - - - --> 86 <!-- Multilib - x32bit --> 87 <!-- - - - - - - - - - --> 88 <sect2 arch="ml_x32,ml_all" role="installation"> 89 <title>Installation of Lz4 - x32bit</title> 90 91 <para>Clean previous build:</para> 92 93 <screen><userinput remap="pre">make clean</userinput></screen> 94 95 <para>Compile the package:</para> 96 97 <screen><userinput remap="make">CC="gcc -mx32" make BUILD_STATIC=no</userinput></screen> 98 99 <para>Install the package:</para> 100 101 <screen><userinput remap="install">make BUILD_STATIC=no PREFIX=/usr LIBDIR=/usr/libx32 DESTDIR=$(pwd)/mx32 install && 102 cp -a mx32/usr/libx32/* /usr/libx32/ 103 </userinput></screen> 104 105 </sect2><!-- mx32 --> 62 106 63 107 <sect2 id="contents-lz4" role="content"> -
chapter08/ncurses.xml
r7779960 rc1c0428 177 177 178 178 <screen role="nodump"><userinput>make distclean 179 ./configure --prefix=/usr \ 180 --with-shared \ 181 --without-normal \ 182 --without-debug \ 179 ./configure --prefix=/usr \ 180 --with-shared \ 181 --without-normal \ 182 --with-cxx-shared \ 183 --without-debug \ 183 184 --without-cxx-binding \ 184 185 --with-abi-version=5 … … 188 189 189 190 </sect2> 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="gcc -m32" CXX="g++ -m32" \ 205 ./configure --prefix=/usr \ 206 --host=i686-pc-linux-gnu \ 207 --libdir=/usr/lib32 \ 208 --mandir=/usr/share/man \ 209 --with-shared \ 210 --without-debug \ 211 --without-normal \ 212 --with-cxx-shared \ 213 --enable-pc-files \ 214 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen> 215 216 <para>Compile the package:</para> 217 218 <screen><userinput remap="make">make</userinput></screen> 219 220 <para>Install the package:</para> 221 222 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 223 mkdir -p DESTDIR/usr/lib32/pkgconfig 224 for lib in ncurses form panel menu ; do 225 rm -vf DESTDIR/usr/lib32/lib${lib}.so 226 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so 227 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc 228 done 229 rm -vf DESTDIR/usr/lib32/libcursesw.so 230 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so 231 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so 232 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 233 rm -rf DESTDIR</userinput></screen> 234 235 </sect2><!-- m32 --> 236 237 <!-- - - - - - - - - - --> 238 <!-- Multilib - x32bit --> 239 <!-- - - - - - - - - - --> 240 <sect2 arch="ml_x32,ml_all"> 241 <title>Building Ncurses - x32bit</title> 242 243 <para>Clean previous build:</para> 244 245 <screen><userinput remap="pre">make distclean</userinput></screen> 246 247 <para>Prepare Ncurses for compilation:</para> 248 249 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \ 250 ./configure --prefix=/usr \ 251 --host=x86_64-pc-linux-gnux32 \ 252 --libdir=/usr/libx32 \ 253 --mandir=/usr/share/man \ 254 --with-shared \ 255 --without-debug \ 256 --without-normal \ 257 --enable-pc-files \ 258 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen> 259 260 <para>Compile the package:</para> 261 262 <screen><userinput remap="make">make</userinput></screen> 263 264 <para>Install the package:</para> 265 266 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 267 mkdir -p DESTDIR/usr/libx32/pkgconfig 268 for lib in ncurses form panel menu ; do 269 rm -vf DESTDIR/usr/libx32/lib${lib}.so 270 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so 271 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc 272 done 273 rm -vf DESTDIR/usr/libx32/libcursesw.so 274 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so 275 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so 276 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 277 rm -rf DESTDIR</userinput></screen> 278 279 </sect2><!-- mx32 --> 190 280 191 281 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r7779960 rc1c0428 111 111 112 112 </sect2> 113 114 <!-- - - - - - - - - - --> 115 <!-- Multilib - 32bit --> 116 <!-- - - - - - - - - - --> 117 118 <sect2 arch="ml_32,ml_all" role="installation"> 119 <title>Installation of OpenSSL - 32bit</title> 120 121 <para>Clean previous build:</para> 122 123 <screen><userinput remap="pre">make distclean</userinput></screen> 124 125 <para>Prepare OpenSSL for compilation:</para> 126 127 <screen><userinput remap="configure">./config --prefix=/usr \ 128 --openssldir=/etc/ssl \ 129 --libdir=lib32 \ 130 shared \ 131 zlib-dynamic \ 132 linux-x86</userinput></screen> 133 134 <para>Compile the package:</para> 135 136 <screen><userinput remap="make">make</userinput></screen> 137 138 <para>Install the package:</para> 139 140 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 141 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 142 rm -rf DESTDIR</userinput></screen> 143 144 </sect2><!-- m32 --> 145 146 <!-- - - - - - - - - - --> 147 <!-- Multilib - x32bit --> 148 <!-- - - - - - - - - - --> 149 150 <sect2 arch="ml_x32,ml_all" role="installation"> 151 <title>Installation of OpenSSL - x32bit</title> 152 153 <para>Clean previous build:</para> 154 155 <screen><userinput remap="pre">make distclean</userinput></screen> 156 157 <para>Prepare OpenSSL for compilation:</para> 158 159 <screen><userinput remap="configure">./config --prefix=/usr \ 160 --openssldir=/etc/ssl \ 161 --libdir=libx32 \ 162 shared \ 163 zlib-dynamic \ 164 linux-x32</userinput></screen> 165 166 <para>Compile the package:</para> 167 168 <screen><userinput remap="make">make</userinput></screen> 169 170 <para>Install the package:</para> 171 172 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 173 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 174 rm -rf DESTDIR</userinput></screen> 175 176 </sect2><!-- mx32 --> 113 177 114 178 <sect2 id="contents-openssl" role="content"> -
chapter08/pkgconf.xml
r7779960 rc1c0428 64 64 <screen><userinput remap="install">ln -sv pkgconf /usr/bin/pkg-config 65 65 ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1</userinput></screen> 66 <!-- 67 <para arch="ml_32,ml_x32,ml_all"> 68 For better support of the multilib platform create some 69 additional files by executing the following commands: 70 </para> 66 71 72 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="install">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config 73 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnux32-pkg-config 74 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config 75 76 mkdir -pv /usr/share/pkgconfig/personality.d 77 78 cat > /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality <<EOF 79 Triplet: i686-pc-linux-gnu 80 SysrootDir: / 81 DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig 82 SystemIncludePaths: /usr/include 83 SystemLibraryPaths: /usr/lib32 84 EOF 85 86 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnux32.personality <<EOF 87 Triplet: x86_64-pc-linux-gnux32 88 SysrootDir: / 89 DefaultSearchPaths: /usr/libx32/pkgconfig:/usr/share/pkgconfig 90 SystemIncludePaths: /usr/include 91 SystemLibraryPaths: /usr/libx32 92 EOF 93 94 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality <<EOF 95 Triplet: x86_64-pc-linux-gnu 96 SysrootDir: / 97 DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig 98 SystemIncludePaths: /usr/include 99 SystemLibraryPaths: /usr/lib 100 EOF 101 </userinput></screen> 102 --> 67 103 </sect2> 68 104 -
chapter08/readline.xml
r7779960 rc1c0428 108 108 </sect2> 109 109 110 <!-- - - - - - - - - - --> 111 <!-- Multilib - 32bit --> 112 <!-- - - - - - - - - - --> 113 114 <sect2 arch="ml_32,ml_all" role="installation"> 115 <title>Installation of Readline - 32bit</title> 116 117 <para>Clean previous build:</para> 118 119 <screen><userinput remap="pre">make distclean</userinput></screen> 120 121 <para>Prepare Readline for compilation:</para> 122 123 <screen><userinput remap="configure">CC="gcc -m32" ./configure \ 124 --host=i686-pc-linux-gnu \ 125 --prefix=/usr \ 126 --libdir=/usr/lib32 \ 127 --disable-static \ 128 --with-curses</userinput></screen> 129 130 <para>Compile the package:</para> 131 132 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen> 133 134 <para>Install the package:</para> 135 136 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install 137 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 138 rm -rf DESTDIR</userinput></screen> 139 140 </sect2><!-- m32 --> 141 142 <!-- - - - - - - - - - --> 143 <!-- Multilib - x32bit --> 144 <!-- - - - - - - - - - --> 145 146 <sect2 arch="ml_x32,ml_all" role="installation"> 147 <title>Installation of Readline - x32bit</title> 148 149 <para>Clean previous build:</para> 150 151 <screen><userinput remap="pre">make distclean</userinput></screen> 152 153 <para>Prepare Readline for compilation:</para> 154 155 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \ 156 --host=x86_64-pc-linux-gnux32 \ 157 --prefix=/usr \ 158 --libdir=/usr/libx32 \ 159 --disable-static \ 160 --with-curses</userinput></screen> 161 162 <para>Compile the package:</para> 163 164 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen> 165 166 <para>Install the package:</para> 167 168 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install 169 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 170 rm -rf DESTDIR</userinput></screen> 171 172 </sect2><!-- mx32 --> 173 110 174 <sect2 id="contents-readline" role="content"> 111 175 <title>Contents of Readline</title> -
chapter08/stripping.xml
r7779960 rc1c0428 80 80 81 81 cd /usr/lib 82 83 82 for LIB in $save_usrlib; do 84 83 objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg … … 88 87 install -vm755 /tmp/$LIB /usr/lib 89 88 rm /tmp/$LIB 90 done 89 done</userinput> 90 <userinput arch="ml_32,ml_all"> 91 cd /usr/lib32 92 for LIB in $save_usrlib; do 93 objcopy --only-keep-debug $LIB $LIB.dbg 94 cp $LIB /tmp/$LIB 95 strip --strip-unneeded /tmp/$LIB 96 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 97 install -vm755 /tmp/$LIB /usr/lib32 98 rm /tmp/$LIB 99 done</userinput> 100 <userinput arch="ml_x32,ml_all"> 101 cd /usr/libx32 102 for LIB in $save_usrlib; do 103 objcopy --only-keep-debug $LIB $LIB.dbg 104 cp $LIB /tmp/$LIB 105 strip --strip-unneeded /tmp/$LIB 106 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 107 install -vm755 /tmp/$LIB /usr/libx32 108 rm /tmp/$LIB 109 done</userinput><userinput> 91 110 92 111 online_usrbin="bash find strip" … … 113 132 install -vm755 /tmp/$LIB /usr/lib 114 133 rm /tmp/$LIB 115 done 134 done</userinput><userinput arch="ml_32,ml_all"> 135 for LIB in $online_usrlib; do 136 cp /usr/lib32/$LIB /tmp/$LIB 137 strip --strip-unneeded /tmp/$LIB 138 install -vm755 /tmp/$LIB /usr/lib32 139 rm /tmp/$LIB 140 done</userinput><userinput arch="ml_x32,ml_all"> 141 for LIB in $online_usrlib; do 142 cp /usr/libx32/$LIB /tmp/$LIB 143 strip --strip-unneeded /tmp/$LIB 144 install -vm755 /tmp/$LIB /usr/libx32 145 rm /tmp/$LIB 146 done</userinput><userinput> 116 147 117 148 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 124 155 ;; 125 156 esac 126 done 157 done</userinput><userinput arch="ml_32,ml_all"> 158 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 159 $(find /usr/lib32 -type f -name \*.a); do 160 case "$online_usrbin $online_usrlib $save_usrlib" in 161 *$(basename $i)* ) 162 ;; 163 * ) strip --strip-unneeded $i 164 ;; 165 esac 166 done</userinput><userinput arch="ml_x32,ml_all"> 167 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 168 $(find /usr/libx32 -type f -name \*.a); do 169 case "$online_usrbin $online_usrlib $save_usrlib" in 170 *$(basename $i)* ) 171 ;; 172 * ) strip --strip-unneeded $i 173 ;; 174 esac 175 done</userinput><userinput> 127 176 128 177 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
r7779960 rc1c0428 261 261 262 262 </sect2> 263 264 <!-- - - - - - - - - - --> 265 <!-- Multilib - 32bit --> 266 <!-- - - - - - - - - - --> 267 268 <sect2 arch="ml_32,ml_all" role="installation"> 269 <title>Installation of systemd - 32-bit</title> 270 271 <para>Clean previous build:</para> 272 273 <screen><userinput remap="pre">rm -rf *</userinput></screen> 274 275 <para>Create a symlink to work around missing xsltproc:</para> 276 277 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen --> 278 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 279 280 <!-- with cross-LFS we have util-linux in place: 281 <para>Because we have not yet installed the final version of Util-Linux, 282 create links to the libraries in the approprite location:</para> 283 284 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do 285 ln -sf $file /usr/lib32/ 286 done</userinput></screen> 287 --> 288 289 <para>Prepare systemd for compilation:</para> 290 291 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ 292 CC="gcc -m32 -march=i686" \ 293 CXX="g++ -m32 -march=i686" \ 294 LANG=en_US.UTF-8 \ 295 meson --prefix=/usr \ 296 --sysconfdir=/etc \ 297 --localstatedir=/var \ 298 --libdir=/usr/lib32 \ 299 -Drootlibdir=/usr/lib32 \ 300 -Dblkid=true \ 301 -Ddefault-dnssec=no \ 302 -Dfirstboot=false \ 303 -Dinstall-tests=false \ 304 -Dldconfig=false \ 305 -Dsysusers=false \ 306 -Db_lto=false \ 307 -Drpmmacrosdir=no \ 308 -Dhomed=false \ 309 -Duserdb=false \ 310 -Dman=false \ 311 -Dmode=release \ 312 ..</userinput></screen> 313 314 <para>Compile the package:</para> 315 316 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 317 318 <para>Install the package:</para> 319 320 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 321 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 322 rm -rf DESTDIR 323 rm -f /usr/bin/xsltproc</userinput></screen> 324 325 </sect2><!-- m32 --> 326 327 <!-- - - - - - - - - - --> 328 <!-- Multilib - x32bit --> 329 <!-- - - - - - - - - - --> 330 331 <sect2 arch="ml_x32,ml_all" role="installation"> 332 <title>Installation of systemd - x32-bit</title> 333 334 <para>Clean previous build:</para> 335 336 <screen><userinput remap="pre">rm -rf *</userinput></screen> 337 338 <para>Create a symlink to work around missing xsltproc:</para> 339 340 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen> 341 <!-- 342 <para>Fix an issue on x32:</para> 343 344 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c 345 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen> 346 --> 347 <para>Prepare systemd for compilation:</para> 348 349 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 350 CC="gcc -mx32" \ 351 CXX="g++ -mx32" \ 352 CFLAGS+=" -Wno-error=shift-overflow" \ 353 CXXFLAGS+=" -Wno-error=shift-overflow" \ 354 LANG=en_US.UTF-8 \ 355 meson --prefix=/usr \ 356 --sysconfdir=/etc \ 357 --localstatedir=/var \ 358 --libdir=/usr/libx32 \ 359 -Drootlibdir=/usr/libx32 \ 360 -Dblkid=true \ 361 -Ddefault-dnssec=no \ 362 -Dfirstboot=false \ 363 -Dinstall-tests=false \ 364 -Dldconfig=false \ 365 -Dsysusers=false \ 366 -Db_lto=false \ 367 -Drpmmacrosdir=no \ 368 -Dhomed=false \ 369 -Duserdb=false \ 370 -Dman=false \ 371 -Dmode=release \ 372 ..</userinput></screen> 373 374 <para>Compile the package:</para> 375 376 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen> 377 378 <para>Install the package:</para> 379 380 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install 381 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 382 rm -rf DESTDIR 383 rm -f /usr/bin/xsltproc</userinput></screen> 384 385 </sect2><!-- mx32 --> 263 386 264 387 <sect2 id="contents-systemd" role="content"> -
chapter08/udev.xml
r7779960 rc1c0428 195 195 </sect2> 196 196 197 <!-- - - - - - - - - - --> 198 <!-- Multilib - 32bit --> 199 <!-- - - - - - - - - - --> 200 <sect2 arch="ml_32,ml_all" role="installation"> 201 <title>Installation of Udev - 32bit</title> 202 203 <para>Clean previous build (while still in the build directory):</para> 204 205 <screen><userinput remap="pre">rm -rf *</userinput></screen> 206 207 <para>Prepare Udev for compilation:</para> 208 209 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ 210 CC="gcc -m32 -march=i686" \ 211 CXX="g++ -m32 -march=i686" \ 212 LANG=en_US.UTF-8 \ 213 meson setup \ 214 --prefix=/usr \ 215 --buildtype=release \ 216 -Dmode=release \ 217 -Ddev-kvm-mode=0660 \ 218 -Dlink-udev-shared=false \ 219 -Dlogind=false \ 220 -Dvconsole=false \ 221 ..</userinput></screen> 222 223 <para>Compile the package:</para> 224 225 <screen><userinput remap="make">ninja \ 226 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \ 227 build.ninja | awk '{ print $2 }') \ 228 $(realpath libudev.so --relative-to .)</userinput></screen> 229 230 <para>Install the package:</para> 231 232 <screen><userinput remap="install">mkdir -pv /usr/lib32/pkgconfig && 233 cp -av libudev.so{,*[0-9]} /usr/lib32/ && 234 sed -e "s;/usr/lib;&32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc</userinput></screen> 235 236 </sect2><!-- m32 --> 237 238 <!-- - - - - - - - - - --> 239 <!-- Multilib - x32bit --> 240 <!-- - - - - - - - - - --> 241 <sect2 arch="ml_x32,ml_all" role="installation"> 242 <title>Installation of Udev - x32bit</title> 243 <para>Clean previous build (while still in the build directory):</para> 244 245 <screen><userinput remap="pre">rm -rf *</userinput></screen> 246 247 <para>Prepare Udev for compilation:</para> 248 249 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ 250 CC="gcc -mx32" \ 251 CXX="g++ -mx32" \ 252 CFLAGS+=" -Wno-error=shift-overflow" \ 253 CXXFLAGS+=" -Wno-error=shift-overflow" \ 254 LANG=en_US.UTF-8 \ 255 meson setup \ 256 --prefix=/usr \ 257 --buildtype=release \ 258 -Dmode=release \ 259 -Ddev-kvm-mode=0660 \ 260 -Dlink-udev-shared=false \ 261 -Dlogind=false \ 262 -Dvconsole=false \ 263 ..</userinput></screen> 264 265 <para>Compile the package:</para> 266 267 <screen><userinput remap="make">ninja \ 268 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \ 269 build.ninja | awk '{ print $2 }') \ 270 $(realpath libudev.so --relative-to .)</userinput></screen> 271 272 <para>Install the package:</para> 273 274 <screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig && 275 cp -av libudev.so{,*[0-9]} /usr/libx32/ && 276 sed -e "s;/usr/lib;&x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc</userinput></screen> 277 278 </sect2><!-- mx32 --> 279 197 280 <sect2 id="conf-udev" role="configuration"> 198 281 <title>Configuring Udev</title> -
chapter08/util-linux.xml
r7779960 rc1c0428 138 138 --> 139 139 </sect2> 140 141 <!-- - - - - - - - - - --> 142 <!-- Multilib - 32bit --> 143 <!-- - - - - - - - - - --> 144 145 <sect2 arch="ml_32,ml_all" role="installation"> 146 <title>Installation of Util-linux - 32-bit</title> 147 148 <para>Clean previous build:</para> 149 150 <screen><userinput remap="pre">make distclean</userinput></screen> 151 152 <para>Move a tool out of the way which is optionally used by 153 configure but will report invalid pathes for multilib builds.</para> 154 155 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen> 156 157 <para>Prepare Util-linux for compilation:</para> 158 159 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \ 160 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 161 --host=i686-pc-linux-gnu \ 162 --libdir=/usr/lib32 \ 163 --runstatedir=/run \ 164 --sbindir=/usr/sbin \ 165 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 166 --disable-chfn-chsh \ 167 --disable-login \ 168 --disable-nologin \ 169 --disable-su \ 170 --disable-setpriv \ 171 --disable-runuser \ 172 --disable-pylibmount \ 173 --disable-liblastlog2 \ 174 --disable-static \ 175 --without-python \ 176 --without-systemd \ 177 --without-systemdsystemunitdir</userinput></screen> 178 179 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \ 180 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 181 --host=i686-pc-linux-gnu \ 182 --libdir=/usr/lib32 \ 183 --runstatedir=/run \ 184 --sbindir=/usr/sbin \ 185 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 186 --disable-chfn-chsh \ 187 --disable-login \ 188 --disable-nologin \ 189 --disable-su \ 190 --disable-setpriv \ 191 --disable-runuser \ 192 --disable-pylibmount \ 193 --disable-liblastlog2 \ 194 --disable-static \ 195 --without-python</userinput></screen> 196 197 <para>Restore the tool previously moved away:</para> 198 199 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen> 200 201 <para>Compile the package:</para> 202 203 <screen><userinput remap="make">make</userinput></screen> 204 205 <para>Install the package:</para> 206 207 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 208 cp -Rv DESTDIR/usr/lib32/* /usr/lib32 209 rm -rf DESTDIR</userinput></screen> 210 211 </sect2><!-- m32 --> 212 213 <!-- - - - - - - - - - --> 214 <!-- Multilib - x32bit --> 215 <!-- - - - - - - - - - --> 216 217 <sect2 arch="ml_x32,ml_all" role="installation"> 218 <title>Installation of Util-linux - x32-bit</title> 219 220 <para>Clean previous build:</para> 221 222 <screen><userinput remap="pre">make distclean</userinput></screen> 223 224 <para>Move a tool out of the way which is optionally used by 225 configure but will report invalid pathes for multilib builds.</para> 226 227 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen> 228 229 <para>Prepare Util-linux for compilation:</para> 230 231 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \ 232 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 233 --host=x86_64-pc-linux-gnux32 \ 234 --libdir=/usr/libx32 \ 235 --runstatedir=/run \ 236 --sbindir=/usr/sbin \ 237 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 238 --disable-chfn-chsh \ 239 --disable-login \ 240 --disable-nologin \ 241 --disable-su \ 242 --disable-setpriv \ 243 --disable-runuser \ 244 --disable-pylibmount \ 245 --disable-liblastlog2 \ 246 --disable-static \ 247 --without-python \ 248 --without-systemd \ 249 --without-systemdsystemunitdir</userinput></screen> 250 251 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \ 252 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 253 --host=x86_64-pc-linux-gnux32 \ 254 --libdir=/usr/libx32 \ 255 --runstatedir=/run \ 256 --sbindir=/usr/sbin \ 257 --docdir=/usr/share/doc/util-linux-&util-linux-version; \ 258 --disable-chfn-chsh \ 259 --disable-login \ 260 --disable-nologin \ 261 --disable-su \ 262 --disable-setpriv \ 263 --disable-runuser \ 264 --disable-pylibmount \ 265 --disable-liblastlog2 \ 266 --disable-static \ 267 --without-python</userinput></screen> 268 269 <para>Restore the tool previously moved away:</para> 270 271 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen> 272 273 <para>Compile the package:</para> 274 275 <screen><userinput remap="make">make</userinput></screen> 276 277 <para>Install the package:</para> 278 279 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install 280 cp -Rv DESTDIR/usr/libx32/* /usr/libx32 281 rm -rf DESTDIR</userinput></screen> 282 283 </sect2><!-- mx32 --> 140 284 141 285 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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
r7779960 rc1c0428 65 65 66 66 </sect2> 67 68 <!-- - - - - - - - - - --> 69 <!-- Multilib - 32bit --> 70 <!-- - - - - - - - - - --> 71 72 <sect2 arch="ml_32,ml_all" role="installation"> 73 <title>Installation of Zstd - 32bit</title> 74 75 <para>Clean previous build:</para> 76 77 <screen><userinput remap="pre">make clean</userinput></screen> 78 79 <para>Compile the package:</para> 80 81 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen> 82 83 <para>Install the package:</para> 84 85 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR 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 prefix=/usr</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
r7779960 rc1c0428 187 187 </note> 188 188 189 <note arch="ml_32,ml_x32,ml_all"> 190 <para> 191 The kernel on a multilib system needs to be able to 192 identify and start binaries compiled for different architectures 193 than the default. 194 </para> 195 196 <para arch="ml_32,ml_all"> 197 If support for any 32bit ABI was built, make sure that the option 198 "IA32 Emulation" is selected. The option 'IA32 a.out support' is 199 optional. 200 </para> 201 202 <para arch="ml_x32,ml_all"> 203 If support for the x32bit ABI was built, make sure that the option 204 "x32 ABI for 64-bit mode" is selected. 205 </para> 206 207 <screen arch="ml_32">Binary Emulations ---> 208 [*] IA32 Emulation [CONFIG_IA32_EMULATION] 209 <M> IA32 a.out support [CONFIG_IA32_AOUT] 210 </screen> 211 <screen arch="ml_x32">Binary Emulations ---> 212 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32] 213 </screen> 214 <screen arch="ml_all">Binary Emulations ---> 215 [*] IA32 Emulation [CONFIG_IA32_EMULATION] 216 <M> IA32 a.out support [CONFIG_IA32_AOUT] 217 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32] 218 </screen> 219 </note> 220 189 221 <variablelist> 190 222 <title>The rationale for the above configuration items:</title> -
packages.ent
r7779960 rc1c0428 349 349 <!ENTITY iproute2-fin-du "17 MB"> 350 350 <!ENTITY iproute2-fin-sbu "0.1 SBU"> 351 352 <!ENTITY isl-version "0.26"> 353 <!ENTITY isl-size "1,988 KB"> 354 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" --> 355 <!-- ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2" --> 356 <!ENTITY isl-url "https://libisl.sourceforge.io/isl-&isl-version;.tar.xz"> 357 <!ENTITY isl-md5 "f2b56e8da688eba89838d414470da85f"> 358 <!ENTITY isl-home "http://libisl.sourceforge.io/"> 359 <!ENTITY isl-fin-du "20 MB"> 360 <!ENTITY isl-fin-sbu "0.1 SBU"> 351 361 352 362 <!ENTITY jinja2-version "3.1.4"> -
prologue/bookinfo.xml
r7779960 rc1c0428 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
r7779960 rc1c0428 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.