change log for rtems-testing (2011-08-20)

rtems-vc at rtems.org rtems-vc at rtems.org
Sat Aug 20 19:10:03 UTC 2011


 *joel*:
2011-08-21	Jie Liu <lj8175 at gmail.com>

	* gcc/rtems_gcj_init.c: New file for rtems/gcj testing.
	* gcc/Makefile.rtems_gcjinit: The Makefile for
	gcc/rtems_gcj_init.c
	* gcc/rundeja: Add options for libjava test.
	* gcc/test_driver: Add GCJ options.
	* gcc/do_one: Add GCJ build and test options.

M   1.67  ChangeLog
A    1.1  gcc/Makefile.rtems_gcjinit
M   1.25  gcc/do_one
A    1.1  gcc/rtems_gcj_init.c
M   1.16  gcc/rundeja
M   1.22  gcc/test_driver

diff -u rtems-testing/ChangeLog:1.66 rtems-testing/ChangeLog:1.67
--- rtems-testing/ChangeLog:1.66	Sun Mar 13 17:17:29 2011
+++ rtems-testing/ChangeLog	Sat Aug 20 13:37:29 2011
@@ -1,3 +1,12 @@
+2011-08-21	Jie Liu <lj8175 at gmail.com>
+
+	* gcc/rtems_gcj_init.c: New file for rtems/gcj testing.
+	* gcc/Makefile.rtems_gcjinit: The Makefile for
+	gcc/rtems_gcj_init.c
+	* gcc/rundeja: Add options for libjava test.
+	* gcc/test_driver: Add GCJ options.
+	* gcc/do_one: Add GCJ build and test options.
+
 2011-03-13	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* README, VERSIONS: Specify rtems-testing not gcc-testing.

diff -u /dev/null rtems-testing/gcc/Makefile.rtems_gcjinit:1.1
--- /dev/null	Sat Aug 20 14:10:02 2011
+++ rtems-testing/gcc/Makefile.rtems_gcjinit	Sat Aug 20 13:37:29 2011
@@ -0,0 +1,17 @@
+#
+#  Makefile for GCJ testsuite
+#
+
+include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
+include $(RTEMS_CUSTOM)
+include $(PROJECT_ROOT)/make/leaf.cfg
+
+# Tool helpers
+
+all: rtems_gcj_init.o
+
+clean:
+	rm -f rtems_gcj_init.o
+
+rtems_gcj_init.o: ${SCRIPTDIR}/gcc/rtems_gcj_init.c
+	$(CC) $(CFLAGS) $(CPU_CFLAGS) -c ${SCRIPTDIR}/gcc/rtems_gcj_init.c

diff -u rtems-testing/gcc/do_one:1.24 rtems-testing/gcc/do_one:1.25
--- rtems-testing/gcc/do_one:1.24	Mon Mar 14 09:39:47 2011
+++ rtems-testing/gcc/do_one	Sat Aug 20 13:37:29 2011
@@ -10,10 +10,12 @@
 #   - building Objective-C (multilib)      - 6m45.532s
 #   - building Ada (multilib)              - ?
 #   - building Go (multilib)               - ?
+#   - building GCJ (multilib)              - ?
 #   - Running GCC Test Suite (sis)         - 122m47.289s
 #   - Running Objective-C Test Suite (sis) - ?
 #   - Running ACAT           (sis)         - ?
 #   - Running Go Test Suite  (sis)         - ?
+#   - Running GCJ Test Suite  (sis)        - ?
 #
 # Computer Info
 #   Fedora 14 on Intel Core2 Duo Q6600 (4 core) @ 2.40GHz w/ 4GB RAM
@@ -51,6 +53,9 @@
 # Build the GCC Go language cross compiler.
 do_gccgo=no
 	do_gccgo_multilib=yes
+# Build the GCC Java language cross compiler.
+do_gcj=no
+	do_gcj_multilib=yes
 # Build RTEMS for a particular CPU/BSP combination
 do_rtems=no
 # Which test suites do we attempt
