Changeset 8eb3fe4 for chapter05/glibc.xml
- Timestamp:
- 04/01/2019 05:00:45 PM (5 years ago)
- Branches:
- multilib-10.1
- Children:
- 7d9f881
- Parents:
- 1fa2099
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter05/glibc.xml
r1fa2099 r8eb3fe4 83 83 </varlistentry> 84 84 85 <varlistentry arch="multilib"> 86 <term><parameter>--enable-multi-arch</parameter></term> 87 <listitem> 88 <para>Enables glibc for multiarch environments.</para> 89 </listitem> 90 </varlistentry> 91 85 92 <varlistentry> 86 93 <term><parameter>--with-headers=/tools/include</parameter></term> … … 185 192 </sect2> 186 193 194 <sect2 arch="multilib" role="installation"> 195 <title>Installation of Glibc 32-bit</title> 196 197 <para>Clean the build directory for redoing glibc for 32-bit:</para> 198 <screen><userinput remap="pre">mkdir ../build32 199 cd ../build32</userinput></screen> 200 201 <para>Rebuild glibc for 32-bit:</para> 202 <screen><userinput remap="configure">echo slibdir=/tools/lib32 > configparms 203 BUILD_CC="gcc -m32" \ 204 CC="${LFS_TGT}-gcc -m32" \ 205 CXX="${LFS_TGT}-g++ -m32" \ 206 AR="${LFS_TGT}-ar" \ 207 RANLIB="${LFS_TGT}-ranlib" \ 208 ../configure --prefix=/tools \ 209 --build=$(../scripts/config.guess) \ 210 --host=${LFS_TGT32} \ 211 --enable-kernel=&min-kernel; \ 212 --enable-multi-arch \ 213 --libdir=/tools/lib32 \ 214 --libexecdir=/tools/lib32 \ 215 --with-headers=/tools/include \ 216 --with-binutils=/tools/bin \ 217 libc_cv_forced_unwind=yes \ 218 libc_cv_c_cleanup=yes</userinput></screen> 219 220 <para>Now compile the 32-bit version of glibc:</para> 221 <screen><userinput remap="make">make</userinput></screen> 222 223 <para>Install 32-bit version of glibc:</para> 224 <screen><userinput remap="install">make install_root="${PWD}/DESTDIR" install 225 install -vdm755 /tools/lib32 226 cp -Rv DESTDIR/tools/lib32/* /tools/lib32 227 install -vm644 DESTDIR/tools/include/gnu/{lib-names,stubs}-32.h \ 228 /tools/include/gnu/ 229 ln -svf /tools/lib32/ld-linux.so.2 /tools/lib/ 230 cd ..</userinput></screen> 231 232 </sect2> 233 234 <sect2 arch="multilib" role="installation"> 235 <title>Installation of Glibc x32-bit</title> 236 237 <para>Create a build directory for redoing glibc for x32-bit:</para> 238 <screen><userinput remap="pre">mkdir build32x 239 cd build32x</userinput></screen> 240 241 <para>Rebuild glibc for x32-bit:</para> 242 <screen><userinput remap="configure">echo slibdir=/tools/libx32 > configparms 243 BUILD_CC="gcc -mx32" \ 244 CC="${LFS_TGT}-gcc -mx32" \ 245 CXX="${LFS_TGT}-g++ -mx32" \ 246 AR="${LFS_TGT}-ar" \ 247 RANLIB="${LFS_TGT}-ranlib" \ 248 ../configure --prefix=/tools \ 249 --build=$(../scripts/config.guess) \ 250 --host=${LFS_TGTX32} \ 251 --enable-kernel=&min-kernel; \ 252 --enable-multi-arch \ 253 --libdir=/tools/libx32 \ 254 --libexecdir=/tools/libx32 \ 255 --with-headers=/tools/include \ 256 --with-binutils=/tools/bin \ 257 libc_cv_forced_unwind=yes \ 258 libc_cv_c_cleanup=yes</userinput></screen> 259 260 <para>Now compile the x32-bit version of glibc:</para> 261 <screen><userinput remap="make">make</userinput></screen> 262 263 <para>Install x32-bit version of glibc:</para> 264 <screen><userinput remap="install">make install_root="${PWD}/DESTDIR" install 265 install -vdm755 /tools/libx32 266 cp -Rv DESTDIR/tools/libx32/* /tools/libx32 267 install -vm644 DESTDIR/tools/include/gnu/lib-names-x32.h \ 268 /tools/include/gnu/ 269 [ -e DESTDIR/tools/include/gnu/stubs-x32.h ] \ 270 && install -vm644 DESTDIR/tools/include/gnu/stubs-x32.h /tools/include/gnu/ \ 271 || ln -v /tools/include/gnu/stubs-64.h /tools/include/gnu/stubs-x32.h 272 ln -svf /tools/libx32/ld-linux-x32.so.2 /tools/lib/</userinput></screen> 273 <!-- For whatever reason the stubs-x32.h doesn't get created. The 'ln' above is 274 just a "brute force" workaraound - by copying the stubs-64.h file. --> 275 276 <caution> 277 <para>At this point, it is imperative to stop and ensure that the basic 278 functions (compiling and linking) of the new toolchain are working as 279 expected. To perform a sanity check, run the following commands:</para> 280 281 <screen><userinput>echo 'int main(){}' > dummy.c 282 $LFS_TGT-gcc -m32 dummy.c 283 readelf -l a.out | grep ': /tools'</userinput></screen> 284 285 <para>If everything is working correctly, there should be no errors, 286 and the output of the last command will be of the form:</para> 287 288 <screen><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</computeroutput></screen> 289 290 <para>Redo test for x32-ABI:</para> 291 292 <screen><userinput>echo 'int main(){}' > dummy.c 293 $LFS_TGT-gcc -mx32 dummy.c 294 readelf -l a.out | grep ': /tools'</userinput></screen> 295 296 <para>Output should be like:</para> 297 298 <screen><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux-x32.so.2]</computeroutput></screen> 299 300 <para>If the output is not shown as above or there was no output at all, 301 then something is wrong. Investigate and retrace the steps to find out 302 where the problem is and correct it. This issue must be resolved before 303 continuing on.</para> 304 305 <para>Once all is well, clean up the test files:</para> 306 307 <screen><userinput>rm -v dummy.c a.out</userinput></screen> 308 309 </caution> 310 </sect2> 311 187 312 <sect2 role="content"> 188 313 <title/>
Note:
See TracChangeset
for help on using the changeset viewer.