fbe(1)fbe(1)NAMEfbe - assembler
SPARC SYNOPSISfbe [ -hwcap={1|0} ] [ -L ] [ -m ] [ -m32 ] [ -m64 ]
[ -n ] [ -o outfile ] [ -ul ] [ -P ]
[ -Dname ] [ -Dname=def ] [ -Ipath ]
[ -Uname.... ] [ -q ] [ -Q[y|n] ] [ -s ]
[ -S[a|b|c|l|A|B|C|L]] [ -V ] [ -xarch=v ]
[ -xcode={pic13|pic32} ] [ -xF ] [ -Y path ] [ -YI,path ] filename...
x86 SYNOPSISfbe [ -a32 ] [ -m ] [ -m32 ] [ -m64 ] [ -n ]
[ -H ] [ -nH ] [ -o outfile ]
[ -P ] [ -Dname ] [ -Dname=def ] [ -Ipath ] [ -Uname...]
[ -Q[y|n] ] [ -s ] [ -S[a|b|c|l|A|B|C|L]] [ -V ]
[ -xchip=v ] [ -xcode={pic13|pic32} ] [ -xmodel=[a] ]
[ -Y path ] [ -YI,path ] filename...
AVAILABILITY
SPROlang
DESCRIPTION
The fbe command creates object files from assembly language source
files.
COMMON OPTIONS
The following flags are common to both SPARC and x86. They may be spec‐
ified in any order.
-Dname
-Dname=def When the -P option is in effect, these options are passed
to the cpp(1) preprocessor without interpretation by the
fbe command; otherwise, they are ignored.
-Ipath When the -P option is in effect, this option is passed to
the cpp(1) preprocessor without interpretation by the fbe
command; otherwise, it is ignored.
-i Instructs fbe to ignore line-number information from the
preprocessor.
-m Run the m4(1) macro processor on the input to the assem‐
bler.
-m32|-m64 Generate 32-bit or 64-bit ELF format object code.
-n Suppress all the warnings while assembling.
-o outfile Put 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 Run cpp(1), the C preprocessor, on the files being assem‐
bled. The preprocessor is run separately on each input
file, not on their concatenation. The preprocessor output
is passed to the assembler.
-Q[y|n] If the y option is specified, it produces the "assembler
version" information in the comment section of the output
object file. If the n option is specified, the information
is suppressed.
-S[a|b|c|l|A|B|C|L]
Produces a disassembly of the emitted code to the standard
output. Adding each of the following 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 switch the corresponding option off. The
default is -Sc.
-s Place all stabs in the .stabs section. By default, stabs
are placed in stabs.excl sections, 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.
-Uname When the -P option is in effect, this option is passed to
the cpp(1) preprocessor without interpretation by the fbe
command; otherwise, it is ignored.
-V Write the version number of the assembler being run on the
standard error output.
-xcode=pic13
Generates position-independent code for use in shared
libraries (small model). Equivalent to obsolete option -K
pic.
-xcode=pic32
Generates position-independent code for use in shared
libraries (large model). Equivalent to obsolete option -K
PIC.
-Y path Specify directory for m4 and/or cm4def
-YI,path Indicate path to search for #include header files.
SPARC Options
-hwcap={1|0} Emit/suppress the generation of the Hardware Capabilities
section. Default is to generate the section.
-L Save all symbols, including temporary labels that are nor‐
mally discarded to save space, in the ELF symbol table.
-q Perform a quick assembly. When the -q option is used,
many error checks are not performed.
Note: This option disables many error checks. It is rec‐
ommended that you do not use this option to assemble hand‐
written assembly language.
-ul Treat all undefined symbols as local.
-xarch=sparc Enables the assembler to accept instructions defined in
the SPARC-V9 architecture. The resulting object code is
in ELF32 format when compiled with -m32, ELF64 format with
-m64. It will not execute on a Oracle Solaris V8 system
(a machine with a V8 processor). It will execute on a
Oracle Solaris V8+ system.
-xarch=sparcvis
Enables the assembler to accept instructions defined in
the SPARC-V9 architecture plus the instructions in the
Visual Instruction Set (VIS) version 1.0. The resulting
object code is in V8+ ELF32 format when compiled with
-m32, ELF64 format with -m64. It will not execute on a
Oracle Solaris system with a V8 processor. It will exe‐
cute on a Oracle Solaris system with a V8+ processor.
-xarch=sparcvis2
Enables the assembler to accept instructions defined in
the SPARC-V9 architecture, plus the instructions in the
Visual Instruction Set (VIS) version 2.0, with UltraSPARC-
III extensions. The resulting object code is in V8+ ELF32
format when compiled with -m32, ELF64 format with -m64.
-xarch=sparcvis3
Accept instructions defined for the SPARC VIS version 3 of
the SPARC-V9 ISA which are instructions from the SPARC-V9
instruction set, plus the UltraSPARC extensions, including
the Visual Instruction Set (VIS) version 1.0, the Ultra‐
SPARC-III extensions, including the Visual Instruction Set
(VIS) version 2.0, the fused multiply-add instructions,
and the Visual Instruction Set (VIS) version 3.0
-xarch=sparcfmaf
Accept instructions defined for the sparcfmaf version of
the SPARC-V9 ISA, plus the UltraSPARC extensions, includ‐
ing the Visual Instruction Set (VIS) version 1.0, the
UltraSPARC-III extensions, including the Visual Instruc‐
tion Set (VIS) version 2.0, and the SPARC64 VI extensions
for floating-point multiply-add.
-xarch=sparcima
Accept instructions defined for the sparcima version of
the SPARC-V9 ISA which are instructions from the SPARC-V9
instruction set, plus the UltraSPARC extensions, including
the Visual Instruction Set (VIS) version 1.0, the Ultra‐
SPARC-III extensions, including the Visual Instruction Set
(VIS) version 2.0, the SPARC64 VI extensions for floating-
point multiply-add, and the SPARC64 VII extensions for
integer multiply-add.
-xarch=sparc4
Accept instructions defined for the sparc4 version of the
SPARC-V9 ISA which are instructions from the SPARC-V9
instruction set, plus the extensions, which includes VIS
1.0, the UltraSPARC-III extensions, which includes VIS
2.0, the fused floating-point multiply-add instructions,
VIS 3.0, and SPARC4 instructions.
-xF Generates additional information for performance analysis
of the executable using SPARCworks analyzer. If the input
file does not contain any stabs (debugging directives),
then the assembler will generate some default stabs which
are needed by the Oracle Solaris Studio analyzer. Also
see the dbx(1) manual page.
x86 Options
-a32 Allow 32-bit addresses in 64-bit mode.
-H Generate the Hardware Capabilities section. (Default)
-nH Suppress the generation of the Hardware Capabilities sec‐
tion
-xchip=v When there is a choice between several possible encodings,
choose the one which is supposedly faster on the given
chip. In particular, the no-op byte sequence to fill code
alignment padding. (See the cc(1) man page for accepted
-xchip x86 values.)
-xmodel=[small | kernel]
For AMD64 (-m64) only, generate R_X86_64_32S relocat‐
able type for static data access under kernel. Other‐
wise, generate R_X86_64_32 under small. small is the
default.
ENVIRONMENT
TMPDIR
fbe normally creates temporary files in the directory /tmp. You may
specify another directory by setting the environment variable TMPDIR
to your chosen directory. (If TMPDIR isn't a valid directory, then
fbe will use /tmp).
FILES
By default, fbe creates its temporary files in /tmp.
SEE ALSOattributes(5), cc(1), cpp(1), ld(1), m4(1), nm(1), strip(1), tmp‐
nam(3S), a.out(4)NOTES
On SPARC platforms, the cpp symbol __sparc is set when the flag -P
appears, as well as __sparcv8 with the -m32 flag, and __sparcv9 with
the -m64 flag.
On x86/x64, the symbol __i386 is set when the flag -P appears, as well
as __amd64 with the -m64 flag.
If the -m (invoke the m4(1) macro processor) option is used, keywords
for m4(1) cannot be used as symbols (variables, functions, labels) in
the input file since m4(1) cannot determine which keywords are assem‐
bler symbols and which keywords are real m4(1) macros.
Whenever possible, you should access the assembler through a compila‐
tion system interface program such as cc(1).
All undefined symbols are treated as global.
2011/09/12 fbe(1)