as: GNU Object Attributes

1 
1 8.1 GNU Object Attributes
1 =========================
1 
1 The '.gnu_attribute' directive records an object attribute with vendor
1 'gnu'.
1 
1    Except for 'Tag_compatibility', which has both an integer and a
1 string for its value, GNU attributes have a string value if the tag
1 number is odd and an integer value if the tag number is even.  The
1 second bit ('TAG & 2' is set for architecture-independent attributes and
1 clear for architecture-dependent ones.
1 
1 8.1.1 Common GNU attributes
1 ---------------------------
1 
1 These attributes are valid on all architectures.
1 
1 Tag_compatibility (32)
1      The compatibility attribute takes an integer flag value and a
1      vendor name.  If the flag value is 0, the file is compatible with
1      other toolchains.  If it is 1, then the file is only compatible
1      with the named toolchain.  If it is greater than 1, the file can
1      only be processed by other toolchains under some private
1      arrangement indicated by the flag value and the vendor name.
1 
1 8.1.2 MIPS Attributes
1 ---------------------
1 
1 Tag_GNU_MIPS_ABI_FP (4)
1      The floating-point ABI used by this object file.  The value will
1      be:
1 
1         * 0 for files not affected by the floating-point ABI.
1         * 1 for files using the hardware floating-point ABI with a
1           standard double-precision FPU.
1         * 2 for files using the hardware floating-point ABI with a
1           single-precision FPU.
1         * 3 for files using the software floating-point ABI.
1         * 4 for files using the deprecated hardware floating-point ABI
1           which used 64-bit floating-point registers, 32-bit
1           general-purpose registers and increased the number of
1           callee-saved floating-point registers.
1         * 5 for files using the hardware floating-point ABI with a
1           double-precision FPU with either 32-bit or 64-bit
1           floating-point registers and 32-bit general-purpose registers.
1         * 6 for files using the hardware floating-point ABI with 64-bit
1           floating-point registers and 32-bit general-purpose registers.
1         * 7 for files using the hardware floating-point ABI with 64-bit
1           floating-point registers, 32-bit general-purpose registers and
1           a rule that forbids the direct use of odd-numbered
1           single-precision floating-point registers.
1 
1 8.1.3 PowerPC Attributes
1 ------------------------
1 
1 Tag_GNU_Power_ABI_FP (4)
1      The floating-point ABI used by this object file.  The value will
1      be:
1 
1         * 0 for files not affected by the floating-point ABI.
1         * 1 for files using double-precision hardware floating-point
1           ABI.
1         * 2 for files using the software floating-point ABI.
1         * 3 for files using single-precision hardware floating-point
1           ABI.
1 
1 Tag_GNU_Power_ABI_Vector (8)
1      The vector ABI used by this object file.  The value will be:
1 
1         * 0 for files not affected by the vector ABI.
1         * 1 for files using general purpose registers to pass vectors.
1         * 2 for files using AltiVec registers to pass vectors.
1         * 3 for files using SPE registers to pass vectors.
1 
1 8.1.4 IBM z Systems Attributes
1 ------------------------------
1 
1 Tag_GNU_S390_ABI_Vector (8)
1      The vector ABI used by this object file.  The value will be:
1 
1         * 0 for files not affected by the vector ABI.
1         * 1 for files using software vector ABI.
1         * 2 for files using hardware vector ABI.
1