Commit: BFIN: Fix use of VEC_last macro in bfin.c

nick clifton nickc@redhat.com
Fri Aug 17 07:17:00 GMT 2012


Hi Diego,
> Thanks Nick.  I made the wrong fix here, sorry about that.  I will be
> making more changes to VEC_ shortly.  What's a good way for me to test
> them?

All I was doing was building a variety of targets, just to make sure 
that a local, generic patch of my own did not break anything.  If you 
have the disk space then you could try doing the same yourself.  With 
the two attached makefiles (and a little editing to suit your 
environment), I work like this:

   % make dirs
   % make config
    [These two are only needed the first time]

   % make

That will build:

	i686-pc-linux-gnu \
	x86_64-pc-linux-gnu \
	am33_2.0-linux \
	hppa-linux-gnu \
	powerpc64-linux-gnu \
	ppc-linux \
	s390-linux \
	alpha-netbsd \
         frv-uclinux \
	i686-pc-cygwin \
	mingw32-pe \
	vax-netbsdelf \
	fr30-elf \
	iq2000-elf \
	lm32-elf \
	mcore-elf \
	spu-elf \
	avr-elf \
	sh64-elf \
	xstormy16-elf \
	epiphany-elf \
	arm-eabi \
	bfin-elf \
	cris-elf \
	frv-elf \
	h8300-elf \
	i386-elf \
	ia64-elf \
	m32c-elf \
	m32r-elf \
	mep-elf \
	mips64vr-elf \
	mipsisa32-elf \
	mipsisa64-elf \
	mmix-mmixware \
	mn10300-elf \
	powerpc-eabispe \
	powerpc-elf \
	rl78-elf \
	rx-elf \
	sh-elf \
	tx39-elf \
	v850e-elf


Cheers
   Nick

-------------- next part --------------
# These are a set of rules for building and testing devo toolchains.

# You may need to edit some of these variables before they will
# work in your environment.

BUILD_DIR       = /work/builds/gcc/current
SOURCE_DIR	= /work/sources/gcc/current

BIN_DIRS = \
	arc-elf \
	cr16-elf \
	crx-elf \
	dlx-elf \
        fido-elf \
        i386-darwin \
	i386-netware \
	lm32-rtems4.0 \
	m68hc12-elf \
        microblaze-elf \
	mcore-pe \
	moxie-elf \
	msp430-elf \
	mt-elf \
	openrisc-elf \
	or32-elf \
	s390x-ibm-tpf \
        tic6x-elf \
        x86_64-pc-mingw64 \
	z8k-coff

GCC_AND_LIBGCC_DIRS = \
	i686-pc-linux-gnu \
	x86_64-pc-linux-gnu \
	\
	am33_2.0-linux \
	hppa-linux-gnu \
	powerpc64-linux-gnu \
	ppc-linux \
	s390-linux \
        \
	alpha-netbsd \
        frv-uclinux \
	i686-pc-cygwin \
	mingw32-pe \
	vax-netbsdelf \

ALL_DIRS = \
	fr30-elf \
	iq2000-elf \
	lm32-elf \
	mcore-elf \
	spu-elf \
	\
	avr-elf \
	sh64-elf \
	xstormy16-elf \
	\
	epiphany-elf \
	\
	arm-eabi \
	bfin-elf \
	cris-elf \
	frv-elf \
	h8300-elf \
	i386-elf \
	ia64-elf \
	m32c-elf \
	m32r-elf \
	mep-elf \
	mips64vr-elf \
	mipsisa32-elf \
	mipsisa64-elf \
	mmix-mmixware \
	mn10300-elf \
	powerpc-eabispe \
	powerpc-elf \
	rl78-elf \
	rx-elf \
	sh-elf \
	tx39-elf \
	v850e-elf

# Obsolete:
#	arm-elf \
#	arm-wince-pe \

all:              gcc-builds-noretry all-target-libgcc all-target-newlib
checks   check:   gcc-checks
rebuilds rebuild: gcc-rebuilds

include /home/nickc/bin/scripts/builds-makefile
-------------- next part --------------
# ============ Tools =====================================================

COUNT_FAILURES = /home/nickc/bin/scripts/count-failures
CHECK_FOR_REGRESSIONS = /home/nickc/bin/scripts/check-for-regressions
# TIMELIMIT      = /home/nickc/bin/scripts/timelimit

SIMPLE_MAKE   = nice -3 make -s 
PARALLEL_MAKE = nice -3 make -s -j3
NOSTOP_MAKE   = make -s -k

# ============ Build Rules ================================================

