diff --git a/.orchestra/config/components/toolchain/arch/arm.lib.yml b/.orchestra/config/components/toolchain/arch/arm.lib.yml
index 5319c16619a0b6ab85a87637dc42c02af404f967..49ab9adf8c73e73d986d7ad28189758c22caf4aa 100644
--- a/.orchestra/config/components/toolchain/arch/arm.lib.yml
+++ b/.orchestra/config/components/toolchain/arch/arm.lib.yml
@@ -22,6 +22,7 @@ extra_gcc_configure_options:
   - --disable-libssp
   - --disable-shared
 dynamic: "0"
+spec: true
 
 #@ end
 
diff --git a/.orchestra/config/components/toolchain/arch/i386.lib.yml b/.orchestra/config/components/toolchain/arch/i386.lib.yml
index c32b6cc7ca3058d58c0888164cb2e7a0d5a016c8..e9b909b1a8fa07e62a6243203dbcb7528dc97947 100644
--- a/.orchestra/config/components/toolchain/arch/i386.lib.yml
+++ b/.orchestra/config/components/toolchain/arch/i386.lib.yml
@@ -18,6 +18,8 @@ extra_gcc_configure_options:
   - --disable-libssp
   - --disable-shared
 dynamic: "0"
+spec: true
+
 #@ end
 
 ---
diff --git a/.orchestra/config/components/toolchain/arch/mips.lib.yml b/.orchestra/config/components/toolchain/arch/mips.lib.yml
index 50ec6b56160772e0ad12cd7c25226be9a2d3a270..f3e1d037da09c55481acb15000ba74f0af293ed2 100644
--- a/.orchestra/config/components/toolchain/arch/mips.lib.yml
+++ b/.orchestra/config/components/toolchain/arch/mips.lib.yml
@@ -17,6 +17,8 @@ extra_gcc_configure_options:
   - --disable-libssp
   - --disable-shared
 dynamic: "0"
+spec: true
+
 #@ end
 
 ---
diff --git a/.orchestra/config/components/toolchain/arch/x86_64.lib.yml b/.orchestra/config/components/toolchain/arch/x86_64.lib.yml
index e25fb594999b91ddbe250e14af2e84d2522f38be..a8dee57a2247039c4bbe34706a233a7a02fabc98 100644
--- a/.orchestra/config/components/toolchain/arch/x86_64.lib.yml
+++ b/.orchestra/config/components/toolchain/arch/x86_64.lib.yml
@@ -19,6 +19,8 @@ extra_gcc_configure_options:
   - --disable-libssp
   - --disable-shared
 dynamic: "0"
+spec: true
+
 #@ end
 
 ---
