gcc-exp.xml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <sect2>
  2. <title>Command explanations</title>
  3. <para><userinput>patch -Np1 -i ../gcc-&gcc-patch-version;.patch:</userinput>
  4. This patch fixes a few bugs. In particular it contains the "copy fix" and
  5. "var fix" documented at
  6. <ulink url="http://www.zipworld.com.au/~gschafer/lfs-tweaks.html"/>.</para>
  7. <para><userinput>patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch:</userinput>
  8. This prevents the fixincludes script from running. This is needed because
  9. under normal circumstances the GCC installation will run the fixincludes
  10. scripts which scans your system for header files that need to be fixed. Say
  11. it finds Glibc header files. It will fix them and will end up in
  12. $LFS/static/lib/gcc-lib/i686-pc-linux-gnu/3.2. Later on in chapter 6 you
  13. will install Glibc which will install header files in /usr/include. Next
  14. you will install other programs which will use Glibc headers. GCC will look
  15. in /static/lib/gcc-lib before looking in /usr/include, whichhas the result
  16. of Glibc header files from your host distribution being found and used which
  17. are probably incompatible with the Glibc version actually in use on the LFS
  18. system.</para>
  19. <para><userinput>--prefix=/static:</userinput> This is NOT a typo. GCC hard
  20. codes some paths while compiling and so we need to pass /static as the
  21. prefix during ./configure. We pass the real install prefix during the
  22. make install command later.</para>
  23. <para><userinput>echo "#define HAVE_GAS_HIDDEN 1":</userinput>
  24. This defines the .hidden assembler directive so that we don't build
  25. a faulty Glibc later on.</para>
  26. <para><userinput>make BOOT_LDFLAGS=-static:</userinput>
  27. This is the equivalent to make LDFLAGS=-static as we use with other
  28. packages to compile them statically.</para>
  29. <para><userinput>ln -s gcc $LFS/static/bin/cc:</userinput> This
  30. creates the $LFS/static/bin/gcc symlink, which some packages need.</para>
  31. </sect2>