BIN_CLEAN_RULES = echo -n "Cleaning all of binutils in:" `basename $$PWD` "... " ; \
		  $(NOSTOP_MAKE) clean-gold &> /dev/null ; \
		  $(NOSTOP_MAKE) clean-gas clean-ld clean-binutils &> /dev/null \
		   && echo "success" || echo "FAILURE"

BIN_BUILD_NO_RETRY_RULES = echo -n "Building Binutils in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-binutils all-gas all-ld all-gold &> ./make.out \
		   && echo "success" || echo "FAILURE"

BIN_BUILD_RULES = echo -n "Building Binutils in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-binutils all-gas all-ld all-gold &> ./make.out \
		   && echo "success" \
		   || (echo -n "fail ... (removing cache files) ... " ; \
		       cd bfd ; ./config.status > /dev/null ; cd .. ; \
		       rm -f ld/e*.c `basename $$PWD`/newlib/config.cache ld/config.cache libiberty/config.cache bfd/config.cache gas/config.cache opcodes/config.cache; \
		       cd libiberty ; $(SIMPLE_MAKE) clean > /dev/null ; ./config.status > /dev/null ; cd .. \
		       test -d ld && ( cd ld ; ./config.status > /dev/null ; cd .. ) ; \
		       echo -n "retry ... " ; \
		       $(SIMPLE_MAKE) all-binutils all-gas all-ld all-gold &> ./make.out \
		       && echo "success" || echo "FAILURE")

OPCODES_BUILD_RULES = echo -n "Building opcodes in:" `basename $$PWD` "... " ; \
		      rm -f opcodes/stamp* ; \
		      $(SIMPLE_MAKE) all-opcodes &> ./make.out && echo "success" || echo "FAILURE"

SIM_BUILD_RULES = echo -n "Building Simulator in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-sim &> ./make.out \
		   && echo "success" || echo "FAILURE"

GCC_CLEAN_RULES = echo -n "Cleaning gcc in:" `basename $$PWD` "... " ; \
		  $(NOSTOP_MAKE) clean-gcc &> /dev/null \
		   && echo "success" || echo "FAILURE"

GCC_BUILD_NO_RETRY_RULES = echo -n "Building GCC in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-gcc &>  ./make.out \
		   && echo "success" || echo "FAILURE"

GCC_BUILD_RULES = echo -n "Building GCC in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-gcc &>  ./make.out \
		   && echo "success" \
		   || (echo -n "fail ... " ; \
		       rm -f gcc/config.cache libiberty/config.cache build-*/config.cache ; \
		       echo -n "retry ... " ; \
		       $(SIMPLE_MAKE) all-binutils all-gcc &> ./make.out \
		       && echo "success" || echo "FAILURE")

LIBGCC_BUILD_RULES = echo -n "Building LIBGCC in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-libgcc &>  ./make.out \
		   && echo "success" || echo "FAILURE"

MULTI_BUILD_GDB_RULES = \
		echo -n "Building in:" `basename $$PWD` "... " ; \
		$(SIMPLE_MAKE) -f ../makefile multi-build-stage1

multi-build-stage3:
		$(PARALLEL_MAKE) all-gas &>  ./make.out \
		  && $(SIMPLE_MAKE) -f ../makefile multi-build-stage2  || echo "GAS build failed"
multi-build-stage2:					       
		$(PARALLEL_MAKE) all-ld all-gold >> ./make.out 2>&1 \
		  && $(SIMPLE_MAKE) -f ../makefile multi-build-stage3  || echo "LD build failed"
multi-build-stage1:					       
		$(PARALLEL_MAKE) all-binutils >>  ./make.out 2>&1 \
		  && $(SIMPLE_MAKE) -f ../makefile multi-build-stage4  || echo "BINUTILS build failed"
multi-build-stage4:					       
		$(PARALLEL_MAKE) all-gcc >>  ./make.out 2>&1 \
		  && $(SIMPLE_MAKE) -f ../makefile multi-build-stage5  || echo "GCC build failed"
multi-build-stage5:
		$(PARALLEL_MAKE) all-gdb >>  ./make.out 2>&1 \
		  && echo "GCC & GDB built OK" || echo "GDB build failed"


GCC_REBUILD_RULES = echo -n "Rebuilding GCC in:" `basename $$PWD` "... " ; \
		    cd bfd ; ./config.status &> /dev/null ; cd .. ; \
		    cd gcc ; ./config.status --recheck &> /dev/null ; cd .. ; \
		    $(PARALLEL_MAKE) all-gcc &>  ./make.out \
		      && echo "success" || echo "FAILURE"

