summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <van.freenix@gmail.com>2013-09-05 13:00:59 +0800
committerPeng Fan <van.freenix@gmail.com>2013-09-05 13:47:39 +0800
commit633c0e0d23c4b874c71595a4d9d13b8d4acdf417 (patch)
treefca6d80aac162f6218cd2d2beffdbf694a5573c8
parent03512e563946ee2a7830bad310a2de88d25bc328 (diff)
Test for new features and new tools
Signed-off-by: Peng Fan <van.freenix@gmail.com>
-rw-r--r--rtems.py9
-rw-r--r--shell-init2
-rw-r--r--testcase/3.c6
-rw-r--r--testcase/33.c4
-rw-r--r--testcase/333.c4
-rw-r--r--testcase/4.c8
-rw-r--r--testcase/wscript42
-rw-r--r--wscript6
8 files changed, 79 insertions, 2 deletions
diff --git a/rtems.py b/rtems.py
index 1fb0b2a..84cd193 100644
--- a/rtems.py
+++ b/rtems.py
@@ -383,6 +383,7 @@ def _find_tools(conf, arch, paths, tools):
arch_tools['OBJCOPY'] = conf.find_program([arch + '-objcopy'], path_list = paths)
arch_tools['READELF'] = conf.find_program([arch + '-readelf'], path_list = paths)
arch_tools['RTEMS_LD'] = conf.find_program(['rtems-ld'], path_list = paths)
+ arch_tools['RTEMS_RA'] = conf.find_program(['rtems-ra'], path_list = paths)
tools[arch] = arch_tools
return tools
@@ -512,6 +513,7 @@ def _log_header(conf):
from waflib import TaskGen
from waflib.Tools.ccroot import link_task, USELIB_VARS
USELIB_VARS['rap'] = set(['RTEMS_LINKFLAGS'])
+USELIB_VARS['ra'] = set(['RTEMS_RAFLAGS'])
@TaskGen.extension('.c')
class rap(link_task):
"Link object files into a RTEMS applicatoin"
@@ -519,3 +521,10 @@ class rap(link_task):
ext_out = ['.rap']
vars = ['RTEMS_LINKFLAGS', 'LINKDEPS']
inst_to = '${BINDIR}'
+
+class ra(link_task):
+ "Link object files into a RTEMS applicatoin"
+ run_str = '${RTEMS_RA} ${RTEMS_RAFLAGS} --cc ${CC} ${SRC} -o ${TGT[0].abspath()} ${STLIB_MARKER} ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} ${LIBPATH_ST:LIBPATH} ${LIB_ST:LIB}'
+ ext_out = ['.ra']
+ vars = ['RTEMS_RAFLAGS', 'LINKDEPS']
+ inst_to = '${BINDIR}'
diff --git a/shell-init b/shell-init
index 0859000..ac2f9fa 100644
--- a/shell-init
+++ b/shell-init
@@ -12,4 +12,4 @@ rtl-trace set load load-sect symbol reloc #unresolved
rap ld ./bsdport.rap
rap ls
-rap ld ./test.rap
+#rap ld ./test.rap
diff --git a/testcase/3.c b/testcase/3.c
new file mode 100644
index 0000000..4e63c1b
--- /dev/null
+++ b/testcase/3.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+int ar_func_test(void)
+{
+ printf ("ar_func_test\n");
+ return 0x55;
+}
diff --git a/testcase/33.c b/testcase/33.c
new file mode 100644
index 0000000..dfc08f8
--- /dev/null
+++ b/testcase/33.c
@@ -0,0 +1,4 @@
+int t1(void)
+{
+ return 1;
+}
diff --git a/testcase/333.c b/testcase/333.c
new file mode 100644
index 0000000..0c810fc
--- /dev/null
+++ b/testcase/333.c
@@ -0,0 +1,4 @@
+int t2(void)
+{
+ return 2;
+}
diff --git a/testcase/4.c b/testcase/4.c
new file mode 100644
index 0000000..f038c0b
--- /dev/null
+++ b/testcase/4.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+int rtems(int argc, char **argv)
+{
+ int a;
+ a =ar_func_test();
+ printf("a = 0x%x\n",a);
+ return 0;
+}
diff --git a/testcase/wscript b/testcase/wscript
index b455b4e..f9603bd 100644
--- a/testcase/wscript
+++ b/testcase/wscript
@@ -16,6 +16,44 @@ def build(bld):
# cflags = '-mthumb -fno-common -DTHUMB_TEST',
# cflags = '-marm -mcpu=arm1176jzf-s -fno-common -DARM_TEST',
+############ For ar rap #################
+ bld(target = '3',
+ features = 'c cstlib',
+ includes = bld.includes,
+ cflags = '-fno-common',
+ defines = bld.defines,
+ source = ['3.c', '33.c', '333.c'])
+
+ bld(target = '../lib3.ra',
+ rule = 'touch ../lib3.ra')
+
+ bld(
+ features = 'c ra',
+ xxxx = 'hello',
+
+ cflags = '-fno-common',
+
+ rtems_raflags = ['--lib', '3',
+ '--lib-path', 'testcase',
+ '--output-path', './',
+ '--no-stdlibs'],)
+
+ bld(target = 'my.rap',
+ features = 'c rap',
+ xxxx = 'hello',
+
+ cflags = '-fno-common',
+
+ rtems_linkflags = ['--base', 'rtld.prelink',
+ '--entry', 'rtems',
+ '--lib-path', 'testcase',
+ '--lib', '3', '--runtime-lib', 'ttt'],
+ source = ['4.c'])
+
+ bld(target = '../libttt.ra',
+ rule = 'touch ../libttt.ra')
+##############End########################
+
if arch == 'arm':
bld(target = 'test.rap',
features = 'c rap',
@@ -135,3 +173,7 @@ def build(bld):
bld(target = '../test.rap',
source = ['test.rap'],
rule = 'cp ${SRC} ${TGT}')
+
+ bld(target = '../my.rap',
+ source = ['my.rap'],
+ rule = 'cp ${SRC} ${TGT}')
diff --git a/wscript b/wscript
index 246e67e..8e96d3b 100644
--- a/wscript
+++ b/wscript
@@ -189,6 +189,8 @@ def build(bld):
bld.recurse('testcase');
+ bld.add_group ()
+
if re.match('pc[3456]86', bsp) is not None:
raps = ['bsdport.rap']
else:
@@ -196,8 +198,9 @@ def build(bld):
bld(target = 'fs-root.tar',
name = 'fs',
- source = ['shell-init', 'libx.a', 'x.rap', 'test.rap'] + raps,
+ source = ['shell-init', 'libx.a', 'x.rap', 'test.rap', 'my.rap', 'lib3.ra', 'libttt.ra'] + raps,
rule = 'tar --format=ustar -cf ${TGT} ${SRC}')
+
bld.objects(name = 'rootfs',
target = 'fs-root-tarfile.o',
source = 'fs-root.tar',
@@ -226,6 +229,7 @@ def build(bld):
def rebuild(ctx):
import waflib.Options
+
waflib.Options.commands.extend(['clean', 'build'])
def tags(ctx):