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