summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-12-07 21:09:31 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-12-07 21:09:31 +0000
commit71e69ab771453cad253989c9d1f2f0280c493bd9 (patch)
treece6f11d28fb53aff7f4321944a2b668416421233 /gcc
parent5d6e9d20a4e059645fb3da8d84edc7451a201fe1 (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/ChangeLog6
-rw-r--r--gcc/Makefile.rtems_gccgoinit17
-rwxr-xr-xgcc/do_one8
-rwxr-xr-xgcc/gccgo_status61
-rw-r--r--gcc/networkconfig.h77
-rw-r--r--gcc/rtems_gccgo_init.c165
-rwxr-xr-xgcc/test_driver14
-rw-r--r--gcc/testsuite/ada/acats/Makefile.rtems3
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
diff --git a/gcc/do_one b/gcc/do_one
index 9c7dacc..07e96b5 100755
--- a/gcc/do_one
+++ b/gcc/do_one
@@ -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: