diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-12-07 21:09:31 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-12-07 21:09:31 +0000 |
commit | 71e69ab771453cad253989c9d1f2f0280c493bd9 (patch) | |
tree | ce6f11d28fb53aff7f4321944a2b668416421233 /gcc | |
parent | 5d6e9d20a4e059645fb3da8d84edc7451a201fe1 (diff) |
2010-12-07 Joel Sherrill <joel.sherrill@oarcorp.com>
* do_one, test_driver, testsuite/ada/acats/Makefile.rtems:
* Makefile.rtems_gccgoinit, gccgo_status, networkconfig.h,
rtems_gccgo_init.c: New files.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/Makefile.rtems_gccgoinit | 17 | ||||
-rwxr-xr-x | gcc/do_one | 8 | ||||
-rwxr-xr-x | gcc/gccgo_status | 61 | ||||
-rw-r--r-- | gcc/networkconfig.h | 77 | ||||
-rw-r--r-- | gcc/rtems_gccgo_init.c | 165 | ||||
-rwxr-xr-x | gcc/test_driver | 14 | ||||
-rw-r--r-- | gcc/testsuite/ada/acats/Makefile.rtems | 3 |
8 files changed, 341 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf4effe..64430fe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-07 Joel Sherrill <joel.sherrill@oarcorp.com> + + * do_one, test_driver, testsuite/ada/acats/Makefile.rtems: + * Makefile.rtems_gccgoinit, gccgo_status, networkconfig.h, + rtems_gccgo_init.c: New files. + 2010-08-04 Vinu Rajashekhar <vinutheraj@gmail.com> * do_one, rundeja: Add support for libgo testing. diff --git a/gcc/Makefile.rtems_gccgoinit b/gcc/Makefile.rtems_gccgoinit new file mode 100644 index 0000000..0ba7372 --- /dev/null +++ b/gcc/Makefile.rtems_gccgoinit @@ -0,0 +1,17 @@ +# +# Makefile for Go testsuite +# + +include $(RTEMS_MAKEFILE_PATH)/Makefile.inc +include $(RTEMS_CUSTOM) +include $(PROJECT_ROOT)/make/leaf.cfg + +# Tool helpers + +all: clean rtems_gccgo_init.o + +clean: + rm -f rtems_gccgo_init.o + +rtems_gccgo_init.o: ${SCRIPTDIR}/gcc/rtems_gccgo_init.c + $(CC) $(CFLAGS) $(CPU_CFLAGS) -c ${SCRIPTDIR}/gcc/rtems_gccgo_init.c @@ -106,8 +106,8 @@ do do_cxx="yes" do_multilib="yes" do_ada="yes" - do_gccgo="yes" - do_gccgo_multilib="yes" + # do_gccgo="yes" + # do_gccgo_multilib="yes" do_rtems="yes" ;; d) do_cleanup=`toggle ${do_cleanup}` ;; @@ -261,10 +261,12 @@ if [ ${needCPU} = yes -a ${needBSP} = yes -a \ m32c-m32csim) dejacfg=rtems-m32c-m32csim ;; m32r-m32rsim) dejacfg=rtems-m32r-m32rsim ;; m68k-uC5282) dejacfg=rtems-m68k-uC5282 ;; + microblaze-nosim) dejacfg=rtems-microblaze-nosim ;; mips-jmr3904) dejacfg=rtems-mips-jmr3904 ;; powerpc-psim) dejacfg=rtems-powerpc-psim ;; sh-simsh1) dejacfg=rtems-sh-simsh1 ;; sparc-sis) dejacfg=rtems-sparc-sis ;; + sparc64-niagara) dejacfg=rtems-sparc64-nosim ;; *) echo "ERROR ${bsp} is not known to DegaGNU" exit 1 @@ -713,7 +715,7 @@ else fi ##### Do the gccgo tests -if [ ${run_gccgotests} = "yes" ] ; then +if [ ${do_gccgo} = "yes" -a ${run_gccgotests} = "yes" ] ; then echo "Running GCC Go Tests..." cd ${BASEDIR}/b-gccgo1-${cpu}/gcc || exit 1 time sh -x ${SCRIPTDIR}/gcc/rundeja ${bsp} gccgo \ diff --git a/gcc/gccgo_status b/gcc/gccgo_status new file mode 100755 index 0000000..3d61bba --- /dev/null +++ b/gcc/gccgo_status @@ -0,0 +1,61 @@ +#! /bin/sh +# +# gccgo_status +# + +vfile=`dirname $0`/../VERSIONS +if [ ! -r ${vfile} ] ; then + echo VERSIONS file not found + exit 1 +fi + +source ${vfile} + +cpu=$1 +if [ $# -eq 1 ] ; then + limit=0 +elif [ $# -eq 2 ] ; then + limit=$2 +else + echo usage "$0 CPU [seconds]" + exit 1 +fi + + +if [ ! -d ${BASEDIR}/b-gccgo1-${cpu}/gcc/testsuite ] ; then + echo Test directory not found + exit 1 +fi + +cd ${BASEDIR}/b-gccgo1-${cpu}/gcc/testsuite +while : +do + for BASE in go + do + LFILE=${BASE}/${BASE}.log + SFILE=${BASE}/${BASE}.sum + if [ ! -r ${LFILE} ] ; then + continue + fi + loglines=`cat ${LFILE} | wc -l` + failed=`grep ^FAIL: ${SFILE} | wc -l` + passed=`grep ^PASS: ${SFILE} | wc -l` + unsupp=`grep ^UNSUPP ${SFILE} | wc -l` + unresolved=`grep ^UNRESOL ${SFILE} | wc -l` + untested=`grep ^UNTESTED ${SFILE} | wc -l` + + printf "Lines in ${LFILE}: %5d\n" $loglines + printf "PASSED: %5d\n" $passed + printf "FAILED: %5d\n" $failed + printf "UNSUPPORTED: %5d\n" $unsupp + printf "UNRESOLVED: %5d\n" $unresolved + printf "UNTESTED: %5d\n" $untested + done + + if [ ${limit} -eq 0 ] ; then + break + fi + sleep ${limit} +done +exit 0 + diff --git a/gcc/networkconfig.h b/gcc/networkconfig.h new file mode 100644 index 0000000..0333393 --- /dev/null +++ b/gcc/networkconfig.h @@ -0,0 +1,77 @@ +/* + * Network configuration -- LOOPBACK ONLY!!! + * + * See one of the other networkconfig.h files for an + * example of a system that includes a real NIC and + * the loopback interface. + * + ************************************************************ + * EDIT THIS FILE TO REFLECT YOUR NETWORK CONFIGURATION * + * BEFORE RUNNING ANY RTEMS PROGRAMS WHICH USE THE NETWORK! * + ************************************************************ + * + * $Id$ + */ + +#ifndef _RTEMS_NETWORKCONFIG_H_ +#define _RTEMS_NETWORKCONFIG_H_ + + +/* #define RTEMS_USE_BOOTP */ + +#include <bsp.h> + +/* + * Loopback interface + */ +extern int rtems_bsdnet_loopattach(); + +/* + * Default network interface + */ +static struct rtems_bsdnet_ifconfig netdriver_config = { + "lo0", /* name */ + rtems_bsdnet_loopattach, /* attach function */ + NULL, /* No more interfaces */ + "127.0.0.1", /* IP address */ + "255.0.0.0", /* IP net mask */ + NULL, /* Driver supplies hardware address */ + 0 /* Use default driver parameters */ +}; + +/* + * Network configuration + */ +struct rtems_bsdnet_config rtems_bsdnet_config = { + &netdriver_config, + NULL, /* do not use bootp */ + 0, /* Default network task priority */ + 0, /* Default mbuf capacity */ + 0, /* Default mbuf cluster capacity */ + "localhost", /* Host name -- match expectations for 127.0.0.1 */ + "nodomain.com", /* Domain name */ + "127.0.0.1", /* Gateway */ + "127.0.0.1", /* Log host */ + {"127.0.0.1" }, /* Name server(s) */ +}; + +/* + * For TFTP test application + */ +#if (defined (RTEMS_USE_BOOTP)) +#define RTEMS_TFTP_TEST_HOST_NAME "BOOTP_HOST" +#define RTEMS_TFTP_TEST_FILE_NAME "BOOTP_FILE" +#else +#define RTEMS_TFTP_TEST_HOST_NAME "XXX.YYY.ZZZ.XYZ" +#define RTEMS_TFTP_TEST_FILE_NAME "tftptest" +#endif + +/* + * For NFS test application + * + * NFS server/path to mount and a directory to ls once mounted + */ +#define RTEMS_NFS_SERVER "192.168.1.210" +#define RTEMS_NFS_SERVER_PATH "/home" +#define RTEMS_NFS_LS_PATH "/mnt/nfstest" +#endif /* _RTEMS_NETWORKCONFIG_H_ */ diff --git a/gcc/rtems_gccgo_init.c b/gcc/rtems_gccgo_init.c new file mode 100644 index 0000000..5c17f69 --- /dev/null +++ b/gcc/rtems_gccgo_init.c @@ -0,0 +1,165 @@ +/* + * Init for Go testing. + */ + +#include <bsp.h> + +#include <stdlib.h> + +#include <rtems/rtems_bsdnet.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include "networkconfig.h" + +/* + * Set up first argument + */ +static int argc = 1; +static char arg0[20] = "rtems"; +static char *argv[20] = { arg0 }; + +#if defined(MAIN_USE_REQUIRES_COMMAND_LINE) + +#define COMMAND_LINE_MAXIMUM 200 + +#include <stdio.h> +#include <ctype.h> + +void parse_arguments( + char *buffer, + size_t maximum_length +) +{ + char *cp; + char *linebuf = buffer; + size_t length; + + for (;;) { + + #if defined(MAIN_COMMAND_LINE) + strncpy (linebuf, MAIN_COMMAND_LINE, maximum_length); + #else + /* + * Read a line + */ + printf (">>> %s ", argv[0]); + fflush (stdout); + fgets (linebuf, maximum_length, stdin); + + length = strnlen( linebuf, maximum_length ); + if ( linebuf[length - 1] == '\n' || linebuf[length - 1] == '\r' ) { + linebuf[length - 1] = '\0'; + } + #endif + + /* + * Break line into arguments + */ + cp = linebuf; + for (;;) { + while (isspace (*cp)) + *cp++ = '\0'; + if (*cp == '\0') + break; + if (argc >= ((sizeof argv / sizeof argv[0]) - 1)) { + printf ("Too many arguments.\n"); + argc = 0; + break; + } + argv[argc++] = cp; + while (!isspace (*cp)) { + if (*cp == '\0') + break; + cp++; + } + } + if (argc > 1) { + argv[argc] = NULL; + break; + } + printf ("You must give some arguments!\n"); + } + + #if defined(DEBUG_COMMAND_LINE_ARGUMENTS) + { + int i; + for (i=0; i<argc ; i++ ) { + printf( "argv[%d] = ***%s***\n", i, argv[i] ); + } + printf( "\n" ); + } + #endif +} + + +#endif + +int main( int, char ** ); + +void *POSIX_Init( + void *argument +) +{ + //printk("Initializing Network\n"); + rtems_bsdnet_initialize_network (); + //rtems_bsdnet_show_inet_routes (); +#if defined(MAIN_USE_REQUIRES_COMMAND_LINE) + char command_line[ COMMAND_LINE_MAXIMUM ]; + parse_arguments( command_line, COMMAND_LINE_MAXIMUM ); +#endif + + main(argc, argv); + exit(0); + return 0; +} + +#if defined(__mips__) +/* GCC sometimes expects this on the mips */ +void _flush_cache() +{ +} + +/* configuration information */ + +/* NOTICE: the clock driver is explicitly disabled */ +#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER + +#define CONFIGURE_POSIX_INIT_THREAD_TABLE +// Works with 32 Mb too, this is faster +//#define CONFIGURE_EXECUTIVE_RAM_SIZE (5 * 1024 * 1024) +#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 500 +#define CONFIGURE_MAXIMUM_POSIX_THREADS 400 +#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 500 +#define CONFIGURE_MAXIMUM_TASK_VARIABLES (2 * 400) +#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE (32 * 1024) +#define CONFIGURE_MINIMUM_TASK_STACK_SIZE (4 * 1024) +//#define CONFIGURE_MEMORY_OVERHEAD (4 * 1024) + +//#define CONFIGURE_MICROSECONDS_PER_TICK 1000 +#define CONFIGURE_TICKS_PER_TIMESLICE 50 +#define CONFIGURE_MICROSECONDS_PER_TICK RTEMS_MILLISECONDS_TO_MICROSECONDS(1000) + +#define CONFIGURE_MAXIMUM_TASKS 20 +#define CONFIGURE_MAXIMUM_SEMAPHORES 20 +//#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 20 + +#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM +#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20 + +#define CONFIGURE_PIPES_ENABLED TRUE +#define CONFIGURE_MAXIMUM_PIPES 20 +//#define CONFIGURE_MAXIMUM_BARRIERS 20 + +#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY TRUE +//#define BSP_ZERO_WORKSPACE_AUTOMATICALLY 1 +#define CONFIGURE_UNIFIED_WORK_AREAS +//#define CONFIGURE_MALLOC_DIRTY +//#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY 1 +#define CONFIGURE_STACK_CHECKER_ENABLED TRUE + +#define CONFIGURE_INIT + +#include <rtems/confdefs.h> + +/* end of file */ diff --git a/gcc/test_driver b/gcc/test_driver index 7187b37..5f0f48d 100755 --- a/gcc/test_driver +++ b/gcc/test_driver @@ -44,7 +44,7 @@ cat <<EOF do_one [options] CPU .. CPU -A - enable clean, native, and update -a - build Ada (default=yes) - -G - build GCC Go (default=yes) + -G - build GCC Go (default=no) -c - clean install point (also installs auto tools) -m - mail results to lists (default=yes) -n - build native @@ -61,11 +61,11 @@ doUpdateRTEMS="no" doNative="no" verbose="no" doAda="yes" -doGccGo="yes" -doMail="yes" +doGccGo="no" +doMail="no" doTests="yes" -while getopts AacmnuTUv OPT +while getopts AacmnuGTUv OPT do case "$OPT" in A) doCleanInstallPoint=`toggle ${doCleanInstallPoint}` @@ -213,6 +213,7 @@ do_cpus() powerpc) bsp=psim ;; sh) bsp=simsh1 ;; sparc) bsp=sis ;; + sparc64) bsp=niagara ;; *) echo "Unknown CPU ${cpu}" exit 1 @@ -265,15 +266,14 @@ if [ $? -eq 0 ] ; then do_cpus arm # no simulator -- waiting for Skyeye - do_cpus bfin m68k + do_cpus bfin # Simulators included in gdb - do_cpus h8300 lm32 m32c m32r mips powerpc sh sparc + do_cpus h8300 lm32 m32c m32r mips powerpc sh sparc sparc64 # Requires qemu installation do_cpus i386 m68k - # port insufficient to run gcc tests do_cpus avr else diff --git a/gcc/testsuite/ada/acats/Makefile.rtems b/gcc/testsuite/ada/acats/Makefile.rtems index a95279a..bf49f54 100644 --- a/gcc/testsuite/ada/acats/Makefile.rtems +++ b/gcc/testsuite/ada/acats/Makefile.rtems @@ -69,6 +69,9 @@ stamp-targetrun: ifeq ($(RTEMS_BSP),mcf5206elite) echo " nosim $$"'*' >> $@ endif # mcf5206elite + ifeq ($(RTEMS_BSP),niagara) + echo " nosim $$"'*' >> $@ + endif # niagara echo "}" >>$@ stamp-targetgcc: |