summaryrefslogtreecommitdiff
path: root/README
blob: d5f5b9757211b31e846ff4a33c9579437e99c435 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
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