@@ -59,6 +64,7 @@
 run_acats=no
 run_gccgotests=no
 run_libgotests=no
+run_libjavatests=no
 # Do we send email to gcc-testresults with the test results?
 do_mail=yes
 # Are we noisy when running?
@@ -69,8 +75,8 @@
 {
 cat <<EOF
 do_one [options] CPU BSP
-  -A - binutils, stage 1, C++, C/C++ multilib, Ada, GCC Go, RTEMS
-  -T - run GCC, Ada and GCC Go tests
+  -A - binutils, stage 1, C++, C/C++ multilib, Ada, GCC Go, GCJ, RTEMS
+  -T - run GCC, Ada, GCC Go and GCJ tests
   -b - install binutils (from source or copy installed RPM contents)
   -D - install gdb (from source or copy installed RPM contents)
   -n - native compiler
@@ -79,6 +85,7 @@
   -m -   do not build multilib
   -a - stage 2 Ada compiler
   -G - stage 2 GCC Go compiler
+  -J - stage 2 GCC Java compiler
   -r - build RTEMS
   -g - run GCC C/C++ tests
   -C - run ACATS
@@ -89,6 +96,7 @@
   -P - Run Objective-C Tests
   -o - run GCC Go tests
   -t - run libgo tests
+  -j - run libjava tests
 EOF
 }
 
@@ -117,6 +125,7 @@
            do_multilib="yes"
            do_ada="yes"
            do_gccgo="yes"
+           do_gcj="yes"
            do_objc="yes"
            do_rtems="yes"
            ;;
@@ -138,6 +147,7 @@
         # Stage 2 arguments
         a) do_ada=`toggle ${do_ada}` ;;
         G) do_gccgo=`toggle ${do_gccgo}` ;;
+        J) do_gcj=`toggle ${do_gcj}` ;;
         # Build RTEMS
         r) do_rtems=`toggle ${do_rtems}` ;;
         # Testsuites to run
@@ -149,6 +159,7 @@
         P) run_objctests=`toggle ${do_objc}` ;;
         o) run_gccgotests=`toggle ${run_gccgotests}` ;;
         t) run_libgotests=`toggle ${run_libgotests}` ;;
+        j) run_libjavatests=`toggle ${run_libjavatests}` ;;
         *) fatal ;;
     esac
 done
@@ -196,32 +207,46 @@
   esac
 fi
 
+# Which CPUs do not support GCJ
+if [ ${do_gcj} = "yes" ] ; then
+  case ${cpu} in
+    avr|h8300|m32c)
+      do_gcj=no
+      echo ${cpu} does not support GCJ
+      ;;
+    *);;
+  esac
+fi
+
 # When verbose, print settings
 if [ ${verbose} = yes ] ; then
-  echo "Target        : " ${cpu}
-  echo "BSP           : " ${bsp}
-  echo "Binutils      : " ${do_binutils}
-  echo "GDB           : " ${do_gdb}
-  echo "Build Native  : " ${do_native}
-  echo "Build Stage 1 : " ${do_stage1}
-  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}
-  echo "Email Tests   : " ${do_mail}
-  echo "Native GCC    : " `type gcc`
-  echo "PATH          : " ${PATH}
-  echo "Clean up      : " ${do_cleanup}
+  echo "Target          : " ${cpu}
+  echo "BSP             : " ${bsp}
+  echo "Binutils        : " ${do_binutils}
+  echo "GDB             : " ${do_gdb}
+  echo "Build Native    : " ${do_native}
+  echo "Build Stage 1   : " ${do_stage1}
+  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 "  Go Multilib   : " ${do_gccgo_multilib}
+  echo "  GCJ           : " ${do_gcj}
+  echo "  GCJ Multilib  : " ${do_gccgcj_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}
+  echo "Do libjava Tests: " ${run_libjavatests}
+  echo "Email Tests     : " ${do_mail}
+  echo "Native GCC      : " `type gcc`
+  echo "PATH            : " ${PATH}
+  echo "Clean up        : " ${do_cleanup}
 fi
 
 # Should the user have specified a CPU and/or BSP?
