ALPM-ARCHITECTURE(7)

πŸ“¦ version 0.13.0, in arch rolling

πŸ’… NAME (aka what even is this)

okay so bestie, gather round: this page is architecture β€” the architecture definition for ALPM based packages. literally that's the whole vibe. ✨

(also hi, we're in section 7 of the Miscellaneous Information Manual, and yes i'm gonna remind you at the end too, don't worry 🫢)


🌸 DESCRIPTION

so the architecture format is a custom string format β€” like, handmade, bespoke, not your average string β€” and it's holding two things at once: CPU instruction set architectures (footnote 1, iykyk) and further identifiers. it's how ALPM based packages say what architecture they are. πŸ’…

where do you see it? in build scripts or in file formats for package metadata β€” for example in PKGBUILD, BUILDINFO, PKGINFO β€” to describe the architecture of a package, or the architecture of dependency packages. so yeah she gets around. πŸ‘‘

the values in this format are defined by convention. they're custom keywords, and most of them are derived directly from CPU instruction set architectures (1) or from specific microarchitectures. no cap.

🚨 vibe check on the actual rule: the architecture value must be covered by the set of alphanumeric characters and _. that's it. that's the constraint. respect it or the parser will simply not be your friend. 😭

πŸ¦‹ EXAMPLES

every single architecture value below relates to specific CPU instruction set architectures (1) or microarchitectures, and each one can be used to specify a package architecture. what that usually means is: packages of a specific architecture can only be used in a particular context. context is everything, bestie. πŸŽ€

  • "any" β€” a package that can be used on any hardware, because its contents are not specific to any architecture. she's for everyone. main character of portability. ✨
  • "x86_64" β€” 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" β€” 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" β€” 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" β€” 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" β€” 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. she's iconic but she's retired.
  • "i486" β€” can only be used on hardware compatible with the IA-32 (4) instruction set version 4 (aka. i486 (6)). ⚠️ this architecture is also considered legacy. vintage fr.
  • "pentium4" β€” can only be used on hardware compatible with the Pentium 4 (7) microarchitecture. ⚠️ considered legacy. yes, also legacy. we love a history lesson 🫢
  • "armv7" β€” can only be used on hardware compatible with the ARMv7 architecture family (8). ⚠️ considered legacy.
  • "armv8" β€” can only be used on hardware compatible with the ARMv8 architecture family (9). no legacy tag on this one, she's still thriving πŸ’œ
  • "aarch64" β€” can only be used on hardware compatible with the AArch64 (10). πŸ‘‘
  • "riscv64" β€” can only be used on hardware compatible with the 64-bit variant of the RISC-V (12) instruction set architecture (ISA (13)). future-coded honestly.
  • "loong64" β€” can only be used on hardware compatible with the 64-bit variant of the LoongArch (14) instruction set architecture (ISA (13)). loong supremacy πŸ‰

🌈 SEE ALSO

go read these next, bestie, they're all part of the family:

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


πŸŽ€ NOTES

the receipts, in order, exactly as they were dropped:

  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
🌸 tiny note: note 11 is sitting here all by itself, unreferenced in the prose above β€” but she's still in the notes list, so she stays. we don't erase history. πŸ’…

and that's the page, bestie!! 🫢 it lives in section (7) of the Miscellaneous Information Manual β€” that's the source/version vibe and the date-ish identity of this whole thing β€” so if you ever need to cite her, that's your sign-off. mwah. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from