On 25/05/2016 21:30, Sebastian Huber wrote:
I get now an undefined reference error:

Making all in loopback
gmake[6]: Entering directory
`/build/git-build/b-sis/sparc-rtems4.12/c/sis/testsuites/samples/loopback'
sparc-rtems4.12-gcc -B../../../../../sis/lib/ -specs bsp_specs -qrtems
-mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs  -Wl,--gc-sections -mcpu=cypress   -o loopback.exe init.o
../../../../../sis/lib/librtemscpu.a(testbeginend.o): In function
`rtems_test_begin':
/home/EB/sebastian_h/git-rtems/c/src/../../cpukit/libmisc/testsupport/testbeginend.c:23:
undefined reference to `rtems_test_printer'
/home/EB/sebastian_h/git-rtems/c/src/../../cpukit/libmisc/testsupport/testbeginend.c:23:
undefined reference to `rtems_test_printer'
../../../../../sis/lib/librtemscpu.a(testbeginend.o): In function
`rtems_test_end':
/home/EB/sebastian_h/git-rtems/c/src/../../cpukit/libmisc/testsupport/testbeginend.c:31:
undefined reference to `rtems_test_printer'
/home/EB/sebastian_h/git-rtems/c/src/../../cpukit/libmisc/testsupport/testbeginend.c:31:
undefined reference to `rtems_test_printer'


Sorry about this, it looks like my --enable-network build is not working. I will take a look.

Why is it defined multiple times in the individual tests and not in
libmisc?

I could have gone one of two ways and decided to be specific for now. I did not want to add a new global to all tests yet and create a further variation on how to print in the tests. I wanted to narrow the focus and limit the options so we have a chance at cleaning this stuff up.

The testsuite is not great in this area and that is being polite. The tmacros.h defines to replace printf, puts etc is not great and prone to errors. The test code does not have a single approach to printed output, you could use a define and include tmacros.h, or use *_begink/*_endk and then implicitly manage the calls to printk, and/or a combination of these. I am not sure if a single approach can be used for all tests or if it matters. I did not have time to review the tests and see what could be done.

I see a second bigger pass over the code to remove the support from tmacros.h and add it to libmisc and to change all prints, where ever possible to rtems_printf, and rtems_puts (which will need to be added). There could even be a test version of these added which uses the rtems_printer. Each test will need a printer defined in Init and the output path defined.

Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to