summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-03-14 14:39:47 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-03-14 14:39:47 +0000
commit797494cd5d6397bf6f6b8206349432d02aa8cdc2 (patch)
tree10df28f79f09195ad0fd4ca9f2468593df108fa2 /gcc
parentde50b144cc0c7e23fa9892537d6ab6ee377eee4f (diff)
2011-03-14 Joel Sherrill <joel.sherrill@oarcorp.com>
* do_one, rundeja, test_driver: Updates and add initial support for running Objective-C tests.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rwxr-xr-xgcc/do_one155
-rwxr-xr-xgcc/rundeja106
-rwxr-xr-xgcc/test_driver34
4 files changed, 224 insertions, 76 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f7d63b8..5e573e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-14 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * do_one, rundeja, test_driver: Updates and add initial support for
+ running Objective-C tests.
+
2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
* do_one, gcc_status, gccgo_status, rtems_gccgo_init.c, rundeja,
diff --git a/gcc/do_one b/gcc/do_one
index 17290c4..03e7af2 100755
--- a/gcc/do_one
+++ b/gcc/do_one
@@ -2,16 +2,18 @@
#
# Execution Times (for sparc-rtems${RTEMS_VERSION})
#
-# - building native - TBD
-# - building binutils - 1m31.310s
-# - building GDB - 1m39.318s
-# - building stage1 (multilib) - 10m22.371s
-# - building RTEMS (multilib + BSP) - 22m47.048s
-# - building Ada (multilib) - ?
-# - building Go (multilib) - ?
-# - Running GCC Test Suite (sis) - 122m47.289s
-# - Running ACAT (sis) - ?
-# - Running Go Test Suite (sis) - ?
+# - building native - ?
+# - building binutils - 1m31.310s
+# - building GDB - 1m39.318s
+# - building stage1 (multilib) - 10m22.371s
+# - building RTEMS (multilib + BSP) - 22m47.048s
+# - building Objective-C (multilib) - 6m45.532s
+# - building Ada (multilib) - ?
+# - building Go (multilib) - ?
+# - Running GCC Test Suite (sis) - 122m47.289s
+# - Running Objective-C Test Suite (sis) - ?
+# - Running ACAT (sis) - ?
+# - Running Go Test Suite (sis) - ?
#
# Computer Info
# Fedora 14 on Intel Core2 Duo Q6600 (4 core) @ 2.40GHz w/ 4GB RAM
@@ -41,6 +43,8 @@ do_native=no
do_stage1=no
do_cxx=yes
do_multilib=yes
+# Build the Objective-C language cross compiler.
+do_objc=no
# Build the Ada language cross compiler.
do_ada=no
do_ada_multilib=yes
@@ -51,6 +55,7 @@ do_gccgo=no
do_rtems=no
# Which test suites do we attempt
run_gcctests=no
+run_objctests=no
run_acats=no
run_gccgotests=no
run_libgotests=no
@@ -80,6 +85,8 @@ do_one [options] CPU BSP
-d - do not clean up (delete build directories)
-v - verbose
-M - do NOT email test results to gcc-testresults
+ -O - Build Objective-C
+ -P - Run Objective-C Tests
-o - run GCC Go tests
-t - run libgo tests
EOF
@@ -100,7 +107,7 @@ toggle()
esac
}
-while getopts bdDnv1cmargiotCATMG OPT
+while getopts bdDnv1cmargiotCATMGOP OPT
do
case "$OPT" in
A) do_binutils="yes"
@@ -109,13 +116,14 @@ do
do_cxx="yes"
do_multilib="yes"
do_ada="yes"
- # do_gccgo="yes"
- # do_gccgo_multilib="yes"
+ do_gccgo="yes"
+ do_objc="yes"
do_rtems="yes"
;;
d) do_cleanup=`toggle ${do_cleanup}` ;;
D) do_gdb=`toggle ${do_gdb}` ;;
T) run_gcctests="yes"
+ run_objctests="yes"
run_acats="yes"
run_gccgotests="yes"
;;
@@ -137,6 +145,8 @@ do
C) run_acats=`toggle ${run_acats}` ;;
v) verbose=`toggle ${verbose}` ;;
M) do_mail=`toggle ${do_mail}` ;;
+ O) do_objc=`toggle ${do_objc}` ;;
+ P) run_objctests=`toggle ${do_objc}` ;;
o) run_gccgotests=`toggle ${run_gccgotests}` ;;
t) run_libgotests=`toggle ${run_libgotests}` ;;
*) fatal ;;
@@ -197,12 +207,14 @@ if [ ${verbose} = yes ] ; then
echo " C++ : " ${do_cxx}
echo " Multilib : " ${do_multilib}
echo "Stage 2 : " ${do_ada}
+ echo " Objective-C : " ${do_objc}
echo " Ada : " ${do_ada}
echo " Multilib : " ${do_ada_multilib}
echo " GCC Go : " ${do_gccgo}
echo " Multilib : " ${do_gccgo_multilib}
echo "Build RTEMS : " ${do_rtems}
echo "Run GCC Tests : " ${run_gcctests}
+ echo "Run ObjC Tests: " ${run_objctests}
echo "Run ACATS : " ${run_acats}
echo "Run Go Tests : " ${run_gccgotests}
echo "Do libgo Tests: " ${run_libgotests}
@@ -472,7 +484,6 @@ fi
j_gcc()
{
-set -x
if [ X${1} = X ] ; then
echo Usage: $0 TARGET_CPU
exit 1
@@ -567,26 +578,34 @@ j_rtems()
*) ;;
esac
case ${cpu} in
- m32c) RTEMS_ARGS="--disable-ada --disable-posix --disable-networking" ;;
- *) RTEMS_ARGS="--enable-ada --enable-posix --enable-networking" ;;
+ m32c|h8300)
+ RTEMS_ARGS="--disable-ada --disable-posix --disable-networking" ;;
+ *)
+ RTEMS_ARGS="--enable-ada --enable-posix --enable-networking" ;;
esac
${RTEMSDIR}/configure --target=${TARGET} ${ENABLE_BSP} \
${RTEMS_ARGS} --enable-maintainer-mode --disable-tests \
--prefix=${BSP_INSTALL} && make ${MAKEJOBS} ${MAKE_ARG} && make install
status=$?
+ cd ..
if [ $status -ne 0 ] ; then
- echo "Failed building RTEMS for ${cpuArg}/${bspArg}"
+ echo "Failed building RTEMS for ${cpuArg}/${bspArg}"
+ exit $status
fi
- cd ..
- exit $status
}
if [ ${do_rtems} = "yes" ] ; then
echo "Building RTEMS for ${cpu} ${bsp} ..."
- time j_rtems ${cpu} multilib >${LOGDIR}/${cpu}-rtems-multilib.log 2>&1 || \
+ time j_rtems ${cpu} multilib >${LOGDIR}/${cpu}-rtems-multilib.log 2>&1
+ if [ $? -ne 0 ] ; then
+ echo "Failed to build RTEMS multilib for ${cpu}"
exit 1
- time j_rtems ${cpu} ${bsp} >${LOGDIR}/${cpu}-rtems-${bsp}.log 2>&1 || \
+ fi
+ time j_rtems ${cpu} ${bsp} >${LOGDIR}/${cpu}-rtems-${bsp}.log 2>&1
+ if [ $? -ne 0 ] ; then
+ echo "Failed to build RTEMS for ${cpu}/${bsp}"
exit 1
+ fi
test ${do_cleanup} = "yes" && rm -rf b-${cpu}-${bsp} b-${cpu}-multilib
else
echo Skipping RTEMS for ${cpu}/${bsp}
@@ -597,7 +616,7 @@ pwd
if [ ${run_gcctests} = "yes" ] ; then
echo "Running GCC Tests..."
cd ${BASEDIR}/b-${cpu}-gcc || exit 1
- time sh -x ${SCRIPTDIR}/gcc/rundeja ${bsp} gcc\
+ time sh -x ${SCRIPTDIR}/gcc/rundeja ${bsp} gcc \
>${LOGDIR}/${cpu}-gcctests-${bsp}.log 2>&1
RDIR=${RESULTSDIR}/${TARGET}-${bsp}/`date +%Y-%m-%d-%H-%M-%S`
@@ -628,6 +647,92 @@ else
fi
test ${do_cleanup} = "yes" && rm -rf b-${cpu}-gcc
+##### Build an Objective-C compiler now that we have a cross installed
+j_gccobjc()
+{
+ if [ X${1} = X ] ; then
+ echo Usage: $0 TARGET_CPU
+ exit 1
+ fi
+ TARGET=${1}-rtems${RTEMS_VERSION}
+
+ if [ ! -d ${INSTALL} ] ; then
+ echo ${INSTALL} does not exist
+ exit 1
+ fi
+
+ if [ ${verbose} = yes ] ; then
+ echo "Cross GCC for Objective-C ==>" `type ${TARGET}-gcc`
+ fi
+
+ ${GCCDIR}/configure \
+ ${GCC_EXTRA_ARGS} \
+ --enable-threads=rtems --with-gnu-as --enable-multilib \
+ --with-gnu-ld --disable-newlib --verbose --with-system-zlib --disable-nls \
+ CFLAGS_FOR_TARGET=-B${BSP_INSTALL}/${TARGET}/${BSP_BUILT}/lib/ \
+ --enable-version-specific-runtime-libs \
+ --enable-languages=c,objc --target=$TARGET --prefix=$INSTALL &&
+ make ${MAKEJOBS} &&
+ make install
+ status=$?
+ if [ $status -ne 0 ] ; then
+ echo "Failed building Objective-C"
+ fi
+}
+
+objc_fail="no"
+if [ ${do_objc} = "yes" ] ; then
+ echo "Building Stage 2 cross Objective-C compiler for ${1} ..."
+ (cd ${BASEDIR} && \
+ rm -rf b-${cpu}-objc && \
+ mkdir b-${cpu}-objc && \
+ cd b-${cpu}-objc && \
+ time j_gccobjc ${cpu} >${LOGDIR}/${cpu}-objc.log 2>&1 && cd ..) || \
+ objc_fail="yes"
+else
+ echo Skipping Stage 2 Objective-C for ${cpu}
+fi
+
+#### Run the Objective-C tests
+if [ ${run_objctests} = "yes" -a \
+ -d ${BASEDIR}/b-${cpu}-objc -a ${objc_fail} = "no" ] ; then
+ echo "Running Objective-C Tests..."
+
+ cd ${BASEDIR}/b-${cpu}-gcc || exit 1
+ time sh -x ${SCRIPTDIR}/gcc/rundeja ${bsp} gcc\
+ >${LOGDIR}/${cpu}-gcctests-${bsp}.log 2>&1
+
+ #RDIR=${RESULTSDIR}/${TARGET}-${bsp}/`date +%Y-%m-%d-%H-%M-%S`
+ #mkdir -p ${RDIR}
+ #cp gcc/testsuite/gcc/gcc.log gcc/testsuite/gcc/gcc.sum ${RDIR}
+ #if [ -r gcc/testsuite/g++/g++.log ] ; then
+ # cp gcc/testsuite/g++/g++.log gcc/testsuite/g++/g++.sum ${RDIR}
+ #fi
+
+ if [ ${do_mail} = "yes" ] ; then
+ echo Sending Objective-C test results to GCC community..
+ ${GCCDIR}/contrib/test_summary -m gcc-testresults@gcc.gnu.org | sh
+ if [ $? -ne 0 ] ; then
+ echo "Failed to email Objective-C Test Results to GCC Community .. bailing"
+ exit 1
+ fi
+
+ echo Sending test results to RTEMS community..
+ ${GCCDIR}/contrib/test_summary -o -m rtems-tooltestresults@rtems.org | sh
+ if [ $? -ne 0 ] ; then
+ echo "Failed to email Objective-C Test Results to RTEMS Community .. bailing"
+ exit 1
+ fi
+ fi
+ cd .. || exit 1
+else
+ echo Skipping Objective-C Tests for ${cpu}
+fi
+
+if [ ${do_ada} = "yes" ] ; then
+ test ${do_cleanup} = "yes" && rm -rf b-${cpu}-ada
+fi
+
##### Build an Ada compiler now that we have a cross installed
j_gccada()
{
@@ -643,7 +748,7 @@ j_gccada()
fi
if [ ${verbose} = yes ] ; then
- echo "Cross GCC ==>" `type ${TARGET}-gcc`
+ echo "Cross GCC for Ada ==>" `type ${TARGET}-gcc`
fi
if [ ${do_ada_multilib} = yes ] ; then
@@ -665,7 +770,7 @@ j_gccada()
make install
status=$?
if [ $status -ne 0 ] ; then
- echo "Failed building Go"
+ echo "Failed building Ada"
fi
}
@@ -713,7 +818,6 @@ fi
##### Build a GCC Go compiler now that we have a cross installed
j_gccgo()
{
-set -x
if [ X${1} = X ] ; then
echo Usage: $0 TARGET_CPU
exit 1
@@ -773,7 +877,6 @@ else
fi
##### Do the gccgo tests
-set -x
if [ $a ${run_gccgotests} = "yes" -a \
-d ${BASEDIR}/b-${cpu}-go -a ${go_fail} = "no" ] ; then
echo "Running GCC Go Tests..."
diff --git a/gcc/rundeja b/gcc/rundeja
index 544f863..690130f 100755
--- a/gcc/rundeja
+++ b/gcc/rundeja
@@ -117,48 +117,70 @@ else
echo "set boards_dir ${SCRIPTDIR}/dejagnu/boards" >${dfile}
fi
-if [ $2 = libgo ] ; then
- rtems_libgo_init=${SCRIPTDIR}/gcc/rtems_libgo_init.c
- rtems_bin2c=${INSTALL}/bin/rtems-bin2c
- make check-target-libgo RUNTESTFLAGS="\
- SIM=${BSP_SIM} \
- RTEMS_MAKEFILE_PATH=${rtemsdir} \
- RTEMS_LIBGO_INIT=${rtems_libgo_init} \
- RTEMS_BIN2C=${rtems_bin2c} \
- RTEMS_CONFIG_OBJ= \
- --target_board=rtems-${CPU}-${DEJABSP} \
- "
-elif [ $2 = gccgo ] ; then
- RTEMS_MAKEFILE_PATH=${rtemsdir} \
- SCRIPTDIR=${SCRIPTDIR} \
- make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gccgoinit
- if [ $? -ne 0 ] ; then
- echo unable to compile RTEMS GCC Go Init File
- exit 1
- fi
- rtems_config=`pwd`/rtems_gccgo_init.o
- make check-go RUNTESTFLAGS="\
- SIM=${BSP_SIM} \
- RTEMS_MAKEFILE_PATH=${rtemsdir} \
- RTEMS_CONFIG_OBJ=${rtems_config} \
- --target_board=rtems-${CPU}-${DEJABSP} \
- "
-else
- RTEMS_MAKEFILE_PATH=${rtemsdir} \
- SCRIPTDIR=${SCRIPTDIR} \
- make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gccmain
- if [ $? -ne 0 ] ; then
- echo unable to compile RTEMS GCC Main
- exit 1
- fi
- rtems_config=`pwd`/rtems_gcc_main.o
- make check-gcc RUNTESTFLAGS="\
- SIM=${BSP_SIM} \
- RTEMS_MAKEFILE_PATH=${rtemsdir} \
- RTEMS_CONFIG_OBJ=${rtems_config} \
- --target_board=rtems-${CPU}-${DEJABSP} \
- "
-fi
+case $2 in
+ libgo)
+ rtems_libgo_init=${SCRIPTDIR}/gcc/rtems_libgo_init.c
+ rtems_bin2c=${INSTALL}/bin/rtems-bin2c
+ make check-target-libgo RUNTESTFLAGS="\
+ SIM=${BSP_SIM} \
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ RTEMS_LIBGO_INIT=${rtems_libgo_init} \
+ RTEMS_BIN2C=${rtems_bin2c} \
+ RTEMS_CONFIG_OBJ= \
+ --target_board=rtems-${CPU}-${DEJABSP} \
+ "
+ ;;
+ gccgo)
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ SCRIPTDIR=${SCRIPTDIR} \
+ make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gccgoinit
+ if [ $? -ne 0 ] ; then
+ echo unable to compile RTEMS GCC Go Init File
+ exit 1
+ fi
+ rtems_config=`pwd`/rtems_gccgo_init.o
+ make check-go RUNTESTFLAGS="\
+ SIM=${BSP_SIM} \
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ RTEMS_CONFIG_OBJ=${rtems_config} \
+ --target_board=rtems-${CPU}-${DEJABSP} \
+ "
+ ;;
+ gcc)
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ SCRIPTDIR=${SCRIPTDIR} \
+ make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gccmain
+ if [ $? -ne 0 ] ; then
+ echo unable to compile RTEMS GCC Main
+ exit 1
+ fi
+ rtems_config=`pwd`/rtems_gcc_main.o
+ make check-gcc RUNTESTFLAGS="\
+ SIM=${BSP_SIM} \
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ RTEMS_CONFIG_OBJ=${rtems_config} \
+ --target_board=rtems-${CPU}-${DEJABSP} \
+ "
+ ;;
+ *)
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ SCRIPTDIR=${SCRIPTDIR} \
+ make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gccmain
+ if [ $? -ne 0 ] ; then
+ echo unable to compile RTEMS GCC Main
+ exit 1
+ fi
+ rtems_config=`pwd`/rtems_gcc_main.o
+ echo make check RUNTESTFLAGS="\
+ SIM=${BSP_SIM} \
+ RTEMS_MAKEFILE_PATH=${rtemsdir} \
+ RTEMS_CONFIG_OBJ=${rtems_config} \
+ --target_board=rtems-${CPU}-${DEJABSP} \
+ "
+exit 0
+ ;;
+esac
+
# "execute.exp=pr206*"
# vect.exp=vect*
# powerpc.exp=405*
diff --git a/gcc/test_driver b/gcc/test_driver
index 99d724a..c759703 100755
--- a/gcc/test_driver
+++ b/gcc/test_driver
@@ -50,8 +50,9 @@ usage()
cat <<EOF
test_driver [options] CPU .. CPU
-A - enable clean, native, and update
+ -1 - build basic tools (default=yes)
-a - build Ada (default=yes)
- -G - build GCC Go (default=no)
+ -G - build GCC Go (default=yes)
-c - clean install point (also installs auto tools)
-m - mail results to lists (default=yes)
-n - build native
@@ -66,13 +67,15 @@ doCleanInstallPoint="no"
doUpdateTools="no"
doUpdateRTEMS="no"
doNative="no"
+doBasicTools="yes"
verbose="no"
doAda="yes"
-doGccGo="no"
+doGccGo="yes"
doMail="yes"
doTests="yes"
+justTests="no"
-while getopts AacmnuGTUv OPT
+while getopts j1AacmnuGTUv OPT
do
case "$OPT" in
A) doCleanInstallPoint=`toggle ${doCleanInstallPoint}`
@@ -80,9 +83,11 @@ do
doUpdateTools=`toggle ${doUpdateTools}`
doUpdateRTEMS=`toggle ${doUpdateRTEMS}`
;;
+ 1) doBasicTools=`toggle ${doBasicTools}` ;;
a) doAda=`toggle ${doAda}` ;;
G) doGccGo=`toggle ${doGccGo}` ;;
c) doCleanInstallPoint=`toggle ${doCleanInstallPoint}` ;;
+ j) justTests=`toggle ${justTests}` ;;
m) doMail=`toggle ${doMail}` ;;
n) doNative=`toggle ${doNative}` ;;
T) doTests=`toggle ${doTests}` ;;
@@ -120,12 +125,14 @@ elif [ "X${CPUs}" = "X part2" ] ; then
CPUs="${CPUS_PART2}"
fi
+
if [ ${verbose} = "yes" ] ; then
echo "Clean Install Point: " ${doCleanInstallPoint}
echo "Install Autotools: " ${doCleanInstallPoint}
echo "Install Native: " ${doNative}
echo "Update Tool Source: " ${doUpdateTools}
echo "Update RTEMS: " ${doUpdateRTEMS}
+ echo "Build Basic Tools: " ${doBasicTools}
echo "Build Ada: " ${doAda}
echo "Build GCC Go: " ${doGccGo}
echo "Email Results: " ${doMail}
@@ -133,10 +140,18 @@ if [ ${verbose} = "yes" ] ; then
echo "CPUs to Build: " ${CPUs}
fi
-test ${doMail} = "no" && mailArg="-M"
-test ${doTests} = "yes" && testArg="-T"
-test ${doAda} = "yes" && adaArg="-a"
-test ${doGccGo} = "yes" && gccgoArg="-G"
+test ${doMail} = "no" && mailArg="-M"
+test ${doTests} = "yes" && testArg="-T"
+test ${doAda} = "yes" && adaArg="-a"
+test ${doGccGo} = "yes" && gccgoArg="-G"
+test ${doBasicTools} = "yes" && basicArgs="-b -D -1 -r"
+
+echo "Checking for just tests override"
+if [ ${justTests} = "yes" ] ; then
+ adaArg=""
+ gccgoArg=""
+ basicArgs=""
+fi
start=`date`
echo Started at: ${start}
@@ -249,7 +264,10 @@ do_cpus()
doOne=${SCRIPTDIR}/gcc/do_one
echo "Building ${cpu}/${bsp}..."
- time sh -x ${doOne} -v -b -D -1 -d -r \
+ echo "time sh -x ${doOne} -v -d ${basicArgs} \
+ ${gccgoArg} ${adaArg} ${mailArg} ${testArg} \
+ ${cpu} ${bsp} >${BASEDIR}/${bsp}.log 2>&1"
+ time sh -x ${doOne} -v -d ${basicArgs} \
${gccgoArg} ${adaArg} ${mailArg} ${testArg} \
${cpu} ${bsp} >${BASEDIR}/${bsp}.log 2>&1
echo $?