@@ -229,7 +254,8 @@
 needCPU=no
 
 if [ ${do_binutils} = yes -o ${do_gdb} = yes -o \
-     ${do_stage1} = yes -o ${do_ada} = yes -o ${do_gccgo} = yes ] ; then
+     ${do_stage1} = yes -o ${do_ada} = yes -o \
+     ${do_gccgo} = yes -o ${do_gcj} = yes ] ; then
   needCPU=yes
 fi
 
@@ -238,8 +264,14 @@
   do_cxx=yes
 fi
 
+if [ ${do_native} = yes -a ${do_gcj} = yes ] ; then
+  echo "Warning! GCJ requires native C++ to build."
+  do_cxx=yes
+fi
+
 if [ ${do_rtems} = yes -o ${run_gcctests} = yes -o \
-     ${run_acats} = yes -o ${run_gccgotests} = yes ] ; then
+     ${run_acats} = yes -o ${run_gccgotests} = yes -o \
+     ${run_libjavatests} = yes ] ; then
   needBSP=yes
   needCPU=yes
   if [ x${bsp} = x ] ; then
@@ -928,3 +960,85 @@
   test ${do_cleanup} = "yes" && rm -rf b-${cpu}-go
 fi
 exit 0
+
+##### Build a GCJ compiler now that we have a cross installed
+j_gcj()
+{
+  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 ==>" `type ${TARGET}-gcc`
+  fi
+
+  if [ ${do_gcj_multilib} = yes ] ; then
+     gcj_multilib="--enable-multilib"
+  else
+     gcj_multilib="--disable-multilib"
+  fi
+
+  case ${TARGET} in
+    i386*) GOFLAGS="-march=i486" ;;
+    *)     GOFLAGS="" ;;
+  esac
+#    CFLAGS_FOR_TARGET=-B${BSP_INSTALL}/${TARGET}/${BSP_BUILT}/lib/
+
+  ${GCCDIR}/configure \
+   ${GCC_EXTRA_ARGS} \
+   CFLAGS_FOR_TARGET="-B${BSP_INSTALL}/${TARGET}/${BSP_BUILT}/lib/ ${GOFLAGS}" \
+     --enable-threads=rtems --with-gnu-as ${gcj_multilib} \
+     --with-gnu-ld --disable-newlib  --verbose \
+     --with-system-zlib --disable-nls \
+     --enable-version-specific-runtime-libs \
+     --with-host-libstdcxx=-static-libstdc++ \
+     --enable-languages=c,c++,java --target=$TARGET --prefix=$INSTALL &&
+  make ${MAKEJOBS} &&
+  make install
+  status=$?
+  if [ $status -ne 0 ] ; then
+    echo "Failed building GCJ"
+  fi
+  exit $status
+}
+
+gcj_fail="no"
+if [ ${do_gcj} = "yes" ] ; then 
+  echo "Building Stage 2 cross GCC Java compiler for ${1} ..."
+  (cd ${BASEDIR} && \
+   rm -rf b-${cpu}-gcj && \
+   mkdir  b-${cpu}-gcj && \
+   cd b-${cpu}-gcj && \
+   time j_gcj ${cpu} >${LOGDIR}/${cpu}-gcj.log 2>&1 && cd ..) || \
+     gcj_fail="yes"
+else
+  echo Skipping GCC Java compiler for ${cpu}
+fi
+
+##### Do the libjava tests
+if [ $a ${run_libjavatests} = "yes" -a \
+     -d ${BASEDIR}/b-${cpu}-gcj -a ${gcj_fail} = "no" ] ; then
+  echo "Running libjava DejaGNU tests..."
+  cd ${BASEDIR}/b-${cpu}-gcj || exit 1
+  time sh -x ${SCRIPTDIR}/gcc/rundeja ${bsp} libjava \
+    >${LOGDIR}/${cpu}-libjavatests-${bsp}.log 2>&1
+
+  RDIR=${RESULTSDIR}/${TARGET}-${bsp}/`date +%Y-%m-%d-%H-%M-%S`
+  mkdir -p ${RDIR}
+  cp ${TARGET}-${bsp}/libjava/testsuite/libjava-all.log \
+    ${TARGET}-${bsp}/libjava/testsuite/libjava-all.sum ${RDIR}
+else
+  echo Skipping libjava DejaGNU tests for ${cpu}/${bsp}
+fi
+
+if [ ${do_gcj} = "yes" ] ; then 
+  test ${do_cleanup} = "yes" && rm -rf b-${cpu}-gcj
+fi
+exit 0

