# Manually maintained table of architectures and their "file(1)"
# signature.  Table based on checks/emdebian's %archdetecttable, as
# found in emdebian-tools.
# 
# syntax:
#   key ~~regex
#
# Note spaces on the right hand side of ~~ are assumed to be a part
# of the regex.
#
# Please keep this sorted based on the arch names.

# Phony architectures used for some special cases, where Lintian just
# requires the number of "bits" to be correct.
# 
32            ~~^ELF 32-bit
64            ~~^ELF 64-bit

# Regular architectures

# some of the negative assertions require an anchor in the rear

alpha         ~~^ELF 64-bit LSB .* Alpha
amd64         ~~^ELF 64-bit LSB .* x86-64, .* (?:GNU/Linux|(?!GNU)).*$
arm           ~~^ELF 32-bit LSB .* ARM, version \d,
arm64         ~~^ELF 64-bit LSB .* ARM aarch64,
armeb         ~~^ELF 32-bit MSB .* ARM
armel         ~~^ELF 32-bit LSB .* ARM, .* [(](?:SYSV|GNU/Linux)[)]
armhf         ~~^ELF 32-bit LSB .* ARM, .* [(](?:SYSV|GNU/Linux)[)]
#avr32        ~~^ELF 32-bit MSB .* [(]SYSV[)]
hppa          ~~^ELF 32-bit MSB .* PA-RISC
hppa64        ~~^ELF 64-bit MSB .* PA-RISC
hurd-i386     ~~^ELF 32-bit LSB .* Intel 80386, .* (?:GNU/Hurd|(?!GNU)).*$
i386          ~~^ELF 32-bit LSB .* 80386, .* (?:GNU/Linux|(?!GNU)).*$
ia64          ~~^ELF 64-bit LSB .* IA-64
kfreebsd-amd64~~^ELF 64-bit LSB .* x86-64, .* (?:GNU/kFreeBSD|(?!GNU)).*$
kfreebsd-i386 ~~^ELF 32-bit LSB .* 80386, .* (?:GNU/kFreeBSD|(?!GNU)).*$
lpia          ~~^ELF 32-bit LSB .* 80386, .* (?:GNU/Linux|(?!GNU)).*$
m32r          ~~^ELF 32-bit MSB .* M32R
m68k          ~~^ELF 32-bit MSB .* 680[02]0
mips          ~~^ELF 32-bit MSB .* MIPS
mipsel        ~~^ELF 32-bit LSB .* MIPS
#mipsn32      ~~^ELF 32-bit LSB .* MIPS.* N32
mips64        ~~^ELF 64-bit MSB .* MIPS
mips64el      ~~^ELF 64-bit LSB .* MIPS
powerpc       ~~^ELF 32-bit MSB .* PowerPC
powerpcspe    ~~^ELF 32-bit MSB .* PowerPC .* cisco 4500
ppc64         ~~^ELF 64-bit MSB .* PowerPC
ppc64el       ~~^ELF 64-bit LSB .* PowerPC
riscv64       ~~^ELF 64-bit LSB .* RISC-V
s390          ~~^ELF 32-bit MSB .* S.390
s390x         ~~^ELF 64-bit MSB .* S.390
sh4           ~~^ELF 32-bit LSB .* Renesas SH
sparc         ~~^ELF 32-bit MSB .* SPARC
#sparcv9b     ~~^ELF 32-bit MSB .* SPARC.* V8[+]
sparc64       ~~^ELF 64-bit MSB .* SPARC
x32           ~~^ELF 32-bit LSB .* x86-64