LIB_BUILD_RULES = echo -n "Building target LIBRARIES in:" `basename $$PWD` "... " ; \
		   $(PARALLEL_MAKE) all-target-libgcc &> ./make.out && ( echo -n "libgcc..." ; \
                   $(PARALLEL_MAKE) all-target-newlib &> ./make.out && ( echo -n "newlib..." ; \
                   $(PARALLEL_MAKE) all-target-libgloss &> ./make.out && ( echo -n "libgloss..." ; \
		   $(PARALLEL_MAKE) all-target-libstdc++-v3 &> ./make.out && echo "libstdc++-v3...success" \
		   || echo "FAILURE (libstdc++-v3)" ) \
		   || echo "FAILURE (libgloss)" ) \
		   || echo "FAILURE (newlib)" ) \
                   || echo "FAILURE (libgcc)"

LIB_CLEAN_RULES = echo -n "Cleaning target LIBRARIES in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) clean-target &> ./make.out \
		   && echo "success" || echo "FAILURE"

NEWLIB_BUILD_RULES = echo -n "Building NEWLIB in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-newlib &>  ./make.out \
		   && echo "success" \
		   || (echo -n "fail ... (removing cache files) ... " ; \
		       find `basename $$PWD` -name config.cache -exec rm {} \; ; \
		       echo -n "retry ... " ; \
		       $(SIMPLE_MAKE) all-target-newlib &> ./make.out \
		       && echo "success" || echo "FAILURE")

LIBGLOSS_BUILD_RULES = echo -n "Building LIBGLOSS in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-libgloss &>  ./make.out \
		   && echo "success" || echo "FAILURE"

# find . -name config.cache -exec rm \{\} \\;
LIBSTDCXX_V3_BUILD_RULES = echo -n "Building LIBSTDC++-v3 in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-libstdc++-v3 &>  ./make.out \
		   && echo "success" || echo "FAILURE"

LIBSSP_BUILD_RULES = echo -n "Building LIBSSP in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-libssp &>  ./make.out \
		   && echo "success" \
		   || (echo -n "fail ... (removing cache files) ... " ; \
		       find . -name config.cache -exec rm \{\} \; ; \
		       echo -n "retry ... " ; \
		       $(SIMPLE_MAKE) all-target-libssp &> ./make.out \
		       && echo "success" || echo "FAILURE")

GDB_BUILD_RULES = echo -n "Building GDB in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-gdb &>  ./make.out \
		   && echo "success" \
		   || (echo -n "fail ... (removing ada-lex.c) ... " ; \
		       rm -f gdb/ada-lex.c ; \
		       echo -n "retry ... " ; \
		       $(SIMPLE_MAKE) -C gdb &> ../make.out \
		       && echo "success" || echo "FAILURE")

GDB_CLEAN_RULES = echo -n "Cleaning GDB in:" `basename $$PWD` "... " ; \
		  $(NOSTOP_MAKE) clean-gdb clean-sim clean-readline &> /dev/null \
		   && echo "success" || echo "FAILURE"

ALL_BUILD_RULES = echo -n "Building ALL in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) >&  ./make.out \
		   && echo "success" || echo "FAILURE"

MUDFLAP_BUILD_RULES = echo -n "Building MUDFLAP in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-target-libmudflap &>  ./make.out \
		   && echo "success" || echo "FAILURE"

GPROF_BUILD_RULES = echo -n "Building GPROF in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-gprof &>  ./make.out \
		   && echo "success" || echo "FAILURE"

INSTALL_INFO_RULES = echo -n "Installing Info files from:" `basename $$PWD` "... " ; \
		  $(SIMPLE_MAKE) prefix=/dev/shm/installs install-info &>  ./make.out \
		   && echo "success" || echo "FAILURE"

SIM_BUILD_RULES = echo -n "Building sim in:" `basename $$PWD` "... " ; \
		  $(PARALLEL_MAKE) all-sim &> ./make.out \
		      && echo "success" || echo "FAILURE"

GAS_CLEAN_RULES = echo -n "Cleaning gas in:" `basename $$PWD` "... " ; \
		  $(NOSTOP_MAKE) clean-gas &> /dev/null \
		   && echo "success" || echo "FAILURE"

SIM_CLEAN_RULES = echo -n "Cleaning sim in:" `basename $$PWD` "... " ; \
		  $(NOSTOP_MAKE) clean-sim &> /dev/null \
		   && echo "success" || echo "FAILURE"

