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