diff --git a/.orchestra/config/components/toolchain/lib/spec.lib.yml b/.orchestra/config/components/toolchain/lib/spec.lib.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b1a99b4fdd6660410cc1342220f132e7482a5f47
--- /dev/null
+++ b/.orchestra/config/components/toolchain/lib/spec.lib.yml
@@ -0,0 +1,77 @@
+#@ load("@ytt:data", "data")
+
+#@ load("/lib/optimization_flavors.lib.yml", "libc_optimization_flavors")
+#@ load("/lib/fn_args.lib.yml", "mandatory")
+
+#@ load("/global_options.lib.yml", "options")
+
+#@ spec_archive_name = "spec2006_int_fp.tar.gz"
+#@ spec_archive_url = data.values.nonredistributable_base_url + spec_archive_name
+#! Flags for runspec
+#@ spec_flags = "int"
+#@ link_flags = "-static"
+
+---
+#@ def types():
+- native
+- qemu
+- revng
+- revngisolated
+#@ end
+
+#@yaml/text-templated-strings
+---
+#@ def create_spec_components(
+#@    triple=mandatory,
+#@    toolchain_name=mandatory,
+#@ ):
+
+#@ for build_type in types():
+#@ for step in ["make", "use"]:
+toolchain/(@= toolchain_name @)/spec/(@= build_type @)/(@= step @):
+  builds:
+    #@ for flavor, f_options in libc_optimization_flavors.items():
+    (@= flavor @):
+      configure: |
+        mkdir -p "$BUILD_DIR"
+        extract.sh --into "$BUILD_DIR" "(@= spec_archive_url @)"
+        cd "$BUILD_DIR";
+        SPEC_INSTALL_NOCHECK=1 ./install.sh -d "$BUILD_URL" -f
+        (@ if step == "make": @)
+        cd "$BUILD_DIR"
+        rm -rf config/
+        cp -ar "$ORCHESTRA_DOTDIR/support/spec-config/" config/
+        sed -i 's|C\(XX\)\?OPTIMIZE\s*=\s*|\0(@= f_options @) (@= link_flags @) |' config/gcc-base.cfg)
+        (@- end @)
+      install: |
+        cd "$BUILD_DIR"
+        source shrc
+        (@ if step == "use": @)
+        cp -a "$ORCHESTRA_ROOT/(@= triple @)/(@= triple @)-(@= build_type @)-int-bundle.cpu2006bundle.bz2" "$BUILD_DIR/"
+        (@ else: @)
+        rm -f "$BUILD_DIR/(@= triple @)-(@= build_type @)-int-bundle.cpu2006bundle.bz2"
+        (@ end @)
+        yes | runspec --config="(@= triple @)-(@= build_type @).cfg" --(@= step @)_bundle "(@= triple @)-(@= build_type @)-int-bundle" (@= spec_flags @)
+        (@ if step == "make": @)
+        mkdir -p "${DESTDIR}${ORCHESTRA_ROOT}/(@= triple @)/"
+        cp -a "$BUILD_DIR/(@= triple @)-(@= build_type @)-int-bundle.cpu2006bundle.bz2" "${DESTDIR}${ORCHESTRA_ROOT}/(@= triple @)/")
+        (@ else: @)
+        cd "$BUILD_DIR"
+        mkdir -p "${DESTDIR}${ORCHESTRA_ROOT}/(@= triple @)/"
+        tar caf "${DESTDIR}${ORCHESTRA_ROOT}/(@= triple @)/(@= triple @)-(@= build_type @)-int-bundle-results.tar.gz" --owner=0 --group=0 result/)
+        (@- end @)
+      dependencies:
+        #@ if/end step == "use":
+        - toolchain/(@= toolchain_name @)/spec/(@= build_type @)/make@(@= flavor @)
+        #@ if/end step == "use" and build_type == "qemu":
+        - qemu
+
+        #@ if/end step == "make":
+        - toolchain/(@= toolchain_name @)/gcc
+        #@ if/end step == "make" and build_type in ["revng", "revng-optimized"]:
+        - revng
+    #@ end
+#@ end
+#@ end
+
+#@ end
diff --git a/.orchestra/config/components/toolchain/lib/toolchain.lib.yml b/.orchestra/config/components/toolchain/lib/toolchain.lib.yml
index 333f57ba7293e36e2a9e2a95a233cb94c79da547..164efd44db138d175484dfeb3430c314f7fcce6a 100644
--- a/.orchestra/config/components/toolchain/lib/toolchain.lib.yml
+++ b/.orchestra/config/components/toolchain/lib/toolchain.lib.yml
@@ -1,3 +1,5 @@
+#@ load("@ytt:template", "template")
+
 #@ load("/lib/fn_args.lib.yml", "mandatory")
 
 #@ load("/components/toolchain/lib/linux_headers.lib.yml", "create_linux_headers_component")
@@ -8,6 +10,7 @@
 #@ load("/components/toolchain/lib/uclibc.lib.yml", "create_uclibc_component")
 #@ load("/components/toolchain/lib/coreutils.lib.yml", "create_coreutils_component")
 #@ load("/components/toolchain/lib/mingw64.lib.yml", "create_mingw64_component")
+#@ load("/components/toolchain/lib/spec.lib.yml", "create_spec_components")
 
 #@yaml/text-templated-strings
 ---
@@ -27,7 +30,8 @@
 #@    mingw64_version=None,
 #@    extra_gcc_configure_options=None,
 #@    extra_gcc_make_variables="",
-#@    dynamic=None                     
+#@    dynamic=None,
+#@    spec=False,
 #@ ):
 
 #@ if/end binutils_version:
@@ -54,4 +58,7 @@
 #@ if/end uclibc_version:
 (@= "toolchain/" + toolchain_name + "/uclibc" @): #@ create_uclibc_component(triple=triple, toolchain_name=toolchain_name, uclibc_version=uclibc_version, uclibc_arch_name=uclibc_arch_name, gcc_version=gcc_version, binutils_version=binutils_version)
 
+#@ if/end spec:
+_: #@ template.replace(create_spec_components(triple=triple, toolchain_name=toolchain_name))
+
 #@ end