diff -u /dev/null rtems-testing/gcc/rtems_gcj_init.c:1.1
--- /dev/null	Sat Aug 20 14:10:02 2011
+++ rtems-testing/gcc/rtems_gcj_init.c	Sat Aug 20 13:37:29 2011
@@ -0,0 +1,85 @@
+#include <bsp.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <uart.h> //gdb
+#if defined(__mips__)
+/* GCC sometimes expects this on the mips */
+void _flush_cache()
+{
+}
+#endif
+static int   argc     = 1;
+static char  arg0[20] = "rtems";
+static char *argv[20] = { arg0 };
+extern int main( int, char ** );
+extern int BSPConsolePort; //gdb
+int remote_debug=1;//gdb
+
+void *POSIX_Init(void*);
+
+/* configuration information */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_MICROSECONDS_PER_TICK 1000
+#define CONFIGURE_TICKS_PER_TIMESLICE   50
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 50
+#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 100
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES  100
+#define CONFIGURE_MAXIMUM_POSIX_KEYS 300
+#define CONFIGURE_MAXIMUM_POSIX_TIMERS 100
+#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 100
+#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES 100
+#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 100
+#define CONFIGURE_MAXIMUM_TASK_VARIABLES (2 * 40)
+#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE (4*1024 * 1024)
+#define CONFIGURE_MINIMUM_TASK_STACK_SIZE (1*1024 * 1024)
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
+
+#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY TRUE
+//#define CONFIGURE_UNIFIED_WORK_AREAS --should care !!!
+#define CONFIGURE_STACK_CHECKER_ENABLED TRUE
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+
+void *POSIX_Init(
+  void *argument
+)
+{
+  struct sched_param param;
+  param.sched_priority = 5;
+  pthread_setschedparam(pthread_self(),SCHED_OTHER, &param);
+  //printf("Switch to GCJ Java HelloWorld!----in rtems_init.c\n");
+  /*gdb 1-----------------
+  if(BSPConsolePort!=BSP_UART_COM2)
+    i386_stub_glue_init(BSP_UART_COM2);
+  else
+    i386_stub_glue_init(BSP_UART_COM1);
+  set_debug_traps();
+  i386_stub_glue_init_breakin();
+  breakpoint();
+  //gdb -----------------*/
+  /*gdb 2---------------
+  init_remote_gdb();
+  breakpoint();
+  //gdb 2--------------*/
+  /*RTEMS memory view----
+  printf( "RTEMS Work Space : 0x%X -- 0x%X (%dM)\n",
+    Configuration.work_space_start,
+    (char*)Configuration.work_space_start + Configuration.work_space_size,
+    Configuration.work_space_size/1024/1024
+  );
+  printf( "RTEMS Malloc Heap : 0x%X -- 0x%X (%dM)\n",
+    RTEMS_Malloc_Heap->area_begin,
+    RTEMS_Malloc_Heap->area_end,
+    (RTEMS_Malloc_Heap->area_end - RTEMS_Malloc_Heap->area_begin)/1024/1024
+  );
+  //memory view ----------*/
+  main(argc, argv);
+  exit(0);
+}

