Changes in / [c04d98d:7f3f152]


Ignore:
Files:
3 added
53 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rc04d98d r7f3f152  
    3333endif
    3434
     35ifndef ARCH
     36  ARCH = default
     37endif
     38ifneq ($(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
     46endif
     47
    3548book: validate profile-html
    3649        @echo "Generating chunked XHTML files at $(BASEDIR)/ ..."
     
    125138                --xinclude                            \
    126139                --stringparam profile.revision $(REV) \
     140                --stringparam profile.arch $(ARCH)    \
    127141                --output $(RENDERTMP)/lfs-html2.xml   \
    128142                stylesheets/lfs-xsl/profile.xsl       \
     
    182196                --xinclude                            \
    183197                --stringparam profile.revision $(REV) \
     198                --stringparam profile.arch $(ARCH)    \
    184199                --output $(RENDERTMP)/md5sum.xml      \
    185200                stylesheets/lfs-xsl/profile.xsl       \
  • chapter01/askforhelp.xml

    rc04d98d r7f3f152  
    6161    <itemizedlist>
    6262      <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>
    6464      </listitem>
    6565      <listitem>
     
    7676      </listitem>
    7777      <listitem>
    78         <para>Note whether you have deviated from the book at all </para>
     78        <para>Note whether you have deviated from the book at all</para>
    7979      </listitem>
    8080    </itemizedlist>
  • chapter01/changelog.xml

    rc04d98d r7f3f152  
    1111  <title>Changelog</title>
    1212
    13   <para>This is version &version; of the Linux From Scratch book, dated
     13  <para>This is version &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase> of the Linux From Scratch book, dated
    1414  &releasedate;. If this book is more than six months old, a newer and better
    1515  version is probably already available. To find out, please check one of the
  • chapter02/hostreqs.xml

    rc04d98d r7f3f152  
    277277bash version-check.sh</userinput></screen>
    278278
    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  ---&gt;
     284    [*] IA32 Emulation
     285    &lt;M&gt;   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
    280301</sect1>
  • chapter03/packages.xml

    rc04d98d r7f3f152  
    378378
    379379    <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>
    380389      <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
    381390      <listitem>
  • chapter04/addinguser.xml

    rc04d98d r7f3f152  
    8585  x86_64) chown -v lfs $LFS/lib64 ;;
    8686esac</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>
    8790
    8891<note><para>In some host systems, the following <command>su</command> command does not complete
  • chapter04/creatingminlayout.xml

    rc04d98d r7f3f152  
    3131  x86_64) mkdir -pv $LFS/lib64 ;;
    3232esac</userinput></screen>
     33<screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib32
     34ln -sv usr/lib32 $LFS/lib32</userinput></screen>
     35<screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx32
     36ln -sv usr/libx32 $LFS/libx32</userinput></screen>
     37<screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}32
     38ln -sv usr/lib32 $LFS/lib32
     39ln -sv usr/libx32 $LFS/libx32</userinput></screen>
    3340
    3441  <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
  • chapter04/settingenviron.xml

    rc04d98d r7f3f152  
    3939  <filename>.bashrc</filename> file now:</para>
    4040
    41 <screen><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
     41<screen arch="default"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
    4242<literal>set +h
    4343umask 022
     
    5050CONFIG_SITE=$LFS/usr/share/config.site
    5151export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal>
     52EOF</userinput></screen>
     53<screen arch="ml_32,ml_x32,ml_all"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
     54<literal>set +h
     55umask 022
     56LFS=/mnt/lfs
     57LC_ALL=POSIX
     58LFS_TGT=x86_64-lfs-linux-gnu
     59LFS_TGT32=i686-lfs-linux-gnu
     60LFS_TGTX32=x86_64-lfs-linux-gnux32
     61PATH=/usr/bin
     62if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
     63PATH=$LFS/tools/bin:$PATH
     64CONFIG_SITE=$LFS/usr/share/config.site
     65export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>
    5266EOF</userinput></screen>
    5367
  • chapter05/binutils-pass1.xml

    rc04d98d r7f3f152  
    7171    <para>Now prepare Binutils for compilation:</para>
    7272
    73     <screen><userinput remap="configure">../configure --prefix=$LFS/tools \
     73    <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \
    7474             --with-sysroot=$LFS \
    7575             --target=$LFS_TGT   \
     
    7878             --disable-werror    \
    7979             --enable-default-hash-style=gnu</userinput></screen>
     80<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools       \
     81             --with-sysroot=$LFS \
     82             --target=$LFS_TGT   \
     83             --disable-nls       \
     84             --enable-gprofng=no \
     85             --disable-werror    \
     86             --enable-default-hash-style=gnu \
     87             --enable-multilib</userinput></screen>
    8088
    8189    <variablelist>
     
    150158      </varlistentry>
    151159
     160      <varlistentry arch="ml_32,ml_x32,ml_all">
     161        <term><parameter>--enable-multilib</parameter></term>
     162        <listitem>
     163          <para>Enables multilib support.</para>
     164        </listitem>
     165      </varlistentry>
     166
    152167    </variablelist>
    153168
  • chapter05/gcc-pass1.xml

    rc04d98d r7f3f152  
    6363mv -v mpc-&mpc-version; mpc</userinput></screen>
    6464
    65     <para>On x86_64 hosts, set the default directory name for
     65    <para arch="default">On x86_64 hosts, set the default directory name for
    6666    64-bit libraries to <quote>lib</quote>:</para>
    6767
    68 <screen><userinput remap="pre">case $(uname -m) in
     68<screen arch="default"><userinput remap="pre">case $(uname -m) in
    6969  x86_64)
    7070    sed -e '/m64=/s/lib64/lib/' \
     
    7373esac</userinput></screen>
    7474
     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
    7583    <para>The GCC documentation recommends building GCC
    7684    in a dedicated build directory:</para>
     
    8189    <para>Prepare GCC for compilation:</para>
    8290
    83 <screen><userinput remap="configure">../configure                  \
     91<screen arch="default"><userinput remap="configure">../configure                  \
    8492    --target=$LFS_TGT         \
    8593    --prefix=$LFS/tools       \
     
    101109    --disable-libstdcxx       \
    102110    --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
    103138    <variablelist>
    104139      <title>The meaning of the configure options:</title>
     
    157192      </varlistentry>
    158193
    159       <varlistentry>
     194      <varlistentry arch="default">
    160195        <term><parameter>--disable-multilib</parameter></term>
    161196        <listitem>
    162197          <para>On x86_64, LFS does not support a multilib configuration.
    163198          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>
    164206        </listitem>
    165207      </varlistentry>
  • chapter05/glibc.xml

    rc04d98d r7f3f152  
    4848    operation of the dynamic library loader:</para>
    4949
    50 <screen><userinput remap="pre">case $(uname -m) in
     50<screen arch="default"><userinput remap="pre">case $(uname -m) in
    5151    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
    5252    ;;
     
    5555    ;;
    5656esac</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
     59ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>
    5760
    5861    <note>
     
    8790    <para>Next, prepare Glibc for compilation:</para>
    8891
    89 <screen><userinput remap="configure">../configure                             \
     92<screen arch="default"><userinput remap="configure">../configure                             \
    9093      --prefix=/usr                      \
    9194      --host=$LFS_TGT                    \
     
    9598      --disable-nscd                     \
    9699      libc_cv_slibdir=/usr/lib</userinput></screen>
     100<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure                             \
     101      --prefix=/usr                      \
     102      --host=$LFS_TGT                    \
     103      --build=$(../scripts/config.guess) \
     104      --enable-kernel=&min-kernel;                \
     105      --with-headers=$LFS/usr/include    \
     106      --enable-multi-arch                \
     107      libc_cv_slibdir=/usr/lib</userinput></screen>
    97108
    98109    <variablelist>
     
    214225<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
    215226
    216       <para>Note that for 32-bit machines, the interpreter name will be
     227      <para arch="default">Note that for 32-bit machines, the interpreter name will be
    217228      <filename>/lib/ld-linux.so.2</filename>.</para>
    218229
     
    242253  </sect2>
    243254
     255  <!-- - - - - - - - - - -->
     256  <!-- Multilib - 32bit  -->
     257  <!-- - - - - - - - - - -->
     258  <sect2 arch="ml_32,ml_all">
     259    <title>Building Glibc - 32bit</title>
     260
     261    <para>Now recompile for m32. The extracted source can be
     262    reused but needs to be cleaned before installing the m32
     263    version of Glibc.</para>
     264
     265    <para>Clear the build directory and remove artefacts from
     266    previous build:</para>
     267     
     268<screen><userinput remap="pre">make clean
     269find .. -name "*.a" -delete</userinput></screen>
     270
     271    <para>Configure Glibc for m32 with the following commands:</para>
     272
     273<screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \
     274CXX="$LFS_TGT-g++ -m32" \
     275../configure                             \
     276      --prefix=/usr                      \
     277      --host=$LFS_TGT32                  \
     278      --build=$(../scripts/config.guess) \
     279      --enable-kernel=&min-kernel;                \
     280      --with-headers=$LFS/usr/include    \
     281      --enable-multi-arch                \
     282      --libdir=/usr/lib32                \
     283      --libexecdir=/usr/lib32            \
     284      libc_cv_slibdir=/usr/lib32</userinput></screen>
     285
     286    <para>Compile the package:</para>
     287
     288<screen><userinput remap="make">make</userinput></screen>
     289
     290    <para>Install the package:</para>
     291
     292<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     293cp -a DESTDIR/usr/lib32 $LFS/usr/
     294install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
     295               $LFS/usr/include/gnu/
     296ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>
     297
     298
     299    <caution>
     300      <para>At this point, it is imperative to stop and ensure that the basic
     301      functions (compiling and linking) of the new toolchain are working as
     302      expected. To perform a sanity check, run the following commands:</para>
     303
     304<screen><userinput>echo 'int main(){}' &gt; dummy.c
     305$LFS_TGT-gcc -m32 dummy.c
     306readelf -l a.out | grep '/ld-linux'</userinput></screen>
     307
     308      <para>If everything is working correctly, there should be no errors,
     309      and the output of the last command will be of the form:</para>
     310
     311<screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>
     312
     313      <para>If the output is not shown as above or there was no output at all,
     314      then something is wrong. Investigate and retrace the steps to find out
     315      where the problem is and correct it. This issue must be resolved before
     316      continuing on.</para>
     317
     318      <para>Once all is well, clean up the test files:</para>
     319
     320<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     321
     322    </caution>
     323
     324  </sect2><!-- m32 -->
     325
     326  <!-- - - - - - - - - - -->
     327  <!-- Multilib - x32bit -->
     328  <!-- - - - - - - - - - -->
     329 
     330  <sect2 arch="ml_x32,ml_all">
     331    <title>Building Glibc - x32bit</title>
     332
     333    <para>Now recompile for mx32. The extracted source can be
     334    reused but needs to be cleaned before installing the mx32
     335    version of Glibc.</para>
     336
     337    <para>Clear the build directory and remove artefacts from
     338    previous build:</para>
     339     
     340<screen><userinput remap="pre">make clean
     341find .. -name "*.a" -delete</userinput></screen>
     342
     343    <para>Configure Glibc for mx32 with the following commands:</para>
     344
     345<screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \
     346CXX="$LFS_TGT-g++ -mx32" \
     347../configure                             \
     348      --prefix=/usr                      \
     349      --host=$LFS_TGTX32                 \
     350      --build=$(../scripts/config.guess) \
     351      --enable-kernel=&min-kernel;                \
     352      --with-headers=$LFS/usr/include    \
     353      --enable-multi-arch                \
     354      --libdir=/usr/libx32               \
     355      --libexecdir=/usr/libx32           \
     356      libc_cv_slibdir=/usr/libx32</userinput></screen>
     357
     358    <para>Compile the package:</para>
     359
     360<screen><userinput remap="make">make</userinput></screen>
     361
     362    <para>Install the package:</para>
     363
     364<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     365cp -a DESTDIR/usr/libx32 $LFS/usr/
     366install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
     367               $LFS/usr/include/gnu/
     368ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>
     369
     370    <caution>
     371      <para>At this point, it is imperative to stop and ensure that the basic
     372      functions (compiling and linking) of the new toolchain are working as
     373      expected. To perform a sanity check, run the following commands:</para>
     374
     375<screen><userinput>echo 'int main(){}' &gt; dummy.c
     376$LFS_TGT-gcc -mx32 dummy.c
     377readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
     378
     379      <para>If everything is working correctly, there should be no errors,
     380      and the output of the last command will be of the form:</para>
     381
     382<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
     383
     384      <para>If the output is not shown as above or there was no output at all,
     385      then something is wrong. Investigate and retrace the steps to find out
     386      where the problem is and correct it. This issue must be resolved before
     387      continuing on.</para>
     388
     389      <para>Once all is well, clean up the test files:</para>
     390
     391<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     392
     393    </caution>
     394
     395  </sect2><!-- mx32 -->
     396
    244397  <sect2 role="content">
    245398    <title/>
  • chapter05/libstdc++.xml

    rc04d98d r7f3f152  
    6161    <para>Prepare Libstdc++ for compilation:</para>
    6262
    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           \
    6472    --host=$LFS_TGT                 \
    6573    --build=$(../config.guess)      \
     
    7987          should be used instead of the one in
    8088          <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>
    8196        </listitem>
    8297      </varlistentry>
  • chapter06/binutils-pass2.xml

    rc04d98d r7f3f152  
    6565    <para>Prepare Binutils for compilation:</para>
    6666
    67 <screen><userinput remap="configure">../configure                   \
     67<screen arch="default"><userinput remap="configure">../configure                   \
    6868    --prefix=/usr              \
    6969    --build=$(../config.guess) \
     
    7575    --enable-64-bit-bfd        \
    7676    --enable-default-hash-style=gnu</userinput></screen>
     77<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure                   \
     78    --prefix=/usr              \
     79    --build=$(../config.guess) \
     80    --host=$LFS_TGT            \
     81    --disable-nls              \
     82    --enable-shared            \
     83    --enable-gprofng=no        \
     84    --disable-werror           \
     85    --enable-64-bit-bfd        \
     86    --enable-default-hash-style=gnu \
     87    --enable-multilib</userinput></screen>
    7788
    7889    <variablelist>
     
    93104          <para>Enables 64-bit support (on hosts with smaller word sizes).
    94105          This may not be needed on 64-bit systems, but it does no harm.</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>
    95113        </listitem>
    96114      </varlistentry>
  • chapter06/gcc-pass2.xml

    rc04d98d r7f3f152  
    5858mv -v mpc-&mpc-version; mpc</userinput></screen>
    5959
    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
    6162    libraries to <quote>lib</quote>:</para>
    6263
    63 <screen><userinput remap="pre">case $(uname -m) in
     64<screen arch="default"><userinput remap="pre">case $(uname -m) in
    6465  x86_64)
    6566    sed -e '/m64=/s/lib64/lib/' \
     
    6869esac</userinput></screen>
    6970
     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
    7078    <para>Override the building rule of libgcc and libstdc++ headers, to
    7179    allow building these libraries with POSIX threads support:</para>
     
    8492    <para>Now prepare GCC for compilation:</para>
    8593
    86 <screen><userinput remap="configure">../configure                                       \
     94<screen arch="default"><userinput remap="configure">../configure                                       \
    8795    --build=$(../config.guess)                     \
    8896    --host=$LFS_TGT                                \
     
    102110    --disable-libvtv                               \
    103111    --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>
    104134
    105135    <variablelist>
  • chapter06/ncurses.xml

    rc04d98d r7f3f152  
    207207  </sect2>
    208208
     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"              \
     222CXX="$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
     242ln -sv libncursesw.so DESTDIR/usr/lib32/libncurses.so
     243cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32
     244rm -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"             \
     261CXX="$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
     281ln -sv libncursesw.so DESTDIR/usr/libx32/libncurses.so
     282cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32
     283rm -rf DESTDIR</userinput></screen>
     284
     285  </sect2><!-- mx32 -->
     286
    209287  <sect2 role="content">
    210288    <title/>
  • chapter07/changingowner.xml

    rc04d98d r7f3f152  
    3939esac</userinput></screen>
    4040
     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 
    4146</sect1>
  • chapter07/cleanup.xml

    rc04d98d r7f3f152  
    2424    failures.  Remove those files now:</para>
    2525
    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">
     27find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32">
     28find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all">
     29find /usr/lib{,x}32 -name \*.la -delete</userinput></screen>
    2730
    2831    <para>
  • chapter07/creatingdirs.xml

    rc04d98d r7f3f152  
    4343install -dv -m 1777 /tmp /var/tmp</userinput></screen>
    4444
     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
    4548  <para>Directories are, by default, created with permission mode 755, but
    4649  this is not desirable everywhere. In the commands above, two
  • chapter07/util-linux.xml

    rc04d98d r7f3f152  
    128128  </sect2>
    129129
     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
     167cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     168rm -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
     209cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     210rm -rf DESTDIR</userinput></screen>
     211
     212  </sect2><!-- mx32 -->
     213
    130214  <sect2 role="content">
    131215    <title/>
  • chapter08/acl.xml

    rc04d98d r7f3f152  
    6464
    6565  </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
     94cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     95rm -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
     126cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     127rm -rf DESTDIR</userinput></screen>
     128
     129  </sect2><!-- mx32 -->
    66130
    67131  <sect2 id="contents-acl" role="content">
  • chapter08/attr.xml

    rc04d98d r7f3f152  
    6565  </sect2>
    6666
     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
     94cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     95rm -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
     126cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     127rm -rf DESTDIR</userinput></screen>
     128
     129  </sect2><!-- mx32 -->
     130
    67131  <sect2 id="contents-attr" role="content">
    68132    <title>Contents of Attr</title>
  • chapter08/binutils.xml

    rc04d98d r7f3f152  
    5050    <para>Prepare Binutils for compilation:</para>
    5151
    52 <screen><userinput remap="configure">../configure --prefix=/usr       \
     52<screen arch="default"><userinput remap="configure">../configure --prefix=/usr       \
    5353             --sysconfdir=/etc   \
    5454             --enable-gold       \
     
    6060             --with-system-zlib  \
    6161             --enable-default-hash-style=gnu</userinput></screen>
     62<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr       \
     63             --sysconfdir=/etc   \
     64             --enable-gold       \
     65             --enable-ld=default \
     66             --enable-plugins    \
     67             --enable-shared     \
     68             --disable-werror    \
     69             --enable-64-bit-bfd \
     70             --with-system-zlib  \
     71             --enable-default-hash-style=gnu \
     72             --enable-multilib</userinput></screen>
    6273
    6374    <variablelist>
     
    92103          <para>Use the installed zlib library instead of building the
    93104          included version.</para>
     105        </listitem>
     106      </varlistentry>
     107
     108      <varlistentry arch="ml_32,ml_x32,ml_all">
     109        <term><parameter>--enable-multilib</parameter></term>
     110        <listitem>
     111          <para>Enables multilib support in bintutils.</para>
    94112        </listitem>
    95113      </varlistentry>
  • chapter08/bzip2.xml

    rc04d98d r7f3f152  
    103103
    104104  </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}
     120make -f Makefile-libbz2_so
     121make 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
     126ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so
     127ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1
     128ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0
     129install -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}
     147make -f Makefile-libbz2_so
     148make 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
     153ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so
     154ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1
     155ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0
     156install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen>
     157
     158  </sect2><!-- mx32 -->
    105159
    106160  <sect2 id="contents-bzip2" role="content">
  • chapter08/chapter08.xml

    rc04d98d r7f3f152  
    3636  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/>
    3737  <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"/>
    3839  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
    3940  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
  • chapter08/cleanup.xml

    rc04d98d r7f3f152  
    2222  builds.  Remove those files now:</para>
    2323
    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">
     25find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
     26find /usr/libx32 -name \*.la -delete</userinput></screen>
    2527
    2628   <para>For more information about libtool archive files, see the <ulink
  • chapter08/expat.xml

    rc04d98d r7f3f152  
    6666  </sect2>
    6767
     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
     79make 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
     96cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     97rm -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
     112make 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
     129cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     130rm -rf DESTDIR</userinput></screen>
     131
     132  </sect2><!-- mx32 -->
     133
    68134  <sect2 id="contents-expat" role="content">
    69135    <title>Contents of Expat</title>
  • chapter08/file.xml

    rc04d98d r7f3f152  
    6060  </sect2>
    6161
     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
     87cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     88rm -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
     117cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     118rm -rf DESTDIR</userinput></screen>
     119
     120  </sect2><!-- mx32 -->
    62121
    63122  <sect2 id="contents-file" role="content">
  • chapter08/gcc.xml

    rc04d98d r7f3f152  
    4545    libraries to <quote>lib</quote>:</para>
    4646
    47 <screen><userinput remap="pre">case $(uname -m) in
     47<screen arch="default"><userinput remap="pre">case $(uname -m) in
    4848  x86_64)
    4949    sed -e '/m64=/s/lib64/lib/' \
     
    5252esac</userinput></screen>
    5353
     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
    5461    <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
    5562
     
    5966    <para>Prepare GCC for compilation:</para>
    6067
    61 <screen><userinput remap="configure">../configure --prefix=/usr            \
     68<screen arch="default"><userinput remap="configure">../configure --prefix=/usr            \
    6269             LD=ld                    \
    6370             --enable-languages=c,c++ \
     
    6875             --disable-bootstrap      \
    6976             --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       \
    7092             --with-system-zlib</userinput></screen>
    7193
     
    288310SEARCH_DIR("/usr/lib");</computeroutput></screen>
    289311
    290    <para>A 32-bit system may use a few other directories. For example, here
     312   <para arch="default">A 32-bit system may use a few other directories. For example, here
    291313   is the output from an i686 machine:</para>
    292314
    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")
    294317SEARCH_DIR("/usr/local/lib32")
    295318SEARCH_DIR("/lib32")
  • chapter08/gdbm.xml

    rc04d98d r7f3f152  
    8686  </sect2>
    8787
     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
     115cp -Rv DESTDIR/usr/lib32/* /usr/lib32/
     116rm -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
     147cp -Rv DESTDIR/usr/libx32/* /usr/libx32/
     148rm -rf DESTDIR</userinput></screen>
     149
     150  </sect2><!-- mx32 -->
     151 
    88152  <sect2 id="contents-gdbm" role="content">
    89153    <title>Contents of GDBM</title>
  • chapter08/glibc.xml

    rc04d98d r7f3f152  
    6969    <para>Prepare Glibc for compilation:</para>
    7070
    71 <screen><userinput remap="configure">../configure --prefix=/usr                            \
     71<screen arch="default"><userinput remap="configure">../configure --prefix=/usr                            \
    7272             --disable-werror                         \
    7373             --enable-kernel=&min-kernel;                     \
    7474             --enable-stack-protector=strong          \
    7575             --disable-nscd                           \
     76             libc_cv_slibdir=/usr/lib</userinput></screen>
     77<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr                            \
     78             --disable-werror                         \
     79             --enable-kernel=&min-kernel;                      \
     80             --enable-stack-protector=strong          \
     81             --with-headers=/usr/include              \
     82             --enable-multi-arch                      \
    7683             libc_cv_slibdir=/usr/lib</userinput></screen>
    7784
     
    607614  </sect2>
    608615
     616  <!-- - - - - - - - - - -->
     617  <!-- Multilib - 32bit  -->
     618  <!-- - - - - - - - - - -->
     619  <sect2 arch="ml_32,ml_all">
     620    <title>Building Glibc - 32bit</title>
     621
     622    <para>Now recompile for m32. The extracted source can be
     623    reused but needs to be cleaned before installing the m32
     624    version of Glibc.</para>
     625
     626    <para>Clear the build directory and remove artefacts from
     627    previous build:</para>
     628     
     629<screen><userinput remap="pre">rm -rf ./*
     630find .. -name "*.a" -delete</userinput></screen>
     631
     632    <para>Configure Glibc for m32 with the following commands:</para>
     633
     634<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \
     635../configure                             \
     636      --prefix=/usr                      \
     637      --host=i686-pc-linux-gnu           \
     638      --build=$(../scripts/config.guess) \
     639      --enable-kernel=&min-kernel;                \
     640      --with-headers=/usr/include        \
     641      --enable-multi-arch                \
     642      --libdir=/usr/lib32                \
     643      --libexecdir=/usr/lib32            \
     644      libc_cv_slibdir=/usr/lib32</userinput></screen>
     645
     646    <para>Compile the package:</para>
     647
     648<screen><userinput remap="make">make</userinput></screen>
     649
     650    <para>Install the package:</para>
     651
     652<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     653cp -a DESTDIR/usr/lib32/* /usr/lib32/
     654install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
     655               /usr/include/gnu/</userinput></screen>
     656<!-- no longer required as they are created in chap5
     657ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2
     658-->
     659
     660    <para>Add the library name to the dynamic loader config:</para>
     661
     662<screen role="install"><userinput>echo "/usr/lib32" &gt;&gt; /etc/ld.so.conf</userinput></screen>
     663
     664    <caution>
     665      <para>At this point, it is imperative to stop and ensure that the basic
     666      functions (compiling and linking) of the new toolchain are working as
     667      expected. To perform a sanity check, run the following commands:</para>
     668
     669<screen><userinput>echo 'int main(){}' &gt; dummy.c
     670gcc -m32 dummy.c
     671readelf -l a.out | grep '/ld-linux'</userinput></screen>
     672
     673      <para>If everything is working correctly, there should be no errors,
     674      and the output of the last command will be of the form:</para>
     675
     676<screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>
     677
     678      <para>If the output is not shown as above or there was no output at all,
     679      then something is wrong. Investigate and retrace the steps to find out
     680      where the problem is and correct it. This issue must be resolved before
     681      continuing on.</para>
     682
     683      <para>Once all is well, clean up the test files:</para>
     684
     685<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     686
     687    </caution>
     688
     689  </sect2><!-- m32 -->
     690
     691  <!-- - - - - - - - - - -->
     692  <!-- Multilib - x32bit -->
     693  <!-- - - - - - - - - - -->
     694 
     695  <sect2 arch="ml_x32,ml_all">
     696    <title>Building Glibc - x32bit</title>
     697
     698    <para>Now recompile for mx32. The extracted source can be
     699    reused but needs to be cleaned before installing the mx32
     700    version of Glibc.</para>
     701
     702    <para>Clear the build directory and remove artefacts from
     703    previous build:</para>
     704     
     705<screen><userinput remap="pre">rm -rf ./*
     706find .. -name "*.a" -delete</userinput></screen>
     707
     708    <para>Configure Glibc for mx32 with the following commands:</para>
     709
     710<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \
     711../configure                             \
     712      --prefix=/usr                      \
     713      --host=x86_64-pc-linux-gnux32      \
     714      --build=$(../scripts/config.guess) \
     715      --enable-kernel=&min-kernel;                \
     716      --with-headers=/usr/include        \
     717      --enable-multi-arch                \
     718      --libdir=/usr/libx32               \
     719      --libexecdir=/usr/libx32           \
     720      libc_cv_slibdir=/usr/libx32</userinput></screen>
     721
     722    <para>Compile the package:</para>
     723
     724<screen><userinput remap="make">make</userinput></screen>
     725
     726    <para>Install the package:</para>
     727
     728<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     729cp -a DESTDIR/usr/libx32/* /usr/libx32/
     730install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
     731               /usr/include/gnu/</userinput></screen>
     732<!-- no longer required as they are created in chap5
     733ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2
     734-->
     735    <para>Add the library name to the dynamic loader config:</para>
     736
     737<screen role="install"><userinput>echo "/usr/libx32" &gt;&gt; /etc/ld.so.conf</userinput></screen>
     738
     739    <caution>
     740      <para>At this point, it is imperative to stop and ensure that the basic
     741      functions (compiling and linking) of the new toolchain are working as
     742      expected. To perform a sanity check, run the following commands:</para>
     743
     744<screen><userinput>echo 'int main(){}' &gt; dummy.c
     745gcc -mx32 dummy.c
     746readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
     747
     748      <para>If everything is working correctly, there should be no errors,
     749      and the output of the last command will be of the form:</para>
     750
     751<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
     752
     753      <para>If the output is not shown as above or there was no output at all,
     754      then something is wrong. Investigate and retrace the steps to find out
     755      where the problem is and correct it. This issue must be resolved before
     756      continuing on.</para>
     757
     758      <para>Once all is well, clean up the test files:</para>
     759
     760<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     761
     762    </caution>
     763
     764  </sect2><!-- mx32 -->
     765
    609766  <sect2 id="contents-glibc" role="content">
    610767    <title>Contents of Glibc</title>
  • chapter08/gmp.xml

    rc04d98d r7f3f152  
    126126  </sect2>
    127127
     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
     143cp -v configfsf.sub   config.sub</userinput></screen>
     144
     145    <para>Prepare GMP for compilation:</para>
     146
     147<screen><userinput remap="configure">ABI="32" \
     148CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
     149CXXFLAGS="$CFLAGS" \
     150PKG_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
     176make</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>&amp;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
     195cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     196cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/
     197rm -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
     216cp -v configfsf.sub   config.sub</userinput></screen>
     217
     218    <para>Prepare GMP for compilation:</para>
     219
     220<screen><userinput remap="configure">ABI="x32" \
     221CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \
     222CXXFLAGS="$CFLAGS" \
     223PKG_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
     235make</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>&amp;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
     254cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     255cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/
     256rm -rf DESTDIR</userinput></screen>
     257
     258  </sect2><!-- mx32 -->
     259
    128260  <sect2 id="contents-gmp" role="content">
    129261    <title>Contents of GMP</title>
  • chapter08/kmod.xml

    rc04d98d r7f3f152  
    100100
    101101  </sect2>
     102
     103  <!-- - - - - - - - - - -->
     104  <!-- Multilib - 32bit  -->
     105  <!-- - - - - - - - - - -->
     106 
     107  <sect2 arch="ml_32,ml_all" role="installation">
     108    <title>Installation of Kmod - 32bit</title>
     109
     110    <para>Clean previous build but keep man pages as they cannot
     111    be recreated since xsltproc isn't installed yet:</para>
     112
     113<screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile
     114make clean</userinput></screen>
     115
     116    <para>Prepare Kmod for compilation:</para>
     117
     118<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     119    --host=i686-pc-linux-gnu      \
     120    --prefix=/usr                 \
     121    --libdir=/usr/lib32           \
     122    --sysconfdir=/etc             \
     123    --with-openssl                \
     124    --with-xz                     \
     125    --with-zstd                   \
     126    --with-zlib                   \
     127    --with-rootlibdir=/usr/lib32</userinput></screen>
     128
     129    <para>Compile the package:</para>
     130
     131<screen><userinput remap="make">make</userinput></screen>
     132
     133    <para>Install the package:</para>
     134
     135<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     136cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     137rm -rf DESTDIR</userinput></screen>
     138
     139  </sect2><!-- m32 -->
     140
     141  <!-- - - - - - - - - - -->
     142  <!-- Multilib - x32bit -->
     143  <!-- - - - - - - - - - -->
     144 
     145  <sect2 arch="ml_x32,ml_all" role="installation">
     146    <title>Installation of Kmod - x32bit</title>
     147
     148    <para>Clean previous build but keep man pages as they cannot
     149    be recreated since xsltproc isn't installed yet:</para>
     150
     151<screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile
     152make clean</userinput></screen>
     153
     154    <para>Prepare Kmod for compilation:</para>
     155
     156<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     157    --host=x86_64-pc-linux-gnux32 \
     158    --prefix=/usr                 \
     159    --libdir=/usr/libx32          \
     160    --sysconfdir=/etc             \
     161    --with-openssl                \
     162    --with-xz                     \
     163    --with-zstd                   \
     164    --with-zlib                   \
     165    --with-rootlibdir=/usr/libx32</userinput></screen>
     166
     167    <para>Compile the package:</para>
     168
     169<screen><userinput remap="make">make</userinput></screen>
     170
     171    <para>Install the package:</para>
     172
     173<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     174cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     175rm -rf DESTDIR</userinput></screen>
     176
     177  </sect2><!-- mx32 -->
    102178
    103179  <sect2 id="contents-kmod" role="content">
  • chapter08/libcap.xml

    rc04d98d r7f3f152  
    7676  </sect2>
    7777
     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
     96cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     97sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc
     98chmod -v 755 /usr/lib32/libcap.so.&libcap-version;
     99rm -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
     121cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     122sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc
     123chmod -v 755 /usr/libx32/libcap.so.&libcap-version;
     124rm -rf DESTDIR</userinput></screen>
     125
     126  </sect2><!-- mx32 -->
     127
    78128  <sect2 id="contents-libcap" role="content">
    79129    <title>Contents of Libcap</title>
  • chapter08/libelf.xml

    rc04d98d r7f3f152  
    6767  </sect2>
    6868
     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
     96install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc
     97cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     98rm -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
     129install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc
     130cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     131rm -rf DESTDIR</userinput></screen>
     132
     133  </sect2><!-- mx32 -->
     134
    69135  <sect2 id="contents-elfutils" role="content">
    70136    <title>Contents of Libelf</title>
  • chapter08/libffi.xml

    rc04d98d r7f3f152  
    9797  </sect2>
    9898
     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
     130cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     131rm -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
     166cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     167rm -rf DESTDIR</userinput></screen>
     168
     169  </sect2><!-- mx32 -->
     170
    99171  <sect2 id="contents-libffi" role="content">
    100172    <title>Contents of Libffi</title>
     
    127199
    128200</sect1>
    129 
  • chapter08/libtool.xml

    rc04d98d r7f3f152  
    7474  </sect2>
    7575
     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
     101cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     102rm -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
     131cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     132rm -rf DESTDIR</userinput></screen>
     133
     134  </sect2><!-- mx32 -->
    76135
    77136  <sect2 id="contents-libtool" role="content">
  • chapter08/libxcrypt.xml

    rc04d98d r7f3f152  
    116116  </sect2>
    117117
     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/ &amp;&amp;
     146make install-pkgconfigDATA &amp;&amp;
     147ln -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/ &amp;&amp;
     179make install-pkgconfigDATA &amp;&amp;
     180ln -svf libxcrypt.pc /usr/libx32/pkgconfig/libcrypt.pc</userinput></screen>
     181
     182  </sect2><!-- mx32 -->
     183
    118184  <sect2 id="contents-libxcrypt" role="content">
    119185    <title>Contents of Libxcrypt</title>
  • chapter08/lz4.xml

    rc04d98d r7f3f152  
    6060
    6161  </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 &amp;&amp;
     80cp -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 &amp;&amp;
     102cp -a mx32/usr/libx32/* /usr/libx32/
     103</userinput></screen>
     104
     105  </sect2><!-- mx32 -->
    62106
    63107  <sect2 id="contents-lz4" role="content">
  • chapter08/ncurses.xml

    rc04d98d r7f3f152  
    177177
    178178<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   \
    183184            --without-cxx-binding \
    184185            --with-abi-version=5
     
    188189
    189190  </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
     223mkdir -p DESTDIR/usr/lib32/pkgconfig
     224for 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
     228done
     229rm -vf                     DESTDIR/usr/lib32/libcursesw.so
     230echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so
     231ln -sfv libncurses.so      DESTDIR/usr/lib32/libcurses.so
     232cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     233rm -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
     267mkdir -p DESTDIR/usr/libx32/pkgconfig
     268for 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
     272done
     273rm -vf                     DESTDIR/usr/libx32/libcursesw.so
     274echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so
     275ln -sfv libncurses.so      DESTDIR/usr/libx32/libcurses.so
     276cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     277rm -rf DESTDIR</userinput></screen>
     278
     279  </sect2><!-- mx32 -->
    190280
    191281  <sect2 id="contents-ncurses" role="content">
  • chapter08/openssl.xml

    rc04d98d r7f3f152  
    111111
    112112  </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
     141cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     142rm -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
     173cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     174rm -rf DESTDIR</userinput></screen>
     175
     176  </sect2><!-- mx32 -->
    113177
    114178  <sect2 id="contents-openssl" role="content">
  • chapter08/pkgconf.xml

    rc04d98d r7f3f152  
    6464<screen><userinput remap="install">ln -sv pkgconf   /usr/bin/pkg-config
    6565ln -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>
    6671
     72<screen arch="ml_32,ml_x32,ml_all"><userinput remap="install">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config
     73ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnux32-pkg-config
     74ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config
     75
     76mkdir -pv /usr/share/pkgconfig/personality.d
     77
     78cat &gt; /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality &lt;&lt;EOF
     79Triplet: i686-pc-linux-gnu
     80SysrootDir: /
     81DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig
     82SystemIncludePaths: /usr/include
     83SystemLibraryPaths: /usr/lib32
     84EOF
     85
     86cat &gt; /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnux32.personality &lt;&lt;EOF
     87Triplet: x86_64-pc-linux-gnux32
     88SysrootDir: /
     89DefaultSearchPaths: /usr/libx32/pkgconfig:/usr/share/pkgconfig
     90SystemIncludePaths: /usr/include
     91SystemLibraryPaths: /usr/libx32
     92EOF
     93
     94cat &gt; /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality &lt;&lt;EOF
     95Triplet: x86_64-pc-linux-gnu
     96SysrootDir: /
     97DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig
     98SystemIncludePaths: /usr/include
     99SystemLibraryPaths: /usr/lib
     100EOF
     101</userinput></screen>
     102-->
    67103  </sect2>
    68104
  • chapter08/readline.xml

    rc04d98d r7f3f152  
    112112  </sect2>
    113113
     114  <!-- - - - - - - - - - -->
     115  <!-- Multilib - 32bit  -->
     116  <!-- - - - - - - - - - -->
     117 
     118  <sect2 arch="ml_32,ml_all" role="installation">
     119    <title>Installation of Readline - 32bit</title>
     120
     121    <para>Clean previous build:</para>
     122
     123<screen><userinput remap="pre">make distclean</userinput></screen>
     124
     125    <para>Prepare Readline for compilation:</para>
     126
     127<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     128    --host=i686-pc-linux-gnu      \
     129    --prefix=/usr                 \
     130    --libdir=/usr/lib32           \
     131    --disable-static              \
     132    --with-curses</userinput></screen>
     133
     134    <para>Compile the package:</para>
     135
     136<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
     137
     138    <para>Install the package:</para>
     139
     140<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
     141cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     142rm -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 Readline - x32bit</title>
     152
     153    <para>Clean previous build:</para>
     154
     155<screen><userinput remap="pre">make distclean</userinput></screen>
     156
     157    <para>Prepare Readline for compilation:</para>
     158
     159<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     160    --host=x86_64-pc-linux-gnux32 \
     161    --prefix=/usr                 \
     162    --libdir=/usr/libx32          \
     163    --disable-static              \
     164    --with-curses</userinput></screen>
     165
     166    <para>Compile the package:</para>
     167
     168<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
     169
     170    <para>Install the package:</para>
     171
     172<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
     173cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     174rm -rf DESTDIR</userinput></screen>
     175
     176  </sect2><!-- mx32 -->
     177
    114178  <sect2 id="contents-readline" role="content">
    115179    <title>Contents of Readline</title>
  • chapter08/stripping.xml

    rc04d98d r7f3f152  
    8080
    8181cd /usr/lib
    82 
    8382for LIB in $save_usrlib; do
    8483    objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
     
    8887    install -vm755 /tmp/$LIB /usr/lib
    8988    rm /tmp/$LIB
    90 done
     89done</userinput>
     90<userinput arch="ml_32,ml_all">
     91cd /usr/lib32
     92for 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
     99done</userinput>
     100<userinput arch="ml_x32,ml_all">
     101cd /usr/libx32
     102for 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
     109done</userinput><userinput>
    91110
    92111online_usrbin="bash find strip"
     
    113132    install -vm755 /tmp/$LIB /usr/lib
    114133    rm /tmp/$LIB
    115 done
     134done</userinput><userinput arch="ml_32,ml_all">
     135for 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
     140done</userinput><userinput arch="ml_x32,ml_all">
     141for 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
     146done</userinput><userinput>
    116147
    117148for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
     
    124155            ;;
    125156    esac
    126 done
     157done</userinput><userinput arch="ml_32,ml_all">
     158for 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
     166done</userinput><userinput arch="ml_x32,ml_all">
     167for 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
     175done</userinput><userinput>
    127176
    128177unset BIN LIB save_usrlib online_usrbin online_usrlib
  • chapter08/systemd.xml

    rc04d98d r7f3f152  
    263263
    264264  </sect2>
     265
     266  <!-- - - - - - - - - - -->
     267  <!-- Multilib - 32bit  -->
     268  <!-- - - - - - - - - - -->
     269 
     270  <sect2 arch="ml_32,ml_all" role="installation">
     271    <title>Installation of systemd - 32-bit</title>
     272
     273    <para>Clean previous build:</para>
     274
     275<screen><userinput remap="pre">rm -rf *</userinput></screen>
     276
     277    <para>Create a symlink to work around missing xsltproc:</para>
     278
     279<!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->
     280<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
     281
     282<!-- with cross-LFS we have util-linux in place:
     283    <para>Because we have not yet installed the final version of Util-Linux,
     284    create links to the libraries in the approprite location:</para>
     285
     286<screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do
     287    ln -sf $file /usr/lib32/
     288done</userinput></screen>
     289-->
     290
     291    <para>Prepare systemd for compilation:</para>
     292
     293    <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
     294CC="gcc -m32 -march=i686"              \
     295CXX="g++ -m32 -march=i686"             \
     296LANG=en_US.UTF-8                       \
     297meson --prefix=/usr                    \
     298      --sysconfdir=/etc                \
     299      --localstatedir=/var             \
     300      --libdir=/usr/lib32              \
     301      -Drootlibdir=/usr/lib32          \
     302      -Dblkid=true                  \
     303      -Ddefault-dnssec=no           \
     304      -Dfirstboot=false             \
     305      -Dinstall-tests=false         \
     306      -Dldconfig=false              \
     307      -Dsysusers=false              \
     308      -Db_lto=false                 \
     309      -Drpmmacrosdir=no             \
     310      -Dhomed=false                 \
     311      -Duserdb=false                \
     312      -Dman=false                   \
     313      -Dmode=release                \
     314      ..</userinput></screen>
     315
     316    <para>Compile the package:</para>
     317
     318<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
     319
     320    <para>Install the package:</para>
     321
     322<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
     323cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     324rm -rf DESTDIR
     325rm -f /usr/bin/xsltproc</userinput></screen>
     326
     327  </sect2><!-- m32 -->
     328
     329  <!-- - - - - - - - - - -->
     330  <!-- Multilib - x32bit -->
     331  <!-- - - - - - - - - - -->
     332 
     333  <sect2 arch="ml_x32,ml_all" role="installation">
     334    <title>Installation of systemd - x32-bit</title>
     335
     336    <para>Clean previous build:</para>
     337
     338<screen><userinput remap="pre">rm -rf *</userinput></screen>
     339
     340    <para>Create a symlink to work around missing xsltproc:</para>
     341
     342<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
     343<!--
     344    <para>Fix an issue on x32:</para>
     345
     346<screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c
     347sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>
     348-->
     349    <para>Prepare systemd for compilation:</para>
     350
     351<screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
     352CC="gcc -mx32"                          \
     353CXX="g++ -mx32"                         \
     354CFLAGS+=" -Wno-error=shift-overflow"    \
     355CXXFLAGS+=" -Wno-error=shift-overflow"  \
     356LANG=en_US.UTF-8                        \
     357meson --prefix=/usr                     \
     358      --sysconfdir=/etc                 \
     359      --localstatedir=/var              \
     360      --libdir=/usr/libx32              \
     361      -Drootlibdir=/usr/libx32          \
     362      -Dblkid=true                  \
     363      -Ddefault-dnssec=no           \
     364      -Dfirstboot=false             \
     365      -Dinstall-tests=false         \
     366      -Dldconfig=false              \
     367      -Dsysusers=false              \
     368      -Db_lto=false                 \
     369      -Drpmmacrosdir=no             \
     370      -Dhomed=false                 \
     371      -Duserdb=false                \
     372      -Dman=false                   \
     373      -Dmode=release                \
     374      ..</userinput></screen>
     375
     376    <para>Compile the package:</para>
     377
     378<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
     379
     380    <para>Install the package:</para>
     381
     382<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
     383cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     384rm -rf DESTDIR
     385rm -f /usr/bin/xsltproc</userinput></screen>
     386
     387  </sect2><!-- mx32 -->
    265388
    266389  <sect2 id="contents-systemd" role="content">
  • chapter08/udev.xml

    rc04d98d r7f3f152  
    196196  </sect2>
    197197
     198  <!-- - - - - - - - - - -->
     199  <!-- Multilib - 32bit  -->
     200  <!-- - - - - - - - - - -->
     201  <sect2 arch="ml_32,ml_all" role="installation">
     202    <title>Installation of Udev - 32bit</title>
     203
     204    <para>Clean previous build (while still in the build directory):</para>
     205
     206<screen><userinput remap="pre">rm -rf *</userinput></screen>
     207
     208    <para>Prepare Udev for compilation:</para>
     209
     210<screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
     211CC="gcc -m32 -march=i686"              \
     212CXX="g++ -m32 -march=i686"             \
     213LANG=en_US.UTF-8                       \
     214meson setup \
     215      --prefix=/usr                 \
     216      --buildtype=release           \
     217      -Dmode=release                \
     218      -Ddev-kvm-mode=0660           \
     219      -Dlink-udev-shared=false      \
     220      -Dlogind=false                \
     221      -Dvconsole=false              \
     222      ..</userinput></screen>
     223
     224    <para>Compile the package:</para>
     225
     226<screen><userinput remap="make">ninja \
     227      $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \
     228        build.ninja | awk '{ print $2 }')                              \
     229      $(realpath libudev.so --relative-to .)</userinput></screen>
     230
     231    <para>Install the package:</para>
     232
     233<screen><userinput remap="install">mkdir -pv /usr/lib32/pkgconfig &amp;&amp;
     234cp -av libudev.so{,*[0-9]} /usr/lib32/ &amp;&amp;
     235sed -e "s;/usr/lib;&amp;32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc</userinput></screen>
     236
     237  </sect2><!-- m32 -->
     238
     239  <!-- - - - - - - - - - -->
     240  <!-- Multilib - x32bit -->
     241  <!-- - - - - - - - - - -->
     242  <sect2 arch="ml_x32,ml_all" role="installation">
     243    <title>Installation of Udev - x32bit</title>
     244    <para>Clean previous build (while still in the build directory):</para>
     245
     246<screen><userinput remap="pre">rm -rf *</userinput></screen>
     247
     248    <para>Prepare Udev for compilation:</para>
     249
     250<screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
     251CC="gcc -mx32"                          \
     252CXX="g++ -mx32"                         \
     253CFLAGS+=" -Wno-error=shift-overflow"    \
     254CXXFLAGS+=" -Wno-error=shift-overflow"  \
     255LANG=en_US.UTF-8                        \
     256meson setup \
     257      --prefix=/usr                 \
     258      --buildtype=release           \
     259      -Dmode=release                \
     260      -Ddev-kvm-mode=0660           \
     261      -Dlink-udev-shared=false      \
     262      -Dlogind=false                \
     263      -Dvconsole=false              \
     264      ..</userinput></screen>
     265
     266    <para>Compile the package:</para>
     267
     268<screen><userinput remap="make">ninja \
     269      $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \
     270        build.ninja | awk '{ print $2 }')                              \
     271      $(realpath libudev.so --relative-to .)</userinput></screen>
     272
     273    <para>Install the package:</para>
     274
     275<screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig &amp;&amp;
     276cp -av libudev.so{,*[0-9]} /usr/libx32/ &amp;&amp;
     277sed -e "s;/usr/lib;&amp;x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc</userinput></screen>
     278
     279  </sect2><!-- mx32 -->
     280 
    198281  <sect2 id="conf-udev" role="configuration">
    199282    <title>Configuring Udev</title>
  • chapter08/util-linux.xml

    rc04d98d r7f3f152  
    138138-->
    139139  </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
     208cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     209rm -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
     280cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     281rm -rf DESTDIR</userinput></screen>
     282
     283  </sect2><!-- mx32 -->
    140284
    141285  <sect2 id="contents-utillinux" role="content">
  • chapter08/xz.xml

    rc04d98d r7f3f152  
    6868
    6969  </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
     97cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     98rm -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
     128cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     129rm -rf DESTDIR</userinput></screen>
     130
     131  </sect2><!-- mx32 -->
    70132
    71133  <sect2 id="contents-xz" role="content">
  • chapter08/zlib.xml

    rc04d98d r7f3f152  
    6464  </sect2>
    6565
     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
     90cp -Rv DESTDIR/usr/lib32/* /usr/lib32
     91rm -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
     117cp -Rv DESTDIR/usr/libx32/* /usr/libx32
     118rm -rf DESTDIR</userinput></screen>
     119
     120  </sect2><!-- mx32 -->
     121
    66122  <sect2 id="contents-zlib" role="content">
    67123    <title>Contents of Zlib</title>
  • chapter08/zstd.xml

    rc04d98d r7f3f152  
    6565
    6666  </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
     86cp -Rv DESTDIR/usr/lib/* /usr/lib32/
     87sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc
     88rm -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
     110cp -Rv DESTDIR/usr/lib/* /usr/libx32/
     111sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc
     112rm -rf DESTDIR</userinput></screen>
     113
     114  </sect2><!-- mx32 -->
    67115
    68116  <sect2 id="contents-zstd" role="content">
  • chapter10/kernel.xml

    rc04d98d r7f3f152  
    187187    </note>
    188188
     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  ---&gt;
     208    [*] IA32 Emulation [CONFIG_IA32_EMULATION]
     209    &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
     210</screen>
     211<screen arch="ml_x32">Binary Emulations  ---&gt;
     212    [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
     213</screen>
     214<screen arch="ml_all">Binary Emulations  ---&gt;
     215    [*] IA32 Emulation [CONFIG_IA32_EMULATION]
     216    &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
     217    [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
     218</screen>
     219    </note>
     220   
    189221    <variablelist>
    190222      <title>The rationale for the above configuration items:</title>
  • packages.ent

    rc04d98d r7f3f152  
    349349<!ENTITY iproute2-fin-du "17 MB">
    350350<!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">
    351361
    352362<!ENTITY jinja2-version "3.1.4">
  • prologue/bookinfo.xml

    rc04d98d r7f3f152  
    88<bookinfo>
    99  <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>
    1111  <subtitle>Published &releasedate;</subtitle>
    1212
     
    2929      <firstname>Editor: DJ</firstname>
    3030      <surname>Lucas</surname>
     31    </author>
     32
     33    <author arch="ml_32,ml_x32,ml_all">
     34      <firstname>Editor: Thomas</firstname>
     35      <surname>Trepl</surname>
    3136    </author>
    3237  </authorgroup>
  • prologue/preface.xml

    rc04d98d r7f3f152  
    1616  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/>
    1717  <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"/>
    1819  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/>
    1920  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note: See TracChangeset for help on using the changeset viewer.