summaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/abitable14
-rw-r--r--data/cputable57
-rw-r--r--data/no-pie-compile.specs2
-rw-r--r--data/no-pie-link.specs2
-rw-r--r--data/ostable45
-rw-r--r--data/pie-compile.specs2
-rw-r--r--data/pie-link.specs2
-rw-r--r--data/tupletable55
8 files changed, 179 insertions, 0 deletions
diff --git a/data/abitable b/data/abitable
new file mode 100644
index 0000000..b9b1dc4
--- /dev/null
+++ b/data/abitable
@@ -0,0 +1,14 @@
+# Version=2.0
+#
+# This file contains the table of arch ABI attribute overrides.
+#
+# If the ABI is not present here then the attribute information for a
+# Debian arch tuple matches the one on the cputable.
+#
+# - Column 1 is the Debian name for the ABI.
+# - Column 2 is the size (in bits) of the ABI pointers.
+#
+# <Debian name> <Bits>
+abin32 32
+ilp32 32
+x32 32
diff --git a/data/cputable b/data/cputable
new file mode 100644
index 0000000..7b1ee2c
--- /dev/null
+++ b/data/cputable
@@ -0,0 +1,57 @@
+# Version=1.0
+#
+# This file contains the table of known CPU names.
+#
+# Architecture names are formed as a combination of the system name
+# (from ostable) and CPU name (from this table) after mapping from
+# the Debian arch tuple (from tupletable).
+#
+# - Column 1 is the Debian name for the CPU, used to form the cpu part in
+# the Debian arch tuple.
+# - Column 2 is the GNU name for the CPU, used to output build, host and
+# target variables in ‘dpkg-architecture’.
+# - Column 3 is an extended regular expression used to fully match against
+# the CPU part of the output of the GNU config.guess script. The order of
+# this column is important when using wildcards as it is used in a first
+# match basis.
+# - Column 4 is the size (in bits) of pointers.
+# - Column 5 is the endianness (byte ordering in numbers).
+#
+# <Debian name> <GNU name> <config.guess regex> <Bits> <Endianness>
+alpha alpha alpha.* 64 little
+amd64 x86_64 (amd64|x86_64) 64 little
+arc arc arc 32 little
+armeb armeb arm.*b 32 big
+arm arm arm.* 32 little
+arm64 aarch64 aarch64 64 little
+avr32 avr32 avr32 32 big
+hppa hppa hppa.* 32 big
+loong64 loongarch64 loongarch64 64 little
+i386 i686 (i[34567]86|pentium) 32 little
+ia64 ia64 ia64 64 little
+m32r m32r m32r 32 big
+m68k m68k m68k 32 big
+mips mips mips(eb)? 32 big
+mipsel mipsel mipsel 32 little
+mipsr6 mipsisa32r6 mipsisa32r6 32 big
+mipsr6el mipsisa32r6el mipsisa32r6el 32 little
+mips64 mips64 mips64 64 big
+mips64el mips64el mips64el 64 little
+mips64r6 mipsisa64r6 mipsisa64r6 64 big
+mips64r6el mipsisa64r6el mipsisa64r6el 64 little
+nios2 nios2 nios2 32 little
+or1k or1k or1k 32 big
+powerpc powerpc (powerpc|ppc) 32 big
+powerpcel powerpcle powerpcle 32 little
+ppc64 powerpc64 (powerpc|ppc)64 64 big
+ppc64el powerpc64le powerpc64le 64 little
+riscv64 riscv64 riscv64 64 little
+s390 s390 s390 32 big
+s390x s390x s390x 64 big
+sh3 sh3 sh3 32 little
+sh3eb sh3eb sh3eb 32 big
+sh4 sh4 sh4 32 little
+sh4eb sh4eb sh4eb 32 big
+sparc sparc sparc 32 big
+sparc64 sparc64 sparc64 64 big
+tilegx tilegx tilegx 64 little
diff --git a/data/no-pie-compile.specs b/data/no-pie-compile.specs
new file mode 100644
index 0000000..2277b97
--- /dev/null
+++ b/data/no-pie-compile.specs
@@ -0,0 +1,2 @@
+*self_spec:
++ %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fno-PIE}}}}}}
diff --git a/data/no-pie-link.specs b/data/no-pie-link.specs
new file mode 100644
index 0000000..54db649
--- /dev/null
+++ b/data/no-pie-link.specs
@@ -0,0 +1,2 @@
+*self_spec:
++ %{!shared:%{!r:%{!fPIE:%{!pie:-fno-PIE -no-pie}}}}
diff --git a/data/ostable b/data/ostable
new file mode 100644
index 0000000..7fd2bff
--- /dev/null
+++ b/data/ostable
@@ -0,0 +1,45 @@
+# Version=2.0
+#
+# This file contains the table of known operating system names.
+#
+# Architecture names are formed as a combination of the system name
+# (from this table) and CPU name (from cputable) after mapping from
+# the Debian arch tuple (from tupletable).
+#
+# - Column 1 is the Debian name for the system, used to form the system part
+# in the Debian arch tuple.
+# - Column 2 is the GNU name for the system, used to output build, host and
+# target variables in ‘dpkg-architecture’.
+# - Column 3 is an extended regular expression used to fully match against
+# the system part of the output of the GNU config.guess script. The order
+# of this column is important when using wildcards as it is used in a first
+# match basis.
+#
+# <Debian name> <GNU name> <config.guess regex>
+eabi-uclibc-linux linux-uclibceabi linux[^-]*-uclibceabi
+base-uclibc-linux linux-uclibc linux[^-]*-uclibc
+eabihf-musl-linux linux-musleabihf linux[^-]*-musleabihf
+base-musl-linux linux-musl linux[^-]*-musl
+eabihf-gnu-linux linux-gnueabihf linux[^-]*-gnueabihf
+eabi-gnu-linux linux-gnueabi linux[^-]*-gnueabi
+abin32-gnu-linux linux-gnuabin32 linux[^-]*-gnuabin32
+abi64-gnu-linux linux-gnuabi64 linux[^-]*-gnuabi64
+spe-gnu-linux linux-gnuspe linux[^-]*-gnuspe
+x32-gnu-linux linux-gnux32 linux[^-]*-gnux32
+ilp32-gnu-linux linux-gnu_ilp32 linux[^-]*-gnu_ilp32
+base-gnu-linux linux-gnu linux[^-]*(-gnu.*)?
+eabihf-gnu-kfreebsd kfreebsd-gnueabihf kfreebsd[^-]*-gnueabihf
+base-gnu-kfreebsd kfreebsd-gnu kfreebsd[^-]*(-gnu.*)?
+base-gnu-knetbsd knetbsd-gnu knetbsd[^-]*(-gnu.*)?
+base-gnu-kopensolaris kopensolaris-gnu kopensolaris[^-]*(-gnu.*)?
+base-gnu-hurd gnu gnu[^-]*
+base-bsd-darwin darwin darwin[^-]*
+base-bsd-dragonflybsd dragonflybsd dragonfly[^-]*
+base-bsd-freebsd freebsd freebsd[^-]*
+base-bsd-netbsd netbsd netbsd[^-]*
+base-bsd-openbsd openbsd openbsd[^-]*
+base-sysv-aix aix aix[^-]*
+base-sysv-solaris solaris solaris[^-]*
+eabi-uclibc-uclinux uclinux-uclibceabi uclinux[^-]*-uclibceabi
+base-uclibc-uclinux uclinux-uclibc uclinux[^-]*(-uclibc.*)?
+base-tos-mint mint mint[^-]*
diff --git a/data/pie-compile.specs b/data/pie-compile.specs
new file mode 100644
index 0000000..74d8215
--- /dev/null
+++ b/data/pie-compile.specs
@@ -0,0 +1,2 @@
+*self_spec:
++ %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:%{!fno-PIE:%{!no-pie:-fPIE}}}}}}}}
diff --git a/data/pie-link.specs b/data/pie-link.specs
new file mode 100644
index 0000000..94c122f
--- /dev/null
+++ b/data/pie-link.specs
@@ -0,0 +1,2 @@
+*self_spec:
++ %{!static:%{!shared:%{!r:%{!fno-PIE:%{!no-pie:-fPIE -pie}}}}}
diff --git a/data/tupletable b/data/tupletable
new file mode 100644
index 0000000..a7a878f
--- /dev/null
+++ b/data/tupletable
@@ -0,0 +1,55 @@
+# Version=1.0
+#
+# Bidirectional mapping between a Debian arch tuple and a Debian arch name.
+#
+# Debian arch tuple names are formed as a combination of the Debian system
+# name (from the ostable) and the Debian CPU name (from the cputable) after
+# applying the variable substitutions. Debian arch names are the result of
+# historical naming conventions in Debian, where the predominant system
+# architectures have many of their parts in implicit form, by only exposing
+# the CPU with the ABI bolted on, where less common architectures have their
+# OS part spelled out, and where even less common ones, have their libc
+# spelled out. This table maps between the ideal architecture tuple, with
+# the current messy reality.
+#
+# - Column 1 is the Debian arch tuple name, as the normalized form of the
+# architecture names, used as the internal representation.
+# - Column 2 is the Debian arch name, as the abbreviated form of the
+# architecture names, used as the public interface.
+#
+# Supported variables: <cpu>
+#
+# <Debian arch tuple> <Debian arch name>
+eabi-uclibc-linux-arm uclibc-linux-armel
+base-uclibc-linux-<cpu> uclibc-linux-<cpu>
+eabihf-musl-linux-arm musl-linux-armhf
+base-musl-linux-<cpu> musl-linux-<cpu>
+ilp32-gnu-linux-arm64 arm64ilp32
+eabihf-gnu-linux-arm armhf
+eabi-gnu-linux-arm armel
+abin32-gnu-linux-mips64r6el mipsn32r6el
+abin32-gnu-linux-mips64r6 mipsn32r6
+abin32-gnu-linux-mips64el mipsn32el
+abin32-gnu-linux-mips64 mipsn32
+abi64-gnu-linux-mips64r6el mips64r6el
+abi64-gnu-linux-mips64r6 mips64r6
+abi64-gnu-linux-mips64el mips64el
+abi64-gnu-linux-mips64 mips64
+spe-gnu-linux-powerpc powerpcspe
+x32-gnu-linux-amd64 x32
+base-gnu-linux-<cpu> <cpu>
+eabihf-gnu-kfreebsd-arm kfreebsd-armhf
+base-gnu-kfreebsd-<cpu> kfreebsd-<cpu>
+base-gnu-knetbsd-<cpu> knetbsd-<cpu>
+base-gnu-kopensolaris-<cpu> kopensolaris-<cpu>
+base-gnu-hurd-<cpu> hurd-<cpu>
+base-bsd-dragonflybsd-<cpu> dragonflybsd-<cpu>
+base-bsd-freebsd-<cpu> freebsd-<cpu>
+base-bsd-openbsd-<cpu> openbsd-<cpu>
+base-bsd-netbsd-<cpu> netbsd-<cpu>
+base-bsd-darwin-<cpu> darwin-<cpu>
+base-sysv-aix-<cpu> aix-<cpu>
+base-sysv-solaris-<cpu> solaris-<cpu>
+eabi-uclibc-uclinux-arm uclinux-armel
+base-uclibc-uclinux-<cpu> uclinux-<cpu>
+base-tos-mint-m68k mint-m68k