as(1) User Commands as(1)NAMEas - assembler
SYNOPSIS
SPARC
as [-b] [-i] [-K {pic,PIC}] [-L] [-m] [-n] [-o outfile]
[-P] [-Dname] [-Dname=def] [-Ipath] [-Uname]... [-q]
[-Qy | n] [-s] [-S [a | b | c | l | A | B | C | L]]
[-T] [-V]
[-xarch=v7 | -xarch=v8 | -xarch=v8a | -xarch=v8plus |
-xarch=v8plusa | -xarch=v8plusb | -xarch=v8plusd |
-xarch=v8plusv | -xarch=v9 | -xarch=v9a |
-xarch=v9b | -xarch=v9d | -xarch=v9v]
[-xF] [-Y dirname] filename...
x86
as [-b] [-i] [-K PIC] [-L] [-m] [-n] [-o outfile] [-P]
[-Dname] [-Dname=def] [-Ipath] [-Uname]... [-Qy | n]
[-s] [-S [a | b | c | l | A | B | C | L]] [-T] [-V]
[-xarch=generic64 | -xarch=amd64] [-Y dirname]
[-xmodel= [ SMALL | KERNEL ]] filename...
DESCRIPTION
The as command creates object files from assembly language source
files.
OPTIONS
Common Options
The following flags are common to both SPARC and x86. They can be spec‐
ified in any order:
-b Generates extra symbol table information.
-i Ignore line number information from preproces‐
sor.
-K pic | PIC Generates position-independent code.
-L Saves all symbols, including temporary labels
that are normally discarded to save space, in
the ELF symbol table.
-m Runs the m4(1) macro processor on the input to
the assembler.
-n Suppresses all the warnings while assembling.
-o outfile Puts the output of the assembly in outfile. By
default, the output file name is formed by
removing the .s suffix, if there is one, from
the input file name and appending a .o suffix.
-P Runs cpp(1), the C preprocessor, on the files
being assembled. The preprocessor is run sepa‐
rately on each input file, not on their concate‐
nation. The preprocessor output is passed to the
assembler.
-Dname When the -P option is in effect, these options
-Dname=def are passed to the cpp(1) preprocessor without
interpretation by the as command; otherwise,
they are ignored.
-Ipath When the -P option is in effect, this option is
passed to the cpp(1) preprocessor without inter‐
pretation by the as command; otherwise, it is
ignored.
-Uname When the -P option is in effect, this option is
passed to the cpp(1) preprocessor without inter‐
pretation by the as command; otherwise, it is
ignored.
-Qy | n If y is specified, this option produces the
assembler version information in the comment
section of the output object file. If n is spec‐
ified, the information is suppressed.
-s Places all stabs in the .stabs section. By
default, stabs are placed in stabs.excl sec‐
tions, which are stripped out by the static
linker, ld(1), during final execution. When the
-s option is used, stabs remain in the final
executable because .stab sections are not
stripped by the static linker.
-S[a|b|c|l|A|B|C|L] Produces a disassembly of the emitted code to
the standard output. Adding each of the follow‐
ing characters to the -S option produces:
a disassembling with address
b disassembling with ".bof"
c disassembling with comments
l disassembling with line numbers
Capital letters turn the switch off for the cor‐
responding option.
-T This is a migration option for 4.x assembly
files to be assembled on 5.x systems. With this
option, the symbol names in 4.x assembly files
are interpreted as 5.x symbol names.
-V Writes the version number of the assembler being
run on the standard error output.
-xF Allows function reordering by the Performance
Analyzer. If you compile with the -xF option,
and then run the Performance Analyzer, you can
generate a map file that shows an optimized
order for the functions. The subsequent link to
build the executable file can be directed to use
that map file by using the linker -M mapfile
option. It places each function from the exe‐
cutable file into a separate section.
-Y dirname Specify directory m4 and/or cm4def.
Options for SPARC only
-q Performs a quick assembly. When the -q option is
used, many error checks are not performed. This
option disables many error checks. Use of this option
to assemble handwritten assembly language is not rec‐
ommended.
-xarch=v7 This option instructs the assembler to accept
instructions defined in the SPARC version 7 (V7)
architecture. The resulting object code is in ELF
format.
-xarch=v8 This option instructs the assembler to accept
instructions defined in the SPARC-V8 architecture,
less the quad-precision floating-point instructions.
The resulting object code is in ELF format.
-xarch=v8a This option instructs the assembler to accept
instructions defined in the SPARC-V8 architecture,
less the quad-precision floating-point instructions
and less the fsmuld instruction. The resulting object
code is in ELF format. This is the default choice of
the -xarch=options.
-xarch=v8plus This option instructs the assembler to accept
instructions defined in the SPARC-V9 architecture,
less the quad-precision floating-point instructions.
The resulting object code is in ELF format. It does
not execute on a Solaris V8 system (a machine with a
V8 processor). It executes on a Solaris V8+ system.
This combination is a SPARC 64-bit processor and a
32-bit OS.
-xarch=v8plusa This option instructs the assembler to accept
instructions defined in the SPARC-V9 architecture,
less the quad-precision floating-point instructions,
plus the instructions in the Visual Instruction Set
(VIS). The resulting object code is in V8+ ELF for‐
mat. It does not execute on a Solaris V8 system (a
machine with a V8 processor). It executes on a
Solaris V8+ system
-xarch=v8plusb This option enables the assembler to accept instruc‐
tions defined in the SPARC-V9 architecture, plus the
instructions in the Visual Instruction Set (VIS),
with UltraSPARC-III extensions. The resulting object
code is in V8+ ELF32 format.
-xarch=v8plusd This option enables the assembler to accept instruc‐
tions DEFIned in UltraSPARC Architecture 2009. The
resulting object code is in V8+ ELF32 format.
-xarch=v8plusv This option enables the assembler to accept instruc‐
tions defined in UltraSPARC Architecture 2005,
including the extensions dealing with the sun4v vir‐
tual machine model. The resulting object code is in
V8+ ELF32 format.
-xarch=v9 This option limits the instruction set to the SPARC-
V9 architecture. The resulting .o object files are in
64-bit ELF format and can only be linked with other
object files in the same format. The resulting exe‐
cutable can only be run on a 64-bit SPARC processor
running 64-bit Solaris with the 64-bit kernel.
-xarch=v9a This option limits the instruction set to the SPARC-
V9 architecture, adding the Visual Instruction Set
(VIS) and extensions specific to UltraSPARC proces‐
sors. The resulting .o object files are in 64-bit ELF
format and can only be linked with other object files
in the same format. The resulting executable can only
be run on a 64-bit SPARC processor running 64-bit
Solaris with the 64-bit kernel.
-xarch=v9b This option enables the assembler to accept instruc‐
tions defined in the SPARC-V9 architecture, plus the
Visual Instruction Set (VIS), with UltraSPARC-III
extensions. The resulting .o object files are in
ELF64 format and can only be linked with other V9
object files in the same format. The resulting exe‐
cutable can only be run on a 64-bit processor running
a 64-bit Solaris operating environment with the
64-bit kernel.
-xarch=v9d This option enables the assembler to accept instruc‐
tions defined in UltraSPARC Architecture 2009. The
resulting object code is in ELF64 format.
-xarch=v9v This option enables the assembler to accept instruc‐
tions defined in UltraSPARC Architecture 2005,
including the extensions dealing with the sun4v vir‐
tual machine model. The resulting object code is in
ELF64 format.
Options for x86 Only
-xarch>=generic64 Limits the instruction set to AMD64. The
resulting object code is in 64-bit ELF for‐
mat.
-xarch=amd64 Limits the instruction set to AMD64. The
resulting object code is in 64-bit ELF for‐
mat.
-xmodel=[SMALL | KERNEL] For AMD64 only, generate R_X86_64_32S relo‐
catable type for static data access under
KERNEL. Otherwise, generate R_X86_64_32
under SMALL. SMALL is the default.
OPERANDS
The following operand is supported:
filename Assembly language source file
ENVIRONMENT VARIABLES
TMPDIR The as command normally creates temporary files in the direc‐
tory /tmp. Another directory can be specified by setting the
environment variable TMPDIR to the chosen directory. (If
TMPDIR is not a valid directory, then as uses /tmp).
FILES
By default, as creates its temporary files in /tmp.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Availability │developer/build/make │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOcpp(1),ld(1), m4(1), nm(1), strip(1), tmpnam(3C), a.out(4),
attributes(5)
dbx and analyzer manual pages available with Sun Studio documentation.
NOTES
If the -m option, which invokes the m4(1) macro processor, is used,
keywords for m4 cannot be used as symbols (variables, functions,
labels) in the input file, since m4 cannot determine which keywords are
assembler symbols and which keywords are real m4 macros.
Whenever possible, access the assembler through a compilation system
interface program.
All undefined symbols are treated as global.
SunOS 5.11 24 Aug 2009 as(1)