NAME

architecture - architecture definition for ALPM based packages.

DESCRIPTION

The architecture format is a custom string format that contains CPU instruction set architectures[1] and further identifiers and is used for representing the architecture of ALPM based packages. This format is used in build scripts or file formats for package metadata (e.g. in PKGBUILD, BUILDINFO, PKGINFO) to describe the architecture of a package, or the architecture of dependency packages.

The architecture format comprises values defined by convention. The values are custom keywords, most of which are derived directly from CPU instruction set architectures[1] or specific microarchitectures.

The architecture value must be covered by the set of alphanumeric characters and '_'.

EXAMPLES

The below architecture values all relate to specific CPU instruction set architectures[1] or microarchitectures and can be used to specify a package architecture. This usually means that packages of a specific architecture can only be used in a particular context.

"any"

A package can be used on any hardware as its contents are not specific to any architecture.

"x86_64"

A package can only be used on hardware compatible with the x86-64[2] instruction set version 1 and above (see x86-64 microarchitecture levels[3]).

"x86_64_v2"

A package can only be used on hardware compatible with the x86-64[2] instruction set version 2 and above (see x86-64 microarchitecture levels[3]).

"x86_64_v3"

A package can only be used on hardware compatible with the x86-64[2] instruction set version 3 and above (see x86-64 microarchitecture levels[3]).

"x86_64_v4"

A package can only be used on hardware compatible with the x86-64[2] instruction set version 4 and above (see x86-64 microarchitecture levels[3]).

"i686"

A package can only be used on hardware compatible with the IA-32[4] instruction set version 6 (aka. P6[5], or 'i686'). This architecture is considered legacy.

"i486"

A package can only be used on hardware compatible with the IA-32[4] instruction set version 4 (aka. i486[6]). This architecture is considered legacy.

"pentium4"

A package can only be used on hardware compatible with the Pentium 4[7] microarchitecture. This architecture is considered legacy.

"armv7"

A package can only be used on hardware compatible with the ARMv7 architecture family[8]. This architecture is considered legacy.

"armv8"

A package can only be used on hardware compatible with the ARMv8 architecture family[9].

"aarch64"

A package can only be used on hardware compatible with the AArch64[10] (64-bit execution state of the ARM architecture family[11]).

"riscv64"

A package can only be used on hardware compatible with the 64-bit variant of the RISC-V[12] instruction set architecture (ISA[13]).

"loong64"

A package can only be used on hardware compatible with the 64-bit variant of the LoongArch[14] instruction set architecture (ISA[13]).

SEE ALSO

BUILDINFO(5), PKGBUILD(5), PKGINFO(5), alpm-epoch(7), alpm-pkgrel(7), alpm-pkgver(7), vercmp(8)

NOTES

  1. CPU instruction set architectures

    https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures#Instruction_sets

  2. x86-64

    https://en.wikipedia.org/wiki/X86-64

  3. x86-64 microarchitecture levels

    https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels

  4. IA-32

    https://en.wikipedia.org/wiki/IA-32

  5. P6

    https://en.wikipedia.org/wiki/P6_(microarchitecture)

  6. i486

    https://en.wikipedia.org/wiki/I486

  7. pentium4

    https://en.wikipedia.org/wiki/Pentium_4

  8. ARMv7 architecture family

    https://en.wikipedia.org/wiki/ARM_architecture_family#32-bit_architecture

  9. ARMv8 architecture family

    https://en.wikipedia.org/wiki/ARM_architecture_family#Armv8

  10. AArch64

    https://en.wikipedia.org/wiki/AArch64

  11. ARM architecture family

    https://en.wikipedia.org/wiki/ARM_architecture_family

  12. RISC-V

    https://en.wikipedia.org/wiki/RISC-V

  13. ISA

    https://en.wikipedia.org/wiki/Instruction_set_architecture

  14. LoongArch

    https://en.wikipedia.org/wiki/Loongson#LoongArch