summaryrefslogblamecommitdiffstats
path: root/README
blob: d5f5b9757211b31e846ff4a33c9579437e99c435 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                               
                                               





                                                                

                                                                     
 
        






                             
                                
 
                                                                     

             

                                                             
 

                                                              
 




                                                                    
 















                                                                              





                                                 
                                                      
 

                
 
                            
                                               
                                 
 
       
                                       

          
                                               

        
                                                    

     


                                              

     
                                               


                             

                                             


                                                           
                                              



                                                         




                     

                                                       

                                         








                                                                      
 




                               






                                                                    
                                  









                                                                   
                                
 
 


                     
                                                         


                                              
                                                                   



                               

                                                        



                      

                                                              
 











                                                                                         
This package contains a collection of scripts and support files
that support running the GCC (http://gcc.gnu.org) testsuite for
C, C++, Ada, FORTRAN, GCJ, Go, and Objective-C.

This testing environment is used on the GCC Compile Farm as well
as at OAR.

Source Code and Patches
=======================
You are responsible for downloading all the tools and setting up the 
source. And it should look something like this:

TESTROOT
  - gcc SOURCE directory
  - gdb SOURCE directory
  - rtems SOURCE directory
  - automake SOURCE directory
  - autoconf SOURCE directory
  - binutils SOURCE directory
  - newlib SOURCE directory
  - rtems-testing (this package)

Update rtems-testing/VERSIONS to point to the appropriate directories
and versions.

If the various source directories contain a CVS subdirectory,
then they will be updated using CVS.

If the various source directories contain a .svn subdirectory,
then they will be updated using svn.

Look near the top of do_one for a number of environment variables
such as whether to build binutils and gdb from source or just
copy the RPM contents to the working install point.

do_one in this directory has a LOT of options to control what to do.

You will need a toolchain to bootstrap and build RTEMS. This toolchain can be
in turn build using rtems-source-builder.
Once you've built the toolchain, add its 'bin' directory to $PATH, as follows:
export PATH=/path/to/toolchain/bin:${PATH}
Make sure you run the bootstrap script on the RTEMS source directory before
running do_one -r.

do_one -r will build RTEMS and its sample programs.
You can use the samples to make sure the test runner works for your board.
I.e you can run:
~/rtems-testing/sim-scripts/realview_pbx_a9_qemu -i ticker.exe
and see if the results make sense. You may notice the ticker sample will run
faster than "real time" because it's a simulation, and fast idle is enabled
by default.


How to Setup a Source Tree For Testing
======================================
# Make sure test bin directories are in your PATH
# Add compiled tools install directory
export PATH=${HOME}/test-gcc/install/bin:${PATH}
# Add simulator scripts install directory
export PATH=${HOME}/test-gcc/rtems-testing/bin:${PATH}

mkdir ~/test-gcc
cd ~/test-gcc

# test script infrastructure
git clone git://git.rtems.org/rtems-testing.git
make -C rtems-testing/sim-scripts

# rtems
git clone git://git.rtems.org/rtems.git

# binutils
git clone git://sourceware.org/git/binutils.git

# newlib
git clone git://sourceware.org/git/newlib-cygwin.git

# gdb
wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.xz
tar -xvf gdb-7.10.tar.xz
rm gdb-7.10.tar.xz

# gcc
git clone git://gcc.gnu.org/git/gcc.git gcc-git

# symlink newlib into gcc-svn
cd gcc-svn
ln -s ~/test-gcc/newlib-cygwin/src/newlib .
ln -s ~/test-gcc/newlib-cygwin/src/libgloss .
cd ..

# obtain automake and autoconf from ftp.gnu.org as tarballs
# NOTE: Check versions required for RTEMS CVS.
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
tar -xvf autoconf-2.69.tar.xz
wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz
tar -xvf automake-1.15.tar.xz

# make install points
mkdir install
mkdir bsp-install
mkdir log

### Verify the file VERSIONS matches your installation.
=========================================

x86_64 Host
============

You will likely need the 32 bit glibc development kit.  If you do not
have this you will get an error like the following while building gcc:

gnu/stubs-32.h: No such file or directory

Fedora 10: yum install glibc-devel

DejaGNU
========

Fedora 10: Install dejagnu RPM.

MPFR/GMP
========

You must have a sufficiently recent version of GMP and MPFR to build
GCC.  On some OSes you can install a standard package.  On others, 
you may have to provide your own installation.

Fedora 10: Install mpfr-devel RPM.

GNAT
====

You must have a native GNAT installed.  .  On some OSes you can
install a standard package.  On others, you may have to provide
your own installation.  The first step in the build process is
building a native compiler with potentially C, C++ and Ada support.
This compiler will be used for all subsequent cross tool builds.

Fedora 10: Install gcc-gnat RPM.


DejaGNU Support Files
=====================

${HOME}/.dejagnurc may point dejagnu to another location.

      set boards_dir /home/joel/dejagnu/boards

The scripts in this directory use their own dejagnu/boards support.

Ada ACATS Testing Support Files
===============================

The files in gcc/testsuite/ada/acats/ directory support 
that directory in the gcc source tree.

C/C++ Support Files
======================

The files rtems_gcc_main.c and rundeja in the top directory
support the gcc/testsuite subdirectory in the gcc source tree.

Skyeye Installation
===================

15 Jan 2009: 1.2.7 does not work with RTEMS. Unknown reason.  Use 1.2.5
  until this is resolved.

mkdir ~/skyeye
cd ~/skyeye
svn co https://skyeye.svn.sourceforge.net/svnroot/skyeye/skyeye-v1/branches/skyeye-1.2.5/
cd skyeye-1.2.5
./configure
make