Changes in / [70617e8:e9ab2b3]


Ignore:
Files:
2 deleted
49 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    260260bash version-check.sh</userinput></screen>
    261261
    262     <para arch="ml_32,ml_x32,ml_all">
    263       Building multilib support requires the kernel of the host system
    264       to have 32-bit emulation support included.
    265     </para>
    266 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations  ---&gt;
    267     [*] IA32 Emulation
    268     &lt;M&gt;   IA32 a.out support
    269     [*] x32 ABI for 64-bit mode
    270 </screen>
    271 
    272     <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is
    273       optional. In case your kernel does not have 'x32 ABI for 64-bit mode'
    274       enabled but only 'IA32 Emulation', you can continue to build your
    275       system but you have to leave out any sections showing instructions
    276       for building x32 objects. If neither 'IA32 Emulation' nor
    277       'x32 ABI for 64-bit mode' is enabled, you will run in errors
    278       latest when building <application>glibc</application> in Chapter 6,
    279       so an upgrade of your host system kernel is required.
    280     </para>
    281    
    282   </sect2>
    283 
     262 </sect2>
    284263</sect1>
  • chapter03/packages.xml

    r70617e8 re9ab2b3  
    388388    </varlistentry>
    389389
    390     <varlistentry arch="ml_32,ml_x32,ml_all">
    391       <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>
    392       <listitem>
    393         <para>Home page: <ulink url="&isl-home;"/></para>
    394         <para>Download: <ulink url="&isl-url;"/></para>
    395         <para>MD5 sum: <literal>&isl-md5;</literal></para>
    396       </listitem>
    397     </varlistentry>
    398 
    399390    <varlistentry revision="systemd">
    400391      <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
  • chapter04/addinguser.xml

    r70617e8 re9ab2b3  
    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>su</command> command does not complete
  • chapter04/creatingminlayout.xml

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

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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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       \
     
    109101    --disable-libstdcxx       \
    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     --target=$LFS_TGT                              \
    117     --prefix=$LFS/tools                            \
    118     --with-glibc-version=&glibc-version;                      \
    119     --with-sysroot=$LFS                            \
    120     --with-newlib                                  \
    121     --without-headers                              \
    122     --enable-default-pie                           \
    123     --enable-default-ssp                           \
    124     --enable-initfini-array                        \
    125     --disable-nls                                  \
    126     --disable-shared                               \
    127     --enable-multilib --with-multilib-list=$mlist  \
    128     --disable-decimal-float                        \
    129     --disable-threads                              \
    130     --disable-libatomic                            \
    131     --disable-libgomp                              \
    132     --disable-libquadmath                          \
    133     --disable-libssp                               \
    134     --disable-libvtv                               \
    135     --disable-libstdcxx                            \
    136     --enable-languages=c,c++</userinput></screen>
    137 
    138103    <variablelist>
    139104      <title>The meaning of the configure options:</title>
     
    192157      </varlistentry>
    193158
    194       <varlistentry arch="default">
     159      <varlistentry>
    195160        <term><parameter>--disable-multilib</parameter></term>
    196161        <listitem>
    197162          <para>On x86_64, LFS does not support a multilib configuration.
    198163          This switch is harmless for x86.</para>
    199         </listitem>
    200       </varlistentry>
    201       <varlistentry arch="ml_32,ml_x32,ml_all">
    202         <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>
    203         <listitem>
    204           <para>LFS canbe used to support multilib. Which they are is
    205           specified in the multilib list.</para>
    206164        </listitem>
    207165      </varlistentry>
  • chapter05/glibc.xml

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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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 smaller word sizes).
    9787          This may not be needed on 64-bit systems, but it 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

    r70617e8 re9ab2b3  
    5858mv -v mpc-&mpc-version; mpc</userinput></screen>
    5959
    60 
    61     <para arch="default">If building on x86_64, change the default directory name for 64-bit
     60    <para>If building on x86_64, change the default directory name for 64-bit
    6261    libraries to <quote>lib</quote>:</para>
    6362
    64 <screen arch="default"><userinput remap="pre">case $(uname -m) in
     63<screen><userinput remap="pre">case $(uname -m) in
    6564  x86_64)
    6665    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
    6766  ;;
    6867esac</userinput></screen>
    69 
    70     <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the
    71     libraries:</para>
    72 
    73 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
    74     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
    75     -i.orig gcc/config/i386/t-linux64</userinput></screen>
    7668
    7769    <para>Override the building rule of libgcc and libstdc++ headers, to
     
    9183    <para>Now prepare GCC for compilation:</para>
    9284
    93 <screen arch="default"><userinput remap="configure">../configure                                       \
     85<screen><userinput remap="configure">../configure                                       \
    9486    --build=$(../config.guess)                     \
    9587    --host=$LFS_TGT                                \
     
    108100    --disable-libvtv                               \
    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     --build=$(../config.guess)                     \
    116     --host=$LFS_TGT                                \
    117     --target=$LFS_TGT                              \
    118     LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc      \
    119     --prefix=/usr                                  \
    120     --with-build-sysroot=$LFS                      \
    121     --enable-default-pie                           \
    122     --enable-default-ssp                           \
    123     --enable-initfini-array                        \
    124     --disable-nls                                  \
    125     --enable-multilib --with-multilib-list=$mlist  \
    126     --disable-decimal-float                        \
    127     --disable-libatomic                            \
    128     --disable-libgomp                              \
    129     --disable-libquadmath                          \
    130     --disable-libssp                               \
    131     --disable-libvtv                               \
    132     --enable-languages=c,c++</userinput></screen>
    133 <!--
    134     LDFLAGS_FOR_TARGET="-L$PWD/$LFS_TGT/libgcc -L$PWD/$LFS_TGT/32/libgcc -L$PWD/$LFS_TGT/x32/libgcc" \
    135 -->
     102
    136103    <variablelist>
    137104      <title>The meaning of the new configure options:</title><!-- WIP -->
  • chapter06/ncurses.xml

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    2424    failures.  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

    r70617e8 re9ab2b3  
    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 everywhere. In the commands above, two
  • chapter07/util-linux.xml

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

    r70617e8 re9ab2b3  
    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

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

    r70617e8 re9ab2b3  
    5050    <para>Prepare Binutils for compilation:</para>
    5151
    52 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr       \
     52<screen><userinput remap="configure">../configure --prefix=/usr       \
    5353             --sysconfdir=/etc   \
    5454             --enable-gold       \
     
    5959             --enable-64-bit-bfd \
    6060             --with-system-zlib</userinput></screen>
    61 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr       \
    62              --sysconfdir=/etc   \
    63              --enable-gold       \
    64              --enable-ld=default \
    65              --enable-plugins    \
    66              --enable-shared     \
    67              --disable-werror    \
    68              --enable-64-bit-bfd \
    69              --with-system-zlib  \
    70              --enable-multilib</userinput></screen>
    71 
    7261    <variablelist>
    7362      <title>The meaning of the configure parameters:</title>
     
    10190           <para>Enables 64-bit support (on hosts with narrower word sizes).
    10291           May not be needed on 64-bit systems, but does no harm.</para>
    103         </listitem>
    104       </varlistentry>
    105 
    106       <varlistentry arch="ml_32,ml_x32,ml_all">
    107         <term><parameter>--enable-multilib</parameter></term>
    108         <listitem>
    109           <para>Enables multilib support in bintutils.</para>
    11092        </listitem>
    11193      </varlistentry>
  • chapter08/bzip2.xml

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    2222  builds.  Remove those files now:</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

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

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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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++ \
     
    8679             --disable-multilib       \
    8780             --disable-bootstrap      \
    88              --with-system-zlib</userinput></screen>
    89 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
    90   arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"
    91   arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
    92   arch="ml_all">mlist=m64,m32,mx32</userinput>
    93 <userinput remap="configure">../configure --prefix=/usr               \
    94              LD=ld                       \
    95              --enable-languages=c,c++    \
    96              --enable-default-pie        \
    97              --enable-default-ssp        \
    98              --enable-multilib           \
    99              --with-multilib-list=$mlist \
    100              --disable-bootstrap         \
    10181             --with-system-zlib</userinput></screen>
    10282
     
    295275SEARCH_DIR("/usr/lib");</computeroutput></screen>
    296276
    297    <para arch="default">A 32-bit system may use a few other directories. For example, here
     277   <para>A 32-bit system may use a few other directories. For example, here
    298278   is the output from an i686 machine:</para>
    299279
    300 <!-- not using entities here as the dir names has nothing to do with multilib -->
    301 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
     280<screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
    302281SEARCH_DIR("/usr/local/lib32")
    303282SEARCH_DIR("/lib32")
  • chapter08/glibc.xml

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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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-openssl                \
    122     --with-xz                     \
    123     --with-zstd                   \
    124     --with-zlib                   \
    125     --with-rootlibdir=/usr/lib32</userinput></screen>
    126 
    127     <para>Compile the package:</para>
    128 
    129 <screen><userinput remap="make">make</userinput></screen>
    130 
    131     <para>Install the package:</para>
    132 
    133 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    135 rm -rf DESTDIR</userinput></screen>
    136 
    137   </sect2><!-- m32 -->
    138 
    139   <!-- - - - - - - - - - -->
    140   <!-- Multilib - x32bit -->
    141   <!-- - - - - - - - - - -->
    142  
    143   <sect2 arch="ml_x32,ml_all" role="installation">
    144     <title>Installation of Kmod - x32bit</title>
    145 
    146     <para>Clean previous build but keep man pages as they cannot
    147     be recreated since xsltproc isn't installed yet:</para>
    148 
    149 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile
    150 make clean</userinput></screen>
    151 
    152     <para>Prepare Kmod for compilation:</para>
    153 
    154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    155     --host=x86_64-pc-linux-gnux32 \
    156     --prefix=/usr                 \
    157     --libdir=/usr/libx32          \
    158     --sysconfdir=/etc             \
    159     --with-openssl                \
    160     --with-xz                     \
    161     --with-zstd                   \
    162     --with-zlib                   \
    163     --with-rootlibdir=/usr/libx32</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 -->
    176100
    177101  <sect2 id="contents-kmod" role="content">
  • chapter08/libcap.xml

    r70617e8 re9ab2b3  
    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

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

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

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

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

    r70617e8 re9ab2b3  
    123123
    124124  </sect2>
    125 
    126   <!-- - - - - - - - - - -->
    127   <!-- Multilib - 32bit  -->
    128   <!-- - - - - - - - - - -->
    129  
    130   <sect2 arch="ml_32,ml_all" role="installation">
    131     <title>Installation of OpenSSL - 32bit</title>
    132 
    133     <para>Clean previous build:</para>
    134 
    135 <screen><userinput remap="pre">make distclean</userinput></screen>
    136 
    137     <para>Prepare OpenSSL for compilation:</para>
    138 
    139 <screen><userinput remap="configure">CFLAGS="-m32 -march=i686 -Wall -O3" CXXFLAGS="$CFLAGS" \
    140 ./config --prefix=/usr         \
    141          --openssldir=/etc/ssl \
    142          --libdir=lib32        \
    143          shared                \
    144          zlib-dynamic          \
    145          linux-generic32</userinput></screen>
    146 
    147     <para>Compile the package:</para>
    148 
    149 <screen><userinput remap="make">make</userinput></screen>
    150 
    151     <para>Install the package:</para>
    152 
    153 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    154 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    155 rm -rf DESTDIR</userinput></screen>
    156 
    157   </sect2><!-- m32 -->
    158 
    159   <!-- - - - - - - - - - -->
    160   <!-- Multilib - x32bit -->
    161   <!-- - - - - - - - - - -->
    162  
    163   <sect2 arch="ml_x32,ml_all" role="installation">
    164     <title>Installation of OpenSSL - x32bit</title>
    165 
    166     <para>Clean previous build:</para>
    167 
    168 <screen><userinput remap="pre">make distclean</userinput></screen>
    169 
    170     <para>Prepare OpenSSL for compilation:</para>
    171 
    172 <screen><userinput remap="configure">CFLAGS="-mx32 -march=x86-64 -Wall -O3" CXXFLAGS="$CFLAGS" \
    173 ./config --prefix=/usr         \
    174          --openssldir=/etc/ssl \
    175          --libdir=libx32       \
    176          shared                \
    177          zlib-dynamic          \
    178          linux-x32</userinput></screen>
    179 
    180     <para>Compile the package:</para>
    181 
    182 <screen><userinput remap="make">make</userinput></screen>
    183 
    184     <para>Install the package:</para>
    185 
    186 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
    187 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    188 rm -rf DESTDIR</userinput></screen>
    189 
    190   </sect2><!-- mx32 -->
    191125
    192126  <sect2 id="contents-openssl" role="content">
  • chapter08/readline.xml

    r70617e8 re9ab2b3  
    105105  </sect2>
    106106
    107   <!-- - - - - - - - - - -->
    108   <!-- Multilib - 32bit  -->
    109   <!-- - - - - - - - - - -->
    110  
    111   <sect2 arch="ml_32,ml_all" role="installation">
    112     <title>Installation of Readline - 32bit</title>
    113 
    114     <para>Clean previous build:</para>
    115 
    116 <screen><userinput remap="pre">make distclean</userinput></screen>
    117 
    118     <para>Prepare Readline for compilation:</para>
    119 
    120 <screen><userinput remap="configure">CC="gcc -m32" ./configure \
    121     --host=i686-pc-linux-gnu      \
    122     --prefix=/usr                 \
    123     --libdir=/usr/lib32           \
    124     --disable-static              \
    125     --with-curses</userinput></screen>
    126 
    127     <para>Compile the package:</para>
    128 
    129 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
    130 
    131     <para>Install the package:</para>
    132 
    133 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
    134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
    135 rm -rf DESTDIR</userinput></screen>
    136 
    137   </sect2><!-- m32 -->
    138 
    139   <!-- - - - - - - - - - -->
    140   <!-- Multilib - x32bit -->
    141   <!-- - - - - - - - - - -->
    142  
    143   <sect2 arch="ml_x32,ml_all" role="installation">
    144     <title>Installation of Readline - x32bit</title>
    145 
    146     <para>Clean previous build:</para>
    147 
    148 <screen><userinput remap="pre">make distclean</userinput></screen>
    149 
    150     <para>Prepare Readline for compilation:</para>
    151 
    152 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \
    153     --host=x86_64-pc-linux-gnux32 \
    154     --prefix=/usr                 \
    155     --libdir=/usr/libx32          \
    156     --disable-static              \
    157     --with-curses</userinput></screen>
    158 
    159     <para>Compile the package:</para>
    160 
    161 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
    162 
    163     <para>Install the package:</para>
    164 
    165 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
    166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32
    167 rm -rf DESTDIR</userinput></screen>
    168 
    169   </sect2><!-- mx32 -->
    170 
    171107  <sect2 id="contents-readline" role="content">
    172108    <title>Contents of Readline</title>
  • chapter08/stripping.xml

    r70617e8 re9ab2b3  
    7777
    7878cd /usr/lib
     79
    7980for LIB in $save_usrlib; do
    8081    objcopy --only-keep-debug $LIB $LIB.dbg
     
    8485    install -vm755 /tmp/$LIB /usr/lib
    8586    rm /tmp/$LIB
    86 done</userinput>
    87 <userinput arch="ml_32,ml_all">
    88 cd /usr/lib32
    89 for LIB in $save_usrlib; do
    90     objcopy --only-keep-debug $LIB $LIB.dbg
    91     cp $LIB /tmp/$LIB
    92     strip --strip-unneeded /tmp/$LIB
    93     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    94     install -vm755 /tmp/$LIB /usr/lib32
    95     rm /tmp/$LIB
    96 done</userinput>
    97 <userinput arch="ml_x32,ml_all">
    98 cd /usr/libx32
    99 for LIB in $save_usrlib; do
    100     objcopy --only-keep-debug $LIB $LIB.dbg
    101     cp $LIB /tmp/$LIB
    102     strip --strip-unneeded /tmp/$LIB
    103     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    104     install -vm755 /tmp/$LIB /usr/libx32
    105     rm /tmp/$LIB
    106 done</userinput><userinput>
     87done
    10788
    10889online_usrbin="bash find strip"
     
    128109    install -vm755 /tmp/$LIB /usr/lib
    129110    rm /tmp/$LIB
    130 done</userinput><userinput arch="ml_32,ml_all">
    131 for LIB in $online_usrlib; do
    132     cp /usr/lib32/$LIB /tmp/$LIB
    133     strip --strip-unneeded /tmp/$LIB
    134     install -vm755 /tmp/$LIB /usr/lib32
    135     rm /tmp/$LIB
    136 done</userinput><userinput arch="ml_x32,ml_all">
    137 for LIB in $online_usrlib; do
    138     cp /usr/libx32/$LIB /tmp/$LIB
    139     strip --strip-unneeded /tmp/$LIB
    140     install -vm755 /tmp/$LIB /usr/libx32
    141     rm /tmp/$LIB
    142 done</userinput><userinput>
     111done
    143112
    144113for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
     
    151120            ;;
    152121    esac
    153 done</userinput><userinput arch="ml_32,ml_all">
    154 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \
    155          $(find /usr/lib32 -type f -name \*.a); do
    156     case "$online_usrbin $online_usrlib $save_usrlib" in
    157         *$(basename $i)* )
    158             ;;
    159         * ) strip --strip-unneeded $i
    160             ;;
    161     esac
    162 done</userinput><userinput arch="ml_x32,ml_all">
    163 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \
    164          $(find /usr/libx32 -type f -name \*.a); do
    165     case "$online_usrbin $online_usrlib $save_usrlib" in
    166         *$(basename $i)* )
    167             ;;
    168         * ) strip --strip-unneeded $i
    169             ;;
    170     esac
    171 done</userinput><userinput>
     122done
    172123
    173124unset BIN LIB save_usrlib online_usrbin online_usrlib
  • chapter08/systemd.xml

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

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

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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

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

    r70617e8 re9ab2b3  
    244244    </note>
    245245
    246     <note arch="ml_32,ml_x32,ml_all">
    247       <para>
    248         The kernel on a multilib system needs to be able to
    249         identify and start binaries compiled for different architectures
    250         than the default.
    251       </para>
    252 
    253       <para arch="ml_32,ml_all">
    254         If support for any 32bit ABI was built, make sure that the option
    255         "IA32 Emulation" is selected. The option 'IA32 a.out support' is
    256         optional.
    257       </para>
    258 
    259       <para arch="ml_x32,ml_all">
    260         If support for the x32bit ABI was built, make sure that the option
    261         "x32 ABI for 64-bit mode" is selected.
    262       </para>
    263 
    264 <screen arch="ml_32">Binary Emulations  ---&gt;
    265     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    266     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    267 </screen>
    268 <screen arch="ml_x32">Binary Emulations  ---&gt;
    269     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    270 </screen>
    271 <screen arch="ml_all">Binary Emulations  ---&gt;
    272     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    273     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    274     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    275 </screen>
    276     </note>
    277    
    278246    <variablelist>
    279247      <title>The rationale for the above configuration items:</title>
  • packages.ent

    r70617e8 re9ab2b3  
    359359<!ENTITY iproute2-fin-sbu "0.1 SBU">
    360360
    361 <!ENTITY isl-version "0.24">
    362 <!ENTITY isl-size "2.1 MB">
    363 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->
    364 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">
    365 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">
    366 <!ENTITY isl-home "http://isl.gforge.inria.fr/">
    367 <!ENTITY isl-fin-du "20 MB">
    368 <!ENTITY isl-fin-sbu "0.1 SBU">
    369 
    370361<!ENTITY jinja2-version "3.1.2">
    371362<!ENTITY jinja2-size "262 KB">
  • prologue/bookinfo.xml

    r70617e8 re9ab2b3  
    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

    r70617e8 re9ab2b3  
    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.