diff -u rtems-testing/gcc/rundeja:1.15 rtems-testing/gcc/rundeja:1.16
--- rtems-testing/gcc/rundeja:1.15	Mon Mar 14 09:39:47 2011
+++ rtems-testing/gcc/rundeja	Sat Aug 20 13:37:29 2011
@@ -146,6 +146,22 @@
     --target_board=rtems-${CPU}-${DEJABSP} \
     "
     ;;
+  libjava)
+    RTEMS_MAKEFILE_PATH=${rtemsdir} \
+    SCRIPTDIR=${SCRIPTDIR} \
+      make -f ${SCRIPTDIR}/gcc/Makefile.rtems_gcjinit
+    if [ $? -ne 0 ] ; then
+      echo unable to compile RTEMS GCC Java Init File
+      exit 1
+    fi
+    rtems_config=`pwd`/rtems_gcj_init.o
+    make check-gcc-java 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} \

diff -u rtems-testing/gcc/test_driver:1.21 rtems-testing/gcc/test_driver:1.22
--- rtems-testing/gcc/test_driver:1.21	Mon Mar 14 09:39:47 2011
+++ rtems-testing/gcc/test_driver	Sat Aug 20 13:37:29 2011
@@ -53,6 +53,7 @@
   -1 - build basic tools (default=yes)
   -a - build Ada (default=yes)
   -G - build GCC Go (default=yes)
+  -J - build GCJ (default=yes)
   -c - clean install point (also installs auto tools)
   -m - mail results to lists (default=yes)
   -n - build native
@@ -71,6 +72,7 @@
 verbose="no"
 doAda="yes"
 doGccGo="yes"
+doGcj="yes"
 doMail="yes"
 doTests="yes"
 justTests="no"
@@ -86,6 +88,7 @@
     1) doBasicTools=`toggle ${doBasicTools}` ;;
     a) doAda=`toggle ${doAda}` ;;
     G) doGccGo=`toggle ${doGccGo}` ;;
+    J) doGcj=`toggle ${doGcj}` ;;
     c) doCleanInstallPoint=`toggle ${doCleanInstallPoint}` ;;
     j) justTests=`toggle ${justTests}` ;;
     m) doMail=`toggle ${doMail}` ;;
@@ -135,6 +138,7 @@
   echo "Build Basic Tools:   " ${doBasicTools}
   echo "Build Ada:           " ${doAda}
   echo "Build GCC Go:        " ${doGccGo}
+  echo "Build GCJ:           " ${doGcj}
   echo "Email Results:       " ${doMail}
   echo "Run Tests:           " ${doTests}
   echo "CPUs to Build:       " ${CPUs}
@@ -144,12 +148,14 @@
 test ${doTests} = "yes"      && testArg="-T"
 test ${doAda}   = "yes"      && adaArg="-a"
 test ${doGccGo} = "yes"      && gccgoArg="-G"
+test ${doGcj} = "yes"        && gcjArg="-J"
 test ${doBasicTools} = "yes" && basicArgs="-b -D -1 -r"
 
 echo "Checking for just tests override"
 if [ ${justTests} = "yes" ] ; then
   adaArg=""
   gccgoArg=""
+  gcjArg=""
   basicArgs=""
 fi
 
@@ -265,10 +271,10 @@
     doOne=${SCRIPTDIR}/gcc/do_one 
     echo "Building ${cpu}/${bsp}..." 
     echo "time sh -x ${doOne} -v -d ${basicArgs}  \
-        ${gccgoArg} ${adaArg} ${mailArg} ${testArg} \
+        ${gccgoArg} ${gcjArg} ${adaArg} ${mailArg} ${testArg} \
         ${cpu} ${bsp} >${BASEDIR}/${bsp}.log 2>&1"
     time sh -x ${doOne} -v -d ${basicArgs}  \
-        ${gccgoArg} ${adaArg} ${mailArg} ${testArg} \
+        ${gccgoArg} ${gcjArg} ${adaArg} ${mailArg} ${testArg} \
         ${cpu} ${bsp} >${BASEDIR}/${bsp}.log 2>&1
     echo $?
   done



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20110820/85260725/attachment.html>


More information about the vc mailing list