From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27870 invoked by alias); 14 Apr 2011 08:12:45 -0000 Received: (qmail 27737 invoked by uid 22791); 14 Apr 2011 08:12:42 -0000 X-SWARE-Spam-Status: No, hits=0.6 required=5.0 tests=AWL,BAYES_80,MIME_QP_LONG_LINE,TW_DJ,TW_GP,TW_JG,TW_JL,TW_NX,TW_QN,TW_SD,TW_SV X-Spam-Check-By: sourceware.org Received: from c60.cesmail.net (HELO c60.cesmail.net) (216.154.195.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Apr 2011 08:12:35 +0000 Received: from unknown (HELO epsilon2) ([192.168.1.60]) by c60.cesmail.net with ESMTP; 14 Apr 2011 04:12:32 -0400 Received: from e178013229.adsl.alicedsl.de (e178013229.adsl.alicedsl.de [85.178.13.229]) by webmail.spamcop.net (Horde MIME library) with HTTP; Thu, 14 Apr 2011 04:12:31 -0400 Message-ID: <20110414041231.xfz3vsftc8o0og0g-nzlynne@webmail.spamcop.net> Date: Thu, 14 Apr 2011 08:12:00 -0000 From: Joern Rennecke To: Ralf Wildenhues Cc: "Joseph S. Myers" , gcc-patches@gcc.gnu.org Subject: Re: RFA: Add makefile for cross-configuration torture test References: <20110413064931.woxgk0qnqm8swoow-nzlynne@webmail.spamcop.net> <20110413140647.provnjxog4og0o84-nzlynne@webmail.spamcop.net> <20110413170227.e7wggimm0wo0ko4k-nzlynne@webmail.spamcop.net> <20110414055124.GA8704@gmx.de> In-Reply-To: <20110414055124.GA8704@gmx.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_7brmenj305tb" Content-Transfer-Encoding: 7bit User-Agent: Internet Messaging Program (IMP) H3 (4.1.4) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg01044.txt.bz2 This message is in MIME format. --=_7brmenj305tb Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 1632 Quoting Ralf Wildenhues : > Can you separate the configure and the build steps into separate make > targets so that one can run one but not the other? Or would that have > adverse effects on the load pattern (it might, due to the way make > orders scheduling of jobs)? I've added a separate target 'config' for that. I've written it so that the configuration step of each target configuration is a separate make target, so make could avoid making lots of configured directories before they are needed. Unfortunately, it chooses to do just that, which I think is a bit annoying. I can think of a number of ways to avoid that, but they would make the entire thing a lot more complicated. I think it's important not to add lots of complexity with little gain; it's straightforward to adapt the simple makefile to work across a cluster, but for a complex mess of rules, you wouldn't know where to start. The (temporary) extra storage needed for the unnecessarily early configured directories is about 112 MB (i.e. fit comfortably in the buffer cache of the kind of machine you would typically run this on), about the same as=20=20 the log files, and in the noise compared to build directory or cc1=20=20 working set size requirements. The cumulative CPU time of the configurations are also low compared with the actual work, so I think the performance is low enough not to worry (and hard to measure with all that noise on a shared system to start with). Would be nice to have 'all-gcc' abstracted > into a make variable too, so it could be reused for other purposes. It's the TEST make variable now. --=_7brmenj305tb Content-Type: text/plain; charset=UTF-8; name="config-list-diff3" Content-Disposition: inline; filename="config-list-diff3" Content-Transfer-Encoding: quoted-printable Content-length: 5454 2010-04-14 Joern Rennecke * config-list.mk: New file. Index: contrib/config-list.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- contrib/config-list.mk (revision 0) +++ contrib/config-list.mk (revision 0) @@ -0,0 +1,98 @@ +# Run tests covering all config.gcc cases. +host_options=3D'--with-mpc=3D/opt/cfarm/mpc' # gcc10 +TEST=3Dall-gcc +# Make sure you have a recent enough gcc (with ada support) in your path so +# that --enable-werror-always will work. +# To use, create a sibling directory to the gcc sources and cd into this. +# Use -j / -l make arguments and nice to assure a smooth resource-efficient +# load on the build machine, e.g. for 24 cores: +# svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc +# mkdir multi-mk; cd multi-mk +# nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>= &1 & +# +# v850e1-elf is rejected by config.sub +LIST =3D alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \ + alpha-dec-osf5.1 alpha64-dec-vms alpha-dec-vms am33_2.0-linux \ + arm-wrs-vxworks arm-freebsd6 arm-netbsdelf arm-linux \ + arm-linux-androideabi arm-uclinux_eabi arm-ecos-elf arm-eabi \ + arm-symbianelf arm-rtems arm-elf arm-wince-pe avr-rtems avr-elf \ + bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \ + cris-elf cris-linux crisv32-elf crisv32-linux fido-elf \ + fr30-elf frv-elf frv-linux h8300-elf h8300-rtems hppa-linux-gnu \ + hppa-linux-gnuOPT-enable-sjlj-exceptions=3Dyes hppa64-linux-gnu \ + hppa2.0-hpux10.1 hppa64-hpux11.3 \ + hppa64-hpux11.0OPT-enable-sjlj-exceptions=3Dyes hppa2.0-hpux11.9 \ + i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin= 10 \ + i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \ + i686-netbsdelf9 i686-knetbsd-gnu i686-openbsd i686-openbsd3.0 \ + i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \ + i686-lynxos i586-netwareOPT-with-ld=3DSCRIPTSnwld i686-nto-qnx \ + i686-rtems i686-solaris2.10 i686-wrs-vxworks \ + i686-wrs-vxworksae \ + i686-cygwinOPT-enable-threads=3Dyes i686-mingw32crt ia64-elf \ + ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \ + lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf m32r-rte= ms \ + m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \ + m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \ + mcore-elf mep-elf microblaze-linux microblaze-elf \ + mips-sgi-irix6.5OPT-with-stabsOPT-enable-threads=3Dposix mips-netbsd \ + mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \ + mipsisa32r2-linux-gnu mips-openbsd mipsisa64r2-sde-elf mipsisa32-elfoabi= \ + mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \ + mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \ + mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \ + moxie-uclinux moxie-rtems pdp11-aout picochip-elf powerpc-darwin8 \ + powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \ + powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \ + powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \ + powerpc-rtems4.11OPT-enable-threads=3Dyes powerpc-linux_spe \ + powerpc-linux_paired powerpc64-linux_altivec \ + powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-lynxos powerpcle-elf \ + powerpcle-eabisim powerpcle-eabi rs6000-ibm-aix4.3 rs6000-ibm-aix5.1.0 \ + rs6000-ibm-aix5.2.0 rs6000-ibm-aix5.3.0 rs6000-ibm-aix6.0 \ + rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \ + shle-linux sh-netbsdelf sh-superh-elf sh5el-netbsd sh64-netbsd sh64-linu= x \ + sh64-elfOPT-with-newlib sh-rtems sh-wrs-vxworks sparc-elf \ + sparc-leon-elf sparc-rtems sparc-linux-gnu \ + sparc-leon3-linux-gnuOPT-enable-target=3Dall sparc-netbsdelf \ + sparc64-sun-solaris2.10OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads= =3Dposix \ + sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebs= d6 \ + sparc64-netbsd sparc64-openbsd spu-elf v850e-elf v850-elf vax-linux-gnu \ + vax-netbsdelf vax-openbsd x86_64-apple-darwin \ + x86_64-pc-linux-gnuOPT-with-fpmath=3Davx \ + x86_64-elfOPT-with-fpmath=3Dsse x86_64-freebsd6 x86_64-netbsd \ + x86_64-knetbsd-gnu x86_64-w64-mingw32 \ + x86_64-mingw32OPT-enable-sjlj-exceptions=3Dyes xstormy16-elf xtensa-elf \ + xtensa-linux sparc-sun-solaris2.9 i686-solaris2.9 \ + i686-interix3OPT-enable-obsolete score-elfOPT-enable-obsolete + +LOGFILES =3D $(patsubst %,log/%-make.out,$(LIST)) +all: $(LOGFILES) +config: $(LIST) + +.PHONY: make-log-dir make-script-dir all config + +empty=3D + +#Check for the presence of the MAINTAINERS file to make sure we are in a +#suitable current working directory. +make-log-dir: ../gcc/MAINTAINERS + mkdir log + +# The 'ix86-netware --with-ld=3Dnwld' configuration needs a nwld executabl= e to +# configure. See PR47104. +make-script-dir: + mkdir scripts + echo ld $* > scripts/nwld + chmod u+x scripts/nwld + +$(LIST): make-log-dir make-script-dir + -mkdir $@ + (cd $@ && \ + ../../gcc/configure \ + --target=3D$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \ + --enable-werror-always ${host_options} --enable-languages=3Dall,ada,go) \ + > log/$@-config.out 2>&1 + +$(LOGFILES) : log/%-make.out : % + -$(MAKE) -C $< $(TEST) > $@ 2>&1 && rm -rf $< --=_7brmenj305tb--