From 477f6a3a6c5815203c063440a95864b32665dc80 Mon Sep 17 00:00:00 2001 From: Craig Silverstein Date: Tue, 3 Jun 2008 05:32:36 +0000 Subject: [PATCH] Add some new benchmark routines (including C++ projects like yate and ACE), and normalize syntax for existing ones. I've tested that we can at least build all of these projects locally, as long as all neccesary dependent packages are installed. Reviewed by fergus --- bench/ProjectDefs.py | 156 +++++++++++++++++++++---------------------- 1 file changed, 77 insertions(+), 79 deletions(-) diff --git a/bench/ProjectDefs.py b/bench/ProjectDefs.py index 9e51602b..09568a82 100755 --- a/bench/ProjectDefs.py +++ b/bench/ProjectDefs.py @@ -2,72 +2,71 @@ # and performance on various source trees. # Copyright (C) 2002, 2003, 2004 by Martin Pool - +# Copyright 2008 Google Inc. +# # This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. - -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. __doc__ = """distcc benchmark project definitions""" from Project import Project +# Consider the following when adding a new project: +# 1) Should be fairly large. That's where distcc helps most. +# 2) Should have minimal dependencies. That way, the build will +# succeed without you needing to install lots of libraries +# on your machine. +# # See Project.py:Project.__init__.doc() for documentation of the # named arguments that are allowed for Project. -# Would like to test glibc, but it needs a separate source and build -# directory. TODO(csilvers): add build_subdir/configure_cmd to do this. - -# disable-sanity-checks is needed to stop it wanting linuxthreads -- -# the resulting library is useless, but this is only a test. - -#Project(url = 'http://ftp.gnu.org/pub/gnu/glibc/glibc-2.3.2.tar.bz2', -# configure_cmd = './configure --disable-sanity-checks' -# ).register() -#Project(url='http://mirror.aarnet.edu.au/pub/gnu/libc/glibc-2.3.tar.bz2', -# configure_cmd='./configure --disable-sanity-checks', -# md5='fd20b4a9feeb2b2f0f589b1a9ae8a5e2 glibc-2.3.tar.bz2').register() +Project(url='http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz', + md5='70c9ccf9fac07f762c24f2df2290784d *hello-2.1.1.tar.gz', + ).register() -Project(url='http://archive.apache.org/dist/httpd/httpd-2.0.43.tar.gz', - md5='8051de5d160c43d4ed2cc47dc9be6fd3 httpd-2.0.43.tar.gz').register() +Project(url='http://ftp.gnu.org/gnu/make/make-3.80.tar.bz2', + md5='0bbd1df101bc0294d440471e50feca71 *make-3.80.tar.bz2' + ).register() Project(url='ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.7.tar.bz2', - md5='5882b1e729f57cb18af653a2f504197b glib-2.0.7.tar.bz2').register() + md5='5882b1e729f57cb18af653a2f504197b glib-2.0.7.tar.bz2' + ).register() Project(url='http://us1.samba.org/samba/ftp/old-versions/samba-2.2.7.tar.gz', build_subdir='source', md5='824cd4e305f9b744f3eec702a7b96f7f samba-2.2.7.tar.gz', ).register() -Project(url='http://ftp.gnu.org/gnu/make/make-3.80.tar.bz2', - md5='0bbd1df101bc0294d440471e50feca71 *make-3.80.tar.bz2' +Project(url='http://us1.samba.org/samba/ftp/old-versions/samba-3.0.20.tar.gz', + name='samba-3.0.20', + build_subdir='source', + # newer versions of popt can be incompatible + configure_cmd='./configure --with-included-popt', + pre_build_cmd = 'make proto', ).register() -# failed: "make: *** No rule to make target `defconfig'. Stop." -#Project(url='http://public.ftp.planetmirror.com/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2', -# configure_cmd='make defconfig', -# build_cmd='make bzImage', -# ).register() +Project(url='http://archive.apache.org/dist/httpd/httpd-2.0.43.tar.gz', + md5='8051de5d160c43d4ed2cc47dc9be6fd3 httpd-2.0.43.tar.gz' + ).register() -# failed: compilation error -# scripts/kconfig/mconf.c:91: error: static declaration of 'current_menu' follows non-static declaration -# scripts/kconfig/lkc.h:59: error: previous declaration of 'current_menu' was here -#Project(url='http://www.kernel.org/pub/linux/kernel/v2.5/linux-2.5.51.tar.bz2', -# md5='2300b7b7d2ce4c017fe6dae49717fd9a *linux-2.5.51.tar.bz2', -# configure_cmd='make defconfig', -# build_cmd='make bzImage' -# ).register() +Project(url='http://yate.null.ro/tarballs/yate2/yate-2.0.0-alpha2.tar.gz', + name='yate', + configure_cmd='./configure --without-libpq --without-mysql --without-wphwec --without-libgsm --without-libspeex --without-spandsp --without-pwlib --without-openh323 --without-libgtk2 --without-gtkmozilla --without-libqt4 --without-coredumper --without-doxygen --without-kdoc', + md5='b9fd116bc5c8142de6e130931cd3bdf2 yate-2.0.0-alpha2.tar.gz' + ).register() Project(url='http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2', md5='db95a49a656a3247d4995a797d333153 *linux-2.6.25.tar.bz2', @@ -76,10 +75,30 @@ include_server_args='--stat_reset_triggers=include/linux/compile.h:include/asm/asm-offsets.h' ).register() +Project(url='http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz', + name='Python-2.5.2', + ).register() + +Project(url='http://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2', + configure_cmd = './configure --disable-werror', + ).register() + +# disable-sanity-checks is needed to stop it wanting linuxthreads -- +# the resulting library is useless, but this is only a test. +Project(url = 'http://ftp.gnu.org/pub/gnu/glibc/glibc-2.6.tar.bz2', + build_subdir = '_build', + configure_cmd = '../configure --disable-sanity-checks', + ).register() + +Project(url='http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.0/mysql-5.0.51b.tar.gz', + md5='e6715a878a7c102f7a4c323f9ef63e8f *mysql-5.0.51b.tar.gz', + configure_cmd = './configure', + ).register() + Project(url='http://sources-redhat.oc1.mirrors.redwire.net/gdb/old-releases/gdb-5.3.tar.gz', ).register() -## gimp 1.2.3 has makefile bugs that break -j +#### Commented out: gimp 1.2.3 has makefile bugs that break -j ## Project(url='ftp://212.8.35.65/pub/FreeBSD/distfiles/gimp-1.2.3.tar.bz2', ## md5='b19235f19f524f772a4aef597a69b1da *gimp-1.2.3.tar.bz2', ## configure_cmd='./configure --disable-perl', @@ -90,50 +109,29 @@ configure_cmd='./configure --disable-perl --disable-print', ).register() -## Project(url='http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.3.tar.bz2', -## ).register() - Project(url='http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.4.tar.bz2', md5='73205d83a5612a43441a8532683c0434 wine-0.9.4.tar.bz2', ).register() -Project(url='http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz', - md5='70c9ccf9fac07f762c24f2df2290784d *hello-2.1.1.tar.gz', +Project(url='http://mirror.aarnet.edu.au/pub/mozilla/releases/mozilla1.4/src/mozilla-source-1.4.tar.bz2', + name='mozilla-1.4', + configure_cmd="LIBIDL_CONFIG=libIDL-config-2 ./configure", + unpacked_subdir='mozilla', ).register() - -# XXX: Does not build on Debian at the moment, problem with libIDL-config - -# Project(url='http://mirror.aarnet.edu.au/pub/mozilla/releases/mozilla1.4/src/mozilla-source-1.4.tar.bz2', -# name='mozilla-1.4', -# configure_cmd="LIBIDL_CONFIG=libIDL-config-2 ./configure", -# unpacked_subdir='mozilla', -# ).register() - - Project(url='http://ftp.mozilla.org/pub/firebird/releases/0.6/MozillaFirebird-0.6-source.tar.bz2', name='MozillaFirebird', unpacked_subdir='mozilla', ).register() -Project(url='http://us1.samba.org/samba/ftp/old-versions/samba-3.0.20.tar.gz', - name='samba-3.0.20', - build_subdir='source', - # newer versions of popt can be incompatible - configure_cmd='./configure --with-included-popt', - pre_build_cmd = 'make proto', - ).register() - -Project(url='http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.5.tar.bz2', - name='ace-5.6.5', - unpacked_subdir='ACE_wrappers', - build_subdir = '_build', - configure_cmd='../configure', - md5='32157a0a4cc9bd8dc03d98b90b707759 ACE+TAO+CIAO-5.6.5.tar.bz2' - ).register() - -Project(url='http://yate.null.ro/tarballs/yate2/yate-2.0.0-alpha2.tar.gz', - name='yate', - configure_cmd='./configure --without-libpq --without-mysql --without-wphwec --without-libgsm --without-libspeex --without-spandsp --without-pwlib --without-openh323 --without-libgtk2 --without-gtkmozilla --without-libqt4 --without-coredumper --without-doxygen --without-kdoc', - md5='b9fd116bc5c8142de6e130931cd3bdf2 yate-2.0.0-alpha2.tar.gz' - ).register() +#### Commented out: configure script hasn't kept up with modern gcc's. +#### For instance, they check whether setrlimit takes an enum as the +#### first argument by grepping for 'setrlimit(enum' in the .h file, +#### but crosstool gcc's use a typedef, so it's 'setrlimit(newtype'. +## Project(url='http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.5.tar.bz2', +## name='ace-5.6.5', +## unpacked_subdir='ACE_wrappers', +## build_subdir = '_build', +## configure_cmd='../configure', +## md5='32157a0a4cc9bd8dc03d98b90b707759 ACE+TAO+CIAO-5.6.5.tar.bz2' +## ).register()