compiler.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. <Chapter Id="compiler">
  2. <DocInfo>
  3. <AuthorGroup>
  4. <Author>
  5. <FirstName>Brian</FirstName>
  6. <Surname>Gallew</Surname>
  7. </Author>
  8. </AuthorGroup>
  9. <Date>Transcribed 1998-02-12</Date>
  10. </DocInfo>
  11. <Title><application>gcc</application> Default Optimizations</Title>
  12. <Para>
  13. <Note>
  14. <Para>
  15. Contributed by <ULink url="mailto:geek+@cmu.edu">Brian Gallew</ULink>
  16. </Para>
  17. </Note>
  18. </para>
  19. <Para>
  20. Configuring gcc to use certain flags by default is a simple matter of
  21. editing the 
  22. <FileName>/usr/local/lib/gcc-lib/<Replaceable>platform</Replaceable>/<Replaceable>version</Replaceable>/specs</FileName>
  23. file.
  24. The format of this file pretty simple.  The file is broken into
  25. sections, each of which is three lines long.  The first line is
  26. "*<Replaceable>section_name</Replaceable>:" (e.g. "*asm:").
  27. The second line is a list of flags,
  28. and the third line is blank.
  29. </para>
  30. <Para>
  31. The easiest change to make is to append
  32. the desired default flags to the list in the appropriate section.  As
  33. an example, let's suppose that I have linux running on a '486 with gcc
  34. 2.7.2 installed in the default location.  In the file
  35. /usr/local/lib/gcc-lib/i486-linux/2.7.2/specs, 13 lines down I find
  36. the following section:
  37. <ProgramListing>
  38. - ----------SECTION----------
  39. *cc1:
  40. - ----------SECTION----------
  41. </ProgramListing>
  42. As you can see, there aren't any default flags.  If I always wanted
  43. compiles of C code to use "-m486 -fomit-frame-pointer", I would
  44. change it to look like:
  45. <ProgramListing>
  46. - ----------SECTION----------
  47. *cc1:
  48. - -m486 -fomit-frame-pointer
  49. - ----------SECTION----------
  50. </ProgramListing>
  51. If I wanted to be able to generate 386 code for another, older linux
  52. box lying around, I'd have to make it look like this:
  53. <ProgramListing>
  54. - ----------SECTION----------
  55. *cc1:
  56. %{!m386:-m486} -fomit-frame-pointer
  57. - ----------SECTION----------
  58. </ProgramListing>
  59. This will always omit frame pointers, any will build 486-optimized
  60. code unless -m386 is specified on the command line.
  61. </para>
  62. <Para>
  63. You can actually do quite a lot of customization with the specs file.
  64. Always remember, however, that these changes are global, and affect
  65. all users of the system.
  66. </para>
  67. </Chapter>