# ============ Check Rules ================================================
BIN_CHECK_REGRESSIONS_3 = \
		  test -f ./checks/check-gas.out3 && \
		  test -f ./checks/check-gas.out0 && \
		    (diff  ./checks/check-gas.out3 ./checks/check-gas.out0 > /dev/shm/.gas.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GAS /dev/shm/.gas.diff.out) ; \
		  \
		  test -f ./checks/check-ld.out3 && \
		  test -f ./checks/check-ld.out0 && \
		    (diff  ./checks/check-ld.out3 ./checks/check-ld.out0 > /dev/shm/.ld.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=LD /dev/shm/.ld.diff.out) ; \
		  \
		  test -f ./checks/check-bin.out3 && \
		  test -f ./checks/check-bin.out0 && \
		    (diff  ./checks/check-bin.out3 ./checks/check-bin.out0 > /dev/shm/.bin.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=BIN /dev/shm/.bin.diff.out)

BIN_CHECK_REGRESSIONS_2 = \
		  test -f ./checks/check-gas.out2 && \
		  test -f ./checks/check-gas.out0 && \
		    (diff  ./checks/check-gas.out2 ./checks/check-gas.out0 > /dev/shm/.gas.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GAS /dev/shm/.gas.diff.out) ; \
		  \
		  test -f ./checks/check-ld.out2 && \
		  test -f ./checks/check-ld.out0 && \
		    (diff  ./checks/check-ld.out2 ./checks/check-ld.out0 > /dev/shm/.ld.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=LD /dev/shm/.ld.diff.out) ; \
		  \
		  test -f ./checks/check-bin.out2 && \
		  test -f ./checks/check-bin.out0 && \
		    (diff  ./checks/check-bin.out2 ./checks/check-bin.out0 > /dev/shm/.bin.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=BIN /dev/shm/.bin.diff.out)

BIN_CHECK_REGRESSIONS = \
		  test -f ./checks/check-gas.out1 && \
		  test -f ./checks/check-gas.out0 && \
		    (diff  ./checks/check-gas.out1 ./checks/check-gas.out0 > /dev/shm/.gas.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GAS /dev/shm/.gas.diff.out) ; \
		  \
		  test -f ./checks/check-ld.out1 && \
		  test -f ./checks/check-ld.out0 && \
		    (diff  ./checks/check-ld.out1 ./checks/check-ld.out0 > /dev/shm/.ld.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=LD /dev/shm/.ld.diff.out) ; \
		  \
		  test -f ./checks/check-bin.out1 && \
		  test -f ./checks/check-bin.out0 && \
		    (diff  ./checks/check-bin.out1 ./checks/check-bin.out0 > /dev/shm/.bin.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=BIN /dev/shm/.bin.diff.out)

BIN_CYCLE_OLD_RESULTS = \
		mkdir -p checks ; \
		xx=9 ; \
		for x in 8 7 6 5 4 3 2 1 0 ; \
		do \
		  test -f ./checks/check-gas.out$$x && mv -f ./checks/check-gas.out$$x ./checks/check-gas.out$$xx ; \
		  test -f ./checks/check-ld.out$$x  && mv -f ./checks/check-ld.out$$x  ./checks/check-ld.out$$xx ; \
		  test -f ./checks/check-bin.out$$x && mv -f ./checks/check-bin.out$$x ./checks/check-bin.out$$xx ; \
		  xx=$$x ; \
		done 

BIN_GENERATE_NEW_RESULTS = \
		echo -n "Checking Binutils in:" `basename $$PWD` "..."; \
		\
	        cd gas ; $(NOSTOP_MAKE) check NO_EXPENSIVE_GAS_TESTS=1 &> ../checks/check-gas.out0 ; cd .. ; \
		test -d ld && ( cd ld ; $(NOSTOP_MAKE) check NO_EXPENSIVE_LD_TESTS=1 &> ../checks/check-ld.out0  cd .. ) ; \
		test -d gold && ( cd gold ; $(NOSTOP_MAKE) check NO_EXPENSIVE_LD_TESTS=1 &> ../checks/check-ld.out0  cd .. ) ; \
		cd binutils ; $(NOSTOP_MAKE) check &> ../checks/check-bin.out0 ; cd .. ; \
		\
		x=`gawk -f $(COUNT_FAILURES) ./checks/check-gas.out0` ; \
		if test $$x != "0" ; then echo -n " GAS:" $$x ; fi ; \
		test -d ld && ( x=`gawk -f $(COUNT_FAILURES) ./checks/check-ld.out0` ; \
		                if test $$x != "0" ; then echo -n " LD:" $$x ; fi ; ) ; \
		x=`gawk -f $(COUNT_FAILURES) ./checks/check-bin.out0` ; \
		if test $$x != "0" ; then echo -n " BIN:" $$x ; fi ; \
		\
		echo " done"

