Changes in / [d7a9421:df462a9]


Ignore:
Files:
2 added
51 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rd7a9421 rdf462a9  
    3535endif
    3636
     37ifndef ARCH
     38  ARCH = default
     39endif
     40ifneq ($(ARCH), default)
     41  ifneq ($(ARCH), ml_32)
     42    ifneq ($(ARCH), ml_x32)
     43      ifneq ($(ARCH), ml_all)
     44        $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)
     45      endif
     46    endif
     47  endif
     48endif
     49
    3750book: validate profile-html
    3851        @echo "Generating chunked XHTML files at $(BASEDIR)/ ..."
     
    129142                --output $(RENDERTMP)/lfs-html2.xml   \
    130143                --stringparam profile.revision $(REV) \
     144                --stringparam profile.arch $(ARCH)    \
    131145                stylesheets/lfs-xsl/profile.xsl       \
    132146                index.xml
     
    176190        $(Q)xsltproc --nonet --xinclude                    \
    177191                --stringparam profile.revision $(REV) \
     192                --stringparam profile.arch $(ARCH)    \
    178193                --output $(RENDERTMP)/sysv-md5sum.xml \
    179194                stylesheets/lfs-xsl/profile.xsl       \
  • chapter01/askforhelp.xml

    rd7a9421 rdf462a9  
    3939    <itemizedlist>
    4040      <listitem>
    41         <para>The version of the book being used (in this case
    42               <phrase revision="sysv">&version;</phrase>
    43               <phrase revision="systemd">&versiond;</phrase>)</para>
     41        <para>
     42          The version of the book being used (in this case
     43          <phrase arch="default" revision="sysv">&version;</phrase>
     44          <phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase>
     45          <phrase arch="default" revision="systemd">&versiond;</phrase>
     46          <phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-multilib</phrase>)
     47        </para>
    4448      </listitem>
    4549      <listitem>
     
    5660      </listitem>
    5761      <listitem>
    58         <para>Note whether you have deviated from the book at all </para>
     62        <para>Note whether you have deviated from the book at all</para>
    5963      </listitem>
    6064    </itemizedlist>
  • chapter01/changelog.xml

    rd7a9421 rdf462a9  
    1212
    1313  <para>This is version
    14         <phrase revision="sysv">&version;</phrase>
    15         <phrase revision="systemd">&versiond;</phrase>
     14    <phrase arch="default" revision="sysv">&version;</phrase>
     15    <phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase>
     16    <phrase arch="default" revision="systemd">&versiond;</phrase>
     17    <phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-multilib</phrase>
    1618  of the Linux From Scratch book, dated
    1719  &releasedate;. If this book is more than six months old, a newer and better
  • chapter02/hostreqs.xml

    rd7a9421 rdf462a9  
    235235-->
    236236
     237    <para arch="ml_32,ml_x32,ml_all">
     238      Building multilib support requires the kernel of the host system
     239      to have 32-bit emulation support included.
     240    </para>
     241<screen arch="ml_32,ml_x32,ml_all">Binary Emulations  ---&gt;
     242    [*] IA32 Emulation
     243    &lt;M&gt;   IA32 a.out support
     244    [*] x32 ABI for 64-bit mode
     245</screen>
     246
     247    <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is
     248      optional. In case your kernel does not have 'x32 ABI for 64-bit mode'
     249      enabled but only 'IA32 Emulation', you can continue to build your
     250      system but you have to leave out any sections showing instructions
     251      for building x32 objects. If neither 'IA32 Emulation' nor
     252      'x32 ABI for 64-bit mode' is enabled, you will run in errors
     253      latest when building <application>glibc</application> in Chapter 6,
     254      so an upgrade of your host system kernel is required.
     255    </para>
     256   
    237257</sect1>
  • chapter03/packages.xml

    rd7a9421 rdf462a9  
    344344        <para>Download: <ulink url="&iproute2-url;"/></para>
    345345        <para>MD5 sum: <literal>&iproute2-md5;</literal></para>
     346      </listitem>
     347    </varlistentry>
     348
     349    <varlistentry arch="ml_32,ml_x32,ml_all">
     350      <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>
     351      <listitem>
     352        <para>Home page: <ulink url="&isl-home;"/></para>
     353        <para>Download: <ulink url="&isl-url;"/></para>
     354        <para>MD5 sum: <literal>&isl-md5;</literal></para>
    346355      </listitem>
    347356    </varlistentry>
  • chapter04/addinguser.xml

    rd7a9421 rdf462a9  
    8585  x86_64) chown -v lfs $LFS/lib64 ;;
    8686esac</userinput></screen>
     87<screen arch="ml_32"  ><userinput>chown -v lfs $LFS&lib-m32;</userinput></screen>
     88<screen arch="ml_x32" ><userinput>chown -v lfs $LFS&lib-mx32;</userinput></screen>
     89<screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>
    8790
    8891  <para>If a separate working directory was created as suggested, give
  • chapter04/creatingminlayout.xml

    rd7a9421 rdf462a9  
    3030  x86_64) mkdir -pv $LFS/lib64 ;;
    3131esac</userinput></screen>
     32<screen arch="ml_32"><userinput>mkdir -pv $LFS&usr-lib-m32;
     33ln -sv usr&lib-m32; $LFS&lib-m32;</userinput></screen>
     34<screen arch="ml_x32"><userinput>mkdir -pv $LFS&usr-lib-mx32;
     35ln -sv usr&lib-mx32; $LFS&lib-mx32;</userinput></screen>
     36<screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}32
     37ln -sv usr&lib-m32; $LFS&lib-m32;
     38ln -sv usr&lib-mx32; $LFS&lib-mx32;</userinput></screen>
    3239
    3340    <note>
  • chapter04/settingenviron.xml

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

    rd7a9421 rdf462a9  
    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          \
    7676             --disable-nls              \
    7777             --disable-werror</userinput></screen>
     78<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools       \
     79             --with-sysroot=$LFS        \
     80             --target=$LFS_TGT          \
     81             --disable-nls              \
     82             --disable-werror           \
     83             --enable-multilib</userinput></screen>
    7884
    7985    <variablelist>
     
    124130      </varlistentry>
    125131
     132      <varlistentry arch="ml_32,ml_x32,ml_all">
     133        <term><parameter>--enable-multilib</parameter></term>
     134        <listitem>
     135          <para>Enables multilib support.</para>
     136        </listitem>
     137      </varlistentry>
     138
    126139    </variablelist>
    127140
  • chapter05/gcc-pass1.xml

    rd7a9421 rdf462a9  
    6161mv -v gmp-&gmp-version; gmp
    6262tar -xf ../mpc-&mpc-version;.tar.gz
    63 mv -v mpc-&mpc-version; mpc</userinput></screen>
    64 
    65     <para>On x86_64 hosts, set the default directory name for
     63mv -v mpc-&mpc-version; mpc</userinput>
     64<userinput remap="pre" arch="ml_32,ml_x32,ml_all">tar -xf ../isl-&isl-version;.tar.xz
     65mv -v isl-&isl-version; isl</userinput></screen>
     66
     67    <para arch="default">On x86_64 hosts, set the default directory name for
    6668    64-bit libraries to <quote>lib</quote>:</para>
    6769
    68 <screen><userinput remap="pre">case $(uname -m) in
     70<screen arch="default"><userinput remap="pre">case $(uname -m) in
    6971  x86_64)
    7072    sed -e '/m64=/s/lib64/lib/' \
     
    7375esac</userinput></screen>
    7476
     77    <para arch="ml_32,ml_x32,ml_all">Change the default directory name for
     78    libraries:</para>
     79
     80<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
     81    -e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \
     82    -i.orig gcc/config/i386/t-linux64
     83</userinput></screen>
     84
    7585    <para>The GCC documentation recommends building GCC
    7686    in a dedicated build directory:</para>
     
    8191    <para>Prepare GCC for compilation:</para>
    8292
    83 <screen><userinput remap="configure">../configure                                       \
     93<screen arch="default"><userinput remap="configure">../configure                                       \
    8494    --target=$LFS_TGT                              \
    8595    --prefix=$LFS/tools                            \
     
    101111    --disable-libstdcxx                            \
    102112    --enable-languages=c,c++</userinput></screen>
     113<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
     114    arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"
     115    arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
     116    arch="ml_all">mlist=m64,m32,mx32</userinput>
     117<userinput remap="configure">../configure                                       \
     118    --target=$LFS_TGT                              \
     119    --prefix=$LFS/tools                            \
     120    --with-glibc-version=2.11                      \
     121    --with-sysroot=$LFS                            \
     122    --with-newlib                                  \
     123    --without-headers                              \
     124    --enable-initfini-array                        \
     125    --disable-nls                                  \
     126    --disable-shared                               \
     127    --enable-multilib --with-multilib-list=$mlist  \
     128    --disable-decimal-float                        \
     129    --disable-threads                              \
     130    --disable-libatomic                            \
     131    --disable-libgomp                              \
     132    --disable-libquadmath                          \
     133    --disable-libssp                               \
     134    --disable-libvtv                               \
     135    --disable-libstdcxx                            \
     136    --enable-languages=c,c++</userinput></screen>
     137
    103138    <variablelist>
    104139      <title>The meaning of the configure options:</title>
     
    150185      </varlistentry>
    151186
    152       <varlistentry>
     187      <varlistentry arch="default">
    153188        <term><parameter>--disable-multilib</parameter></term>
    154189        <listitem>
    155190          <para>On x86_64, LFS does not support a multilib configuration.
    156191          This switch is harmless for x86.</para>
     192        </listitem>
     193      </varlistentry>
     194      <varlistentry arch="ml_32,ml_x32,ml_all">
     195        <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>
     196        <listitem>
     197          <para>LFS canbe used to support multilib. Which they are is
     198          specified in the multilib list.</para>
    157199        </listitem>
    158200      </varlistentry>
  • chapter05/glibc.xml

    rd7a9421 rdf462a9  
    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    <para>Some of the Glibc programs use the non-FHS compliant
     
    7578    <para>Next, prepare Glibc for compilation:</para>
    7679
    77 <screen><userinput remap="configure">../configure                             \
     80<screen arch="default"><userinput remap="configure">../configure                             \
    7881      --prefix=/usr                      \
    7982      --host=$LFS_TGT                    \
     
    8184      --enable-kernel=&min-kernel;                \
    8285      --with-headers=$LFS/usr/include    \
     86      libc_cv_slibdir=/usr/lib</userinput></screen>
     87<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure                             \
     88      --prefix=/usr                      \
     89      --host=$LFS_TGT                    \
     90      --build=$(../scripts/config.guess) \
     91      --enable-kernel=&min-kernel;                \
     92      --with-headers=$LFS/usr/include    \
     93      --enable-multi-arch                \
    8394      libc_cv_slibdir=/usr/lib</userinput></screen>
    8495
     
    200211<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
    201212
    202       <para>Note that for 32-bit machines, the interpreter name will be
     213      <para arch="default">Note that for 32-bit machines, the interpreter name will be
    203214      <filename>/lib/ld-linux.so.2</filename>.</para>
    204215
     
    228239  </sect2>
    229240
     241  <!-- - - - - - - - - - -->
     242  <!-- Multilib - 32bit  -->
     243  <!-- - - - - - - - - - -->
     244  <sect2 arch="ml_32,ml_all">
     245    <title>Building Glibc - 32bit</title>
     246
     247    <para>Now recompile for m32. The extracted source can be
     248    reused but needs to cleaned before installing the m32
     249    version of Glibc.</para>
     250
     251    <para>Clear the build directory and remove artefacts from
     252    previous build:</para>
     253     
     254<screen><userinput remap="pre">make clean
     255find .. -name "*.a" -delete</userinput></screen>
     256
     257    <para>Configure Glibc for m32 with the following commands:</para>
     258
     259<screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \
     260CXX="$LFS_TGT-g++ -m32" \
     261../configure                             \
     262      --prefix=/usr                      \
     263      --host=$LFS_TGT32                  \
     264      --build=$(../scripts/config.guess) \
     265      --enable-kernel=&min-kernel;                \
     266      --with-headers=$LFS/usr/include    \
     267      --enable-multi-arch                \
     268      --libdir=&usr-lib-m32;                \
     269      --libexecdir=&usr-lib-m32;            \
     270      libc_cv_slibdir=&usr-lib-m32;</userinput></screen>
     271
     272    <para>Compile the package:</para>
     273
     274<screen><userinput remap="make">make</userinput></screen>
     275
     276    <para>Install the package:</para>
     277
     278<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     279cp -a DESTDIR&lib-m32;/*     $LFS&lib-m32;/
     280cp -a DESTDIR&usr-lib-m32; $LFS/usr/
     281install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
     282               $LFS/usr/include/gnu/
     283ln -svf ..&lib-m32;/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>
     284
     285    <caution>
     286      <para>At this point, it is imperative to stop and ensure that the basic
     287      functions (compiling and linking) of the new toolchain are working as
     288      expected. To perform a sanity check, run the following commands:</para>
     289
     290<screen><userinput>echo 'int main(){}' &gt; dummy.c
     291$LFS_TGT-gcc -m32 dummy.c
     292readelf -l a.out | grep '/ld-linux'</userinput></screen>
     293
     294      <para>If everything is working correctly, there should be no errors,
     295      and the output of the last command will be of the form:</para>
     296
     297<screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>
     298
     299      <para>If the output is not shown as above or there was no output at all,
     300      then something is wrong. Investigate and retrace the steps to find out
     301      where the problem is and correct it. This issue must be resolved before
     302      continuing on.</para>
     303
     304      <para>Once all is well, clean up the test files:</para>
     305
     306<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     307
     308    </caution>
     309
     310  </sect2><!-- m32 -->
     311
     312  <!-- - - - - - - - - - -->
     313  <!-- Multilib - x32bit -->
     314  <!-- - - - - - - - - - -->
     315 
     316  <sect2 arch="ml_x32,ml_all">
     317    <title>Building Glibc - x32bit</title>
     318
     319    <para>Now recompile for mx32. The extracted source can be
     320    reused but needs to cleaned before installing the mx32
     321    version of Glibc.</para>
     322
     323    <para>Clear the build directory and remove artefacts from
     324    previous build:</para>
     325     
     326<screen><userinput remap="pre">make clean
     327find .. -name "*.a" -delete</userinput></screen>
     328
     329    <para>Configure Glibc for mx32 with the following commands:</para>
     330
     331<screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \
     332CXX="$LFS_TGT-g++ -mx32" \
     333../configure                             \
     334      --prefix=/usr                      \
     335      --host=$LFS_TGTX32                 \
     336      --build=$(../scripts/config.guess) \
     337      --enable-kernel=&min-kernel;                \
     338      --with-headers=$LFS/usr/include    \
     339      --enable-multi-arch                \
     340      --libdir=&usr-lib-mx32;               \
     341      --libexecdir=&usr-lib-mx32;           \
     342      libc_cv_slibdir=&usr-lib-mx32;</userinput></screen>
     343
     344    <para>Compile the package:</para>
     345
     346<screen><userinput remap="make">make</userinput></screen>
     347
     348    <para>Install the package:</para>
     349
     350<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     351cp -a DESTDIR&lib-mx32;/*     $LFS&lib-mx32;/
     352cp -a DESTDIR&usr-lib-mx32; $LFS/usr/
     353install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
     354               $LFS/usr/include/gnu/
     355ln -svf ..&lib-mx32;/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>
     356
     357    <caution>
     358      <para>At this point, it is imperative to stop and ensure that the basic
     359      functions (compiling and linking) of the new toolchain are working as
     360      expected. To perform a sanity check, run the following commands:</para>
     361
     362<screen><userinput>echo 'int main(){}' &gt; dummy.c
     363$LFS_TGT-gcc -mx32 dummy.c
     364readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
     365
     366      <para>If everything is working correctly, there should be no errors,
     367      and the output of the last command will be of the form:</para>
     368
     369<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
     370
     371      <para>If the output is not shown as above or there was no output at all,
     372      then something is wrong. Investigate and retrace the steps to find out
     373      where the problem is and correct it. This issue must be resolved before
     374      continuing on.</para>
     375
     376      <para>Once all is well, clean up the test files:</para>
     377
     378<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     379
     380    </caution>
     381
     382  </sect2><!-- mx32 -->
     383
    230384  <sect2 role="content">
    231385    <title/>
  • chapter05/libstdc++.xml

    rd7a9421 rdf462a9  
    8282      </varlistentry>
    8383
     84      <varlistentry arch="ml_32,ml_x32,ml_all">
     85        <term><parameter>--disable-multilib</parameter></term>
     86        <listitem>
     87          <para>Even when building the multilib version, this switch is
     88          given. This is because the additionally built libraries are
     89          not required in this stage and some disk space and compile
     90          time can be saved.</para>
     91        </listitem>
     92      </varlistentry>
     93
    8494      <varlistentry>
    8595        <term><parameter>--disable-libstdcxx-pch</parameter></term>
  • chapter06/binutils-pass2.xml

    rd7a9421 rdf462a9  
    5151    <para>Prepare Binutils for compilation:</para>
    5252
    53 <screen><userinput remap="configure">../configure                   \
     53<screen arch="default"><userinput remap="configure">../configure                   \
    5454    --prefix=/usr              \
    5555    --build=$(../config.guess) \
     
    5959    --disable-werror           \
    6060    --enable-64-bit-bfd</userinput></screen>
     61<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure                   \
     62    --prefix=/usr              \
     63    --build=$(../config.guess) \
     64    --host=$LFS_TGT            \
     65    --disable-nls              \
     66    --enable-shared            \
     67    --disable-werror           \
     68    --enable-64-bit-bfd        \
     69    --enable-multilib</userinput></screen>
    6170
    6271    <variablelist>
     
    7786          <para>Enables 64-bit support (on hosts with narrower word sizes).
    7887          May not be needed on 64-bit systems, but does no harm.</para>
     88        </listitem>
     89      </varlistentry>
     90
     91      <varlistentry arch="ml_32,ml_x32,ml_all">
     92        <term><parameter>--enable-multilib</parameter></term>
     93        <listitem>
     94          <para>Enables multilib support in bintutils.</para>
    7995        </listitem>
    8096      </varlistentry>
  • chapter06/gcc-pass2.xml

    rd7a9421 rdf462a9  
    5353mv -v gmp-&gmp-version; gmp
    5454tar -xf ../mpc-&mpc-version;.tar.gz
    55 mv -v mpc-&mpc-version; mpc</userinput></screen>
     55mv -v mpc-&mpc-version; mpc</userinput>
     56<userinput remap="pre" arch="ml_32,ml_x32,ml_all">tar -xf ../isl-&isl-version;.tar.xz
     57mv -v isl-&isl-version; isl</userinput></screen>
    5658
    57     <para>If building on x86_64, change the default directory name for 64-bit
     59
     60    <para arch="default">If building on x86_64, change the default directory name for 64-bit
    5861    libraries to <quote>lib</quote>:</para>
    5962
    60 <screen><userinput remap="pre">case $(uname -m) in
     63<screen arch="default"><userinput remap="pre">case $(uname -m) in
    6164  x86_64)
    6265    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
    6366  ;;
    6467esac</userinput></screen>
     68
     69    <para arch="ml_32,ml_x32,ml_all">Change the default directory name for
     70    libraries:</para>
     71
     72<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
     73    -e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \
     74    -i.orig gcc/config/i386/t-linux64</userinput></screen>
    6575<!--
    66     <para>Fix an issue with GCC-10.1 when building with a cross
    67     compiler:</para>
    68 
    6976<screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen>
    7077-->
     
    8592    <para>Now prepare GCC for compilation:</para>
    8693
    87 <screen><userinput remap="configure">../configure                                       \
     94<screen arch="default"><userinput remap="configure">../configure                                       \
    8895    --build=$(../config.guess)                     \
    8996    --host=$LFS_TGT                                \
     
    94101    --disable-nls                                  \
    95102    --disable-multilib                             \
     103    --disable-decimal-float                        \
     104    --disable-libatomic                            \
     105    --disable-libgomp                              \
     106    --disable-libquadmath                          \
     107    --disable-libssp                               \
     108    --disable-libvtv                               \
     109    --disable-libstdcxx                            \
     110    --enable-languages=c,c++</userinput></screen>
     111<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
     112    arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"
     113    arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
     114    arch="ml_all">mlist=m64,m32,mx32</userinput>
     115<userinput remap="configure">../configure                                       \
     116    --build=$(../config.guess)                     \
     117    --host=$LFS_TGT                                \
     118    --prefix=/usr                                  \
     119    CC_FOR_TARGET=$LFS_TGT-gcc                     \
     120    --with-build-sysroot=$LFS                      \
     121    --enable-initfini-array                        \
     122    --disable-nls                                  \
     123    --enable-multilib --with-multilib-list=$mlist  \
    96124    --disable-decimal-float                        \
    97125    --disable-libatomic                            \
  • chapter06/ncurses.xml

    rd7a9421 rdf462a9  
    151151  </sect2>
    152152
     153  <!-- - - - - - - - - - -->
     154  <!-- Multilib - 32bit  -->
     155  <!-- - - - - - - - - - -->
     156  <sect2 arch="ml_32,ml_all">
     157    <title>Building Ncurses - 32bit</title>
     158
     159    <para>Clean previous build:</para>
     160
     161<screen><userinput remap="pre">make distclean</userinput></screen>
     162
     163    <para>Prepare Ncurses for compilation:</para>
     164
     165<screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32"              \
     166CXX="$LFS_TGT-g++ -m32"             \
     167./configure --prefix=/usr           \
     168            --host=$LFS_TGT32       \
     169            --build=$(./config.guess)    \
     170            --libdir=&usr-lib-m32;     \
     171            --mandir=/usr/share/man \
     172            --with-shared           \
     173            --without-debug         \
     174            --without-ada           \
     175            --without-normal        \
     176            --enable-pc-files       \
     177            --enable-widec          \
     178            --with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen>
     179
     180    <para>Compile the package:</para>
     181
     182<screen><userinput remap="make">make</userinput></screen>
     183
     184    <para>Install the package:</para>
     185
     186<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
     187ln -s libncursesw.so DESTDIR&usr-lib-m32;/libcursesw.so
     188cp -Rv DESTDIR&usr-lib-m32;/* $LFS&usr-lib-m32;
     189rm -rf DESTDIR</userinput></screen>
     190
     191  </sect2><!-- m32 -->
     192
     193  <!-- - - - - - - - - - -->
     194  <!-- Multilib - x32bit -->
     195  <!-- - - - - - - - - - -->
     196  <sect2 arch="ml_x32,ml_all">
     197    <title>Building Ncurses - x32bit</title>
     198
     199    <para>Clean previous build:</para>
     200
     201<screen><userinput remap="pre">make distclean</userinput></screen>
     202
     203    <para>Prepare Ncurses for compilation:</para>
     204
     205<screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32"             \
     206CXX="$LFS_TGT-g++ -mx32"            \
     207./configure --prefix=/usr           \
     208            --host=$LFS_TGTX32      \
     209            --build=$(./config.guess)    \
     210            --libdir=&usr-lib-mx32;    \
     211            --mandir=/usr/share/man \
     212            --with-shared           \
     213            --without-debug         \
     214            --without-ada           \
     215            --without-normal        \
     216            --enable-pc-files       \
     217            --enable-widec          \
     218            --with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen>
     219
     220    <para>Compile the package:</para>
     221
     222<screen><userinput remap="make">make</userinput></screen>
     223
     224    <para>Install the package:</para>
     225
     226<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
     227ln -s libncursesw.so DESTDIR&usr-lib-mx32;/libcursesw.so
     228cp -Rv DESTDIR&usr-lib-mx32;/* $LFS&usr-lib-mx32;
     229rm -rf DESTDIR</userinput></screen>
     230
     231  </sect2><!-- mx32 -->
     232
    153233  <sect2 role="content">
    154234    <title/>
  • chapter07/changingowner.xml

    rd7a9421 rdf462a9  
    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&lib-m32;</userinput>
     44<userinput arch="ml_x32,ml_all">chown -R root:root $LFS&lib-mx32;</userinput></screen>
     45 
    4146</sect1>
  • chapter07/creatingdirs.xml

    rd7a9421 rdf462a9  
    4242install -dv -m 1777 /tmp /var/tmp</userinput></screen>
    4343
     44  <para arch="ml_32,ml_x32,ml_all">Required directories for multilib
     45  support has already been created while previous installation steps.</para>
     46
    4447  <para>Directories are, by default, created with permission mode 755, but
    4548  this is not desirable for all directories. In the commands above, two
  • chapter07/libstdc++-pass2.xml

    rd7a9421 rdf462a9  
    6363    <para>Prepare libstdc++ for compilation:</para>
    6464
    65 <screen><userinput remap="configure">../libstdc++-v3/configure            \
     65<screen arch="default"><userinput remap="configure">../libstdc++-v3/configure            \
    6666    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
    6767    --prefix=/usr                    \
    6868    --disable-multilib               \
     69    --disable-nls                    \
     70    --host=$(uname -m)-lfs-linux-gnu \
     71    --disable-libstdcxx-pch</userinput></screen>
     72<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure            \
     73    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
     74    --prefix=/usr                    \
     75    --enable-multilib                \
    6976    --disable-nls                    \
    7077    --host=$(uname -m)-lfs-linux-gnu \
     
    99106      </varlistentry>
    100107
     108      <varlistentry arch="ml_32,ml_x32,ml_all">
     109        <term><parameter>--enable-multilib</parameter></term>
     110        <listitem>
     111          <para>This switch is set by default but it is added here
     112          explicitly for documentary purpose. The libstdc++ libraries
     113          will be built for every arch (m64, m32, mx32) which are
     114          made available in <xref linkend="ch-tools-gcc-pass1"/>.</para>
     115        </listitem>
     116      </varlistentry>
     117
    101118    </variablelist>
    102119
  • chapter07/stripping.xml

    rd7a9421 rdf462a9  
    1616  While still in chroot, remove those files now:</para>
    1717
    18 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen>
     18<screen arch="default"><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen>
     19<screen arch="ml_32"><userinput>find /usr/{lib{,32},libexec} -name \*.la -delete</userinput></screen>
     20<screen arch="ml_x32"><userinput>find /usr/{lib{,x32},libexec} -name \*.la -delete</userinput></screen>
     21<screen arch="ml_all"><userinput>find /usr/{lib{,{,x}32},libexec} -name \*.la -delete</userinput></screen>
    1922
    2023    <para>Remove the documentation of the temporary tools, to prevent them
     
    8891
    8992    <para>Strip off debugging symbols from binaries:</para>
    90 <screen role="nodump"><userinput>strip --strip-debug $LFS/usr/lib/*
     93<screen arch="default" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib/*
     94strip --strip-unneeded $LFS/usr/{,s}bin/*
     95strip --strip-unneeded $LFS/tools/bin/*</userinput></screen>
     96<screen arch="ml_32" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,32}/*
     97strip --strip-unneeded $LFS/usr/{,s}bin/*
     98strip --strip-unneeded $LFS/tools/bin/*</userinput></screen>
     99<screen arch="ml_x32" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,x32}/*
     100strip --strip-unneeded $LFS/usr/{,s}bin/*
     101strip --strip-unneeded $LFS/tools/bin/*</userinput></screen>
     102<screen arch="ml_all" role="nodump"><userinput>strip --strip-debug $LFS/usr/lib{,{,x}32}/*
    91103strip --strip-unneeded $LFS/usr/{,s}bin/*
    92104strip --strip-unneeded $LFS/tools/bin/*</userinput></screen>
  • chapter07/util-linux.xml

    rd7a9421 rdf462a9  
    127127  </sect2>
    128128
     129  <!-- - - - - - - - - - -->
     130  <!-- Multilib - 32bit  -->
     131  <!-- - - - - - - - - - -->
     132 
     133  <sect2 arch="ml_32,ml_all" role="installation">
     134    <title>Installation of Util-linux - 32-bit</title>
     135
     136    <para>Clean previous build:</para>
     137
     138<screen><userinput remap="pre">make distclean</userinput></screen>
     139
     140    <para>Prepare Util-linux for compilation:</para>
     141
     142<screen><userinput remap="configure">CC="gcc -m32" \
     143./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
     144            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     145            --disable-chfn-chsh  \
     146            --disable-login      \
     147            --disable-nologin    \
     148            --disable-su         \
     149            --disable-setpriv    \
     150            --disable-runuser    \
     151            --disable-pylibmount \
     152            --disable-static     \
     153            --without-python     \
     154            --libdir=&usr-lib-m32;      \
     155            --host=i686-pc-linux-gnu</userinput></screen>
     156
     157    <para>Compile the package:</para>
     158
     159<screen><userinput remap="make">make</userinput></screen>
     160
     161    <para>Install the package:</para>
     162
     163<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     164cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     165rm -rf DESTDIR</userinput></screen>
     166
     167  </sect2><!-- m32 -->
     168
     169  <!-- - - - - - - - - - -->
     170  <!-- Multilib - x32bit -->
     171  <!-- - - - - - - - - - -->
     172 
     173  <sect2 arch="ml_x32,ml_all" role="installation">
     174    <title>Installation of Util-linux - x32-bit</title>
     175
     176    <para>Clean previous build:</para>
     177
     178<screen><userinput remap="pre">make distclean</userinput></screen>
     179
     180    <para>Prepare Util-linux for compilation:</para>
     181
     182<screen><userinput remap="configure">CC="gcc -mx32" \
     183./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
     184            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     185            --disable-chfn-chsh  \
     186            --disable-login      \
     187            --disable-nologin    \
     188            --disable-su         \
     189            --disable-setpriv    \
     190            --disable-runuser    \
     191            --disable-pylibmount \
     192            --disable-static     \
     193            --without-python     \
     194            --libdir=&usr-lib-mx32; \
     195            --host=x86_64-pc-linux-gnux32</userinput></screen>
     196
     197    <para>Compile the package:</para>
     198
     199<screen><userinput remap="make">make</userinput></screen>
     200
     201    <para>Install the package:</para>
     202
     203<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     204cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     205rm -rf DESTDIR</userinput></screen>
     206
     207  </sect2><!-- mx32 -->
     208
    129209  <sect2 role="content">
    130210    <title/>
  • chapter08/acl.xml

    rd7a9421 rdf462a9  
    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 Xz for compilation:</para>
     79
     80<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     81    --prefix=/usr         \
     82    --disable-static      \
     83    --libdir=&usr-lib-m32;   \
     84    --libexecdir=&usr-lib-m32;   \
     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-lib-m32;/* &usr-lib-m32;
     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 Xz for compilation:</para>
     111
     112<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     113    --prefix=/usr          \
     114    --disable-static       \
     115    --libdir=&usr-lib-mx32;   \
     116    --libexecdir=&usr-lib-mx32;   \
     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-lib-mx32;/* &usr-lib-mx32;
     127rm -rf DESTDIR</userinput></screen>
     128
     129  </sect2><!-- mx32 -->
    66130
    67131  <sect2 id="contents-acl" role="content">
  • chapter08/attr.xml

    rd7a9421 rdf462a9  
    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    --libdir=&usr-lib-m32; \
     84    --host=i686-pc-linux-gnu</userinput></screen>
     85
     86    <para>Compile the package:</para>
     87
     88<screen><userinput remap="make">make</userinput></screen>
     89
     90    <para>Install the package:</para>
     91
     92<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     93cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     94rm -rf DESTDIR</userinput></screen>
     95
     96  </sect2><!-- m32 -->
     97
     98  <!-- - - - - - - - - - -->
     99  <!-- Multilib - x32bit -->
     100  <!-- - - - - - - - - - -->
     101 
     102  <sect2 arch="ml_x32,ml_all" role="installation">
     103    <title>Installation of Attr - x32bit</title>
     104
     105    <para>Clean previous build:</para>
     106
     107<screen><userinput remap="pre">make distclean</userinput></screen>
     108
     109    <para>Prepare Attr for compilation:</para>
     110
     111<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     112    --prefix=/usr          \
     113    --disable-static       \
     114    --libdir=&usr-lib-mx32;   \
     115    --host=x86_64-pc-linux-gnux32</userinput></screen>
     116
     117    <para>Compile the package:</para>
     118
     119<screen><userinput remap="make">make</userinput></screen>
     120
     121    <para>Install the package:</para>
     122
     123<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     124cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     125rm -rf DESTDIR</userinput></screen>
     126
     127  </sect2><!-- mx32 -->
     128
    67129  <sect2 id="contents-attr" role="content">
    68130    <title>Contents of Attr</title>
  • chapter08/binutils.xml

    rd7a9421 rdf462a9  
    7171    <para>Prepare Binutils for compilation:</para>
    7272
    73 <screen><userinput remap="configure">../configure --prefix=/usr       \
     73<screen arch="default"><userinput remap="configure">../configure --prefix=/usr       \
    7474             --enable-gold       \
    7575             --enable-ld=default \
     
    7979             --enable-64-bit-bfd \
    8080             --with-system-zlib</userinput></screen>
     81<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr       \
     82             --enable-gold       \
     83             --enable-ld=default \
     84             --enable-plugins    \
     85             --enable-shared     \
     86             --disable-werror    \
     87             --enable-64-bit-bfd \
     88             --with-system-zlib  \
     89             --enable-multilib</userinput></screen>
     90
    8191    <variablelist>
    8292      <title>The meaning of the configure parameters:</title>
     
    110120           <para>Enables 64-bit support (on hosts with narrower word sizes).
    111121           May not be needed on 64-bit systems, but does no harm.</para>
     122        </listitem>
     123      </varlistentry>
     124
     125      <varlistentry arch="ml_32,ml_x32,ml_all">
     126        <term><parameter>--enable-multilib</parameter></term>
     127        <listitem>
     128          <para>Enables multilib support in bintutils.</para>
    112129        </listitem>
    113130      </varlistentry>
  • chapter08/bzip2.xml

    rd7a9421 rdf462a9  
    9999
    100100  </sect2>
     101
     102  <!-- - - - - - - - - - -->
     103  <!-- Multilib - 32bit  -->
     104  <!-- - - - - - - - - - -->
     105 
     106  <sect2 arch="ml_32,ml_all" role="installation">
     107    <title>Installation of Bzip2 - 32bit</title>
     108
     109    <para>Clean previous build:</para>
     110
     111<screen><userinput remap="pre">make clean</userinput></screen>
     112
     113    <para>Compile the package:</para>
     114
     115<screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so}
     116make -f Makefile-libbz2_so
     117make libbz2.a</userinput></screen>
     118
     119    <para>Install the package:</para>
     120
     121<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0.8
     122ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so
     123ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1
     124ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0
     125install -Dm644 libbz2.a &usr-lib-m32;/libbz2.a</userinput></screen>
     126
     127  </sect2><!-- m32 -->
     128
     129  <!-- - - - - - - - - - -->
     130  <!-- Multilib - x32bit -->
     131  <!-- - - - - - - - - - -->
     132 
     133  <sect2 arch="ml_x32,ml_all" role="installation">
     134    <title>Installation of Bzip2 - x32bit</title>
     135
     136    <para>Clean previous build:</para>
     137
     138<screen><userinput remap="pre">make clean</userinput></screen>
     139
     140    <para>Compile the package:</para>
     141
     142<screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so}
     143make -f Makefile-libbz2_so
     144make libbz2.a</userinput></screen>
     145
     146    <para>Install the package:</para>
     147
     148<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0.8
     149ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so
     150ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1
     151ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0
     152install -Dm644 libbz2.a &usr-lib-mx32;/libbz2.a</userinput></screen>
     153
     154  </sect2><!-- mx32 -->
    101155
    102156  <sect2 id="contents-bzip2" role="content">
  • chapter08/chapter08.xml

    rd7a9421 rdf462a9  
    3535  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/>
    3636  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/>
     37  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/>
    3738  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
    3839  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
  • chapter08/eudev.xml

    rd7a9421 rdf462a9  
    8484  </sect2>
    8585
     86  <!-- - - - - - - - - - -->
     87  <!-- Multilib - 32bit  -->
     88  <!-- - - - - - - - - - -->
     89 
     90  <sect2 arch="ml_32,ml_all" role="installation">
     91    <title>Installation of Eudev - 32bit</title>
     92
     93    <para>Clean previous build:</para>
     94
     95<screen><userinput remap="pre">make distclean</userinput></screen>
     96
     97    <para>Prepare Eudev for compilation:</para>
     98
     99<screen><userinput remap="configure">CC="gcc -m32" \
     100./configure --host=i686-pc-linux-gnu     \
     101            --prefix=/usr                \
     102            --bindir=/sbin               \
     103            --sbindir=/sbin              \
     104            --libdir=&usr-lib-m32;          \
     105            --sysconfdir=/etc            \
     106            --libexecdir=&lib-m32;          \
     107            --with-rootprefix=           \
     108            --with-rootlibdir=&usr-lib-m32; \
     109            --disable-manpages           \
     110            --disable-static             \
     111            --config-cache</userinput></screen>
     112
     113    <para>Compile the package:</para>
     114
     115<screen><userinput remap="make">make</userinput></screen>
     116
     117    <para>Install the package:</para>
     118
     119<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     120cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     121rm -rf DESTDIR</userinput></screen>
     122
     123  </sect2><!-- m32 -->
     124
     125  <!-- - - - - - - - - - -->
     126  <!-- Multilib - x32bit -->
     127  <!-- - - - - - - - - - -->
     128 
     129  <sect2 arch="ml_x32,ml_all" role="installation">
     130    <title>Installation of Eudev - x32bit</title>
     131
     132    <para>Clean previous build:</para>
     133
     134<screen><userinput remap="pre">make distclean</userinput></screen>
     135
     136    <para>Prepare Eudev for compilation:</para>
     137
     138<screen><userinput remap="configure">CC="gcc -mx32" \
     139./configure --prefix=/usr                \
     140            --bindir=/sbin               \
     141            --sbindir=/sbin              \
     142            --libdir=&usr-lib-mx32;          \
     143            --sysconfdir=/etc            \
     144            --libexecdir=&lib-mx32;         \
     145            --with-rootprefix=           \
     146            --with-rootlibdir=&usr-lib-mx32; \
     147            --disable-manpages           \
     148            --disable-static             \
     149            --config-cache</userinput></screen>
     150
     151    <para>Compile the package:</para>
     152
     153<screen><userinput remap="make">make</userinput></screen>
     154
     155    <para>Install the package:</para>
     156
     157<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     158cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     159rm -rf DESTDIR</userinput></screen>
     160
     161  </sect2><!-- mx32 -->
     162
    86163  <sect2 id="conf-eudev" role="configuration">
    87164    <title>Configuring Eudev</title>
  • chapter08/expat.xml

    rd7a9421 rdf462a9  
    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    --libdir=&usr-lib-m32;  \
     86    --host=i686-pc-linux-gnu</userinput></screen>
     87
     88    <para>Compile the package:</para>
     89
     90<screen><userinput remap="make">make</userinput></screen>
     91
     92    <para>Install the package:</para>
     93
     94<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     95cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     96rm -rf DESTDIR</userinput></screen>
     97
     98  </sect2><!-- m32 -->
     99
     100  <!-- - - - - - - - - - -->
     101  <!-- Multilib - x32bit -->
     102  <!-- - - - - - - - - - -->
     103 
     104  <sect2 arch="ml_x32,ml_all" role="installation">
     105    <title>Installation of Expat - x32bit</title>
     106
     107    <para>Clean previous build but keep precompiled doc because it
     108    cannot be rebuilt in this stage of the system:</para>
     109
     110<screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile
     111make clean</userinput></screen>
     112
     113    <para>Prepare Expat for compilation:</para>
     114
     115<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     116    --prefix=/usr         \
     117    --libdir=&usr-lib-mx32; \
     118    --host=x86_64-pc-linux-gnux32</userinput></screen>
     119
     120    <para>Compile the package:</para>
     121
     122<screen><userinput remap="make">make</userinput></screen>
     123
     124    <para>Install the package:</para>
     125
     126<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     127cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     128rm -rf DESTDIR</userinput></screen>
     129
     130  </sect2><!-- mx32 -->
     131
    68132  <sect2 id="contents-expat" role="content">
    69133    <title>Contents of Expat</title>
  • chapter08/file.xml

    rd7a9421 rdf462a9  
    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-lib-m32;   \
     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-lib-m32;/* &usr-lib-m32;
     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-lib-mx32;   \
     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-lib-mx32;/* &usr-lib-mx32;
     118rm -rf DESTDIR</userinput></screen>
     119
     120  </sect2><!-- mx32 -->
    62121
    63122  <sect2 id="contents-file" role="content">
  • chapter08/gcc.xml

    rd7a9421 rdf462a9  
    4242    <title>Installation of GCC</title>
    4343
    44     <para>If building on x86_64, change the default directory name for 64-bit
     44    <para arch="default">If building on x86_64, change the default directory name for 64-bit
    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=..\&lib-m32;$(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++ \
    6471             --disable-multilib       \
    6572             --disable-bootstrap      \
     73             --with-system-zlib</userinput></screen>
     74<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
     75  arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"
     76  arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
     77  arch="ml_all">mlist=m64,m32,mx32</userinput>
     78<userinput remap="configure">../configure --prefix=/usr               \
     79             LD=ld                       \
     80             --enable-languages=c,c++    \
     81             --enable-multilib           \
     82             --with-multilib-list=$mlist \
     83             --disable-bootstrap         \
    6684             --with-system-zlib</userinput></screen>
    6785
     
    260278SEARCH_DIR("/usr/lib");</computeroutput></screen>
    261279
    262    <para>A 32-bit system may see a few different directories. For example, here
     280   <para arch="default">A 32-bit system may see a few different directories. For example, here
    263281   is the output from an i686 machine:</para>
    264282
    265 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
     283<!-- not using entities here as the dir names has nothing to do with multilib -->
     284<screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
    266285SEARCH_DIR("/usr/local/lib32")
    267286SEARCH_DIR("/lib32")
  • chapter08/glibc.xml

    rd7a9421 rdf462a9  
    6868    <para>Prepare Glibc for compilation:</para>
    6969
    70 <screen><userinput remap="configure">../configure --prefix=/usr                            \
     70<screen arch="default"><userinput remap="configure">../configure --prefix=/usr                            \
    7171             --disable-werror                         \
    7272             --enable-kernel=&min-kernel;                      \
    7373             --enable-stack-protector=strong          \
    7474             --with-headers=/usr/include              \
     75             libc_cv_slibdir=/usr/lib</userinput></screen>
     76<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr                            \
     77             --disable-werror                         \
     78             --enable-kernel=&min-kernel;                      \
     79             --enable-stack-protector=strong          \
     80             --with-headers=/usr/include              \
     81             --enable-multi-arch                      \
    7582             libc_cv_slibdir=/usr/lib</userinput></screen>
    7683
     
    469476  </sect2>
    470477
     478  <!-- - - - - - - - - - -->
     479  <!-- Multilib - 32bit  -->
     480  <!-- - - - - - - - - - -->
     481  <sect2 arch="ml_32,ml_all">
     482    <title>Building Glibc - 32bit</title>
     483
     484    <para>Now recompile for m32. The extracted source can be
     485    reused but needs to cleaned before installing the m32
     486    version of Glibc.</para>
     487
     488    <para>Clear the build directory and remove artefacts from
     489    previous build:</para>
     490     
     491<screen><userinput remap="pre">rm -rf ./*
     492find .. -name "*.a" -delete</userinput></screen>
     493
     494    <para>Configure Glibc for m32 with the following commands:</para>
     495
     496<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \
     497../configure                             \
     498      --prefix=/usr                      \
     499      --host=i686-pc-linux-gnu           \
     500      --build=$(../scripts/config.guess) \
     501      --enable-kernel=&min-kernel;                \
     502      --with-headers=/usr/include        \
     503      --enable-multi-arch                \
     504      --libdir=&usr-lib-m32;                \
     505      --libexecdir=&usr-lib-m32;            \
     506      libc_cv_slibdir=&usr-lib-m32;</userinput></screen>
     507
     508    <para>Compile the package:</para>
     509
     510<screen><userinput remap="make">make</userinput></screen>
     511
     512    <para>Install the package:</para>
     513
     514<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     515cp -a DESTDIR&lib-m32;/*     &lib-m32;/
     516cp -a DESTDIR&usr-lib-m32;/* &usr-lib-m32;/
     517install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
     518               /usr/include/gnu/
     519ln -svf ..&lib-m32;/ld-linux.so.2 /lib/ld-linux.so.2</userinput></screen>
     520
     521    <para>Add the library name to the dynamic loader config:</para>
     522
     523<screen role="install"><userinput>echo "&usr-lib-m32;" &gt;&gt; /etc/ld.so.conf</userinput></screen>
     524
     525    <caution>
     526      <para>At this point, it is imperative to stop and ensure that the basic
     527      functions (compiling and linking) of the new toolchain are working as
     528      expected. To perform a sanity check, run the following commands:</para>
     529
     530<screen><userinput>echo 'int main(){}' &gt; dummy.c
     531gcc -m32 dummy.c
     532readelf -l a.out | grep '/ld-linux'</userinput></screen>
     533
     534      <para>If everything is working correctly, there should be no errors,
     535      and the output of the last command will be of the form:</para>
     536
     537<screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>
     538
     539      <para>If the output is not shown as above or there was no output at all,
     540      then something is wrong. Investigate and retrace the steps to find out
     541      where the problem is and correct it. This issue must be resolved before
     542      continuing on.</para>
     543
     544      <para>Once all is well, clean up the test files:</para>
     545
     546<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     547
     548    </caution>
     549
     550  </sect2><!-- m32 -->
     551
     552  <!-- - - - - - - - - - -->
     553  <!-- Multilib - x32bit -->
     554  <!-- - - - - - - - - - -->
     555 
     556  <sect2 arch="ml_x32,ml_all">
     557    <title>Building Glibc - x32bit</title>
     558
     559    <para>Now recompile for mx32. The extracted source can be
     560    reused but needs to cleaned before installing the mx32
     561    version of Glibc.</para>
     562
     563    <para>Clear the build directory and remove artefacts from
     564    previous build:</para>
     565     
     566<screen><userinput remap="pre">rm -rf ./*
     567find .. -name "*.a" -delete</userinput></screen>
     568
     569    <para>Configure Glibc for mx32 with the following commands:</para>
     570
     571<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \
     572../configure                             \
     573      --prefix=/usr                      \
     574      --host=x86_64-pc-linux-gnux32      \
     575      --build=$(../scripts/config.guess) \
     576      --enable-kernel=&min-kernel;                \
     577      --with-headers=$LFS/usr/include    \
     578      --enable-multi-arch                \
     579      --libdir=&usr-lib-mx32;               \
     580      --libexecdir=&usr-lib-mx32;           \
     581      libc_cv_slibdir=&lib-mx32;</userinput></screen>
     582
     583    <para>Compile the package:</para>
     584
     585<screen><userinput remap="make">make</userinput></screen>
     586
     587    <para>Install the package:</para>
     588
     589<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     590cp -a DESTDIR&lib-mx32;/*     &lib-mx32;/
     591cp -a DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;/
     592install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
     593               /usr/include/gnu/
     594ln -svf ..&lib-mx32;/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2</userinput></screen>
     595
     596    <para>Add the library name to the dynamic loader config:</para>
     597
     598<screen role="install"><userinput>echo "&usr-lib-mx32;" &gt;&gt; /etc/ld.so.conf</userinput></screen>
     599
     600    <caution>
     601      <para>At this point, it is imperative to stop and ensure that the basic
     602      functions (compiling and linking) of the new toolchain are working as
     603      expected. To perform a sanity check, run the following commands:</para>
     604
     605<screen><userinput>echo 'int main(){}' &gt; dummy.c
     606gcc -mx32 dummy.c
     607readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
     608
     609      <para>If everything is working correctly, there should be no errors,
     610      and the output of the last command will be of the form:</para>
     611
     612<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
     613
     614      <para>If the output is not shown as above or there was no output at all,
     615      then something is wrong. Investigate and retrace the steps to find out
     616      where the problem is and correct it. This issue must be resolved before
     617      continuing on.</para>
     618
     619      <para>Once all is well, clean up the test files:</para>
     620
     621<screen><userinput>rm -v dummy.c a.out</userinput></screen>
     622
     623    </caution>
     624
     625  </sect2><!-- mx32 -->
     626
    471627  <sect2 id="contents-glibc" role="content">
    472628    <title>Contents of Glibc</title>
  • chapter08/gmp.xml

    rd7a9421 rdf462a9  
    121121  </sect2>
    122122
     123  <!-- - - - - - - - - - -->
     124  <!-- Multilib - 32bit  -->
     125  <!-- - - - - - - - - - -->
     126
     127  <sect2 arch="ml_32,ml_all" role="installation">
     128    <title>Installation of GMP - 32bit</title>
     129
     130    <para>Clean previous build:</para>
     131
     132<screen><userinput remap="pre">make distclean</userinput></screen>
     133
     134    <para>Generic libraries can be created by running
     135    the following:</para>
     136
     137<screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess
     138cp -v configfsf.sub   config.sub</userinput></screen>
     139
     140    <para>Prepare GMP for compilation:</para>
     141
     142<screen><userinput remap="configure">ABI="32" \
     143CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
     144CXXFLAGS="$CFLAGS" \
     145PKG_CONFIG_PATH="&usr-lib-m32;/pkgconfig" \
     146./configure             \
     147    --prefix=/usr       \
     148    --disable-static    \
     149    --enable-cxx        \
     150    --libdir=&usr-lib-m32; \
     151    --includedir=&usr-inc-m32;/gmp</userinput></screen>
     152
     153    <variablelist>
     154      <title>The meaning of the new configure options:</title>
     155
     156      <varlistentry>
     157        <term><parameter>--includedir=&usr-inc-m32;/gmp</parameter></term>
     158        <listitem>
     159          <para>Some definitions in gmp.h differs for each arch but
     160          has same name. Therefore, the headers must be separated from
     161          each other.</para>
     162        </listitem>
     163      </varlistentry>
     164
     165    </variablelist>
     166
     167    <para>Compile the package:</para>
     168
     169<screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile
     170make</userinput></screen>
     171
     172    <important>
     173      <para>The test suite for GMP in this section is considered critical.
     174      Do not skip it under any circumstances.</para>
     175    </important>
     176
     177    <para>Test the results:</para>
     178
     179<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
     180 
     181    <para>Ensure that all 197 tests in the test suite passed.
     182    Check the results by issuing the following command:</para>
     183
     184<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
     185
     186    <para>Install the package:</para>
     187
     188<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     189cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     190cp -Rv DESTDIR&usr-inc-m32;/* &usr-inc-m32;/
     191rm -rf DESTDIR</userinput></screen>
     192
     193  </sect2><!-- m32 -->
     194
     195  <!-- - - - - - - - - - -->
     196  <!-- Multilib - x32bit -->
     197  <!-- - - - - - - - - - -->
     198
     199  <sect2 arch="ml_x32,ml_all" role="installation">
     200    <title>Installation of GMP - x32-bit</title>
     201
     202    <para>Clean previous build:</para>
     203
     204<screen><userinput remap="pre">make distclean</userinput></screen>
     205
     206    <para>Generic libraries can be created by running
     207    the following:</para>
     208
     209<screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess
     210cp -v configfsf.sub   config.sub</userinput></screen>
     211
     212    <para>Prepare GMP for compilation:</para>
     213
     214<screen><userinput remap="configure">ABI="x32" \
     215CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \
     216CXXFLAGS="$CFLAGS" \
     217PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \
     218./configure              \
     219    --prefix=/usr        \
     220    --disable-static     \
     221    --enable-cxx         \
     222    --libdir=&usr-lib-mx32; \
     223    --includedir=&usr-inc-mx32;/gmp</userinput></screen>
     224
     225    <para>Compile the package:</para>
     226
     227<screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile
     228make</userinput></screen>
     229
     230    <important>
     231      <para>The test suite for GMP in this section is considered critical.
     232      Do not skip it under any circumstances.</para>
     233    </important>
     234
     235    <para>Test the results:</para>
     236
     237<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
     238 
     239    <para>Ensure that all 197 tests in the test suite passed.
     240    Check the results by issuing the following command:</para>
     241
     242<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
     243
     244    <para>Install the package:</para>
     245
     246<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     247cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     248cp -Rv DESTDIR&usr-inc-mx32;/* &usr-inc-mx32;/
     249rm -rf DESTDIR</userinput></screen>
     250
     251  </sect2><!-- mx32 -->
     252
    123253  <sect2 id="contents-gmp" role="content">
    124254    <title>Contents of GMP</title>
  • chapter08/kmod.xml

    rd7a9421 rdf462a9  
    8383
    8484  </sect2>
     85
     86  <!-- - - - - - - - - - -->
     87  <!-- Multilib - 32bit  -->
     88  <!-- - - - - - - - - - -->
     89 
     90  <sect2 arch="ml_32,ml_all" role="installation">
     91    <title>Installation of Kmod - 32bit</title>
     92
     93    <para>Clean previous build but keep man pages as they cannot
     94    be recreated since xsltproc isn't installed yet:</para>
     95
     96<screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile
     97make clean</userinput></screen>
     98
     99    <para>Prepare Kmod for compilation:</para>
     100
     101<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     102    --prefix=/usr                 \
     103    --bindir=/bin                 \
     104    --libdir=&usr-lib-m32;          \
     105    --sysconfdir=/etc             \
     106    --with-xz                     \
     107    --with-zlib                   \
     108    --host=i686-pc-linux-gnu      \
     109    --with-rootlibdir=&usr-lib-m32;</userinput></screen>
     110
     111    <para>Compile the package:</para>
     112
     113<screen><userinput remap="make">make</userinput></screen>
     114
     115    <para>Install the package:</para>
     116
     117<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     118cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     119rm -rf DESTDIR</userinput></screen>
     120
     121  </sect2><!-- m32 -->
     122
     123  <!-- - - - - - - - - - -->
     124  <!-- Multilib - x32bit -->
     125  <!-- - - - - - - - - - -->
     126 
     127  <sect2 arch="ml_x32,ml_all" role="installation">
     128    <title>Installation of Kmod - x32bit</title>
     129
     130    <para>Clean previous build but keep man pages as they cannot
     131    be recreated since xsltproc isn't installed yet:</para>
     132
     133<screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile
     134make clean</userinput></screen>
     135
     136    <para>Prepare Kmod for compilation:</para>
     137
     138<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     139    --prefix=/usr                 \
     140    --bindir=/bin                 \
     141    --libdir=&usr-lib-mx32;          \
     142    --sysconfdir=/etc             \
     143    --with-xz                     \
     144    --with-zlib                   \
     145    --host=x86_64-pc-linux-gnux32 \
     146    --with-rootlibdir=&usr-lib-mx32;</userinput></screen>
     147
     148    <para>Compile the package:</para>
     149
     150<screen><userinput remap="make">make</userinput></screen>
     151
     152    <para>Install the package:</para>
     153
     154<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     155cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     156rm -rf DESTDIR</userinput></screen>
     157
     158  </sect2><!-- mx32 -->
    85159
    86160  <sect2 id="contents-kmod" role="content">
  • chapter08/libcap.xml

    rd7a9421 rdf462a9  
    8080  </sect2>
    8181
     82  <!-- - - - - - - - - - -->
     83  <!-- Multilib - 32bit  -->
     84  <!-- - - - - - - - - - -->
     85 
     86  <sect2 arch="ml_32,ml_all" role="installation">
     87    <title>Installation of Libcap - 32bit</title>
     88
     89    <para>Clean previous build:</para>
     90
     91<screen><userinput remap="pre">make distclean</userinput></screen>
     92
     93    <para>Compile the package:</para>
     94
     95<screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen>
     96
     97    <para>Install the package:</para>
     98
     99<screen><userinput remap="install">make lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install
     100cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     101sed -e "s|^libdir=.*|libdir=&usr-lib-m32;|" -i &usr-lib-m32;/pkgconfig/lib{cap,psx}.pc
     102chmod -v 755 &usr-lib-m32;/libcap.so.&libcap-version;
     103rm -rf DESTDIR</userinput></screen>
     104
     105  </sect2><!-- m32 -->
     106
     107  <!-- - - - - - - - - - -->
     108  <!-- Multilib - x32bit -->
     109  <!-- - - - - - - - - - -->
     110 
     111  <sect2 arch="ml_x32,ml_all" role="installation">
     112    <title>Installation of Libcap - x32bit</title>
     113
     114    <para>Clean previous build:</para>
     115
     116<screen><userinput remap="pre">make distclean</userinput></screen>
     117
     118    <para>Compile the package:</para>
     119
     120<screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>
     121
     122    <para>Install the package:</para>
     123
     124<screen><userinput remap="install">make lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install
     125cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     126sed -e "s|^libdir=.*|libdir=&usr-lib-mx32;|" -i &usr-lib-mx32;/pkgconfig/lib{cap,psx}.pc
     127chmod -v 755 &usr-lib-mx32;/libcap.so.&libcap-version;
     128rm -rf DESTDIR</userinput></screen>
     129
     130  </sect2><!-- mx32 -->
     131
    82132  <sect2 id="contents-libcap" role="content">
    83133    <title>Contents of Libcap</title>
  • chapter08/libelf.xml

    rd7a9421 rdf462a9  
    6969  </sect2>
    7070
     71  <!-- - - - - - - - - - -->
     72  <!-- Multilib - 32bit  -->
     73  <!-- - - - - - - - - - -->
     74 
     75  <sect2 arch="ml_32,ml_all" role="installation">
     76    <title>Installation of Libelf - 32bit</title>
     77
     78    <para>Clean previous build:</para>
     79
     80<screen><userinput remap="pre">make distclean</userinput></screen>
     81
     82    <para>Prepare Libtool for compilation:</para>
     83
     84<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     85    --prefix=/usr            \
     86    --libdir=&usr-lib-m32;     \
     87    --host=i686-pc-linux-gnu \
     88    --disable-debuginfod     \
     89    --enable-libdebuginfod=dummy</userinput></screen>
     90
     91    <para>Compile the package:</para>
     92
     93<screen><userinput remap="make">make</userinput></screen>
     94
     95    <para>Install the package:</para>
     96
     97<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install
     98install -vDm644 config/libelf.pc DESTDIR&usr-lib-m32;/pkgconfig/libelf.pc
     99cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     100rm -rf DESTDIR</userinput></screen>
     101
     102  </sect2><!-- m32 -->
     103
     104  <!-- - - - - - - - - - -->
     105  <!-- Multilib - x32bit -->
     106  <!-- - - - - - - - - - -->
     107 
     108  <sect2 arch="ml_x32,ml_all" role="installation">
     109    <title>Installation of Libelf - x32bit</title>
     110
     111    <para>Clean previous build:</para>
     112
     113<screen><userinput remap="pre">make distclean</userinput></screen>
     114
     115    <para>Prepare Libtool for compilation:</para>
     116
     117<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     118    --prefix=/usr                 \
     119    --libdir=&usr-lib-m32;           \
     120    --host=x86_64-pc-linux-gnux32 \
     121    --disable-debuginfod          \
     122    --enable-libdebuginfod=dummy</userinput></screen>
     123
     124    <para>Compile the package:</para>
     125
     126<screen><userinput remap="make">make</userinput></screen>
     127
     128    <para>Install the package:</para>
     129
     130<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install
     131install -vDm644 config/libelf.pc DESTDIR&usr-lib-mx32;/pkgconfig/libelf.pc
     132cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     133rm -rf DESTDIR</userinput></screen>
     134
     135  </sect2><!-- mx32 -->
     136
    71137  <sect2 id="contents-elfutils" role="content">
    72138    <title>Contents of Libelf</title>
  • chapter08/libffi.xml

    rd7a9421 rdf462a9  
    8888  </sect2>
    8989
     90  <!-- - - - - - - - - - -->
     91  <!-- Multilib - 32bit  -->
     92  <!-- - - - - - - - - - -->
     93 
     94  <sect2 arch="ml_32,ml_all" role="installation">
     95    <title>Installation of Libffi - 32bit</title>
     96
     97    <para>Clean previous build:</para>
     98
     99<screen><userinput remap="pre">make distclean</userinput></screen>
     100
     101    <para>Prepare Libffi for compilation:</para>
     102
     103<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \
     104    --prefix=/usr            \
     105    --disable-static         \
     106    --libdir=&usr-lib-m32;     \
     107    --with-gcc-arch=i686     \
     108    --host=i686-pc-linux-gnu</userinput></screen>
     109
     110    <para>Compile the package:</para>
     111
     112<screen><userinput remap="make">make</userinput></screen>
     113
     114    <para>To test the results, issue:</para>
     115
     116<screen><userinput remap="test">make check</userinput></screen>
     117
     118    <para>Install the package:</para>
     119
     120<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     121cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     122rm -rf DESTDIR</userinput></screen>
     123
     124  </sect2><!-- m32 -->
     125
     126  <!-- - - - - - - - - - -->
     127  <!-- Multilib - x32bit -->
     128  <!-- - - - - - - - - - -->
     129 
     130  <sect2 arch="ml_x32,ml_all" role="installation">
     131    <title>Installation of Libffi - x32bit</title>
     132
     133    <para>Clean previous build:</para>
     134
     135<screen><userinput remap="pre">make distclean</userinput></screen>
     136
     137    <para>Prepare Libffi for compilation:</para>
     138
     139<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \
     140    --prefix=/usr            \
     141    --disable-static         \
     142    --libdir=&usr-lib-mx32;     \
     143    --with-gcc-arch=x86_64   \
     144    --host=x86_64-unknown-linux-gnux32</userinput></screen>
     145
     146    <para>Compile the package:</para>
     147
     148<screen><userinput remap="make">make</userinput></screen>
     149
     150    <para>To test the results, issue:</para>
     151
     152<screen><userinput remap="test">make check</userinput></screen>
     153
     154    <para>Install the package:</para>
     155
     156<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     157cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     158rm -rf DESTDIR</userinput></screen>
     159
     160  </sect2><!-- mx32 -->
     161
    90162  <sect2 id="contents-libffi" role="content">
    91163    <title>Contents of Libffi</title>
  • chapter08/libtool.xml

    rd7a9421 rdf462a9  
    7878  </sect2>
    7979
     80  <!-- - - - - - - - - - -->
     81  <!-- Multilib - 32bit  -->
     82  <!-- - - - - - - - - - -->
     83 
     84  <sect2 arch="ml_32,ml_all" role="installation">
     85    <title>Installation of Libtool - 32bit</title>
     86
     87    <para>Clean previous build:</para>
     88
     89<screen><userinput remap="pre">make distclean</userinput></screen>
     90
     91    <para>Prepare Libtool for compilation:</para>
     92
     93<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     94    --prefix=/usr         \
     95    --libdir=&usr-lib-m32;  \
     96    --host=i686-pc-linux-gnu</userinput></screen>
     97
     98    <para>Compile the package:</para>
     99
     100<screen><userinput remap="make">make</userinput></screen>
     101
     102    <para>Install the package:</para>
     103
     104<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     105cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     106rm -rf DESTDIR</userinput></screen>
     107
     108  </sect2><!-- m32 -->
     109
     110  <!-- - - - - - - - - - -->
     111  <!-- Multilib - x32bit -->
     112  <!-- - - - - - - - - - -->
     113 
     114  <sect2 arch="ml_x32,ml_all" role="installation">
     115    <title>Installation of Libtool - x32bit</title>
     116
     117    <para>Clean previous build:</para>
     118
     119<screen><userinput remap="pre">make distclean</userinput></screen>
     120
     121    <para>Prepare Libtool for compilation:</para>
     122
     123<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     124    --prefix=/usr         \
     125    --libdir=&usr-lib-mx32;  \
     126    --host=x86_64-pc-linux-gnux32</userinput></screen>
     127
     128    <para>Compile the package:</para>
     129
     130<screen><userinput remap="make">make</userinput></screen>
     131
     132    <para>Install the package:</para>
     133
     134<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     135cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     136rm -rf DESTDIR</userinput></screen>
     137
     138  </sect2><!-- mx32 -->
    80139
    81140  <sect2 id="contents-libtool" role="content">
  • chapter08/ncurses.xml

    rd7a9421 rdf462a9  
    150150
    151151  </sect2>
     152
     153  <!-- - - - - - - - - - -->
     154  <!-- Multilib - 32bit  -->
     155  <!-- - - - - - - - - - -->
     156  <sect2 arch="ml_32,ml_all">
     157    <title>Building Ncurses - 32bit</title>
     158
     159    <para>Clean previous build:</para>
     160
     161<screen><userinput remap="pre">make distclean</userinput></screen>
     162
     163    <para>Prepare Ncurses for compilation:</para>
     164
     165<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \
     166./configure --prefix=/usr           \
     167            --host=i686-pc-linux-gnu \
     168            --libdir=&usr-lib-m32;     \
     169            --mandir=/usr/share/man \
     170            --with-shared           \
     171            --without-debug         \
     172            --without-normal        \
     173            --enable-pc-files       \
     174            --enable-widec          \
     175            --with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen>
     176
     177    <para>Compile the package:</para>
     178
     179<screen><userinput remap="make">make</userinput></screen>
     180
     181    <para>Install the package:</para>
     182
     183<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     184mkdir -p DESTDIR&usr-lib-m32;/pkgconfig
     185for lib in ncurses form panel menu ; do
     186    rm -vf                    DESTDIR&usr-lib-m32;/lib${lib}.so
     187    echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-m32;/lib${lib}.so
     188    ln -svf ${lib}w.pc        DESTDIR&usr-lib-m32;/pkgconfig/$lib.pc
     189done
     190rm -vf                     DESTDIR&usr-lib-m32;/libcursesw.so
     191echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-m32;/libcursesw.so
     192ln -sfv libncurses.so      DESTDIR&usr-lib-m32;/libcurses.so
     193cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     194rm -rf DESTDIR</userinput></screen>
     195
     196  </sect2><!-- m32 -->
     197
     198  <!-- - - - - - - - - - -->
     199  <!-- Multilib - x32bit -->
     200  <!-- - - - - - - - - - -->
     201  <sect2 arch="ml_x32,ml_all">
     202    <title>Building Ncurses - x32bit</title>
     203
     204    <para>Clean previous build:</para>
     205
     206<screen><userinput remap="pre">make distclean</userinput></screen>
     207
     208    <para>Prepare Ncurses for compilation:</para>
     209
     210<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \
     211./configure --prefix=/usr           \
     212            --host=x86_64-pc-linux-gnux32 \
     213            --libdir=&usr-lib-mx32;    \
     214            --mandir=/usr/share/man \
     215            --with-shared           \
     216            --without-debug         \
     217            --without-normal        \
     218            --enable-pc-files       \
     219            --enable-widec          \
     220            --with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen>
     221
     222    <para>Compile the package:</para>
     223
     224<screen><userinput remap="make">make</userinput></screen>
     225
     226    <para>Install the package:</para>
     227
     228<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     229mkdir -p DESTDIR&usr-lib-mx32;/pkgconfig
     230for lib in ncurses form panel menu ; do
     231    rm -vf                    DESTDIR&usr-lib-mx32;/lib${lib}.so
     232    echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-mx32;/lib${lib}.so
     233    ln -svf ${lib}w.pc        DESTDIR&usr-lib-mx32;/pkgconfig/$lib.pc
     234done
     235rm -vf                     DESTDIR&usr-lib-mx32;/libcursesw.so
     236echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-mx32;/libcursesw.so
     237ln -sfv libncurses.so      DESTDIR&usr-lib-mx32;/libcurses.so
     238cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     239rm -rf DESTDIR</userinput></screen>
     240
     241  </sect2><!-- mx32 -->
    152242
    153243  <sect2 id="contents-ncurses" role="content">
  • chapter08/openssl.xml

    rd7a9421 rdf462a9  
    7979
    8080  </sect2>
     81
     82  <!-- - - - - - - - - - -->
     83  <!-- Multilib - 32bit  -->
     84  <!-- - - - - - - - - - -->
     85 
     86  <sect2 arch="ml_32,ml_all" role="installation">
     87    <title>Installation of OpenSSL - 32bit</title>
     88
     89    <para>Clean previous build:</para>
     90
     91<screen><userinput remap="pre">make distclean</userinput></screen>
     92
     93    <para>Prepare OpenSSL for compilation:</para>
     94
     95<screen><userinput remap="configure">MACHINE="i686"             \
     96CC="gcc -m32 -march=i686"  \
     97CXX="g++ -m32 -march=i686" \
     98    ./config               \
     99    --prefix=/usr          \
     100    --libdir=&usr-lib-m32;    \
     101    --openssldir=/etc/ssl  \
     102    --libdir=lib32         \
     103    shared                 \
     104    zlib-dynamic</userinput></screen>
     105
     106    <para>Compile the package:</para>
     107
     108<screen><userinput remap="make">make</userinput></screen>
     109
     110    <para>Install the package:</para>
     111
     112<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     113cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     114rm -rf DESTDIR</userinput></screen>
     115
     116  </sect2><!-- m32 -->
     117
     118  <!-- - - - - - - - - - -->
     119  <!-- Multilib - x32bit -->
     120  <!-- - - - - - - - - - -->
     121 
     122  <sect2 arch="ml_x32,ml_all" role="installation">
     123    <title>Installation of OpenSSL - x32bit</title>
     124
     125    <para>Clean previous build:</para>
     126
     127<screen><userinput remap="pre">make distclean</userinput></screen>
     128
     129    <para>Prepare OpenSSL for compilation:</para>
     130
     131<screen><userinput remap="configure">MACHINE="x86_64"          \
     132CC="gcc -mx32"            \
     133CXX="g++ -mx32"           \
     134    ./config              \
     135    --prefix=/usr         \
     136    --libdir=&usr-lib-mx32;  \
     137    --openssldir=/etc/ssl \
     138    --libdir=libx32       \
     139    shared                \
     140    zlib-dynamic</userinput></screen>
     141
     142    <para>Compile the package:</para>
     143
     144<screen><userinput remap="make">make</userinput></screen>
     145
     146    <para>Install the package:</para>
     147
     148<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     149cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     150rm -rf DESTDIR</userinput></screen>
     151
     152  </sect2><!-- mx32 -->
    81153
    82154  <sect2 id="contents-openssl" role="content">
  • chapter08/readline.xml

    rd7a9421 rdf462a9  
    101101  </sect2>
    102102
     103  <!-- - - - - - - - - - -->
     104  <!-- Multilib - 32bit  -->
     105  <!-- - - - - - - - - - -->
     106 
     107  <sect2 arch="ml_32,ml_all" role="installation">
     108    <title>Installation of Readline - 32bit</title>
     109
     110    <para>Clean previous build:</para>
     111
     112<screen><userinput remap="pre">make distclean</userinput></screen>
     113
     114    <para>Prepare Readline for compilation:</para>
     115
     116<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     117    --prefix=/usr                     \
     118    --libdir=&usr-lib-m32;               \
     119    --disable-static                  \
     120    --host=i686-pc-linux-gnu</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-lib-m32;/* &usr-lib-m32;
     130rm -rf DESTDIR</userinput></screen>
     131
     132  </sect2><!-- m32 -->
     133
     134  <!-- - - - - - - - - - -->
     135  <!-- Multilib - x32bit -->
     136  <!-- - - - - - - - - - -->
     137 
     138  <sect2 arch="ml_x32,ml_all" role="installation">
     139    <title>Installation of Readline - x32bit</title>
     140
     141    <para>Clean previous build:</para>
     142
     143<screen><userinput remap="pre">make distclean</userinput></screen>
     144
     145    <para>Prepare Readline for compilation:</para>
     146
     147<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     148    --prefix=/usr          \
     149    --libdir=&usr-lib-mx32;   \
     150    --disable-static       \
     151    --host=x86_64-pc-linux-gnux32</userinput></screen>
     152
     153    <para>Compile the package:</para>
     154
     155<screen><userinput remap="make">make</userinput></screen>
     156
     157    <para>Install the package:</para>
     158
     159<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     160cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     161rm -rf DESTDIR</userinput></screen>
     162
     163  </sect2><!-- mx32 -->
     164
    103165  <sect2 id="contents-readline" role="content">
    104166    <title>Contents of Readline</title>
  • chapter08/revisedchroot.xml

    rd7a9421 rdf462a9  
    4444  To remove them, run:</para>
    4545
    46 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen>
     46<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all">
     47find &usr-lib-m32; -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
     48find &usr-lib-mx32; -name \*.la -delete</userinput></screen>
    4749
    4850   <para>For more information about libtool archive files, see the <ulink
  • chapter08/strippingagain.xml

    rd7a9421 rdf462a9  
    3939
    4040cd /usr/lib
    41 
    4241for LIB in $save_usrlib; do
    4342    objcopy --only-keep-debug $LIB $LIB.dbg
    4443    strip --strip-unneeded $LIB
    4544    objcopy --add-gnu-debuglink=$LIB.dbg $LIB
    46 done
     45done</userinput>
     46<userinput arch="ml_32,ml_all">
     47cd &usr-lib-m32;
     48for LIB in $save_usrlib; do
     49    objcopy --only-keep-debug $LIB $LIB.dbg
     50    strip --strip-unneeded $LIB
     51    objcopy --add-gnu-debuglink=$LIB.dbg $LIB
     52done</userinput>
     53<userinput arch="ml_x32,ml_all">
     54cd &usr-lib-mx32;
     55for LIB in $save_usrlib; do
     56    objcopy --only-keep-debug $LIB $LIB.dbg
     57    strip --strip-unneeded $LIB
     58    objcopy --add-gnu-debuglink=$LIB.dbg $LIB
     59done</userinput><userinput>
    4760
    4861unset LIB save_usrlib</userinput></screen>
     
    5770  <para>Now the binaries and libraries can be stripped:</para>
    5871<screen><userinput>find /usr/lib -type f -name \*.a \
    59    -exec strip --strip-debug {} ';'
     72   -exec strip --strip-debug {} ';'</userinput>
     73<userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.a \
     74   -exec strip --strip-debug {} ';'</userinput>
     75<userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.a \
     76   -exec strip --strip-debug {} ';'</userinput><userinput>
    6077
    6178find /usr/lib -type f -name \*.so* ! -name \*dbg \
    62    -exec strip --strip-unneeded {} ';'
     79   -exec strip --strip-unneeded {} ';'</userinput>
     80<userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.so* ! -name \*dbg \
     81   -exec strip --strip-unneeded {} ';'</userinput>
     82<userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.so* ! -name \*dbg \
     83   -exec strip --strip-unneeded {} ';'</userinput><userinput>
    6384
    6485find /usr/{bin,sbin,libexec} -type f \
  • chapter08/systemd.xml

    rd7a9421 rdf462a9  
    212212
    213213  </sect2>
     214
     215  <!-- - - - - - - - - - -->
     216  <!-- Multilib - 32bit  -->
     217  <!-- - - - - - - - - - -->
     218 
     219  <sect2 arch="ml_32,ml_all" role="installation">
     220    <title>Installation of systemd - 32-bit</title>
     221
     222    <para>Clean previous build:</para>
     223
     224<screen><userinput remap="pre">rm -rf *</userinput></screen>
     225
     226    <para>Create a symlink to work around missing xsltproc:</para>
     227
     228<!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->
     229<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
     230
     231<!-- with cross-LFS we have util-linux in place:
     232    <para>Because we have not yet installed the final version of Util-Linux,
     233    create links to the libraries in the approprite location:</para>
     234
     235<screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do
     236    ln -sf $file /usr/lib32/
     237done</userinput></screen>
     238-->
     239
     240    <para>Prepare systemd for compilation:</para>
     241
     242    <screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-m32;/pkgconfig" \
     243CC="gcc -m32 -march=i686"              \
     244CXX="g++ -m32 -march=i686"             \
     245LANG=en_US.UTF-8                       \
     246meson --prefix=/usr                    \
     247      --sysconfdir=/etc                \
     248      --localstatedir=/var             \
     249      -Dblkid=true                     \
     250      -Dbuildtype=release              \
     251      -Ddefault-dnssec=no              \
     252      -Dfirstboot=false                \
     253      -Dinstall-tests=false            \
     254      -Dkill-path=/bin/kill            \
     255      -Dkmod-path=/bin/kmod            \
     256      -Dldconfig=false                 \
     257      -Dmount-path=/bin/mount          \
     258      -Drootprefix=                    \
     259      -Drootlibdir=&usr-lib-m32;          \
     260      -Dsplit-usr=true                 \
     261      -Dsulogin-path=/sbin/sulogin     \
     262      -Dsysusers=false                 \
     263      -Dumount-path=/bin/umount        \
     264      -Db_lto=false                    \
     265      ..</userinput></screen>
     266
     267    <para>Compile the package:</para>
     268
     269<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
     270
     271    <para>Install the package:</para>
     272
     273<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
     274cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     275rm -rf DESTDIR
     276rm -f /usr/bin/xsltproc</userinput></screen>
     277
     278  </sect2><!-- m32 -->
     279
     280  <!-- - - - - - - - - - -->
     281  <!-- Multilib - x32bit -->
     282  <!-- - - - - - - - - - -->
     283 
     284  <sect2 arch="ml_x32,ml_all" role="installation">
     285    <title>Installation of systemd - x32-bit</title>
     286
     287    <para>Clean previous build:</para>
     288
     289<screen><userinput remap="pre">rm -rf *</userinput></screen>
     290
     291    <para>Create a symlink to work around missing xsltproc:</para>
     292
     293<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
     294
     295    <para>Fix an issue on x32:</para>
     296
     297<screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c
     298sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>
     299
     300    <para>Prepare systemd for compilation:</para>
     301
     302<screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \
     303CC="gcc -mx32"                          \
     304CXX="g++ -mx32"                         \
     305CFLAGS+="-Wno-error=shift-overflow"     \
     306CXXFLAGS+="-Wno-error=shift-overflow"   \
     307LANG=en_US.UTF-8                        \
     308meson --prefix=/usr                     \
     309      --sysconfdir=/etc                 \
     310      --localstatedir=/var              \
     311      -Dblkid=true                      \
     312      -Dbuildtype=release               \
     313      -Ddefault-dnssec=no               \
     314      -Dfirstboot=false                 \
     315      -Dinstall-tests=false             \
     316      -Dkill-path=/bin/kill             \
     317      -Dkmod-path=/bin/kmod             \
     318      -Dldconfig=false                  \
     319      -Dmount-path=/bin/mount           \
     320      -Drootprefix=                     \
     321      -Drootlibdir=&usr-lib-mx32;          \
     322      -Dsplit-usr=true                  \
     323      -Dsulogin-path=/sbin/sulogin      \
     324      -Dsysusers=false                  \
     325      -Dumount-path=/bin/umount         \
     326      -Db_lto=false                     \
     327      ..</userinput></screen>
     328
     329    <para>Compile the package:</para>
     330
     331<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
     332
     333    <para>Install the package:</para>
     334
     335<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
     336cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     337rm -rf DESTDIR
     338rm -f /usr/bin/xsltproc</userinput></screen>
     339
     340  </sect2><!-- mx32 -->
    214341
    215342  <sect2 id="contents-systemd" role="content">
  • chapter08/util-linux.xml

    rd7a9421 rdf462a9  
    104104
    105105  </sect2>
     106
     107  <!-- - - - - - - - - - -->
     108  <!-- Multilib - 32bit  -->
     109  <!-- - - - - - - - - - -->
     110 
     111  <sect2 arch="ml_32,ml_all" role="installation">
     112    <title>Installation of Util-linux - 32-bit</title>
     113
     114    <para>Clean previous build:</para>
     115
     116<screen><userinput remap="pre">make distclean</userinput></screen>
     117
     118    <para>Prepare Util-linux for compilation:</para>
     119
     120<screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \
     121./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
     122            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     123            --disable-chfn-chsh      \
     124            --disable-login          \
     125            --disable-nologin        \
     126            --disable-su             \
     127            --disable-setpriv        \
     128            --disable-runuser        \
     129            --disable-pylibmount     \
     130            --disable-static         \
     131            --without-python         \
     132            --without-systemd        \
     133            --libdir=&usr-lib-m32;      \
     134            --host=i686-pc-linux-gnu \
     135            --without-systemdsystemunitdir \
     136            --enable-libmount-force-mountinfo</userinput></screen>
     137
     138<screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \
     139./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
     140            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     141            --disable-chfn-chsh      \
     142            --disable-login          \
     143            --disable-nologin        \
     144            --disable-su             \
     145            --disable-setpriv        \
     146            --disable-runuser        \
     147            --disable-pylibmount     \
     148            --disable-static         \
     149            --without-python         \
     150            --libdir=&usr-lib-m32;      \
     151            --host=i686-pc-linux-gnu \
     152            --enable-libmount-force-mountinfo</userinput></screen>
     153
     154    <para>Compile the package:</para>
     155
     156<screen><userinput remap="make">make</userinput></screen>
     157
     158    <para>Install the package:</para>
     159
     160<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     161cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     162rm -rf DESTDIR</userinput></screen>
     163
     164  </sect2><!-- m32 -->
     165
     166  <!-- - - - - - - - - - -->
     167  <!-- Multilib - x32bit -->
     168  <!-- - - - - - - - - - -->
     169 
     170  <sect2 arch="ml_x32,ml_all" role="installation">
     171    <title>Installation of Util-linux - x32-bit</title>
     172
     173    <para>Clean previous build:</para>
     174
     175<screen><userinput remap="pre">make distclean</userinput></screen>
     176
     177    <para>Prepare Util-linux for compilation:</para>
     178
     179<screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \
     180./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
     181            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     182            --disable-chfn-chsh  \
     183            --disable-login      \
     184            --disable-nologin    \
     185            --disable-su         \
     186            --disable-setpriv    \
     187            --disable-runuser    \
     188            --disable-pylibmount \
     189            --disable-static     \
     190            --without-python     \
     191            --without-systemd    \
     192            --without-systemdsystemunitdir \
     193            --libdir=&usr-lib-mx32; \
     194            --host=x86_64-pc-linux-gnux32 \
     195            --enable-libmount-force-mountinfo</userinput></screen>
     196
     197<screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \
     198./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
     199            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
     200            --disable-chfn-chsh  \
     201            --disable-login      \
     202            --disable-nologin    \
     203            --disable-su         \
     204            --disable-setpriv    \
     205            --disable-runuser    \
     206            --disable-pylibmount \
     207            --disable-static     \
     208            --without-python     \
     209            --libdir=&usr-lib-mx32; \
     210            --host=x86_64-pc-linux-gnux32 \
     211            --enable-libmount-force-mountinfo</userinput></screen>
     212
     213    <para>Compile the package:</para>
     214
     215<screen><userinput remap="make">make</userinput></screen>
     216
     217    <para>Install the package:</para>
     218
     219<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     220cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     221rm -rf DESTDIR</userinput></screen>
     222
     223  </sect2><!-- mx32 -->
    106224
    107225  <sect2 id="contents-utillinux" role="content">
  • chapter08/xz.xml

    rd7a9421 rdf462a9  
    6464
    6565  </sect2>
     66
     67  <!-- - - - - - - - - - -->
     68  <!-- Multilib - 32bit  -->
     69  <!-- - - - - - - - - - -->
     70 
     71  <sect2 arch="ml_32,ml_all" role="installation">
     72    <title>Installation of Xz - 32bit</title>
     73
     74    <para>Clean previous build:</para>
     75
     76<screen><userinput remap="pre">make distclean</userinput></screen>
     77
     78    <para>Prepare Xz for compilation:</para>
     79
     80<screen><userinput remap="configure">CC="gcc -m32" ./configure \
     81    --prefix=/usr         \
     82    --disable-static      \
     83    --libdir=&usr-lib-m32;   \
     84    --host=i686-pc-linux-gnu</userinput></screen>
     85
     86    <para>Compile the package:</para>
     87
     88<screen><userinput remap="make">make</userinput></screen>
     89
     90    <para>Install the package:</para>
     91
     92<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     93cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
     94rm -rf DESTDIR</userinput></screen>
     95
     96  </sect2><!-- m32 -->
     97
     98  <!-- - - - - - - - - - -->
     99  <!-- Multilib - x32bit -->
     100  <!-- - - - - - - - - - -->
     101 
     102  <sect2 arch="ml_x32,ml_all" role="installation">
     103    <title>Installation of Xz - x32bit</title>
     104
     105    <para>Clean previous build:</para>
     106
     107<screen><userinput remap="pre">make distclean</userinput></screen>
     108
     109    <para>Prepare Xz for compilation:</para>
     110
     111<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
     112    --prefix=/usr          \
     113    --disable-static       \
     114    --libdir=&usr-lib-mx32;   \
     115    --host=x86_64-pc-linux-gnux32</userinput></screen>
     116
     117    <para>Compile the package:</para>
     118
     119<screen><userinput remap="make">make</userinput></screen>
     120
     121    <para>Install the package:</para>
     122
     123<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
     124cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
     125rm -rf DESTDIR</userinput></screen>
     126
     127  </sect2><!-- mx32 -->
    66128
    67129  <sect2 id="contents-xz" role="content">
  • chapter08/zlib.xml

    rd7a9421 rdf462a9  
    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">CC="gcc -m32" \
     80./configure --prefix=/usr \
     81    --libdir=&usr-lib-m32;</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-lib-m32;/* &usr-lib-m32;
     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">CC="gcc -mx32" \
     107./configure --prefix=/usr    \
     108    --libdir=&usr-lib-mx32;</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-lib-mx32;/* &usr-lib-mx32;
     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

    rd7a9421 rdf462a9  
    5959
    6060  </sect2>
     61
     62  <!-- - - - - - - - - - -->
     63  <!-- Multilib - 32bit  -->
     64  <!-- - - - - - - - - - -->
     65 
     66  <sect2 arch="ml_32,ml_all" role="installation">
     67    <title>Installation of Zstd - 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</userinput></screen>
     76
     77    <para>Install the package:</para>
     78
     79<screen><userinput remap="install">CC="gcc -m32" make prefix=/usr DESTDIR=$PWD/DESTDIR install
     80cp -Rv DESTDIR/usr/lib/* &usr-lib-m32;/
     81sed -e "/^libdir/s/lib$&lib-m32;/" -i &usr-lib-m32;/pkgconfig/libzstd.pc
     82rm -rf DESTDIR</userinput></screen>
     83
     84  </sect2><!-- m32 -->
     85
     86  <!-- - - - - - - - - - -->
     87  <!-- Multilib - x32bit -->
     88  <!-- - - - - - - - - - -->
     89 
     90  <sect2 arch="ml_x32,ml_all" role="installation">
     91    <title>Installation of Zstd - x32bit</title>
     92
     93    <para>Clean previous build:</para>
     94
     95<screen><userinput remap="pre">make clean</userinput></screen>
     96
     97    <para>Compile the package:</para>
     98
     99<screen><userinput remap="make">CC="gcc -mx32" make</userinput></screen>
     100
     101    <para>Install the package:</para>
     102
     103<screen><userinput remap="install">CC="gcc -mx32" make prefix=/usr DESTDIR=$PWD/DESTDIR install
     104cp -Rv DESTDIR/usr/lib/* &usr-lib-mx32;/
     105sed -e "/^libdir/s/lib$&lib-mx32;/" -i &usr-lib-mx32;/pkgconfig/libzstd.pc
     106rm -rf DESTDIR</userinput></screen>
     107
     108  </sect2><!-- mx32 -->
    61109
    62110  <sect2 id="contents-zstd" role="content">
  • chapter10/kernel.xml

    rd7a9421 rdf462a9  
    156156    </note>
    157157
     158    <note arch="ml_32,ml_x32,ml_all">
     159      <para>
     160        The kernel on a multilib system needs to be able to
     161        identify and start binaries compiled for different architectures
     162        than the default.
     163      </para>
     164
     165      <para arch="ml_32,ml_all">
     166        If support for any 32bit ABI was built, make sure that the option
     167        "IA32 Emulation" is selected. The option 'IA32 a.out support' is
     168        optional.
     169      </para>
     170
     171      <para arch="ml_x32,ml_all">
     172        If support for the x32bit ABI was built, make sure that the option
     173        "x32 ABI for 64-bit mode" is selected.
     174      </para>
     175
     176<screen arch="ml_32">Binary Emulations  ---&gt;
     177    [*] IA32 Emulation
     178    &lt;M&gt;   IA32 a.out support
     179</screen>
     180<screen arch="ml_x32">Binary Emulations  ---&gt;
     181    [*] x32 ABI for 64-bit mode
     182</screen>
     183<screen arch="ml_all">Binary Emulations  ---&gt;
     184    [*] IA32 Emulation
     185    &lt;M&gt;   IA32 a.out support
     186    [*] x32 ABI for 64-bit mode
     187</screen>
     188
     189    </note>
     190   
    158191    <variablelist>
    159192      <title>The rationale for the above configuration items:</title>
  • general.ent

    rd7a9421 rdf462a9  
    6464<!ENTITY % patches-entities SYSTEM "patches.ent">
    6565%patches-entities;
     66
     67<!-- multilib definitions -->
     68<!ENTITY lib-m32          "/lib32">
     69<!ENTITY lib-mx32         "/libx32">
     70<!ENTITY usr-lib-m32      "/usr/lib32">
     71<!ENTITY usr-lib-mx32     "/usr/libx32">
     72<!ENTITY usr-inc-m32      "/usr/include/m32">
     73<!ENTITY usr-inc-mx32     "/usr/include/mx32">
  • packages.ent

    rd7a9421 rdf462a9  
    352352<!ENTITY iproute2-fin-du "15 MB">
    353353<!ENTITY iproute2-fin-sbu "0.2 SBU">
     354
     355<!ENTITY isl-version "0.22.1">
     356<!ENTITY isl-size "1.6 MB">
     357<!ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz">
     358<!ENTITY isl-md5 "6e124849a9b62e3e2d5d51e955323f6e">
     359<!ENTITY isl-home "http://isl.gforge.inria.fr/">
     360<!ENTITY isl-fin-du "20 MB">
     361<!ENTITY isl-fin-sbu "0.1 SBU">
    354362
    355363<!ENTITY kbd-version "2.4.0">
  • prologue/bookinfo.xml

    rd7a9421 rdf462a9  
    88<bookinfo>
    99  <title>Linux From Scratch</title>
    10   <subtitle revision='sysv'   >Version &version; </subtitle>
    11   <subtitle revision='systemd'>Version &versiond;</subtitle>
     10  <subtitle arch="default" revision='sysv'>Version &version;</subtitle>
     11  <subtitle arch="default" revision='systemd'>Version &versiond;</subtitle>
     12  <subtitle arch="ml_32,ml_x32,ml_all" revision='sysv'>Version &version;-multilib</subtitle>
     13  <subtitle arch="ml_32,ml_x32,ml_all" revision='systemd'>Version &versiond;-multilib</subtitle>
    1214  <subtitle>Published &releasedate;</subtitle>
    1315
     
    3032      <firstname>Editor: DJ</firstname>
    3133      <surname>Lucas</surname>
     34    </author>
     35
     36    <author arch="ml_32,ml_x32,ml_all">
     37      <firstname>Editor: Thomas</firstname>
     38      <surname>Trepl</surname>
    3239    </author>
    3340  </authorgroup>
  • prologue/preface.xml

    rd7a9421 rdf462a9  
    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.