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:
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.
- Firefox built with the GNU C++ Compiler 4.0.0 for the Pentium processor would have TARGET_XPCOM_ABI of:
- Thunderbird built with the Solaris C++ Compiler for the SPARC processor would have TARGET_XPCOM_ABI of:
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.