SIM_CHECK_REGRESSIONS = \
		  test -f ./checks/check-sim.out1 && \
		  test -f ./checks/check-sim.out0 && \
		    (diff  ./checks/check-sim.out1 ./checks/check-sim.out0 > /dev/shm/.sim.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=SIM /dev/shm/.sim.diff.out)

SIM_CHECK_RULES = echo -n "Checking SIM in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-sim.out$$x && mv -f ./checks/check-sim.out$$x ./checks/check-sim.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd sim ; $(SIMPLE_MAKE) check &> ../checks/check-sim.out0 ; cd .. ; \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-sim.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(SIM_CHECK_REGRESSIONS) ; \
		  \
		  echo " done"

GCC_CHECK_REGRESSIONS = \
		  touch ./checks/check-gcc.out1 ; \
		  touch ./checks/check-gcc.out0 ; \
		  (diff  ./checks/check-gcc.out1 ./checks/check-gcc.out0 > /dev/shm/gcc.diff.out || \
		   gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GCC /dev/shm/gcc.diff.out)

GCC_CHECK_RULES = echo -n "Checking GCC (execute) in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-gcc.out$$x && mv -f ./checks/check-gcc.out$$x ./checks/check-gcc.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd gcc; $(SIMPLE_MAKE) check-gcc RUNTESTFLAGS="gcc.c-torture/execute/execute.exp" &> ../checks/check-gcc.out0 ; \
		  cd .. ; \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-gcc.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(GCC_CHECK_REGRESSIONS) ; \
		  \
		  echo " done"

GCC_CHECK_DG_REGRESSIONS = \
		  test -f ./checks/check-dg-gcc.out1 && \
		  test -f ./checks/check-dg-gcc.out0 && \
		    (diff  ./checks/check-dg-gcc.out1 ./checks/check-dg-gcc.out0 > /dev/shm/.gcc.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GCC_DG /dev/shm/.gcc.diff.out)

GCC_DG_CHECK_RULES = echo -n "Checking GCC (dg) in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-dg-gcc.out$$x && mv -f ./checks/check-dg-gcc.out$$x ./checks/check-dg-gcc.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd gcc ; $(SIMPLE_MAKE) check-gcc RUNTESTFLAGS="gcc.dg/dg.exp" &> ../checks/check-dg-gcc.out0 ; \
		  cd .. ; \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-dg-gcc.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(GCC_CHECK_DG_REGRESSIONS) ; \
		  \
		  echo " done"

GCC_CHECK_COMPILE_REGRESSIONS = \
		  test -f ./checks/check-compile-gcc.out1 && \
		  test -f ./checks/check-compile-gcc.out0 && \
		    (diff  ./checks/check-compile-gcc.out1 ./checks/check-compile-gcc.out0 > /dev/shm/.gcc.comp.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GCC_DG /dev/shm/.gcc.comp.out)

GCC_COMPILE_CHECK_RULES = echo -n "Checking GCC (compile) in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-compile-gcc.out$$x && mv -f ./checks/check-compile-gcc.out$$x ./checks/check-compile-gcc.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd gcc ; $(SIMPLE_MAKE) check-gcc RUNTESTFLAGS="gcc.c-torture/compile/compile.exp" &> ./checks/check-compile-gcc.out0 ; \
		  cd .. ; \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-compile-gcc.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(GCC_CHECK_COMPILE_REGRESSIONS) ; \
		  \
		  echo " done"

GXX_CHECK_REGRESSIONS = \
		  test -f ./checks/check-g++.out1 && \
		  test -f ./checks/check-g++.out0 && \
		    (diff  ./checks/check-g++.out1 ./checks/check-g++.out0 > /dev/shm/g++.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GXX /dev/shm/g++.diff.out)

GXX_CHECK_RULES = echo -n "Checking G++ in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-g++.out$$x && mv -f ./checks/check-g++.out$$x ./checks/check-g++.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd gcc ; $(SIMPLE_MAKE) check-g++ &> ../checks/check-g++.out0 ; cd .. \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-g++.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(GXX_CHECK_REGRESSIONS) ; \
		  \
		  echo " done"

GDB_CHECK_REGRESSIONS = \
		  test -f ./checks/check-gdb.out1 && \
		  test -f ./checks/check-gdb.out0 && \
		    (diff  ./checks/check-gdb.out1 ./checks/check-gdb.out0 > /dev/shm/.gdb.diff.out || \
		    gawk -f $(CHECK_FOR_REGRESSIONS) TEST=GDB /dev/shm/.gdb.diff.out)

