Man Page fbe.1




NAME

     fbe - assembler


SPARC SYNOPSIS

     fbe [ -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 SYNOPSIS

     fbe [ -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 specified 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 assembler.

     -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	 assembled.   The   preprocessor  is  run
		 separately on each input file,	not on their con-
		 catenation.   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 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 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 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.

     -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  normally 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  recommended  that  you  do not use this
		  option   to	assemble   handwritten	 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 exe-
		  cute 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	execute	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 exten-
		  sions.  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
		  UltraSPARC-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,  including  the  Visual
		  Instruction	Set   (VIS)   version	1.0,  the
		  UltraSPARC-III extensions, including the Visual
		  Instruction  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 instruc-
		  tions	from the SPARC-V9 instruction  set,  plus
		  the UltraSPARC extensions, including the Visual
		  Instruction  Set   (VIS)   version   1.0,   the
		  UltraSPARC-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 ver-
		  sion 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  perfor-
		  mance	 analysis  of the executable using SPARC-
		  works	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  Capa-
		  bilities section

     -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 pad-
		  ding.	 (See the cc(1)	 man  page  for	 accepted
		  -xchip x86 values.)

     -xmodel=[small | kernel]
		  For	AMD64 (-m64) only, generate  R_X86_64_32S
		  relocatable	type  for   static   data  access
		  under	kernel.	Otherwise,  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 environ-
      ment 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 ALSO

     attributes(5), cc(1), cpp(1), ld(1), m4(1), nm(1),	strip(1),
     tmpnam(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  assembler	symbols	and which
     keywords are real m4(1) macros.

     Whenever possible,	you should access the assembler	through	a
     compilation system	interface program such as cc(1).

     All undefined symbols are treated as global.