README 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. README for GAS
  2. A number of things have changed since version 1 and the wonderful
  3. world of gas looks very different. There's still a lot of irrelevant
  4. garbage lying around that will be cleaned up in time. Documentation
  5. is scarce, as are logs of the changes made since the last gas release.
  6. My apologies, and I'll try to get something useful.
  7. Unpacking and Installation - Summary
  8. ====================================
  9. See ../binutils/README.
  10. To build just the assembler, make the target all-gas.
  11. Documentation
  12. =============
  13. The GAS release includes texinfo source for its manual, which can be processed
  14. into `info' or `dvi' forms.
  15. The DVI form is suitable for printing or displaying; the commands for doing
  16. this vary from system to system. On many systems, `lpr -d' will print a DVI
  17. file. On others, you may need to run a program such as `dvips' to convert the
  18. DVI file into a form your system can print.
  19. If you wish to build the DVI file, you will need to have TeX installed on your
  20. system. You can rebuild it by typing:
  21. cd gas/doc
  22. make as.dvi
  23. The Info form is viewable with the GNU Emacs `info' subsystem, or the
  24. stand-alone `info' program, available as part of the GNU Texinfo distribution.
  25. To build the info files, you will need the `makeinfo' program. Type:
  26. cd gas/doc
  27. make info
  28. Specifying names for hosts and targets
  29. ======================================
  30. The specifications used for hosts and targets in the `configure'
  31. script are based on a three-part naming scheme, but some short
  32. predefined aliases are also supported. The full naming scheme encodes
  33. three pieces of information in the following pattern:
  34. ARCHITECTURE-VENDOR-OS
  35. For example, you can use the alias `sun4' as a HOST argument or in a
  36. `--target=TARGET' option. The equivalent full name is
  37. `sparc-sun-sunos4'.
  38. The `configure' script accompanying GAS does not provide any query
  39. facility to list all supported host and target names or aliases.
  40. `configure' calls the Bourne shell script `config.sub' to map
  41. abbreviations to full names; you can read the script, if you wish, or
  42. you can use it to test your guesses on abbreviations--for example:
  43. % sh config.sub i386v
  44. i386-unknown-sysv
  45. % sh config.sub i786v
  46. Invalid configuration `i786v': machine `i786v' not recognized
  47. `configure' options
  48. ===================
  49. Here is a summary of the `configure' options and arguments that are
  50. most often useful for building GAS. `configure' also has several other
  51. options not listed here.
  52. configure [--help]
  53. [--prefix=DIR]
  54. [--srcdir=PATH]
  55. [--host=HOST]
  56. [--target=TARGET]
  57. [--with-OPTION]
  58. [--enable-OPTION]
  59. You may introduce options with a single `-' rather than `--' if you
  60. prefer; but you may abbreviate option names if you use `--'.
  61. `--help'
  62. Print a summary of the options to `configure', and exit.
  63. `-prefix=DIR'
  64. Configure the source to install programs and files under directory
  65. `DIR'.
  66. `--srcdir=PATH'
  67. Look for the package's source code in directory DIR. Usually
  68. `configure' can determine that directory automatically.
  69. `--host=HOST'
  70. Configure GAS to run on the specified HOST. Normally the
  71. configure script can figure this out automatically.
  72. There is no convenient way to generate a list of all available
  73. hosts.
  74. `--target=TARGET'
  75. Configure GAS for cross-assembling programs for the specified
  76. TARGET. Without this option, GAS is configured to assemble .o files
  77. that run on the same machine (HOST) as GAS itself.
  78. There is no convenient way to generate a list of all available
  79. targets.
  80. `--enable-OPTION'
  81. These flags tell the program or library being configured to
  82. configure itself differently from the default for the specified
  83. host/target combination. See below for a list of `--enable'
  84. options recognized in the gas distribution.
  85. `configure' accepts other options, for compatibility with configuring
  86. other GNU tools recursively; but these are the only options that affect
  87. GAS or its supporting libraries.
  88. The `--enable' options recognized by software in the gas distribution are:
  89. `--enable-targets=...'
  90. This causes one or more specified configurations to be added to those for
  91. which BFD support is compiled. Currently gas cannot use any format other
  92. than its compiled-in default, so this option is not very useful.
  93. `--enable-bfd-assembler'
  94. This causes the assembler to use the new code being merged into it to use
  95. BFD data structures internally, and use BFD for writing object files.
  96. For most targets, this isn't supported yet. For most targets where it has
  97. been done, it's already the default. So generally you won't need to use
  98. this option.
  99. Compiler Support Hacks
  100. ======================
  101. On a few targets, the assembler has been modified to support a feature
  102. that is potentially useful when assembling compiler output, but which
  103. may confuse assembly language programmers. If assembler encounters a
  104. .word pseudo-op of the form symbol1-symbol2 (the difference of two
  105. symbols), and the difference of those two symbols will not fit in 16
  106. bits, the assembler will create a branch around a long jump to
  107. symbol1, and insert this into the output directly before the next
  108. label: The .word will (instead of containing garbage, or giving an
  109. error message) contain (the address of the long jump)-symbol2. This
  110. allows the assembler to assemble jump tables that jump to locations
  111. very far away into code that works properly. If the next label is
  112. more than 32K away from the .word, you lose (silently); RMS claims
  113. this will never happen. If the -K option is given, you will get a
  114. warning message when this happens.
  115. REPORTING BUGS IN GAS
  116. =====================
  117. Bugs in gas should be reported to:
  118. https://sourceware.org/bugzilla/
  119. See ../binutils/README for what we need in a bug report.
  120. Copyright (C) 2012-2022 Free Software Foundation, Inc.
  121. Copying and distribution of this file, with or without modification,
  122. are permitted in any medium without royalty provided the copyright
  123. notice and this notice are preserved.