Changes in / [b4516c2:9836479]


Ignore:
Files:
2 deleted
49 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rb4516c2 r9836479  
    3535endif
    3636
    37 ifndef ARCH
    38   ARCH = default
    39 endif
    40 ifneq ($(ARCH), default)
    41   ifneq ($(ARCH), ml_32)
    42     ifneq ($(ARCH), ml_x32)
    43       ifneq ($(ARCH), ml_all)
    44         $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)
    45       endif
    46     endif
    47   endif
    48 endif
    49 
    5037book: validate profile-html
    5138        @echo "Generating chunked XHTML files at $(BASEDIR)/ ..."
     
    143130                --output $(RENDERTMP)/lfs-html2.xml   \
    144131                --stringparam profile.revision $(REV) \
    145                 --stringparam profile.arch $(ARCH)    \
    146132                stylesheets/lfs-xsl/profile.xsl       \
    147133                index.xml
     
    197183        $(Q)xsltproc --nonet --xinclude                   \
    198184                --stringparam profile.revision $(REV) \
    199                 --stringparam profile.arch $(ARCH)    \
    200185                --output $(RENDERTMP)/md5sum.xml      \
    201186                stylesheets/lfs-xsl/profile.xsl       \
  • chapter01/askforhelp.xml

    rb4516c2 r9836479  
    3939    <itemizedlist>
    4040      <listitem>
    41         <para>The version of the book being used (in this case &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>
     41        <para>The version of the book being used (in this case &version;)</para>
    4242      </listitem>
    4343      <listitem>
     
    5454      </listitem>
    5555      <listitem>
    56         <para>Note whether you have deviated from the book at all</para>
     56        <para>Note whether you have deviated from the book at all </para>
    5757      </listitem>
    5858    </itemizedlist>
  • chapter01/changelog.xml

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

    rb4516c2 r9836479  
    226226-->
    227227
    228     <para arch="ml_32,ml_x32,ml_all">
    229       Building multilib support requires the kernel of the host system
    230       to have 32-bit emulation support included.
    231     </para>
    232 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations  ---&gt;
    233     [*] IA32 Emulation
    234     &lt;M&gt;   IA32 a.out support
    235     [*] x32 ABI for 64-bit mode
    236 </screen>
    237 
    238     <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is
    239       optional. In case your kernel does not have 'x32 ABI for 64-bit mode'
    240       enabled but only 'IA32 Emulation', you can continue to build your
    241       system but you have to leave out any sections showing instructions
    242       for building x32 objects. If neither 'IA32 Emulation' nor
    243       'x32 ABI for 64-bit mode' is enabled, you will run in errors
    244       latest when building <application>glibc</application> in Chapter 6,
    245       so an upgrade of your host system kernel is required.
    246     </para>
    247    
    248228</sect1>
  • chapter03/packages.xml

    rb4516c2 r9836479  
    362362        <para>Download: <ulink url="&iproute2-url;"/></para>
    363363        <para>MD5 sum: <literal>&iproute2-md5;</literal></para>
    364       </listitem>
    365     </varlistentry>
    366 
    367     <varlistentry arch="ml_32,ml_x32,ml_all">
    368       <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>
    369       <listitem>
    370         <para>Home page: <ulink url="&isl-home;"/></para>
    371         <para>Download: <ulink url="&isl-url;"/></para>
    372         <para>MD5 sum: <literal>&isl-md5;</literal></para>
    373364      </listitem>
    374365    </varlistentry>
  • chapter04/addinguser.xml

    rb4516c2 r9836479  
    8585  x86_64) chown -v lfs $LFS/lib64 ;;
    8686esac</userinput></screen>
    87 <screen arch="ml_32"  ><userinput>chown -v lfs $LFS/lib32</userinput></screen>
    88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>
    89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>
    9087
    9188  <note><para>In some host systems, the following command does not complete
  • chapter04/creatingminlayout.xml

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

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

    rb4516c2 r9836479  
    7171    <para>Now prepare Binutils for compilation:</para>
    7272
    73     <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \
     73    <screen><userinput remap="configure">../configure --prefix=$LFS/tools \
    7474             --with-sysroot=$LFS \
    7575             --target=$LFS_TGT   \
     
    7777             --enable-gprofng=no \
    7878             --disable-werror</userinput></screen>
    79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools       \
    80              --with-sysroot=$LFS \
    81              --target=$LFS_TGT   \
    82              --disable-nls       \
    83              --enable-gprofng=no \
    84              --disable-werror    \
    85              --enable-multilib</userinput></screen>
    8679
    8780    <variablelist>
     
    140133      </varlistentry>
    141134
    142       <varlistentry arch="ml_32,ml_x32,ml_all">
    143         <term><parameter>--enable-multilib</parameter></term>
    144         <listitem>
    145           <para>Enables multilib support.</para>
    146         </listitem>
    147       </varlistentry>
    148 
    149135    </variablelist>
    150136
  • chapter05/gcc-pass1.xml

    rb4516c2 r9836479  
    6363mv -v mpc-&mpc-version; mpc</userinput></screen>
    6464
    65     <para arch="default">On x86_64 hosts, set the default directory name for
     65    <para>On x86_64 hosts, set the default directory name for
    6666    64-bit libraries to <quote>lib</quote>:</para>
    6767
    68 <screen arch="default"><userinput remap="pre">case $(uname -m) in
     68<screen><userinput remap="pre">case $(uname -m) in
    6969  x86_64)
    7070    sed -e '/m64=/s/lib64/lib/' \
     
    7373esac</userinput></screen>
    7474
    75     <para arch="ml_32,ml_x32,ml_all">Change the default directory name for
    76     libraries:</para>
    77 
    78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
    79     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
    80     -i.orig gcc/config/i386/t-linux64
    81 </userinput></screen>
    82 
    8375    <para>The GCC documentation recommends building GCC
    8476    in a dedicated build directory:</para>
     
    8981    <para>Prepare GCC for compilation:</para>
    9082
    91 <screen arch="default"><userinput remap="configure">../configure                  \
     83<screen><userinput remap="configure">../configure                  \
    9284    --target=$LFS_TGT         \
    9385    --prefix=$LFS/tools       \
     
    108100    --disable-libstdcxx       \
    109101    --enable-languages=c,c++</userinput></screen>
    110 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
    111     arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"
    112     arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
    113     arch="ml_all">mlist=m64,m32,mx32</userinput>
    114 <userinput remap="configure">../configure                  \
    115     --target=$LFS_TGT                              \
    116     --prefix=$LFS/tools                            \
    117     --with-glibc-version=&glibc-version;                      \
    118     --with-sysroot=$LFS                            \
    119     --with-newlib                                  \
    120     --without-headers                              \
    121     --enable-initfini-array                        \
    122     --disable-nls                                  \
    123     --disable-shared                               \
    124     --enable-multilib --with-multilib-list=$mlist  \
    125     --disable-decimal-float                        \
    126     --disable-threads                              \
    127     --disable-libatomic                            \
    128     --disable-libgomp                              \
    129     --disable-libquadmath                          \
    130     --disable-libssp                               \
    131     --disable-libvtv                               \
    132     --disable-libstdcxx                            \
    133     --enable-languages=c,c++</userinput></screen>
    134 
    135102    <variablelist>
    136103      <title>The meaning of the configure options:</title>
     
    175142      </varlistentry>
    176143
    177       <varlistentry arch="default">
     144      <varlistentry>
    178145        <term><parameter>--disable-multilib</parameter></term>
    179146        <listitem>
    180147          <para>On x86_64, LFS does not support a multilib configuration.
    181148          This switch is harmless for x86.</para>
    182         </listitem>
    183       </varlistentry>
    184       <varlistentry arch="ml_32,ml_x32,ml_all">
    185         <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>
    186         <listitem>
    187           <para>LFS canbe used to support multilib. Which they are is
    188           specified in the multilib list.</para>
    189149        </listitem>
    190150      </varlistentry>
  • chapter05/glibc.xml

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

    rb4516c2 r9836479  
    6161    <para>Prepare libstdc++ for compilation:</para>
    6262
    63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure           \
    64     --host=$LFS_TGT                 \
    65     --build=$(../config.guess)      \
    66     --prefix=/usr                   \
    67     --enable-multilib               \
    68     --disable-nls                   \
    69     --disable-libstdcxx-pch         \
    70     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
    71 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure           \
     63<screen><userinput remap="configure">../libstdc++-v3/configure           \
    7264    --host=$LFS_TGT                 \
    7365    --build=$(../config.guess)      \
     
    8779          should be used instead of the one in
    8880          <filename>/usr/bin</filename>.</para>
    89         </listitem>
    90       </varlistentry>
    91 
    92       <varlistentry arch="ml_32,ml_x32,ml_all">
    93         <term><parameter>--enable-multilib</parameter></term>
    94         <listitem>
    95           <para>Enable building multilib objects.</para>
    9681        </listitem>
    9782      </varlistentry>
  • chapter06/binutils-pass2.xml

    rb4516c2 r9836479  
    5959    <para>Prepare Binutils for compilation:</para>
    6060
    61 <screen arch="default"><userinput remap="configure">../configure                   \
     61<screen><userinput remap="configure">../configure                   \
    6262    --prefix=/usr              \
    6363    --build=$(../config.guess) \
     
    6868    --disable-werror           \
    6969    --enable-64-bit-bfd</userinput></screen>
    70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure                   \
    71     --prefix=/usr              \
    72     --build=$(../config.guess) \
    73     --host=$LFS_TGT            \
    74     --disable-nls              \
    75     --enable-shared            \
    76     --enable-gprofng=no        \
    77     --disable-werror           \
    78     --enable-64-bit-bfd        \
    79     --enable-multilib</userinput></screen>
    8070
    8171    <variablelist>
     
    9686          <para>Enables 64-bit support (on hosts with narrower word sizes).
    9787          May not be needed on 64-bit systems, but does no harm.</para>
    98         </listitem>
    99       </varlistentry>
    100 
    101       <varlistentry arch="ml_32,ml_x32,ml_all">
    102         <term><parameter>--enable-multilib</parameter></term>
    103         <listitem>
    104           <para>Enables multilib support in bintutils.</para>
    10588        </listitem>
    10689      </varlistentry>
  • chapter06/gcc-pass2.xml

    rb4516c2 r9836479  
    5959mv -v mpc-&mpc-version; mpc</userinput></screen>
    6060
    61 
    62     <para arch="default">If building on x86_64, change the default directory name for 64-bit
     61    <para>If building on x86_64, change the default directory name for 64-bit
    6362    libraries to <quote>lib</quote>:</para>
    6463
    65 <screen arch="default"><userinput remap="pre">case $(uname -m) in
     64<screen><userinput remap="pre">case $(uname -m) in
    6665  x86_64)
    6766    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
    6867  ;;
    6968esac</userinput></screen>
    70 
    71     <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the
    72     libraries:</para>
    73 
    74 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
    75     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
    76     -i.orig gcc/config/i386/t-linux64</userinput></screen>
    7769
    7870    <para>Override the building rule of libgcc and libstdc++ headers, to
     
    9284    <para>Now prepare GCC for compilation:</para>
    9385
    94 <screen arch="default"><userinput remap="configure">../configure                                       \
     86<screen><userinput remap="configure">../configure                                       \
    9587    --build=$(../config.guess)                     \
    9688    --host=$LFS_TGT                                \
     
    109101    --disable-libvtv                               \
    110102    --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     --target=$LFS_TGT                              \
    119     LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc      \
    120     --prefix=/usr                                  \
    121     --with-build-sysroot=$LFS                      \
    122     --enable-initfini-array                        \
    123     --disable-nls                                  \
    124     --enable-multilib --with-multilib-list=$mlist  \
    125     --disable-decimal-float                        \
    126     --disable-libatomic                            \
    127     --disable-libgomp                              \
    128     --disable-libquadmath                          \
    129     --disable-libssp                               \
    130     --disable-libvtv                               \
    131     --enable-languages=c,c++</userinput></screen>
    132 <!--
    133     LDFLAGS_FOR_TARGET="-L$PWD/$LFS_TGT/libgcc -L$PWD/$LFS_TGT/32/libgcc -L$PWD/$LFS_TGT/x32/libgcc" \
    134 -->
     103
    135104    <variablelist>
    136105      <title>The meaning of the new configure options:</title><!-- WIP -->
  • chapter06/ncurses.xml

    rb4516c2 r9836479  
    190190  </sect2>
    191191
    192   <!-- - - - - - - - - - -->
    193   <!-- Multilib - 32bit  -->
    194   <!-- - - - - - - - - - -->
    195   <sect2 arch="ml_32,ml_all">
    196     <title>Building Ncurses - 32bit</title>
    197 
    198     <para>Clean previous build:</para>
    199 
    200 <screen><userinput remap="pre">make distclean</userinput></screen>
    201 
    202     <para>Prepare Ncurses for compilation:</para>
    203 
    204 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32"              \
    205 CXX="$LFS_TGT-g++ -m32"             \
    206 ./configure --prefix=/usr           \
    207             --host=$LFS_TGT32       \
    208             --build=$(./config.guess)    \
    209             --libdir=/usr/lib32     \
    210             --mandir=/usr/share/man \
    211             --with-shared           \
    212             --without-normal        \
    213             --with-cxx-shared       \
    214             --without-debug         \
    215             --without-ada           \
    216             --disable-stripping     \
    217             --enable-widec</userinput></screen>
    218 
    219     <para>Compile the package:</para>
    220 
    221 <screen><userinput remap="make">make</userinput></screen>
    222 
    223     <para>Install the package:</para>
    224 
    225 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
    226 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so
    227 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32
    228 rm -rf DESTDIR</userinput></screen>
    229 
    230   </sect2><!-- m32 -->
    231 
    232   <!-- - - - - - - - - - -->
    233   <!-- Multilib - x32bit -->
    234   <!-- - - - - - - - - - -->
    235   <sect2 arch="ml_x32,ml_all">
    236     <title>Building Ncurses - x32bit</title>
    237 
    238     <para>Clean previous build:</para>
    239 
    240 <screen><userinput remap="pre">make distclean</userinput></screen>
    241 
    242     <para>Prepare Ncurses for compilation:</para>
    243 
    244 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32"             \
    245 CXX="$LFS_TGT-g++ -mx32"            \
    246 ./configure --prefix=/usr           \
    247             --host=$LFS_TGTX32      \
    248             --build=$(./config.guess)    \
    249             --libdir=/usr/libx32    \
    250             --mandir=/usr/share/man \
    251             --with-shared           \
    252             --without-normal        \
    253             --with-cxx-shared       \
    254             --without-debug         \
    255             --without-ada           \
    256             --disable-stripping     \
    257             --enable-widec</userinput></screen>
    258 
    259     <para>Compile the package:</para>
    260 
    261 <screen><userinput remap="make">make</userinput></screen>
    262 
    263     <para>Install the package:</para>
    264 
    265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
    266 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so
    267 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32
    268 rm -rf DESTDIR</userinput></screen>
    269 
    270   </sect2><!-- mx32 -->
    271 
    272192  <sect2 role="content">
    273193    <title/>
  • chapter07/changingowner.xml

    rb4516c2 r9836479  
    3939esac</userinput></screen>
    4040
    41   <para arch="ml_32,ml_x32,ml_all">Some more directories exists for
    42   multilib support. Change their ownership, too:</para>
    43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>
    44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>
    45  
    4641</sect1>
  • chapter07/cleanup.xml

    rb4516c2 r9836479  
    2424    While still in chroot, remove those files now:</para>
    2525
    26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32">
    27 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32">
    28 find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all">
    29 find /usr/lib{,x}32 -name \*.la -delete</userinput></screen>
     26<screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen>
    3027
    3128    <para>
  • chapter07/creatingdirs.xml

    rb4516c2 r9836479  
    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 
    4744  <para>Directories are, by default, created with permission mode 755, but
    4845  this is not desirable for all directories. In the commands above, two
  • chapter07/util-linux.xml

    rb4516c2 r9836479  
    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/lib32      \
    155             --host=i686-pc-linux-gnu</userinput></screen>
    156 
    157     <para>Compile the package:</para>
    158 
    159 <screen><userinput remap="make">make</userinput></screen>
    160 
    161     <para>Install the package:</para>
    162 
    163 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    164 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    165 rm -rf DESTDIR</userinput></screen>
    166 
    167   </sect2><!-- m32 -->
    168 
    169   <!-- - - - - - - - - - -->
    170   <!-- Multilib - x32bit -->
    171   <!-- - - - - - - - - - -->
    172  
    173   <sect2 arch="ml_x32,ml_all" role="installation">
    174     <title>Installation of Util-linux - x32-bit</title>
    175 
    176     <para>Clean previous build:</para>
    177 
    178 <screen><userinput remap="pre">make distclean</userinput></screen>
    179 
    180     <para>Prepare Util-linux for compilation:</para>
    181 
    182 <screen><userinput remap="configure">CC="gcc -mx32" \
    183 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
    184             --docdir=/usr/share/doc/util-linux-&util-linux-version; \
    185             --disable-chfn-chsh  \
    186             --disable-login      \
    187             --disable-nologin    \
    188             --disable-su         \
    189             --disable-setpriv    \
    190             --disable-runuser    \
    191             --disable-pylibmount \
    192             --disable-static     \
    193             --without-python     \
    194             --libdir=/usr/libx32 \
    195             --host=x86_64-pc-linux-gnux32</userinput></screen>
    196 
    197     <para>Compile the package:</para>
    198 
    199 <screen><userinput remap="make">make</userinput></screen>
    200 
    201     <para>Install the package:</para>
    202 
    203 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    204 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    205 rm -rf DESTDIR</userinput></screen>
    206 
    207   </sect2><!-- mx32 -->
    208 
    209129  <sect2 role="content">
    210130    <title/>
  • chapter08/acl.xml

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

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

    rb4516c2 r9836479  
    7373    <para>Prepare Binutils for compilation:</para>
    7474
    75 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr       \
     75<screen><userinput remap="configure">../configure --prefix=/usr       \
    7676             --sysconfdir=/etc   \
    7777             --enable-gold       \
     
    8282             --enable-64-bit-bfd \
    8383             --with-system-zlib</userinput></screen>
    84 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr       \
    85              --sysconfdir=/etc   \
    86              --enable-gold       \
    87              --enable-ld=default \
    88              --enable-plugins    \
    89              --enable-shared     \
    90              --disable-werror    \
    91              --enable-64-bit-bfd \
    92              --with-system-zlib  \
    93              --enable-multilib</userinput></screen>
    94 
    9584    <variablelist>
    9685      <title>The meaning of the configure parameters:</title>
     
    124113           <para>Enables 64-bit support (on hosts with narrower word sizes).
    125114           May not be needed on 64-bit systems, but does no harm.</para>
    126         </listitem>
    127       </varlistentry>
    128 
    129       <varlistentry arch="ml_32,ml_x32,ml_all">
    130         <term><parameter>--enable-multilib</parameter></term>
    131         <listitem>
    132           <para>Enables multilib support in bintutils.</para>
    133115        </listitem>
    134116      </varlistentry>
  • chapter08/bzip2.xml

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

    rb4516c2 r9836479  
    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"/>
    3837  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
    3938  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
  • chapter08/cleanup.xml

    rb4516c2 r9836479  
    2222  To remove them, run:</para>
    2323
    24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all">
    25 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
    26 find /usr/libx32 -name \*.la -delete</userinput></screen>
     24<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen>
    2725
    2826   <para>For more information about libtool archive files, see the <ulink
  • chapter08/eudev.xml

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

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

    rb4516c2 r9836479  
    6060  </sect2>
    6161
    62   <!-- - - - - - - - - - -->
    63   <!-- Multilib - 32bit  -->
    64   <!-- - - - - - - - - - -->
    65  
    66   <sect2 arch="ml_32,ml_all" role="installation">
    67     <title>Installation of File - 32bit</title>
    68 
    69     <para>Clean previous build:</para>
    70 
    71 <screen><userinput remap="pre">make distclean</userinput></screen>
    72 
    73     <para>Prepare File for compilation:</para>
    74 
    75 <screen><userinput remap="configure">CC="gcc -m32" ./configure \
    76     --prefix=/usr         \
    77     --libdir=/usr/lib32   \
    78     --host=i686-pc-linux-gnu</userinput></screen>
    79 
    80     <para>Compile the package:</para>
    81 
    82 <screen><userinput remap="make">make</userinput></screen>
    83 
    84     <para>Install the package:</para>
    85 
    86 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    87 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    88 rm -rf DESTDIR</userinput></screen>
    89 
    90   </sect2><!-- m32 -->
    91 
    92   <!-- - - - - - - - - - -->
    93   <!-- Multilib - x32bit -->
    94   <!-- - - - - - - - - - -->
    95  
    96   <sect2 arch="ml_x32,ml_all" role="installation">
    97     <title>Installation of File - x32bit</title>
    98 
    99     <para>Clean previous build:</para>
    100 
    101 <screen><userinput remap="pre">make distclean</userinput></screen>
    102 
    103     <para>Prepare File for compilation:</para>
    104 
    105 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    106     --prefix=/usr          \
    107     --libdir=/usr/libx32   \
    108     --host=x86_64-pc-linux-gnux32</userinput></screen>
    109 
    110     <para>Compile the package:</para>
    111 
    112 <screen><userinput remap="make">make</userinput></screen>
    113 
    114     <para>Install the package:</para>
    115 
    116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    118 rm -rf DESTDIR</userinput></screen>
    119 
    120   </sect2><!-- mx32 -->
    12162
    12263  <sect2 id="contents-file" role="content">
  • chapter08/gcc.xml

    rb4516c2 r9836479  
    5858    libraries to <quote>lib</quote>:</para>
    5959
    60 <screen arch="default"><userinput remap="pre">case $(uname -m) in
     60<screen><userinput remap="pre">case $(uname -m) in
    6161  x86_64)
    6262    sed -e '/m64=/s/lib64/lib/' \
     
    6565esac</userinput></screen>
    6666
    67     <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit
    68     libraries to <quote>lib</quote>:</para>
    69 
    70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
    71     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
    72     -i.orig gcc/config/i386/t-linux64</userinput></screen>
    73 
    7467    <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
    7568
     
    7972    <para>Prepare GCC for compilation:</para>
    8073
    81 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr            \
     74<screen><userinput remap="configure">../configure --prefix=/usr            \
    8275             LD=ld                    \
    8376             --enable-languages=c,c++ \
    8477             --disable-multilib       \
    8578             --disable-bootstrap      \
    86              --with-system-zlib</userinput></screen>
    87 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
    88   arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"
    89   arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
    90   arch="ml_all">mlist=m64,m32,mx32</userinput>
    91 <userinput remap="configure">../configure --prefix=/usr               \
    92              LD=ld                       \
    93              --enable-languages=c,c++    \
    94              --enable-multilib           \
    95              --with-multilib-list=$mlist \
    96              --disable-bootstrap         \
    9779             --with-system-zlib</userinput></screen>
    9880
     
    266248SEARCH_DIR("/usr/lib");</computeroutput></screen>
    267249
    268    <para arch="default">A 32-bit system may see a few different directories. For example, here
     250   <para>A 32-bit system may see a few different directories. For example, here
    269251   is the output from an i686 machine:</para>
    270252
    271 <!-- not using entities here as the dir names has nothing to do with multilib -->
    272 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
     253<screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
    273254SEARCH_DIR("/usr/local/lib32")
    274255SEARCH_DIR("/lib32")
  • chapter08/glibc.xml

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

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

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

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

    rb4516c2 r9836479  
    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     --host=i686-pc-linux-gnu \
    86     --prefix=/usr            \
    87     --libdir=/usr/lib32      \
    88     --disable-debuginfod     \
    89     --enable-libdebuginfod=dummy</userinput></screen>
    90 
    91     <para>Compile the package:</para>
    92 
    93 <screen><userinput remap="make">make</userinput></screen>
    94 
    95     <para>Install the package:</para>
    96 
    97 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install
    98 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc
    99 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    100 rm -rf DESTDIR</userinput></screen>
    101 
    102   </sect2><!-- m32 -->
    103 
    104   <!-- - - - - - - - - - -->
    105   <!-- Multilib - x32bit -->
    106   <!-- - - - - - - - - - -->
    107  
    108   <sect2 arch="ml_x32,ml_all" role="installation">
    109     <title>Installation of Libelf - x32bit</title>
    110 
    111     <para>Clean previous build:</para>
    112 
    113 <screen><userinput remap="pre">make distclean</userinput></screen>
    114 
    115     <para>Prepare Libtool for compilation:</para>
    116 
    117 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    118     --host=x86_64-pc-linux-gnux32 \
    119     --prefix=/usr                 \
    120     --libdir=/usr/libx32          \
    121     --disable-debuginfod          \
    122     --enable-libdebuginfod=dummy</userinput></screen>
    123 
    124     <para>Compile the package:</para>
    125 
    126 <screen><userinput remap="make">make</userinput></screen>
    127 
    128     <para>Install the package:</para>
    129 
    130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install
    131 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc
    132 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    133 rm -rf DESTDIR</userinput></screen>
    134 
    135   </sect2><!-- mx32 -->
    136 
    13771  <sect2 id="contents-elfutils" role="content">
    13872    <title>Contents of Libelf</title>
  • chapter08/libffi.xml

    rb4516c2 r9836479  
    103103  </sect2>
    104104
    105   <!-- - - - - - - - - - -->
    106   <!-- Multilib - 32bit  -->
    107   <!-- - - - - - - - - - -->
    108  
    109   <sect2 arch="ml_32,ml_all" role="installation">
    110     <title>Installation of Libffi - 32bit</title>
    111 
    112     <para>Clean previous build:</para>
    113 
    114 <screen><userinput remap="pre">make distclean</userinput></screen>
    115 
    116     <para>Prepare Libffi for compilation:</para>
    117 
    118 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \
    119     --host=i686-pc-linux-gnu \
    120     --prefix=/usr            \
    121     --libdir=/usr/lib32      \
    122     --disable-static         \
    123     --with-gcc-arch=i686     \
    124     --disable-exec-static-tramp</userinput></screen>
    125 
    126     <para>Compile the package:</para>
    127 
    128 <screen><userinput remap="make">make</userinput></screen>
    129 
    130     <para>To test the results, issue:</para>
    131 
    132 <screen><userinput remap="test">make check</userinput></screen>
    133 
    134     <para>Install the package:</para>
    135 
    136 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    137 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    138 rm -rf DESTDIR</userinput></screen>
    139 
    140   </sect2><!-- m32 -->
    141 
    142   <!-- - - - - - - - - - -->
    143   <!-- Multilib - x32bit -->
    144   <!-- - - - - - - - - - -->
    145  
    146   <sect2 arch="ml_x32,ml_all" role="installation">
    147     <title>Installation of Libffi - x32bit</title>
    148 
    149     <para>Clean previous build:</para>
    150 
    151 <screen><userinput remap="pre">make distclean</userinput></screen>
    152 
    153     <para>Prepare Libffi for compilation:</para>
    154 
    155 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \
    156     --host=x86_64-unknown-linux-gnux32 \
    157     --prefix=/usr            \
    158     --libdir=/usr/libx32     \
    159     --disable-static         \
    160     --with-gcc-arch=x86_64   \
    161     --disable-exec-static-tramp</userinput></screen>
    162 
    163     <para>Compile the package:</para>
    164 
    165 <screen><userinput remap="make">make</userinput></screen>
    166 
    167     <para>To test the results, issue:</para>
    168 
    169 <screen><userinput remap="test">make check</userinput></screen>
    170 
    171     <para>Install the package:</para>
    172 
    173 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    174 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    175 rm -rf DESTDIR</userinput></screen>
    176 
    177   </sect2><!-- mx32 -->
    178 
    179105  <sect2 id="contents-libffi" role="content">
    180106    <title>Contents of Libffi</title>
     
    207133
    208134</sect1>
     135
  • chapter08/libtool.xml

    rb4516c2 r9836479  
    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     --host=i686-pc-linux-gnu \
    95     --prefix=/usr            \
    96     --libdir=/usr/lib32</userinput></screen>
    97 
    98     <para>Compile the package:</para>
    99 
    100 <screen><userinput remap="make">make</userinput></screen>
    101 
    102     <para>Install the package:</para>
    103 
    104 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    105 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    106 rm -rf DESTDIR</userinput></screen>
    107 
    108   </sect2><!-- m32 -->
    109 
    110   <!-- - - - - - - - - - -->
    111   <!-- Multilib - x32bit -->
    112   <!-- - - - - - - - - - -->
    113  
    114   <sect2 arch="ml_x32,ml_all" role="installation">
    115     <title>Installation of Libtool - x32bit</title>
    116 
    117     <para>Clean previous build:</para>
    118 
    119 <screen><userinput remap="pre">make distclean</userinput></screen>
    120 
    121     <para>Prepare Libtool for compilation:</para>
    122 
    123 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    124     --host=x86_64-pc-linux-gnux32 \
    125     --prefix=/usr                 \
    126     --libdir=/usr/libx32</userinput></screen>
    127 
    128     <para>Compile the package:</para>
    129 
    130 <screen><userinput remap="make">make</userinput></screen>
    131 
    132     <para>Install the package:</para>
    133 
    134 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    135 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    136 rm -rf DESTDIR</userinput></screen>
    137 
    138   </sect2><!-- mx32 -->
    13980
    14081  <sect2 id="contents-libtool" role="content">
  • chapter08/ncurses.xml

    rb4516c2 r9836479  
    174174
    175175<screen role="nodump"><userinput>make distclean
    176 ./configure --prefix=/usr     \
    177             --with-shared     \
    178             --without-normal  \
    179             --with-cxx-shared \
    180             --without-debug   \
     176./configure --prefix=/usr    \
     177            --with-shared    \
     178            --without-normal \
     179            --without-debug  \
    181180            --without-cxx-binding \
    182181            --with-abi-version=5
     
    186185
    187186  </sect2>
    188 
    189   <!-- - - - - - - - - - -->
    190   <!-- Multilib - 32bit  -->
    191   <!-- - - - - - - - - - -->
    192   <sect2 arch="ml_32,ml_all">
    193     <title>Building Ncurses - 32bit</title>
    194 
    195     <para>Clean previous build:</para>
    196 
    197 <screen><userinput remap="pre">make distclean</userinput></screen>
    198 
    199     <para>Prepare Ncurses for compilation:</para>
    200 
    201 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \
    202 ./configure --prefix=/usr           \
    203             --host=i686-pc-linux-gnu \
    204             --libdir=/usr/lib32     \
    205             --mandir=/usr/share/man \
    206             --with-shared           \
    207             --without-debug         \
    208             --without-normal        \
    209             --with-cxx-shared       \
    210             --enable-pc-files       \
    211             --enable-widec          \
    212             --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>
    213 
    214     <para>Compile the package:</para>
    215 
    216 <screen><userinput remap="make">make</userinput></screen>
    217 
    218     <para>Install the package:</para>
    219 
    220 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    221 mkdir -p DESTDIR/usr/lib32/pkgconfig
    222 for lib in ncurses form panel menu ; do
    223     rm -vf                    DESTDIR/usr/lib32/lib${lib}.so
    224     echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so
    225     ln -svf ${lib}w.pc        DESTDIR/usr/lib32/pkgconfig/$lib.pc
    226 done
    227 rm -vf                     DESTDIR/usr/lib32/libcursesw.so
    228 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so
    229 ln -sfv libncurses.so      DESTDIR/usr/lib32/libcurses.so
    230 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    231 rm -rf DESTDIR</userinput></screen>
    232 
    233   </sect2><!-- m32 -->
    234 
    235   <!-- - - - - - - - - - -->
    236   <!-- Multilib - x32bit -->
    237   <!-- - - - - - - - - - -->
    238   <sect2 arch="ml_x32,ml_all">
    239     <title>Building Ncurses - x32bit</title>
    240 
    241     <para>Clean previous build:</para>
    242 
    243 <screen><userinput remap="pre">make distclean</userinput></screen>
    244 
    245     <para>Prepare Ncurses for compilation:</para>
    246 
    247 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \
    248 ./configure --prefix=/usr           \
    249             --host=x86_64-pc-linux-gnux32 \
    250             --libdir=/usr/libx32    \
    251             --mandir=/usr/share/man \
    252             --with-shared           \
    253             --without-debug         \
    254             --without-normal        \
    255             --enable-pc-files       \
    256             --enable-widec          \
    257             --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>
    258 
    259     <para>Compile the package:</para>
    260 
    261 <screen><userinput remap="make">make</userinput></screen>
    262 
    263     <para>Install the package:</para>
    264 
    265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    266 mkdir -p DESTDIR/usr/libx32/pkgconfig
    267 for lib in ncurses form panel menu ; do
    268     rm -vf                    DESTDIR/usr/libx32/lib${lib}.so
    269     echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so
    270     ln -svf ${lib}w.pc        DESTDIR/usr/libx32/pkgconfig/$lib.pc
    271 done
    272 rm -vf                     DESTDIR/usr/libx32/libcursesw.so
    273 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so
    274 ln -sfv libncurses.so      DESTDIR/usr/libx32/libcurses.so
    275 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    276 rm -rf DESTDIR</userinput></screen>
    277 
    278   </sect2><!-- mx32 -->
    279187
    280188  <sect2 id="contents-ncurses" role="content">
  • chapter08/openssl.xml

    rb4516c2 r9836479  
    108108
    109109  </sect2>
    110 
    111   <!-- - - - - - - - - - -->
    112   <!-- Multilib - 32bit  -->
    113   <!-- - - - - - - - - - -->
    114  
    115   <sect2 arch="ml_32,ml_all" role="installation">
    116     <title>Installation of OpenSSL - 32bit</title>
    117 
    118     <para>Clean previous build:</para>
    119 
    120 <screen><userinput remap="pre">make distclean</userinput></screen>
    121 
    122     <para>Prepare OpenSSL for compilation:</para>
    123 
    124 <screen><userinput remap="configure">CFLAGS="-m32 -march=i686 -Wall -O3" CXXFLAGS="$CFLAGS" \
    125 ./config --prefix=/usr         \
    126          --openssldir=/etc/ssl \
    127          --libdir=lib32        \
    128          shared                \
    129          zlib-dynamic          \
    130          linux-generic32</userinput></screen>
    131 
    132     <para>Compile the package:</para>
    133 
    134 <screen><userinput remap="make">make</userinput></screen>
    135 
    136     <para>Install the package:</para>
    137 
    138 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    139 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    140 rm -rf DESTDIR</userinput></screen>
    141 
    142   </sect2><!-- m32 -->
    143 
    144   <!-- - - - - - - - - - -->
    145   <!-- Multilib - x32bit -->
    146   <!-- - - - - - - - - - -->
    147  
    148   <sect2 arch="ml_x32,ml_all" role="installation">
    149     <title>Installation of OpenSSL - x32bit</title>
    150 
    151     <para>Clean previous build:</para>
    152 
    153 <screen><userinput remap="pre">make distclean</userinput></screen>
    154 
    155     <para>Prepare OpenSSL for compilation:</para>
    156 
    157 <screen><userinput remap="configure">CFLAGS="-mx32 -march=x86-64 -Wall -O3" CXXFLAGS="$CFLAGS" \
    158 ./config --prefix=/usr         \
    159          --openssldir=/etc/ssl \
    160          --libdir=libx32       \
    161          shared                \
    162          zlib-dynamic          \
    163          linux-x32</userinput></screen>
    164 
    165     <para>Compile the package:</para>
    166 
    167 <screen><userinput remap="make">make</userinput></screen>
    168 
    169     <para>Install the package:</para>
    170 
    171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    173 rm -rf DESTDIR</userinput></screen>
    174 
    175   </sect2><!-- mx32 -->
    176110
    177111  <sect2 id="contents-openssl" role="content">
  • chapter08/readline.xml

    rb4516c2 r9836479  
    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     --host=i686-pc-linux-gnu      \
    118     --prefix=/usr                 \
    119     --libdir=/usr/lib32           \
    120     --disable-static</userinput></screen>
    121 
    122     <para>Compile the package:</para>
    123 
    124 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
    125 
    126     <para>Install the package:</para>
    127 
    128 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
    129 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    130 rm -rf DESTDIR</userinput></screen>
    131 
    132   </sect2><!-- m32 -->
    133 
    134   <!-- - - - - - - - - - -->
    135   <!-- Multilib - x32bit -->
    136   <!-- - - - - - - - - - -->
    137  
    138   <sect2 arch="ml_x32,ml_all" role="installation">
    139     <title>Installation of Readline - x32bit</title>
    140 
    141     <para>Clean previous build:</para>
    142 
    143 <screen><userinput remap="pre">make distclean</userinput></screen>
    144 
    145     <para>Prepare Readline for compilation:</para>
    146 
    147 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    148     --host=x86_64-pc-linux-gnux32 \
    149     --prefix=/usr                 \
    150     --libdir=/usr/libx32          \
    151     --disable-static</userinput></screen>
    152 
    153     <para>Compile the package:</para>
    154 
    155 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
    156 
    157     <para>Install the package:</para>
    158 
    159 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
    160 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    161 rm -rf DESTDIR</userinput></screen>
    162 
    163   </sect2><!-- mx32 -->
    164 
    165103  <sect2 id="contents-readline" role="content">
    166104    <title>Contents of Readline</title>
  • chapter08/stripping.xml

    rb4516c2 r9836479  
    5959
    6060cd /usr/lib
     61
    6162for LIB in $save_usrlib; do
    6263    objcopy --only-keep-debug $LIB $LIB.dbg
     
    6667    install -vm755 /tmp/$LIB /usr/lib
    6768    rm /tmp/$LIB
    68 done</userinput>
    69 <userinput arch="ml_32,ml_all">
    70 cd /usr/lib32
    71 for LIB in $save_usrlib; do
    72     objcopy --only-keep-debug $LIB $LIB.dbg
    73     cp $LIB /tmp/$LIB
    74     strip --strip-unneeded /tmp/$LIB
    75     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    76     install -vm755 /tmp/$LIB /usr/lib32
    77     rm /tmp/$LIB
    78 done</userinput>
    79 <userinput arch="ml_x32,ml_all">
    80 cd /usr/libx32
    81 for LIB in $save_usrlib; do
    82     objcopy --only-keep-debug $LIB $LIB.dbg
    83     cp $LIB /tmp/$LIB
    84     strip --strip-unneeded /tmp/$LIB
    85     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    86     install -vm755 /tmp/$LIB /usr/libx32
    87     rm /tmp/$LIB
    88 done</userinput><userinput>
     69done
    8970
    9071online_usrbin="bash find strip"
     
    10990    install -vm755 /tmp/$LIB /usr/lib
    11091    rm /tmp/$LIB
    111 done</userinput><userinput arch="ml_32,ml_all">
    112 for LIB in $online_usrlib; do
    113     cp /usr/lib32/$LIB /tmp/$LIB
    114     strip --strip-unneeded /tmp/$LIB
    115     install -vm755 /tmp/$LIB /usr/lib32
    116     rm /tmp/$LIB
    117 done</userinput><userinput arch="ml_x32,ml_all">
    118 for LIB in $online_usrlib; do
    119     cp /usr/libx32/$LIB /tmp/$LIB
    120     strip --strip-unneeded /tmp/$LIB
    121     install -vm755 /tmp/$LIB /usr/libx32
    122     rm /tmp/$LIB
    123 done</userinput><userinput>
     92done
    12493
    12594for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
     
    132101            ;;
    133102    esac
    134 done</userinput><userinput arch="ml_32,ml_all">
    135 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg); do
    136     case "$online_usrbin $online_usrlib $save_usrlib" in
    137         *$(basename $i)* )
    138             ;;
    139         * ) strip --strip-unneeded $i
    140             ;;
    141     esac
    142 done</userinput><userinput arch="ml_x32,ml_all">
    143 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg); do
    144     case "$online_usrbin $online_usrlib $save_usrlib" in
    145         *$(basename $i)* )
    146             ;;
    147         * ) strip --strip-unneeded $i
    148             ;;
    149     esac
    150 done</userinput><userinput>
     103done
    151104
    152105unset BIN LIB save_usrlib online_usrbin online_usrlib
  • chapter08/systemd.xml

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

    rb4516c2 r9836479  
    113113-->
    114114  </sect2>
    115 
    116   <!-- - - - - - - - - - -->
    117   <!-- Multilib - 32bit  -->
    118   <!-- - - - - - - - - - -->
    119  
    120   <sect2 arch="ml_32,ml_all" role="installation">
    121     <title>Installation of Util-linux - 32-bit</title>
    122 
    123     <para>Clean previous build:</para>
    124 
    125 <screen><userinput remap="pre">make distclean</userinput></screen>
    126 
    127     <para>Move a tool out of the way which is optionally used by
    128     configure but will report invalid pathes for multilib builds.</para>
    129 
    130 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>
    131 
    132     <para>Prepare Util-linux for compilation:</para>
    133 
    134 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \
    135 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
    136             --host=i686-pc-linux-gnu \
    137             --libdir=/usr/lib32      \
    138             --docdir=/usr/share/doc/util-linux-&util-linux-version; \
    139             --disable-chfn-chsh      \
    140             --disable-login          \
    141             --disable-nologin        \
    142             --disable-su             \
    143             --disable-setpriv        \
    144             --disable-runuser        \
    145             --disable-pylibmount     \
    146             --disable-static         \
    147             --without-python         \
    148             --without-systemd        \
    149             --without-systemdsystemunitdir</userinput></screen>
    150 
    151 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \
    152 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
    153             --host=i686-pc-linux-gnu \
    154             --libdir=/usr/lib32      \
    155             --docdir=/usr/share/doc/util-linux-&util-linux-version; \
    156             --disable-chfn-chsh      \
    157             --disable-login          \
    158             --disable-nologin        \
    159             --disable-su             \
    160             --disable-setpriv        \
    161             --disable-runuser        \
    162             --disable-pylibmount     \
    163             --disable-static         \
    164             --without-python</userinput></screen>
    165 
    166     <para>Restore the tool previously moved away:</para>
    167 
    168 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>
    169 
    170     <para>Compile the package:</para>
    171 
    172 <screen><userinput remap="make">make</userinput></screen>
    173 
    174     <para>Install the package:</para>
    175 
    176 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    177 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    178 rm -rf DESTDIR</userinput></screen>
    179 
    180   </sect2><!-- m32 -->
    181 
    182   <!-- - - - - - - - - - -->
    183   <!-- Multilib - x32bit -->
    184   <!-- - - - - - - - - - -->
    185  
    186   <sect2 arch="ml_x32,ml_all" role="installation">
    187     <title>Installation of Util-linux - x32-bit</title>
    188 
    189     <para>Clean previous build:</para>
    190 
    191 <screen><userinput remap="pre">make distclean</userinput></screen>
    192 
    193     <para>Move a tool out of the way which is optionally used by
    194     configure but will report invalid pathes for multilib builds.</para>
    195 
    196 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>
    197 
    198     <para>Prepare Util-linux for compilation:</para>
    199 
    200 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \
    201 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
    202             --host=x86_64-pc-linux-gnux32 \
    203             --libdir=/usr/libx32 \
    204             --docdir=/usr/share/doc/util-linux-&util-linux-version; \
    205             --disable-chfn-chsh  \
    206             --disable-login      \
    207             --disable-nologin    \
    208             --disable-su         \
    209             --disable-setpriv    \
    210             --disable-runuser    \
    211             --disable-pylibmount \
    212             --disable-static     \
    213             --without-python     \
    214             --without-systemd    \
    215             --without-systemdsystemunitdir</userinput></screen>
    216 
    217 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \
    218 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
    219             --host=x86_64-pc-linux-gnux32 \
    220             --libdir=/usr/libx32 \
    221             --docdir=/usr/share/doc/util-linux-&util-linux-version; \
    222             --disable-chfn-chsh  \
    223             --disable-login      \
    224             --disable-nologin    \
    225             --disable-su         \
    226             --disable-setpriv    \
    227             --disable-runuser    \
    228             --disable-pylibmount \
    229             --disable-static     \
    230             --without-python</userinput></screen>
    231 
    232     <para>Restore the tool previously moved away:</para>
    233 
    234 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>
    235 
    236     <para>Compile the package:</para>
    237 
    238 <screen><userinput remap="make">make</userinput></screen>
    239 
    240     <para>Install the package:</para>
    241 
    242 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    243 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    244 rm -rf DESTDIR</userinput></screen>
    245 
    246   </sect2><!-- mx32 -->
    247115
    248116  <sect2 id="contents-utillinux" role="content">
  • chapter08/xz.xml

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

    rb4516c2 r9836479  
    6464  </sect2>
    6565
    66   <!-- - - - - - - - - - -->
    67   <!-- Multilib - 32bit  -->
    68   <!-- - - - - - - - - - -->
    69 
    70   <sect2 arch="ml_32,ml_all" role="installation">
    71     <title>Installation of Zlib - 32bit</title>
    72 
    73     <para>Clean previous build:</para>
    74 
    75 <screen><userinput remap="pre">make distclean</userinput></screen>
    76 
    77     <para>Prepare Zlib for compilation:</para>
    78 
    79 <screen><userinput remap="configure">CFLAGS+="-m32" CXXFLAGS+="-m32" \
    80 ./configure --prefix=/usr \
    81     --libdir=/usr/lib32</userinput></screen>
    82 
    83     <para>Compile the package:</para>
    84 
    85 <screen><userinput remap="make">make</userinput></screen>
    86 
    87     <para>Install the package:</para>
    88 
    89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    90 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    91 rm -rf DESTDIR</userinput></screen>
    92 
    93   </sect2><!-- m32 -->
    94 
    95   <!-- - - - - - - - - - -->
    96   <!-- Multilib - x32bit -->
    97   <!-- - - - - - - - - - -->
    98 
    99   <sect2 arch="ml_x32,ml_all" role="installation">
    100     <title>Installation of Zlib - x32bit</title>
    101 
    102 <screen><userinput remap="pre">make distclean</userinput></screen>
    103 
    104     <para>Prepare Zlib for compilation:</para>
    105 
    106 <screen><userinput remap="configure">CFLAGS+="-mx32" CXXFLAGS+="-mx32" \
    107 ./configure --prefix=/usr    \
    108     --libdir=/usr/libx32</userinput></screen>
    109 
    110     <para>Compile the package:</para>
    111 
    112 <screen><userinput remap="make">make</userinput></screen>
    113 
    114     <para>Install the package:</para>
    115 
    116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    118 rm -rf DESTDIR</userinput></screen>
    119 
    120   </sect2><!-- mx32 -->
    121 
    12266  <sect2 id="contents-zlib" role="content">
    12367    <title>Contents of Zlib</title>
  • chapter08/zstd.xml

    rb4516c2 r9836479  
    6969
    7070  </sect2>
    71 
    72   <!-- - - - - - - - - - -->
    73   <!-- Multilib - 32bit  -->
    74   <!-- - - - - - - - - - -->
    75  
    76   <sect2 arch="ml_32,ml_all" role="installation">
    77     <title>Installation of Zstd - 32bit</title>
    78 
    79     <para>Clean previous build:</para>
    80 
    81 <screen><userinput remap="pre">make clean</userinput></screen>
    82 
    83     <para>Compile the package:</para>
    84 
    85 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>
    86 
    87     <para>Install the package:</para>
    88 
    89 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install
    90 cp -Rv DESTDIR/usr/lib/* /usr/lib32/
    91 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc
    92 rm -rf DESTDIR</userinput></screen>
    93 
    94   </sect2><!-- m32 -->
    95 
    96   <!-- - - - - - - - - - -->
    97   <!-- Multilib - x32bit -->
    98   <!-- - - - - - - - - - -->
    99  
    100   <sect2 arch="ml_x32,ml_all" role="installation">
    101     <title>Installation of Zstd - x32bit</title>
    102 
    103     <para>Clean previous build:</para>
    104 
    105 <screen><userinput remap="pre">make clean</userinput></screen>
    106 
    107     <para>Compile the package:</para>
    108 
    109 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>
    110 
    111     <para>Install the package:</para>
    112 
    113 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install
    114 cp -Rv DESTDIR/usr/lib/* /usr/libx32/
    115 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc
    116 rm -rf DESTDIR</userinput></screen>
    117 
    118   </sect2><!-- mx32 -->
    11971
    12072  <sect2 id="contents-zstd" role="content">
  • chapter10/kernel.xml

    rb4516c2 r9836479  
    171171    </note>
    172172
    173     <note arch="ml_32,ml_x32,ml_all">
    174       <para>
    175         The kernel on a multilib system needs to be able to
    176         identify and start binaries compiled for different architectures
    177         than the default.
    178       </para>
    179 
    180       <para arch="ml_32,ml_all">
    181         If support for any 32bit ABI was built, make sure that the option
    182         "IA32 Emulation" is selected. The option 'IA32 a.out support' is
    183         optional.
    184       </para>
    185 
    186       <para arch="ml_x32,ml_all">
    187         If support for the x32bit ABI was built, make sure that the option
    188         "x32 ABI for 64-bit mode" is selected.
    189       </para>
    190 
    191 <screen arch="ml_32">Binary Emulations  ---&gt;
    192     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    193     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    194 </screen>
    195 <screen arch="ml_x32">Binary Emulations  ---&gt;
    196     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    197 </screen>
    198 <screen arch="ml_all">Binary Emulations  ---&gt;
    199     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    200     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    201     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    202 </screen>
    203     </note>
    204    
    205173    <variablelist>
    206174      <title>The rationale for the above configuration items:</title>
  • packages.ent

    rb4516c2 r9836479  
    354354<!ENTITY iproute2-fin-sbu "0.2 SBU">
    355355
    356 <!ENTITY isl-version "0.24">
    357 <!ENTITY isl-size "2.1 MB">
    358 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->
    359 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">
    360 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">
    361 <!ENTITY isl-home "http://isl.gforge.inria.fr/">
    362 <!ENTITY isl-fin-du "20 MB">
    363 <!ENTITY isl-fin-sbu "0.1 SBU">
    364 
    365356<!ENTITY jinja2-version "3.1.2">
    366357<!ENTITY jinja2-size "262 KB">
  • prologue/bookinfo.xml

    rb4516c2 r9836479  
    88<bookinfo>
    99  <title>Linux From Scratch</title>
    10   <subtitle>Version &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase></subtitle>
     10  <subtitle>Version &version;</subtitle>
    1111  <subtitle>Published &releasedate;</subtitle>
    1212
     
    2929      <firstname>Editor: DJ</firstname>
    3030      <surname>Lucas</surname>
    31     </author>
    32 
    33     <author arch="ml_32,ml_x32,ml_all">
    34       <firstname>Editor: Thomas</firstname>
    35       <surname>Trepl</surname>
    3631    </author>
    3732  </authorgroup>
  • prologue/preface.xml

    rb4516c2 r9836479  
    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"/>
    1918  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/>
    2019  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note: See TracChangeset for help on using the changeset viewer.