Compiling SPEC Benchmarks tools on ARM

Some of the SPEC benchmarks come for a variety of architectures but not for ARM, which is not surprising anyway. The easiest way to execute the benchmarks is by using the provided scripts, which is pretty much straight forward operation. The benchmarks come with pre-compiled tools and libraries that are needed by the benchmarks. Among them is Perl, which will fail to compile on ARM systems because of some invalid object definitions in its makefile. These definitions get in the makefile by the Configure script which is called before calling make. Instead of messing around with Configure, I added a couple of lines in the buildtools file, which is responsible for building the SPEC tools on a new architecture or after having modified the host system, in order to remove the unnecessary lines from the corresponding makefiles.

The buildtools script can be found under tools/src/ in the SPEC benchmarks directoy. What is needed is to go in the Perl building section, line 103, and replace the fist part of the building phase with the following oneliner:

(cd $PERLSRC; LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; 
./Configure -dOes $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR 
-Dd_bincompat3=undef; cat makefile | grep -v built-in 
| grep -v "command line" > makefile.new; cp makefile.new makefile; 
cat x2p/makefile | grep -v built-in | grep -v "command line" > x2p/makefile.new; 
cp x2p/makefile.new x2p/makefile; make; ./perl installperl ) 
|| die "Can't build perl"

11 thoughts on “Compiling SPEC Benchmarks tools on ARM

  1. panoskrt

    What you see above is a Perl on-liner, which should just work if you copy/paste it correctly.

    Are you trying to compile the same OMP2001 benchmarks or something else?

  2. panoskrt

    Unfortunately I don’t have access now to an ARM box to test it. What error are you getting? Have you tried the oneliner above? It might need some sort of modification and/or you might face an additional issue to what I’ve faced.

  3. George

    First, I was getting a problem with a header page.h in SysV.xs.
    I solved commenting this include. One error during libwwwperl’s tests appeared. I just did a recursive touch on SPEC’s directory and the error was solved.

  4. am building SPEC2006 on ARM and getting few verification tests failed during buildtools.

    t/14encoding.t … 1/9 Cannot find encoding “UTF-16BE” at /home/ubuntu/SPEC_CPU2006v1.2/tools/src/XML-SAX-0.96/blib/lib/XML/SAX/PurePerl/Reader/UnicodeExt.pm line 15.
    Unknown encoding ‘UTF-16BE’ at /home/ubuntu/SPEC_CPU2006v1.2/tools/src/XML-SAX-0.96/blib/lib/XML/SAX/PurePerl/Reader/UnicodeExt.pm line 19

    Any clues ?

  5. panoskrt

    Sorry, haven’t faced any of these. The first, obvious, thing to check is where the encoding tests come in and if you have the required encodings.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s