		README for GAS

A number of things have changed since version 1 and the wonderful
world of gas looks very different.  There's still a lot of irrelevant
garbage lying around that will be cleaned up in time.  Documentation
is scarce, as are logs of the changes made since the last gas release.
My apologies, and I'll try to get something useful.

Unpacking and Installation - Summary
====================================

See ../binutils/README.

To build just the assembler, make the target all-gas.

Documentation
=============

The GAS release includes texinfo source for its manual, which can be processed
into `info' or `dvi' forms.

The DVI form is suitable for printing or displaying; the commands for doing
this vary from system to system.  On many systems, `lpr -d' will print a DVI
file.  On others, you may need to run a program such as `dvips' to convert the
DVI file into a form your system can print.

If you wish to build the DVI file, you will need to have TeX installed on your
system.  You can rebuild it by typing:

	cd gas/doc
	make as.dvi

The Info form is viewable with the GNU Emacs `info' subsystem, or the
stand-alone `info' program, available as part of the GNU Texinfo distribution.
To build the info files, you will need the `makeinfo' program.  Type:

	cd gas/doc
	make info

Specifying names for hosts and targets
======================================

   The specifications used for hosts and targets in the `configure'
script are based on a three-part naming scheme, but some short
predefined aliases are also supported.  The full naming scheme encodes
three pieces of information in the following pattern:

     ARCHITECTURE-VENDOR-OS

   For example, you can use the alias `sun4' as a HOST argument or in a
`--target=TARGET' option.  The equivalent full name is
`sparc-sun-sunos4'.

   The `configure' script accompanying GAS does not provide any query
facility to list all supported host and target names or aliases. 
`configure' calls the Bourne shell script `config.sub' to map
abbreviations to full names; you can read the script, if you wish, or
you can use it to test your guesses on abbreviations--for example:

     % sh config.sub sun4
     sparc-sun-sunos411
     % sh config.sub sun3
     m68k-sun-sunos411
     % sh config.sub decstation
     mips-dec-ultrix42
     % sh config.sub hp300bsd
     m68k-hp-bsd
     % sh config.sub i386v
     i386-unknown-sysv
     % sh config.sub i786v
     Invalid configuration `i786v': machine `i786v' not recognized


`configure' options
===================

   Here is a summary of the `configure' options and arguments that are
most often useful for building GAS.  `configure' also has several other
options not listed here.

     configure [--help]
               [--prefix=DIR]
               [--srcdir=PATH]
               [--host=HOST]
               [--target=TARGET]
               [--with-OPTION]
               [--enable-OPTION]

You may introduce options with a single `-' rather than `--' if you
prefer; but you may abbreviate option names if you use `--'.

`--help'
     Print a summary of the options to `configure', and exit.

`-prefix=DIR'
     Configure the source to install programs and files under directory
     `DIR'.

`--srcdir=PATH'
     Look for the package's source code in directory DIR.  Usually
     `configure' can determine that directory automatically.

`--host=HOST'
     Configure GAS to run on the specified HOST.  Normally the
     configure script can figure this out automatically.

     There is no convenient way to generate a list of all available
     hosts.

`--target=TARGET'
     Configure GAS for cross-assembling programs for the specified
     TARGET.  Without this option, GAS is configured to assemble .o files
     that run on the same machine (HOST) as GAS itself.

     There is no convenient way to generate a list of all available
     targets.

`--enable-OPTION'
     These flags tell the program or library being configured to 
     configure itself differently from the default for the specified
     host/target combination.  See below for a list of `--enable'
     options recognized in the gas distribution.

`configure' accepts other options, for compatibility with configuring
other GNU tools recursively; but these are the only options that affect
GAS or its supporting libraries.

The `--enable' options recognized by software in the gas distribution are:

`--enable-targets=...'
     This causes one or more specified configurations to be added to those for
     which BFD support is compiled.  Currently gas cannot use any format other
     than its compiled-in default, so this option is not very useful.

`--enable-bfd-assembler'
     This causes the assembler to use the new code being merged into it to use
     BFD data structures internally, and use BFD for writing object files.
     For most targets, this isn't supported yet.  For most targets where it has
     been done, it's already the default.  So generally you won't need to use
     this option.

Supported platforms
===================

At this point I believe gas to be ANSI only code for most target cpu's.  That
is, there should be relatively few, if any host system dependencies.  So
porting (as a cross-assembler) to hosts not yet supported should be fairly
easy.  Porting to a new target shouldn't be too tough if it's a variant of one
already supported.

Native assembling should work on:

	sun3
	sun4
	386bsd
	bsd/386
	delta (m68k-sysv from Motorola)
	delta88 (m88k-sysv from Motorola)
	GNU/linux
	m68k hpux 8.0 (hpux 7.0 may be a problem)
	vax bsd, ultrix, vms
	hp9000s300
	decstation
	irix 4
	irix 5
	miniframe (m68k-sysv from Convergent Technologies)
	i386-aix (ps/2)
	hppa (hpux 4.3bsd, osf1)
	AIX
	unixware
	sco 3.2v4.2
	sco openserver 5.0 (a.k.a. 3.2v5.0 )
	sparc solaris
	ns32k (netbsd, lites)

I believe that gas as a cross-assembler can currently be targeted for
most of the above hosts, plus

        arm
	decstation-bsd (a.out format, to be used in BSD 4.4)
	ebmon29k
	go32 (DOS on i386, with DJGPP -- old a.out version)
	H8/300, H8/500 (Hitachi)
	i386-aix (ps/2)
	i960-coff
	mips ecoff (decstation-ultrix, iris, mips magnum, mips-idt-ecoff)
	Mitsubishi d10v and d30v
	nindy960
	powerpc EABI
	SH (Hitachi)
	sco386
	TI tic30 and tic80
	vax bsd or ultrix?
	vms
	vxworks68k
	vxworks960
	z8000 (Zilog)

MIPS ECOFF support has been added, but GAS will not run a C-style
preprocessor.  If you want that, rename your file to have a ".S" suffix, and
run gcc on it.  Or run "gcc -xassembler-with-cpp foo.s".

Support for ELF should work now for sparc, hppa, i386, alpha, m68k,
MIPS, powerpc.

Support for sequent (ns32k), tahoe, i860 may be suffering from bitrot.

If you try out gas on some host or target not listed above, please let me know
the results, so I can update the list.

Compiler Support Hacks
======================

On a few targets, the assembler has been modified to support a feature
that is potentially useful when assembling compiler output, but which
may confuse assembly language programmers.  If assembler encounters a
.word pseudo-op of the form symbol1-symbol2 (the difference of two
symbols), and the difference of those two symbols will not fit in 16
bits, the assembler will create a branch around a long jump to
symbol1, and insert this into the output directly before the next
label: The .word will (instead of containing garbage, or giving an
error message) contain (the address of the long jump)-symbol2.  This
allows the assembler to assemble jump tables that jump to locations
very far away into code that works properly.  If the next label is
more than 32K away from the .word, you lose (silently); RMS claims
this will never happen.  If the -K option is given, you will get a
warning message when this happens.


REPORTING BUGS IN GAS
=====================

Bugs in gas should be reported to:

   bug-binutils@gnu.org.

They may be cross-posted to gcc-bugs@gnu.org if they affect the use of
gas with gcc.  They should not be reported just to gcc-bugs, since not
all of the maintainers read that list.

See ../binutils/README for what we need in a bug report.
