Changes in / [b1c68c7:da6e70f]


Ignore:
Files:
2 deleted
49 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    2222  fail to build.  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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    6565
    6666cd /usr/lib
     67
    6768for LIB in $save_usrlib; do
    6869    objcopy --only-keep-debug $LIB $LIB.dbg
     
    7273    install -vm755 /tmp/$LIB /usr/lib
    7374    rm /tmp/$LIB
    74 done</userinput>
    75 <userinput arch="ml_32,ml_all">
    76 cd /usr/lib32
    77 for LIB in $save_usrlib; do
    78     objcopy --only-keep-debug $LIB $LIB.dbg
    79     cp $LIB /tmp/$LIB
    80     strip --strip-unneeded /tmp/$LIB
    81     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    82     install -vm755 /tmp/$LIB /usr/lib32
    83     rm /tmp/$LIB
    84 done</userinput>
    85 <userinput arch="ml_x32,ml_all">
    86 cd /usr/libx32
    87 for LIB in $save_usrlib; do
    88     objcopy --only-keep-debug $LIB $LIB.dbg
    89     cp $LIB /tmp/$LIB
    90     strip --strip-unneeded /tmp/$LIB
    91     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
    92     install -vm755 /tmp/$LIB /usr/libx32
    93     rm /tmp/$LIB
    94 done</userinput><userinput>
     75done
    9576
    9677online_usrbin="bash find strip"
     
    11596    install -vm755 /tmp/$LIB /usr/lib
    11697    rm /tmp/$LIB
    117 done</userinput><userinput arch="ml_32,ml_all">
    118 for LIB in $online_usrlib; do
    119     cp /usr/lib32/$LIB /tmp/$LIB
    120     strip --strip-unneeded /tmp/$LIB
    121     install -vm755 /tmp/$LIB /usr/lib32
    122     rm /tmp/$LIB
    123 done</userinput><userinput arch="ml_x32,ml_all">
    124 for LIB in $online_usrlib; do
    125     cp /usr/libx32/$LIB /tmp/$LIB
    126     strip --strip-unneeded /tmp/$LIB
    127     install -vm755 /tmp/$LIB /usr/libx32
    128     rm /tmp/$LIB
    129 done</userinput><userinput>
     98done
    13099
    131100for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
     
    138107            ;;
    139108    esac
    140 done</userinput><userinput arch="ml_32,ml_all">
    141 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \
    142          $(find /usr/lib32 -type f -name \*.a); do
    143     case "$online_usrbin $online_usrlib $save_usrlib" in
    144         *$(basename $i)* )
    145             ;;
    146         * ) strip --strip-unneeded $i
    147             ;;
    148     esac
    149 done</userinput><userinput arch="ml_x32,ml_all">
    150 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \
    151          $(find /usr/libx32 -type f -name \*.a); do
    152     case "$online_usrbin $online_usrlib $save_usrlib" in
    153         *$(basename $i)* )
    154             ;;
    155         * ) strip --strip-unneeded $i
    156             ;;
    157     esac
    158 done</userinput><userinput>
     109done
    159110
    160111unset BIN LIB save_usrlib online_usrbin online_usrlib
  • chapter08/systemd.xml

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

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

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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

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

    rb1c68c7 rda6e70f  
    201201    </note>
    202202
    203     <note arch="ml_32,ml_x32,ml_all">
    204       <para>
    205         The kernel on a multilib system needs to be able to
    206         identify and start binaries compiled for different architectures
    207         than the default.
    208       </para>
    209 
    210       <para arch="ml_32,ml_all">
    211         If support for any 32bit ABI was built, make sure that the option
    212         "IA32 Emulation" is selected. The option 'IA32 a.out support' is
    213         optional.
    214       </para>
    215 
    216       <para arch="ml_x32,ml_all">
    217         If support for the x32bit ABI was built, make sure that the option
    218         "x32 ABI for 64-bit mode" is selected.
    219       </para>
    220 
    221 <screen arch="ml_32">Binary Emulations  ---&gt;
    222     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    223     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    224 </screen>
    225 <screen arch="ml_x32">Binary Emulations  ---&gt;
    226     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    227 </screen>
    228 <screen arch="ml_all">Binary Emulations  ---&gt;
    229     [*] IA32 Emulation [CONFIG_IA32_EMULATION]
    230     &lt;M&gt;   IA32 a.out support [CONFIG_IA32_AOUT]
    231     [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]
    232 </screen>
    233     </note>
    234    
    235203    <variablelist>
    236204      <title>The rationale for the above configuration items:</title>
  • packages.ent

    rb1c68c7 rda6e70f  
    351351<!ENTITY iproute2-fin-sbu "0.2 SBU">
    352352
    353 <!ENTITY isl-version "0.24">
    354 <!ENTITY isl-size "2.1 MB">
    355 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->
    356 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">
    357 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">
    358 <!ENTITY isl-home "http://isl.gforge.inria.fr/">
    359 <!ENTITY isl-fin-du "20 MB">
    360 <!ENTITY isl-fin-sbu "0.1 SBU">
    361 
    362353<!ENTITY jinja2-version "3.1.2">
    363354<!ENTITY jinja2-size "262 KB">
  • prologue/bookinfo.xml

    rb1c68c7 rda6e70f  
    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

    rb1c68c7 rda6e70f  
    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.