Add CMakeLists.txt files for SPEC CPU 2017.
Add C/C++ benchmarks are included, grouped by benchmark suite (SPECrate 2017 Integer, SPECspeed 2017
Integer, SPECrate 2017 Floating Point, SPECspeed 2017 Floating Point).
SPEC's changes to some of the benchmarks (at least perlbench) require then to be invoked with a relative path (because for finding its working directory, it prepends a path to basename(argv[0])). When the executable is referred to by a relative path, litsupport needs to take cd commands before into account, otherwise it won't find the executable.
Some reference files in SPEC are stored with CRLF line endings (511.povray_r) while the benchmark generates LF endings, at least on UNIX. fpcmp got stock in an endless loop in this case.
Useful additions for the future:
Some mixed-language projects of SPEC CPU 2017 have most of sources written in C/C++ (e.g. cactuBSSN). A useful addition might try compiling the Fortran parts with gfortran.
The only platform I tried is x86_64. I can try make it work with -m32 as well. Support for other platforms has to be added by people who can test on those.
Most 5xx_r/6xx_s benchmark pairs are (nearly) identical and/or only have different test inputs. One might save compile/runtime by running only one of them.
Many _s flavors have support for OpenMP. This is unconditionally disabled at the moment, but one might add an option to compile them with OpenMP.
The new CMakeLists.txt support multiple run types (test,train,ref) in one build but test-suite's cmake system doesn't allow this yet.
Most parts of the test-suite use list(APPEND LDFLAGS -lm) for this (that's not better but maybe more consistent)