aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gentoo.org>2020-04-12 16:13:50 -0700
committerMatt Turner <mattst88@gentoo.org>2020-04-14 11:29:25 -0700
commit11acd43a3d71ad22628b0ba2973b8cb34b5e1d4c (patch)
tree2fa3b7c032c628bafaebea0428810b08d7c3e981 /arch
parentcatalyst/arch: Add PROFILE_ARCH (diff)
downloadcatalyst-11acd43a3d71ad22628b0ba2973b8cb34b5e1d4c.tar.gz
catalyst-11acd43a3d71ad22628b0ba2973b8cb34b5e1d4c.tar.bz2
catalyst-11acd43a3d71ad22628b0ba2973b8cb34b5e1d4c.zip
arch: Add architecture TOML files
Generated by: | #!/bin/bash | | mkdir -p arch/ | | for x in catalyst/arch/*.py; do | [[ $x == *"__init__.py" ]] && continue | | arch=$(basename "$x") | arch="${arch%.py}" | | python3 <<-EOF > "arch/${arch}.toml" | #!/usr/bin/env python3 | | import toml | import catalyst.arch.$arch as arch | | subarches, arches = arch.register() | | s = {} | setarch = {} | | for subarch in subarches.items(): | name = subarch[0] | data = subarch[1]({}) | | arch = data.settings.pop("PROFILE_ARCH") | if arch not in s: s[arch] = {} | | if "setarch_arch" in data.settings and \ | "setarch_build" in data.settings: | if arch not in setarch: setarch[arch] = {} | | setarch[arch]["arch"] = data.settings["setarch_arch"] | setarch[arch]["if_build"] = data.settings["setarch_build"] | | del data.settings["setarch_arch"] | del data.settings["setarch_build"] | | hostuseexpand = data.settings.pop("HOSTUSEEXPAND", {}) | hostuse = data.settings.pop("HOSTUSE", {}) | | s[arch][name] = data.settings | s[arch][name].update(hostuseexpand) | if hostuse: s[arch][name].update({"USE": hostuse}) | | if setarch: print(toml.dumps({'setarch': setarch})) | print(toml.dumps(s)) | EOF | done Signed-off-by: Matt Turner <mattst88@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha.toml32
-rw-r--r--arch/amd64.toml26
-rw-r--r--arch/arm.toml56
-rw-r--r--arch/arm64.toml4
-rw-r--r--arch/hppa.toml8
-rw-r--r--arch/ia64.toml4
-rw-r--r--arch/m68k.toml4
-rw-r--r--arch/mips.toml256
-rw-r--r--arch/powerpc.toml70
-rw-r--r--arch/riscv.toml4
-rw-r--r--arch/s390.toml8
-rw-r--r--arch/sh.toml48
-rw-r--r--arch/sparc.toml12
-rw-r--r--arch/x86.toml66
14 files changed, 598 insertions, 0 deletions
diff --git a/arch/alpha.toml b/arch/alpha.toml
new file mode 100644
index 00000000..803bed4a
--- /dev/null
+++ b/arch/alpha.toml
@@ -0,0 +1,32 @@
+[alpha.alpha]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev4"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev4]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev4"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev45]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev45"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev5]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev5"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev56]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev56"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.pca56]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=pca56"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev6]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev6"
+CHOST = "alpha-unknown-linux-gnu"
+
+[alpha.ev67]
+COMMON_FLAGS = "-mieee -pipe -O2 -mcpu=ev67"
+CHOST = "alpha-unknown-linux-gnu"
+
diff --git a/arch/amd64.toml b/arch/amd64.toml
new file mode 100644
index 00000000..8347cd7e
--- /dev/null
+++ b/arch/amd64.toml
@@ -0,0 +1,26 @@
+[amd64.amd64]
+COMMON_FLAGS = "-O2 -pipe"
+
+[amd64.k8]
+COMMON_FLAGS = "-O2 -march=k8 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "3dnow", "3dnowext", "sse", "sse2",]
+
+[amd64.nocona]
+COMMON_FLAGS = "-O2 -march=nocona -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse", "sse2", "sse3",]
+
+[amd64.core2]
+COMMON_FLAGS = "-O2 -march=core2 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse", "sse2", "sse3", "ssse3",]
+
+[amd64.k8-sse3]
+COMMON_FLAGS = "-O2 -march=k8-sse3 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "3dnow", "3dnowext", "sse", "sse2", "sse3",]
+
+[amd64.amdfam10]
+COMMON_FLAGS = "-O2 -march=amdfam10 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "3dnow", "3dnowext", "sse", "sse2", "sse3", "sse4a",]
+
+[amd64.x32]
+COMMON_FLAGS = "-O2 -pipe"
+
diff --git a/arch/arm.toml b/arch/arm.toml
new file mode 100644
index 00000000..f28498df
--- /dev/null
+++ b/arch/arm.toml
@@ -0,0 +1,56 @@
+[arm.arm]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "arm-unknown-linux-gnu"
+
+[arm.armv4l]
+COMMON_FLAGS = "-O2 -pipe -march=armv4"
+CHOST = "armv4l-unknown-linux-gnu"
+
+[arm.armv4tl]
+COMMON_FLAGS = "-O2 -pipe -march=armv4t"
+CHOST = "armv4tl-softfloat-linux-gnueabi"
+
+[arm.armv5tl]
+COMMON_FLAGS = "-O2 -pipe -march=armv5t"
+CHOST = "armv5tl-softfloat-linux-gnueabi"
+
+[arm.armv5tel]
+COMMON_FLAGS = "-O2 -pipe -march=armv5te"
+CHOST = "armv5tel-softfloat-linux-gnueabi"
+
+[arm.armv5tejl]
+COMMON_FLAGS = "-O2 -pipe -march=armv5te"
+CHOST = "armv5tejl-softfloat-linux-gnueabi"
+
+[arm.armv6j]
+COMMON_FLAGS = "-O2 -pipe -march=armv6j -mfpu=vfp -mfloat-abi=softfp"
+CHOST = "armv6j-softfp-linux-gnueabi"
+
+[arm.armv6z]
+COMMON_FLAGS = "-O2 -pipe -march=armv6z -mfpu=vfp -mfloat-abi=softfp"
+CHOST = "armv6z-softfp-linux-gnueabi"
+
+[arm.armv6zk]
+COMMON_FLAGS = "-O2 -pipe -march=armv6zk -mfpu=vfp -mfloat-abi=softfp"
+CHOST = "armv6zk-softfp-linux-gnueabi"
+
+[arm.armv7a]
+COMMON_FLAGS = "-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp"
+CHOST = "armv7a-softfp-linux-gnueabi"
+
+[arm.armv6j_hardfp]
+COMMON_FLAGS = "-O2 -pipe -march=armv6j -mfpu=vfp -mfloat-abi=hard"
+CHOST = "armv6j-unknown-linux-gnueabihf"
+
+[arm.armv7a_hardfp]
+COMMON_FLAGS = "-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+CHOST = "armv7a-unknown-linux-gnueabihf"
+
+[arm.armeb]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "armeb-unknown-linux-gnu"
+
+[arm.armv5teb]
+COMMON_FLAGS = "-O2 -pipe -mcpu=xscale"
+CHOST = "armv5teb-softfloat-linux-gnueabi"
+
diff --git a/arch/arm64.toml b/arch/arm64.toml
new file mode 100644
index 00000000..613b4e68
--- /dev/null
+++ b/arch/arm64.toml
@@ -0,0 +1,4 @@
+[arm64.arm64]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "aarch64-unknown-linux-gnu"
+
diff --git a/arch/hppa.toml b/arch/hppa.toml
new file mode 100644
index 00000000..85a5b010
--- /dev/null
+++ b/arch/hppa.toml
@@ -0,0 +1,8 @@
+[hppa."hppa1.1"]
+COMMON_FLAGS = "-O2 -pipe -march=1.1"
+CHOST = "hppa1.1-unknown-linux-gnu"
+
+[hppa."hppa2.0"]
+COMMON_FLAGS = "-O2 -pipe -march=2.0"
+CHOST = "hppa2.0-unknown-linux-gnu"
+
diff --git a/arch/ia64.toml b/arch/ia64.toml
new file mode 100644
index 00000000..014ff58c
--- /dev/null
+++ b/arch/ia64.toml
@@ -0,0 +1,4 @@
+[ia64.ia64]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "ia64-unknown-linux-gnu"
+
diff --git a/arch/m68k.toml b/arch/m68k.toml
new file mode 100644
index 00000000..1df696c1
--- /dev/null
+++ b/arch/m68k.toml
@@ -0,0 +1,4 @@
+[m68k.m68k]
+COMMON_FLAGS = " -pipe -O2"
+CHOST = "m68k-unknown-linux-gnu"
+
diff --git a/arch/mips.toml b/arch/mips.toml
new file mode 100644
index 00000000..a10ee799
--- /dev/null
+++ b/arch/mips.toml
@@ -0,0 +1,256 @@
+[mips.mips1]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips1 -mabi=32 -mplt -pipe"
+
+[mips.mips2]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips2 -mabi=32 -mplt -pipe"
+
+[mips.mips32]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32 -mabi=32 -mplt -pipe"
+
+[mips.mips32_softfloat]
+CHOST = "mips-softfloat-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32 -mabi=32 -mplt -pipe"
+
+[mips.mips32r2]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
+
+[mips.mips32r2_softfloat]
+CHOST = "mips-softfloat-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
+
+[mips.mips3]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
+
+[mips.mips4_r5k]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=32 -mplt -pipe"
+
+[mips.mips4_r10k]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r10k -mabi=32 -mplt -pipe"
+
+[mips.mips4_r12k]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r12k -mno-fix-r10000 -mabi=32 -mplt -pipe"
+
+[mips.mips64]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=32 -mplt -pipe"
+
+[mips.mips64r2]
+CHOST = "mips-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
+
+[mips.mipsel1]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips1 -mabi=32 -mplt -pipe"
+
+[mips.mipsel2]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips2 -mabi=32 -mplt -pipe"
+
+[mips.mips32el]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32 -mabi=32 -mplt -pipe"
+
+[mips.mips32el_softfloat]
+CHOST = "mipsel-softfloat-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32 -mabi=32 -mplt -pipe"
+
+[mips.mips32r2el]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
+
+[mips.mips32r2el_softfloat]
+CHOST = "mipsel-softfloat-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
+
+[mips.mipsel3]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips.mipsel4_r5k]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=32 -mplt -pipe"
+
+[mips.mips64el]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=32 -mplt -pipe"
+
+[mips.mips64r2el]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
+
+[mips.loongson2e]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2e -mabi=32 -mplt -pipe"
+
+[mips.loongson2f]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2f -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips.loongson3a]
+CHOST = "mipsel-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson3a -mabi=32 -mplt -pipe"
+
+[mips64.mips3_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=n32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
+
+[mips64.mips3_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=64 -mfix-r4000 -mfix-r4400 -pipe"
+
+[mips64.mips3_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mplt -mfix-r4000 -mfix-r4400 -pipe"
+
+[mips64.mips4_r5k_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=n32 -mplt -pipe"
+
+[mips64.mips4_r5k_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=64 -pipe"
+
+[mips64.mips4_r5k_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mplt -pipe"
+
+[mips64.mips4_r10k_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r10k -mabi=n32 -mplt -pipe"
+
+[mips64.mips4_r10k_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r10k -mabi=64 -pipe"
+
+[mips64.mips4_r10k_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r10k -mplt -pipe"
+
+[mips64.mips4_r12k_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r12k -mno-fix-r10000 -mabi=n32 -mplt -pipe"
+
+[mips64.mips4_r12k_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r12k -mno-fix-r10000 -mabi=64 -pipe"
+
+[mips64.mips4_r12k_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r12k -mno-fix-r10000 -mplt -pipe"
+
+[mips64.mips64_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=n32 -mplt -pipe"
+
+[mips64.mips64_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=64 -pipe"
+
+[mips64.mips64_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mplt -pipe"
+
+[mips64.mips64r2_n32]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
+
+[mips64.mips64r2_n64]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=64 -pipe"
+
+[mips64.mips64r2_multilib]
+CHOST = "mips64-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mplt -pipe"
+
+[mips64.mipsel3_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.mipsel3_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.mipsel3_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips3 -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.mipsel4_r5k_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=n32 -mplt -pipe"
+
+[mips64.mipsel4_r5k_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mabi=64 -pipe"
+
+[mips64.mipsel4_r5k_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=r5k -mplt -pipe"
+
+[mips64.mips64el_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=n32 -mplt -pipe"
+
+[mips64.mips64el_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mabi=64 -pipe"
+
+[mips64.mips64el_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64 -mplt -pipe"
+
+[mips64.mips64r2el_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
+
+[mips64.mips64r2el_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mabi=64 -pipe"
+
+[mips64.mips64r2el_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=mips64r2 -mplt -pipe"
+
+[mips64.loongson2e_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2e -mabi=n32 -mplt -pipe"
+
+[mips64.loongson2e_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2e -mabi=64 -pipe"
+
+[mips64.loongson2e_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2e -mplt -pipe"
+
+[mips64.loongson2f_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2f -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.loongson2f_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2f -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.loongson2f_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson2f -mplt -Wa,-mfix-loongson2f-nop -pipe"
+
+[mips64.loongson3a_n32]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson3a -mabi=n32 -mplt -pipe"
+
+[mips64.loongson3a_n64]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson3a -mabi=64 -pipe"
+
+[mips64.loongson3a_multilib]
+CHOST = "mips64el-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -march=loongson3a -mplt -pipe"
+
diff --git a/arch/powerpc.toml b/arch/powerpc.toml
new file mode 100644
index 00000000..a3db919e
--- /dev/null
+++ b/arch/powerpc.toml
@@ -0,0 +1,70 @@
+[setarch.ppc]
+arch = "linux32"
+if_build = "ppc64"
+
+[ppc64.970]
+COMMON_FLAGS = "-O2 -pipe -mcpu=970 -mtune=970"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "altivec",]
+
+[ppc64.cell]
+COMMON_FLAGS = "-O2 -pipe -mcpu=cell -mtune=cell"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.power5]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power5 -mtune=power5"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "ibm",]
+
+[ppc64.power6]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power6 -mtune=power6"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.power7]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power7 -mtune=power7 -mabi=elfv2"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.power7le]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power7 -mtune=power7 -mabi=elfv2"
+CHOST = "powerpc64le-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.power8]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power8 -mtune=power8 -mabi=elfv2"
+CHOST = "powerpc64-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.power8le]
+COMMON_FLAGS = "-O2 -pipe -mcpu=power8 -mtune=power8 -mabi=elfv2"
+CHOST = "powerpc64le-unknown-linux-gnu"
+USE = [ "altivec", "ibm",]
+
+[ppc64.ppc64]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "powerpc64-unknown-linux-gnu"
+
+[ppc64.ppc64le]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "powerpc64le-unknown-linux-gnu"
+
+[ppc.g3]
+CHOST = "powerpc-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -mcpu=G3 -mtune=G3 -pipe"
+
+[ppc.g4]
+CHOST = "powerpc-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -mcpu=G4 -mtune=G4 -maltivec -mabi=altivec -pipe"
+USE = [ "altivec",]
+
+[ppc.g5]
+CHOST = "powerpc-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -mcpu=G5 -mtune=G5 -maltivec -mabi=altivec -pipe"
+USE = [ "altivec",]
+
+[ppc.ppc]
+CHOST = "powerpc-unknown-linux-gnu"
+COMMON_FLAGS = "-O2 -mcpu=powerpc -mtune=powerpc -pipe"
+
diff --git a/arch/riscv.toml b/arch/riscv.toml
new file mode 100644
index 00000000..0611a1ac
--- /dev/null
+++ b/arch/riscv.toml
@@ -0,0 +1,4 @@
+[riscv.riscv]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "riscv64-unknown-linux-gnu"
+
diff --git a/arch/s390.toml b/arch/s390.toml
new file mode 100644
index 00000000..9894044f
--- /dev/null
+++ b/arch/s390.toml
@@ -0,0 +1,8 @@
+[s390.s390]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "s390-ibm-linux-gnu"
+
+[s390x.s390x]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "s390x-ibm-linux-gnu"
+
diff --git a/arch/sh.toml b/arch/sh.toml
new file mode 100644
index 00000000..829b6d35
--- /dev/null
+++ b/arch/sh.toml
@@ -0,0 +1,48 @@
+[sh.sh]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "sh-unknown-linux-gnu"
+
+[sh.sh2]
+COMMON_FLAGS = "-O2 -m2 -pipe"
+CHOST = "sh2-unknown-linux-gnu"
+
+[sh.sh2a]
+COMMON_FLAGS = "-O2 -m2a -pipe"
+CHOST = "sh2a-unknown-linux-gnu"
+
+[sh.sh3]
+COMMON_FLAGS = "-O2 -m3 -pipe"
+CHOST = "sh3-unknown-linux-gnu"
+
+[sh.sh4]
+COMMON_FLAGS = "-O2 -m4 -pipe"
+CHOST = "sh4-unknown-linux-gnu"
+
+[sh.sh4a]
+COMMON_FLAGS = "-O2 -m4a -pipe"
+CHOST = "sh4a-unknown-linux-gnu"
+
+[sh.sheb]
+COMMON_FLAGS = "-O2 -pipe"
+CHOST = "sheb-unknown-linux-gnu"
+
+[sh.sh2eb]
+COMMON_FLAGS = "-O2 -m2 -pipe"
+CHOST = "sh2eb-unknown-linux-gnu"
+
+[sh.sh2aeb]
+COMMON_FLAGS = "-O2 -m2a -pipe"
+CHOST = "sh2aeb-unknown-linux-gnu"
+
+[sh.sh3eb]
+COMMON_FLAGS = "-O2 -m3 -pipe"
+CHOST = "sh3eb-unknown-linux-gnu"
+
+[sh.sh4eb]
+COMMON_FLAGS = "-O2 -m4 -pipe"
+CHOST = "sh4eb-unknown-linux-gnu"
+
+[sh.sh4aeb]
+COMMON_FLAGS = "-O2 -m4a -pipe"
+CHOST = "sh4aeb-unknown-linux-gnu"
+
diff --git a/arch/sparc.toml b/arch/sparc.toml
new file mode 100644
index 00000000..a19064b5
--- /dev/null
+++ b/arch/sparc.toml
@@ -0,0 +1,12 @@
+[setarch.sparc]
+arch = "linux32"
+if_build = "sparc64"
+
+[sparc.sparc]
+COMMON_FLAGS = "-O2 -mcpu=ultrasparc -pipe"
+CHOST = "sparc-unknown-linux-gnu"
+
+[sparc64.sparc64]
+COMMON_FLAGS = "-O2 -mcpu=ultrasparc -pipe"
+CHOST = "sparc64-unknown-linux-gnu"
+
diff --git a/arch/x86.toml b/arch/x86.toml
new file mode 100644
index 00000000..2dfac9b7
--- /dev/null
+++ b/arch/x86.toml
@@ -0,0 +1,66 @@
+[setarch.x86]
+arch = "linux32"
+if_build = "x86_64"
+
+[x86.x86]
+COMMON_FLAGS = "-O2 -mtune=i686 -pipe"
+CHOST = "i386-pc-linux-gnu"
+
+[x86.i486]
+COMMON_FLAGS = "-O2 -march=i486 -pipe"
+CHOST = "i486-pc-linux-gnu"
+
+[x86.i586]
+COMMON_FLAGS = "-O2 -march=i586 -pipe"
+CHOST = "i586-pc-linux-gnu"
+
+[x86.i686]
+COMMON_FLAGS = "-O2 -march=i686 -pipe"
+
+[x86.pentium]
+COMMON_FLAGS = "-O2 -march=i586 -pipe"
+CHOST = "i586-pc-linux-gnu"
+
+[x86.pentium2]
+COMMON_FLAGS = "-O2 -march=pentium2 -pipe"
+CPU_FLAGS_X86 = [ "mmx",]
+
+[x86.pentium3]
+COMMON_FLAGS = "-O2 -march=pentium3 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse",]
+
+[x86.pentium-m]
+COMMON_FLAGS = "-O2 -march=pentium-m -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse", "sse2",]
+
+[x86.pentium4]
+COMMON_FLAGS = "-O2 -march=pentium4 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse", "sse2",]
+
+[x86.pentiumpro]
+COMMON_FLAGS = "-O2 -march=i686 -pipe"
+
+[x86.pentium-mmx]
+COMMON_FLAGS = "-O2 -march=pentium-mmx -pipe"
+CPU_FLAGS_X86 = [ "mmx",]
+
+[x86.prescott]
+COMMON_FLAGS = "-O2 -march=prescott -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "sse", "sse2", "sse3",]
+
+[x86.k6]
+COMMON_FLAGS = "-O2 -march=k6 -pipe"
+CPU_FLAGS_X86 = [ "mmx",]
+
+[x86.k6-2]
+COMMON_FLAGS = "-O2 -march=k6-2 -pipe"
+CPU_FLAGS_X86 = [ "mmx", "3dnow",]
+
+[x86.athlon]
+COMMON_FLAGS = "-O2 -march=athlon -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "3dnow", "3dnowext",]
+
+[x86.athlon-xp]
+COMMON_FLAGS = "-O2 -march=athlon-xp -pipe"
+CPU_FLAGS_X86 = [ "mmx", "mmxext", "3dnow", "3dnowext", "sse",]
+