GDB_CHECK_RULES = echo -n "Checking GDB in:" `basename $$PWD` "... " ; \
		  \
		  mkdir -p checks ; \
		  xx=9 ; \
		  for x in 8 7 6 5 4 3 2 1 0 ; \
		  do \
		    test -f ./checks/check-gdb.out$$x && mv -f ./checks/check-gdb.out$$x ./checks/check-gdb.out$$xx ; \
		    xx=$$x ; \
		  done ; \
		  \
	          cd gdb ; $(SIMPLE_MAKE) check &> ../checks/check-gdb.out0 ; cd .. ; \
		  \
		  x=`gawk -f $(COUNT_FAILURES) ./checks/check-gdb.out0` ; \
		  if test $$x != "0" ; then echo -n " FAILURES:" $$x ; fi ; \
		  \
		  $(GDB_CHECK_REGRESSIONS) ; \
		  \
		  echo " done"

# ============ Clean Targets ================================================

ALL_GCC_DIRS = $(ALL_DIRS) $(LIB_DIRS) $(GCC_DIRS) $(GCC_AND_LIBGCC_DIRS)
EVERY_DIR = $(ALL_GCC_DIRS) $(BIN_DIRS)

clean-and-build-gcc:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GCC_CLEAN_RULES) ; \
		  $(GCC_BUILD_RULES) ; \
		popd > /dev/null ; \
	done	

clean-and-build-bin:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(BIN_CLEAN_RULES) ; \
		  $(BIN_BUILD_RULES) ; \
		popd > /dev/null ; \
	done	

force-clean:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null && \
		  (echo "Removing *everything* in:" `basename $$PWD` "... " ; \
		  test -d tests && mv tests .. ; \
		  test -d checks && mv checks .. ; \
		  rm -fr * ; \
		  test -d ../checks && mv ../checks . ; \
		  test -d ../tests && mv ../tests . ) ; \
		popd > /dev/null ; \
	done

