1 |
6 |
jlechner |
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.
|