diff --git a/.orchestra/config/user_options.yml b/.orchestra/config/user_options.yml
index 76300388214a40884639096a466ada6d32ca773e..3233d9a2aea14379e98754e117c96bae83e6e8c4 100644
--- a/.orchestra/config/user_options.yml
+++ b/.orchestra/config/user_options.yml
@@ -2,6 +2,7 @@
 ---
 parallelism: "16"
 build_from_source: []
+nonredistributable_base_url: "https://dummydomain.com/nonredistributable/"
 paths:
   #! orchestra_root: /absolute/path/only
   #! source_archives: /absolute/path/only
diff --git a/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-base.cfg b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-base.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..8776092fa93fa322c28bb4bf572dc3466dcbd78a
--- /dev/null
+++ b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-base.cfg
@@ -0,0 +1,9 @@
+CC    = armv7a-hardfloat-linux-uclibceabi-gcc -fsigned-char
+CLD   = armv7a-hardfloat-linux-uclibceabi-gcc -fsigned-char -static
+CXX   = armv7a-hardfloat-linux-uclibceabi-g++ -fsigned-char -pthread
+CXXLD = armv7a-hardfloat-linux-uclibceabi-g++ -fsigned-char -pthread -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-native.cfg b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-native.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..00643a53ca88ed045480c74d54330818b93a5b44
--- /dev/null
+++ b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-native.cfg
@@ -0,0 +1,3 @@
+ext = armv7a-hardfloat-linux-uclibceabi-gcc-static-native
+
+include: armv7a-hardfloat-linux-uclibceabi-base.cfg
diff --git a/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-qemu.cfg b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-qemu.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..23aac659771c3c41c8e5118325afbf348c59ef9b
--- /dev/null
+++ b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-qemu.cfg
@@ -0,0 +1,6 @@
+ext = armv7a-hardfloat-linux-uclibceabi-gcc-static-qemu
+
+use_submit_for_speed = 1
+submit = qemu-arm $command
+
+include: armv7a-hardfloat-linux-uclibceabi-base.cfg
diff --git a/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revng.cfg b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revng.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..50177d5da928288fb6ce55142cd7df753d1ad756
--- /dev/null
+++ b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revng.cfg
@@ -0,0 +1,13 @@
+ext = armv7a-hardfloat-linux-uclibceabi-gcc-static-revng
+
+strict_rundir_verify = 0
+
+CC    = armv7a-hardfloat-linux-uclibceabi-gcc
+CLD   = revng cc -O2 -- armv7a-hardfloat-linux-uclibceabi-gcc -static
+CXX   = armv7a-hardfloat-linux-uclibceabi-g++
+CXXLD = revng cc -O2 -- armv7a-hardfloat-linux-uclibceabi-g++ -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revngisolated.cfg b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revngisolated.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a35f562d122bc09507d763edf6e00f425db6a163
--- /dev/null
+++ b/.orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revngisolated.cfg
@@ -0,0 +1,13 @@
+ext = armv7a-hardfloat-linux-uclibceabi-gcc-static-revngisolated
+
+strict_rundir_verify = 0
+
+CC    = armv7a-hardfloat-linux-uclibceabi-gcc
+CLD   = revng cc -O2 -i -- armv7a-hardfloat-linux-uclibceabi-gcc -static
+CXX   = armv7a-hardfloat-linux-uclibceabi-g++
+CXXLD = revng cc -O2 -i -- armv7a-hardfloat-linux-uclibceabi-g++ -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/gcc-base.cfg b/.orchestra/support/spec-config/gcc-base.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..1cdd3ab4eb636d86f33d770344db42bc58210904
--- /dev/null
+++ b/.orchestra/support/spec-config/gcc-base.cfg
@@ -0,0 +1,121 @@
+# This is a sample config file for CPU2006. It was tested with:
+#
+#      Compiler name/version:       [gcc,g++,gfortran 4.3 release]
+#      Operating system version:    [SLES 10 SP1 for AMD64]
+#      Hardware:                    [Opteron]
+#
+# If your platform uses different versions, different
+# hardware or operates in a different mode (for
+# example, 32- vs. 64-bit mode), there is the possibiliy
+# that this configuration file may not work as-is.
+#
+# Note that issues with compilation should be directed
+# to the compiler vendor. Information about SPEC techncial
+# support can be found in the techsupport document in the
+# Docs directory of your benchmark installation.
+#
+# Also note that this is a sample configuration. It
+# is expected to work for the environment in which
+# it was tested; it is not guaranteed that this is
+# the config file that will provide the best performance.
+
+# Note that you might find a more recent config file for
+# your platform with the posted results at
+# www.spec.org/cpu2006
+####################################################################
+# AMD64 (64-bit) FSF's gcc 4.3 config file
+# Sample Config file for CPU2006
+#####################################################################
+
+makeflags = -j8
+check_md5 = 0
+check_version = 0
+ignore_errors = 0
+tune          = base
+#ext           = gcc-base
+output_format = text,html,csv,config,screen
+reportable    = 1
+teeout        = yes
+teerunout     = yes
+hw_avail = Dec-9999
+license_num = 0
+test_sponsor =
+prepared_by =
+tester      =
+
+default=default=default=default:
+#####################################################################
+#
+# Compiler selection
+#
+#####################################################################
+#CC           = /usr/bin/gcc
+#CXX          = /usr/bin/g++
+FC           = /bin/false
+
+## HW config
+hw_model     = Tyan Thunder KKQS Pro (S4882)
+hw_cpu_name  = AMD Opteron 256
+hw_cpu_char  =
+hw_cpu_mhz   = 3000
+hw_fpu       = Integrated
+hw_nchips	= 1
+hw_ncores	= 1
+hw_ncoresperchip= 1
+hw_nthreadspercore = 1
+hw_ncpuorder = 1 chip
+hw_pcache    = 64 KB I + 64 KB D on chip per chip
+hw_scache    = 1 MB I+D on chip per chip
+hw_tcache    = None
+hw_ocache    = None
+hw_memory	= 2 GB (2 x 1GB DDR333 CL2.5)
+hw_disk  	= SATA
+hw_vendor	= Tyan
+hw_other	= None
+
+## SW config
+sw_os        = SUSE Linux Enterprise Server 10 (x86_64) SP1, Kernel 2.6.16.46-0.12-smp
+sw_file      = ext3
+sw_state     = Runlevel 3 (Full multiuser with network)
+sw_compiler  = gcc, g++ & gfortran 4.3.0 (for AMD64)
+sw_avail = Mar-2008
+sw_other = None
+sw_base_ptrsize = 64-bit
+sw_peak_ptrsize = Not Applicable
+
+#####################################################################
+# Optimization
+#####################################################################
+
+## Base is low opt
+default=base=default=default:
+COPTIMIZE    = -g -O2 -fno-strict-aliasing -std=gnu89
+CXXOPTIMIZE  = -g -O2 -fno-strict-aliasing -std=gnu++98
+FOPTIMIZE    = -O2 -fno-strict-aliasing
+
+#####################################################################
+# 32/64 bit Portability Flags - all
+#####################################################################
+
+#default=base=default=default:
+#PORTABILITY = -DSPEC_CPU_LP64
+
+#####################################################################
+# Portability Flags
+#####################################################################
+
+#400.perlbench=default=default=default:
+#CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H
+#CPORTABILITY = -DSPEC_CPU_LINUX_X64 -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE
+
+462.libquantum=default=default=default:
+CPORTABILITY=  -DSPEC_CPU_LINUX
+
+483.xalancbmk=default=default=default:
+CXXPORTABILITY= -DSPEC_CPU_LINUX
+
+481.wrf=default=default=default:
+CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX
+
+464.h264ref=default=default=default:
+CPORTABILITY = -fsigned-char
diff --git a/.orchestra/support/spec-config/i386-gentoo-linux-musl-base.cfg b/.orchestra/support/spec-config/i386-gentoo-linux-musl-base.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..95545ad26aaadef1e0745d27cfc38a468e9355cc
--- /dev/null
+++ b/.orchestra/support/spec-config/i386-gentoo-linux-musl-base.cfg
@@ -0,0 +1,9 @@
+CC    = i386-gentoo-linux-musl-gcc
+CLD   = i386-gentoo-linux-musl-gcc -static
+CXX   = i386-gentoo-linux-musl-g++
+CXXLD = i386-gentoo-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/i386-gentoo-linux-musl-native.cfg b/.orchestra/support/spec-config/i386-gentoo-linux-musl-native.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..1d251b95748e6a1808f7bf9d54ccbc9340a498f8
--- /dev/null
+++ b/.orchestra/support/spec-config/i386-gentoo-linux-musl-native.cfg
@@ -0,0 +1,3 @@
+ext = i386-gentoo-linux-musl-gcc-static-native
+
+include: i386-gentoo-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/i386-gentoo-linux-musl-qemu.cfg b/.orchestra/support/spec-config/i386-gentoo-linux-musl-qemu.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..2c119a36746425333849cc91a9c169b1688b35fb
--- /dev/null
+++ b/.orchestra/support/spec-config/i386-gentoo-linux-musl-qemu.cfg
@@ -0,0 +1,6 @@
+ext = i386-gentoo-linux-musl-gcc-static-qemu
+
+use_submit_for_speed = 1
+submit = qemu-i386 $command
+
+include: i386-gentoo-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/i386-gentoo-linux-musl-revng.cfg b/.orchestra/support/spec-config/i386-gentoo-linux-musl-revng.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..268615a88b97647da96dec119985ae3e5b81f5fc
--- /dev/null
+++ b/.orchestra/support/spec-config/i386-gentoo-linux-musl-revng.cfg
@@ -0,0 +1,13 @@
+ext = i386-gentoo-linux-musl-gcc-static-revng
+
+strict_rundir_verify = 0
+
+CC    = i386-gentoo-linux-musl-gcc
+CLD   = revng cc -O2 -- i386-gentoo-linux-musl-gcc -static
+CXX   = i386-gentoo-linux-musl-g++
+CXXLD = revng cc -O2 -- i386-gentoo-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/i386-gentoo-linux-musl-revngisolated.cfg b/.orchestra/support/spec-config/i386-gentoo-linux-musl-revngisolated.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..f944a0e48a4d9cf0c6b781c1ed00fd47ae523b44
--- /dev/null
+++ b/.orchestra/support/spec-config/i386-gentoo-linux-musl-revngisolated.cfg
@@ -0,0 +1,13 @@
+ext = i386-gentoo-linux-musl-gcc-static-revngisolated
+
+strict_rundir_verify = 0
+
+CC    = i386-gentoo-linux-musl-gcc
+CLD   = revng cc -O2 -i -- i386-gentoo-linux-musl-gcc -static
+CXX   = i386-gentoo-linux-musl-g++
+CXXLD = revng cc -O2 -i -- i386-gentoo-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DI_TIME
diff --git a/.orchestra/support/spec-config/mips-unknown-linux-musl-base.cfg b/.orchestra/support/spec-config/mips-unknown-linux-musl-base.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..86e5438edf22a57b935c1c6cd51cdc9069285218
--- /dev/null
+++ b/.orchestra/support/spec-config/mips-unknown-linux-musl-base.cfg
@@ -0,0 +1,12 @@
+CC    = mips-unknown-linux-musl-gcc
+CLD   = mips-unknown-linux-musl-gcc -static
+CXX   = mips-unknown-linux-musl-g++
+CXXLD = mips-unknown-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+default=base=default=default:
+PORTABILITY = -DSPEC_CPU_BIG_ENDIAN
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DSPEC_CPU_LINUX_MIPS -DSPEC_CPU_BIG_ENDIAN
diff --git a/.orchestra/support/spec-config/mips-unknown-linux-musl-native.cfg b/.orchestra/support/spec-config/mips-unknown-linux-musl-native.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..6737c445641f84809472b5df90d7982a68139e34
--- /dev/null
+++ b/.orchestra/support/spec-config/mips-unknown-linux-musl-native.cfg
@@ -0,0 +1,3 @@
+ext = mips-unknown-linux-musl-gcc-static-native
+
+include: mips-unknown-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/mips-unknown-linux-musl-qemu.cfg b/.orchestra/support/spec-config/mips-unknown-linux-musl-qemu.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..6d33f6e60741ce275c8bd46ed9705e69f9d0a7f3
--- /dev/null
+++ b/.orchestra/support/spec-config/mips-unknown-linux-musl-qemu.cfg
@@ -0,0 +1,6 @@
+ext = mips-unknown-linux-musl-gcc-static-qemu
+
+use_submit_for_speed = 1
+submit = qemu-mips $command
+
+include: mips-unknown-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/mips-unknown-linux-musl-revng.cfg b/.orchestra/support/spec-config/mips-unknown-linux-musl-revng.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..078f02c8296ffbc18895eb1466f2d1cacef7996c
--- /dev/null
+++ b/.orchestra/support/spec-config/mips-unknown-linux-musl-revng.cfg
@@ -0,0 +1,16 @@
+ext = mips-unknown-linux-musl-gcc-static-revng
+
+strict_rundir_verify = 0
+
+CC    = mips-unknown-linux-musl-gcc
+CLD   = revng cc -O2 -- mips-unknown-linux-musl-gcc -static
+CXX   = mips-unknown-linux-musl-g++
+CXXLD = revng cc -O2 -- mips-unknown-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+default=base=default=default:
+PORTABILITY = -DSPEC_CPU_BIG_ENDIAN
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DSPEC_CPU_LINUX_MIPS -DSPEC_CPU_BIG_ENDIAN
diff --git a/.orchestra/support/spec-config/mips-unknown-linux-musl-revngisolated.cfg b/.orchestra/support/spec-config/mips-unknown-linux-musl-revngisolated.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..44df2d6c37990ff9b737de7a589bb09dcd39e96c
--- /dev/null
+++ b/.orchestra/support/spec-config/mips-unknown-linux-musl-revngisolated.cfg
@@ -0,0 +1,16 @@
+ext = mips-unknown-linux-musl-gcc-static-revngisolated
+
+strict_rundir_verify = 0
+
+CC    = mips-unknown-linux-musl-gcc
+CLD   = revng cc -O2 -i -- mips-unknown-linux-musl-gcc -static
+CXX   = mips-unknown-linux-musl-g++
+CXXLD = revng cc -O2 -i -- mips-unknown-linux-musl-g++ -static
+
+include: gcc-base.cfg
+
+default=base=default=default:
+PORTABILITY = -DSPEC_CPU_BIG_ENDIAN
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H -DSPEC_CPU_LINUX_MIPS -DSPEC_CPU_BIG_ENDIAN
diff --git a/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-base.cfg b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-base.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..8ef86930c133214976ede8027aa60531ed169aa9
--- /dev/null
+++ b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-base.cfg
@@ -0,0 +1,10 @@
+CC    = x86_64-gentoo-linux-musl-gcc
+CLD   = x86_64-gentoo-linux-musl-gcc -static
+CXX   = x86_64-gentoo-linux-musl-g++
+CXXLD = x86_64-gentoo-linux-musl-g++ -static
+PORTABILITY = -DSPEC_CPU_LP64
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_LINUX_X64 -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H
diff --git a/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-native.cfg b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-native.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a96b200e235a7b426f579a9c4e8ee75819430ba0
--- /dev/null
+++ b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-native.cfg
@@ -0,0 +1,3 @@
+ext = x86_64-gentoo-linux-musl-gcc-static-native
+
+include: x86_64-gentoo-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-qemu.cfg b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-qemu.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..4dc66b9970aab8604f1ef887aaadb2ba2172aef8
--- /dev/null
+++ b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-qemu.cfg
@@ -0,0 +1,6 @@
+ext = x86_64-gentoo-linux-musl-gcc-static-qemu
+
+use_submit_for_speed = 1
+submit = qemu-x86_64 $command
+
+include: x86_64-gentoo-linux-musl-base.cfg
diff --git a/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revng.cfg b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revng.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..de81188e7503201842e0b6ec9305cd498cab5b11
--- /dev/null
+++ b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revng.cfg
@@ -0,0 +1,14 @@
+ext = x86_64-gentoo-linux-musl-gcc-static-revng
+
+strict_rundir_verify = 0
+
+CC    = x86_64-gentoo-linux-musl-gcc
+CLD   = revng cc -O2 -- x86_64-gentoo-linux-musl-gcc -static
+CXX   = x86_64-gentoo-linux-musl-g++
+CXXLD = revng cc -O2 -- x86_64-gentoo-linux-musl-g++ -static
+PORTABILITY = -DSPEC_CPU_LP64
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_LINUX_X64 -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H
diff --git a/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revngisolated.cfg b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revngisolated.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..90123240c3a131c2887d32e6c893ac36178428d9
--- /dev/null
+++ b/.orchestra/support/spec-config/x86_64-gentoo-linux-musl-revngisolated.cfg
@@ -0,0 +1,14 @@
+ext = x86_64-gentoo-linux-musl-gcc-static-revngisolated
+
+strict_rundir_verify = 0
+
+CC    = x86_64-gentoo-linux-musl-gcc
+CLD   = revng cc -O2 -i -- x86_64-gentoo-linux-musl-gcc -static
+CXX   = x86_64-gentoo-linux-musl-g++
+CXXLD = revng cc -O2 -i -- x86_64-gentoo-linux-musl-g++ -static
+PORTABILITY = -DSPEC_CPU_LP64
+
+include: gcc-base.cfg
+
+400.perlbench=default=default=default:
+CPORTABILITY = -DSPEC_CPU_LINUX_X64 -DSPEC_CPU_NO_USE_STDIO_PTR -DSPEC_CPU_NO_USE_STDIO_BASE -DI_FCNTL -DSPEC_CPU_NEED_TIME_H