clean-binutils:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(BIN_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	

clean:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(BIN_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GCC_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(LIB_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	
	@ for A in $(GDB_DIRS) $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GDB_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	

clean-gdb:
	@ for A in $(GDB_DIRS) $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GDB_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	

clean-gas:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GAS_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	

clean-sim:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(SIM_CLEAN_RULES) ; \
		popd > /dev/null ; \
	done	

# ============ Build Targets ================================================

gcc-build gcc-builds build-gcc all-gcc:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(GCC_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

gcc-rebuild gcc-rebuilds rebuild-gcc:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(GCC_REBUILD_RULES) ; \
		popd > /dev/null ; \
	done

gcc-build-noretry gcc-builds-noretry build-gcc-noretry gcc-build-no-retry gcc-builds-no-retry build-gcc-no-retry all-gcc-noretry all-gcc-no-retry:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(GCC_BUILD_NO_RETRY_RULES) ; \
		popd > /dev/null ; \
	done

libgcc-build libgcc-builds build-libgcc all-libgcc all-target-libgcc all-target-libgcc-no-retry all-target-libgcc-noretry:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(LIBGCC_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

lib-build lib-builds build-libs lib libs all-target:
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(LIB_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

newlib-build newlib-builds build-newlib all-target-newlib:
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(NEWLIB_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

libgloss-build libgloss-builds build-libgloss all-target-libgloss:
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(LIBGLOSS_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

libstdc++-v3-build libstdc++-v3-builds build-libstdc++-v3 all-target-libstdc++-v3:
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(LIBSTDCXX_V3_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

libssp-build libssp-builds build-libssp all-target-libssp:
	@ for A in $(LIB_DIRS) $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(LIBSSP_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

bin-build-noretry bin-builds-noretry build-bin-noretry all-binutils bin-builds-no-retry:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(BIN_BUILD_NO_RETRY_RULES) ; \
		popd > /dev/null ; \
	done

bin-build bin-builds build-bin all-bin-builds:
	@ for A in $(EVERY_DIR) ; do \
		if pushd $(BUILD_DIR)/$$A > /dev/null ; \
		then \
		      $(BIN_BUILD_RULES) ; \
		      popd > /dev/null ; \
		else \
		     echo "BIN DIR $A does not exist!" ; \
		fi ; \
	done

sim all-sim sim-build sim-builds build-sim build-sims:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(SIM_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

gdb-build gdb-builds build-gdb all-gdb:
	@ for A in $(GDB_DIRS) $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(GDB_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

all-builds build-all:
	@ for A in $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(ALL_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

mudflap-builds build-mudflap mudflap:
	@ for A in $(ALL_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		      $(MUDFLAP_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

opcodes all-opcodes opcodes-build opcodes-builds build-opcodes:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			$(OPCODES_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

gprof all-gprof gprof-build build-gprof:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			$(GPROF_BUILD_RULES) ; \
		popd > /dev/null ; \
	done

install-info all-install-info:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			$(INSTALL_INFO_RULES) ; \
		popd > /dev/null ; \
	done

# ============ Check Targets ================================================

bin-check bin-checks check-bin:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(BIN_CYCLE_OLD_RESULTS); \
		  $(BIN_GENERATE_NEW_RESULTS); \
		  $(BIN_CHECK_REGRESSIONS); \
		popd > /dev/null ; \
	done

bin-check-last-but-one:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(BIN_CYCLE_OLD_RESULTS); \
		  $(BIN_GENERATE_NEW_RESULTS); \
		  $(BIN_CHECK_REGRESSIONS_2); \
		popd > /dev/null ; \
	done

check-bin-regressions bin-check-regressions:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  echo -n "Checking for binutils (v1 vs v0) regressions in:" `basename $$PWD` "..."; \
		  $(BIN_CHECK_REGRESSIONS) ; \
		  echo " done" ; \
		popd > /dev/null ; \
	done

check-bin-regressions-2 bin-check-regressions2 bin-check-regressions-2:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  echo -n "Checking for binutils (v2 vs v0) regressions in:" `basename $$PWD` "..."; \
		  $(BIN_CHECK_REGRESSIONS_2) ; \
		  echo " done" ; \
		popd > /dev/null ; \
	done

check-bin-regressions-3 bin-check-regressions3 bin-check-regressions-3:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  echo -n "Checking for binutils (v3 vs v0) regressions in:" `basename $$PWD` "..."; \
		  $(BIN_CHECK_REGRESSIONS_3) ; \
		  echo " done" ; \
		popd > /dev/null ; \
	done

sim-check sim-checks check-sim:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(SIM_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

gcc-check gcc-checks check-gcc:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GCC_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

g++-check g++-checks check-g++:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GXX_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

gdb-check gdb-checks check-gdb:
	@ for A in $(GDB_DIRS) $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GDB_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

gcc-dg-check gcc-check-dg:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GCC_DG_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

gcc-compile-check:
	@ for A in $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(GCC_COMPILE_CHECK_RULES) ; \
		popd > /dev/null ; \
	done

# ============ Multi Targets ================================================

multi-build-gdb:
	@ for A in $(GDB_DIRS) $(ALL_GCC_DIRS) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
		  $(MULTI_BUILD_GDB_RULES) ; \
		popd > /dev/null ; \
	done

# ============ Configure Targets ================================================

build-dirs dirs:
	@ for A in $(EVERY_DIR) ; do \
		mkdir -p $(BUILD_DIR)/$$A ; \
	done

re-config:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			echo "Running config.status in $$A" ; \
			./config.status > /dev/null; \
		popd > /dev/null ; \
	done

re-check recheck:
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			echo "Running config.status --recheck in $$A" ; \
			./config.status --recheck > /dev/null; \
			./config.status > /dev/null; \
		popd > /dev/null ; \
	done

CONFIG_ARGS =	--quiet \
		--disable-bootstrap \
	    	--disable-gdbtk \
		--with-x=no \
		--with-newlib \
		--enable-languages=c,c++ \
		--cache-file=/dev/null \
		--prefix=`pwd`/install \
		$(CONFIG_EXTRA)

#		--with-mpfr-include=$(SOURCE_DIR)/mpfr/src \
#		--with-mpfr-lib=`pwd`/mpfr/src/.libs \

config configure: $(SOURCE_DIR)
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			echo "Configuring in:" `basename $$PWD` "..." ; \
			$(SOURCE_DIR)/configure \
				$(CONFIG_ARGS) \
				--target=$$A > config.out 2>&1; \
			rm -f ld/configdoc.texi ; \
			mkdir -p tests checks install ; \
		popd > /dev/null ; \
	done 
	@ mkdir -p $(BUILD_DIR)/i686-pc-linux-gnu; \
	pushd  $(BUILD_DIR)/i686-pc-linux-gnu > /dev/null ; \
		echo "(re) Configuring in: i686-pc-linux-gnu ... " ; \
		rm -fr * ; \
		$(SOURCE_DIR)/configure \
			$(CONFIG_ARGS) \
			--enable-languages=c,c++,java \
			--target=i686-pc-linux-gnu \
		> /dev/null 2>&1; \
		rm -f ld/configdoc.texi ; \
		mkdir -p tests checks install ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/x86_64-pc-linux-gnu; \
	pushd  $(BUILD_DIR)/x86_64-pc-linux-gnu > /dev/null ; \
		echo "(re) Configuring in: x86_64-pc-linux-gnu ... " ; \
		rm -fr * ; \
		$(SOURCE_DIR)/configure \
			$(CONFIG_ARGS) \
			--enable-multilib=no \
			--target=x86_64-pc-linux-gnu \
		> /dev/null 2>&1; \
		rm -f ld/configdoc.texi ; \
		mkdir -p tests checks install ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/all; \
	pushd  $(BUILD_DIR)/all > /dev/null ; \
		echo "(re) Configuring in: all ... " ; \
		rm -f * ; \
		$(SOURCE_DIR)/configure \
			--quiet --enable-targets=all --with-x=no \
		> /dev/null 2>&1; \
		rm -f ld/configdoc.texi ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/all-64; \
	pushd  $(BUILD_DIR)/all-64 > /dev/null ; \
		echo "(re) Configuring in: all-64 ... " ; \
		rm -f * ; \
		$(SOURCE_DIR)/configure \
			--quiet --enable-targets=all --enable-64-bit-bfd --with-x=no \
		> /dev/null 2>&1; \
		rm -f ld/configdoc.texi ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/i686-pc-linux-gnu-gold; \
	pushd  $(BUILD_DIR)/i686-pc-linux-gnu-gold > /dev/null ; \
		echo "(re) Configuring in: i686-pc-linux-gnu-gold ... " ; \
		rm -fr * ; \
		$(SOURCE_DIR)/configure \
			--quiet \
			--enable-gold \
			--cache-file=/dev/null \
			--prefix=`pwd`/install \
			--target=i686-pc-linux-gnu \
		> /dev/null 2>&1; \
		mkdir -p tests checks install ; \
	popd > /dev/null

re-lib: $(SOURCE_DIR)
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A/libiberty > /dev/null ; \
			echo "rebuild libiberty in:" `basename $$PWD` "... " ; \
			$(SIMPLE_MAKE) clean all > /dev/null \
			|| ./config.status > /dev/null \
			|| $(SIMPLE_MAKE) > /dev/null ; \
		popd > /dev/null ; \
	done 


32-bit-configure: $(SOURCE_DIR)
	@ for A in $(EVERY_DIR) ; do \
		pushd $(BUILD_DIR)/$$A > /dev/null ; \
			echo "Configuring in:" `basename $$PWD` "..." ; \
			CC="gcc -m32" CXX="g++ -m32" ABI="32" setarch i686 \
			$(SOURCE_DIR)/configure \
				$(CONFIG_ARGS) \
				--disable-shared \
				--disable-symvers \
				--target=$$A > config.out 2>&1; \
			rm -f ld/configdoc.texi ; \
			mkdir -p tests checks install ; \
		popd > /dev/null ; \
	done 
	@ mkdir -p $(BUILD_DIR)/all; \
	pushd  $(BUILD_DIR)/all > /dev/null ; \
		echo "(re) Configuring in: all ... " ; \
		rm -f * ; \
		CC="gcc -m32" CXX="g++ -m32" ABI="32" setarch i686 \
		$(SOURCE_DIR)/configure \
			--quiet --enable-targets=all --with-x=no \
		> /dev/null ; \
		rm -f ld/configdoc.texi ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/all-64; \
	pushd  $(BUILD_DIR)/all-64 > /dev/null ; \
		echo "(re) Configuring in: all-64 ... " ; \
		rm -f * ; \
		CC="gcc -m32" CXX="g++ -m32" ABI="32" setarch i686 \
		$(SOURCE_DIR)/configure \
			--quiet --enable-targets=all --enable-64-bit-bfd --with-x=no \
		> /dev/null ; \
		rm -f ld/configdoc.texi ; \
	popd > /dev/null
	@ mkdir -p $(BUILD_DIR)/i686-pc-linux-gnu-gold; \
	pushd  $(BUILD_DIR)/i686-pc-linux-gnu-gold > /dev/null ; \
		echo "(re) Configuring in: i686-pc-linux-gnu-gold ... " ; \
		rm -fr * ; \
		CC="gcc -m32" CXX="g++ -m32" ABI="32" setarch i686 \
		$(SOURCE_DIR)/configure \
			--quiet \
			--enable-gold \
			--cache-file=/dev/null \
			--prefix=`pwd`/install \
			--target=i686-pc-linux-gnu \
		> /dev/null 2>&1; \
		mkdir -p tests checks install ; \
	popd > /dev/null



More information about the Gcc-patches mailing list