mozilla

Revision 137705 of XPCOM ABI

  • Revision slug: XPCOM_ABI
  • Revision title: XPCOM ABI
  • Revision id: 137705
  • Created:
  • Creator: Ikonst
  • Is current revision? No
  • Comment Initial submission
Tags: 

Revision Content

TARGET_XPCOM_ABI is a string which indicates the binary interface of XPCOM components that would be compatible with a certain build of Firefox, Thunderbird or other XULRunner application.

At build time of the application (e.g. Firefox), this string is generated and embedded into it. Later on, the application will ensure that installed extensions adhere to its TARGET_XPCOM_ABI.

The format of the string is:

CPU_ARCH[-TARGET_COMPILER_ABI]

Note: TARGET_COMPILER_ABI is optional.

CPU_ARCH represents the CPU architecture and may be either:

  • x86 - i386 and higher series (including x86-64 in 32-bit mode)
  • ppc - PowerPC series
  • Alpha - Digital Alpha series
  • x86_64 - AMD64/EMT64 series in 64-bit mode (32-bit mode is still considered x86)
  • sparc - SPARC series
  • ia64 - Itanium series

TARGET_COMPILER_ABI represents the compiler ABI and may be either:

  • msvc - Microsoft Visual C++
  • n32 - IRIX 6 C++ Compiler
  • gcc2 - GNU C++ Compiler 2.x
  • gcc3 - GNU C++ Compiler 3.x or 4.x

For other compilers, this value is ommited.

For example:

  • Firefox built with the GNU C++ Compiler 4.0.0 for the Pentium processor would have TARGET_XPCOM_ABI of:
x86-gcc3
  • Thunderbird built with the Solaris C++ Compiler for the SPARC processor would have TARGET_XPCOM_ABI of:
sparc

Note: This is not an exhaustive list of possible CPU architectures and compiler ABIs. Newest information can always be found by exploring the build system.

Revision Source

<p>TARGET_XPCOM_ABI is a string which indicates the binary interface of XPCOM components that would be compatible with a certain build of Firefox, Thunderbird or other XULRunner application.
</p><p>At build time of the application (e.g. Firefox), this string is generated and embedded into it. Later on, the application will ensure that installed extensions adhere to its TARGET_XPCOM_ABI.
</p><p>The format of the string is:
</p>
<pre class="eval"><i>CPU_ARCH</i>[-<i>TARGET_COMPILER_ABI</i>]
</pre>
<p>Note: TARGET_COMPILER_ABI is optional.
</p><p><i>CPU_ARCH</i> represents the CPU architecture and may be either:
</p>
<ul><li> <i>x86</i> - i386 and higher series (including x86-64 in 32-bit mode)
</li><li> <i>ppc</i> - PowerPC series
</li><li> <i>Alpha</i> - Digital Alpha series
</li><li> <i>x86_64</i> - AMD64/EMT64 series in 64-bit mode (32-bit mode is still considered <i>x86</i>)
</li><li> <i>sparc</i> - SPARC series
</li><li> <i>ia64</i> - Itanium series
</li></ul>
<p><i>TARGET_COMPILER_ABI</i> represents the compiler ABI and may be either:
</p>
<ul><li> <i>msvc</i> - Microsoft Visual C++
</li><li> <i>n32</i> - IRIX 6 C++ Compiler
</li><li> <i>gcc2</i> - GNU C++ Compiler 2.x
</li><li> <i>gcc3</i> - GNU C++ Compiler 3.x or 4.x
</li></ul>
<p>For other compilers, this value is ommited.
</p><p>For example:
</p>
<ul><li> Firefox built with the GNU C++ Compiler 4.0.0 for the Pentium processor would have TARGET_XPCOM_ABI of:
</li></ul>
<pre class="eval">x86-gcc3
</pre>
<ul><li> Thunderbird built with the Solaris C++ Compiler for the SPARC processor would have TARGET_XPCOM_ABI of:
</li></ul>
<pre class="eval">sparc
</pre>
<p>Note: This is not an exhaustive list of possible CPU architectures and compiler ABIs. Newest information can always be found by exploring the build system.
</p>
Revert to this revision