From 4458139e7017c959bec7318cac1bf8a1d85abf53 Mon Sep 17 00:00:00 2001
From: Filippo Cremonese <filippocremonese@rev.ng>
Date: Fri, 11 Sep 2020 15:41:31 +0200
Subject: [PATCH] Add spec component

---
 .../components/toolchain/arch/arm.lib.yml     |   1 +
 .../components/toolchain/arch/i386.lib.yml    |   2 +
 .../components/toolchain/arch/mips.lib.yml    |   2 +
 .../components/toolchain/arch/x86_64.lib.yml  |   2 +
 .../components/toolchain/lib/spec.lib.yml     |  77 +++++++++++
 .../toolchain/lib/toolchain.lib.yml           |   9 +-
 .orchestra/config/user_options.yml            |   1 +
 ...armv7a-hardfloat-linux-uclibceabi-base.cfg |   9 ++
 ...mv7a-hardfloat-linux-uclibceabi-native.cfg |   3 +
 ...armv7a-hardfloat-linux-uclibceabi-qemu.cfg |   6 +
 ...rmv7a-hardfloat-linux-uclibceabi-revng.cfg |  13 ++
 ...rdfloat-linux-uclibceabi-revngisolated.cfg |  13 ++
 .orchestra/support/spec-config/gcc-base.cfg   | 121 ++++++++++++++++++
 .../i386-gentoo-linux-musl-base.cfg           |   9 ++
 .../i386-gentoo-linux-musl-native.cfg         |   3 +
 .../i386-gentoo-linux-musl-qemu.cfg           |   6 +
 .../i386-gentoo-linux-musl-revng.cfg          |  13 ++
 .../i386-gentoo-linux-musl-revngisolated.cfg  |  13 ++
 .../mips-unknown-linux-musl-base.cfg          |  12 ++
 .../mips-unknown-linux-musl-native.cfg        |   3 +
 .../mips-unknown-linux-musl-qemu.cfg          |   6 +
 .../mips-unknown-linux-musl-revng.cfg         |  16 +++
 .../mips-unknown-linux-musl-revngisolated.cfg |  16 +++
 .../x86_64-gentoo-linux-musl-base.cfg         |  10 ++
 .../x86_64-gentoo-linux-musl-native.cfg       |   3 +
 .../x86_64-gentoo-linux-musl-qemu.cfg         |   6 +
 .../x86_64-gentoo-linux-musl-revng.cfg        |  14 ++
 ...x86_64-gentoo-linux-musl-revngisolated.cfg |  14 ++
 28 files changed, 402 insertions(+), 1 deletion(-)
 create mode 100644 .orchestra/config/components/toolchain/lib/spec.lib.yml
 create mode 100644 .orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-base.cfg
 create mode 100644 .orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-native.cfg
 create mode 100644 .orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-qemu.cfg
 create mode 100644 .orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revng.cfg
 create mode 100644 .orchestra/support/spec-config/armv7a-hardfloat-linux-uclibceabi-revngisolated.cfg
 create mode 100644 .orchestra/support/spec-config/gcc-base.cfg
 create mode 100644 .orchestra/support/spec-config/i386-gentoo-linux-musl-base.cfg
 create mode 100644 .orchestra/support/spec-config/i386-gentoo-linux-musl-native.cfg
 create mode 100644 .orchestra/support/spec-config/i386-gentoo-linux-musl-qemu.cfg
 create mode 100644 .orchestra/support/spec-config/i386-gentoo-linux-musl-revng.cfg
 create mode 100644 .orchestra/support/spec-config/i386-gentoo-linux-musl-revngisolated.cfg
 create mode 100644 .orchestra/support/spec-config/mips-unknown-linux-musl-base.cfg
 create mode 100644 .orchestra/support/spec-config/mips-unknown-linux-musl-native.cfg
 create mode 100644 .orchestra/support/spec-config/mips-unknown-linux-musl-qemu.cfg
 create mode 100644 .orchestra/support/spec-config/mips-unknown-linux-musl-revng.cfg
 create mode 100644 .orchestra/support/spec-config/mips-unknown-linux-musl-revngisolated.cfg
 create mode 100644 .orchestra/support/spec-config/x86_64-gentoo-linux-musl-base.cfg
 create mode 100644 .orchestra/support/spec-config/x86_64-gentoo-linux-musl-native.cfg
 create mode 100644 .orchestra/support/spec-config/x86_64-gentoo-linux-musl-qemu.cfg
 create mode 100644 .orchestra/support/spec-config/x86_64-gentoo-linux-musl-revng.cfg
 create mode 100644 .orchestra/support/spec-config/x86_64-gentoo-linux-musl-revngisolated.cfg

diff --git a/.orchestra/config/components/toolchain/arch/arm.lib.yml b/.orchestra/config/components/toolchain/arch/arm.lib.yml
index 5319c16..49ab9ad 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 c32b6cc..e9b909b 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 50ec6b5..f3e1d03 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 e25fb59..a8dee57 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 0000000..b1a99b4
--- /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 333f57b..164efd4 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 7630038..3233d9a 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 0000000..8776092
--- /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 0000000..00643a5
--- /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 0000000..23aac65
--- /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 0000000..50177d5
--- /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 0000000..a35f562
--- /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 0000000..1cdd3ab
--- /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 0000000..95545ad
--- /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 0000000..1d251b9
--- /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 0000000..2c119a3
--- /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 0000000..268615a
--- /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 0000000..f944a0e
--- /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 0000000..86e5438
--- /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 0000000..6737c44
--- /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 0000000..6d33f6e
--- /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 0000000..078f02c
--- /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 0000000..44df2d6
--- /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 0000000..8ef8693
--- /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 0000000..a96b200
--- /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 0000000..4dc66b9
--- /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 0000000..de81188
--- /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 0000000..9012324
--- /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
-- 
GitLab