[PATCH] dl01, dl02, dl05: Fix unresolved printf symbol

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Nov 15 06:57:41 UTC 2017


The link time wrap of printf leads to unresolved symboles in the
loadable modules.  This resulted in infinite loops and test timeouts.
Use rtems_printf() for output.

Update #3199.
---
 testsuites/libtests/dl01/dl-o1.c   | 7 +++----
 testsuites/libtests/dl02/dl-o1.c   | 7 ++++---
 testsuites/libtests/dl02/dl-o2.c   | 6 ++++--
 testsuites/libtests/dl05/dl-o5.cpp | 9 +++++++--
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/testsuites/libtests/dl01/dl-o1.c b/testsuites/libtests/dl01/dl-o1.c
index 6e7bb8a07c..a47beb1d51 100644
--- a/testsuites/libtests/dl01/dl-o1.c
+++ b/testsuites/libtests/dl01/dl-o1.c
@@ -6,14 +6,13 @@
  * http://www.rtems.org/license/LICENSE.
  */
 
-#include <stdio.h>
-#include <stdlib.h>
-
 /**
  * Hello World as a loadable module.
  */
 
-#include <stdio.h>
+#include <rtems/test.h>
+
+#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
 /*
  * Yes a decl in the source. This is a modules main and I could not find which
diff --git a/testsuites/libtests/dl02/dl-o1.c b/testsuites/libtests/dl02/dl-o1.c
index ff5a853c33..a4355d6e37 100644
--- a/testsuites/libtests/dl02/dl-o1.c
+++ b/testsuites/libtests/dl02/dl-o1.c
@@ -6,12 +6,13 @@
  * http://www.rtems.org/license/LICENSE.
  */
 
-#include <stdio.h>
-#include <stdlib.h>
+#include "dl-o2.h"
 
 #include <dlfcn.h>
 
-#include "dl-o2.h"
+#include <rtems/test.h>
+
+#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
 typedef int (*func1_t)(int argc, const char* argv[]);
 
diff --git a/testsuites/libtests/dl02/dl-o2.c b/testsuites/libtests/dl02/dl-o2.c
index 43a337a1c0..4c1a918dea 100644
--- a/testsuites/libtests/dl02/dl-o2.c
+++ b/testsuites/libtests/dl02/dl-o2.c
@@ -6,10 +6,12 @@
  * http://www.rtems.org/license/LICENSE.
  */
 
-#include <stdio.h>
-
 #include "dl-o2.h"
 
+#include <rtems/test.h>
+
+#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
+
 int dl_o2_func1 (int argc, char* argv[])
 {
   int arg;
diff --git a/testsuites/libtests/dl05/dl-o5.cpp b/testsuites/libtests/dl05/dl-o5.cpp
index 5918e8f2d5..b70790ea7b 100644
--- a/testsuites/libtests/dl05/dl-o5.cpp
+++ b/testsuites/libtests/dl05/dl-o5.cpp
@@ -1,6 +1,11 @@
-#include <cstdio>
-#include <stdexcept>
 #include "dl-load.h" /* make the symbol a C linkage */
+
+#include <stdexcept>
+
+#include <rtems/test.h>
+
+#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
+
 void exception_dl(bool throw_runtime)
 {
   printf("exception_dl: begin\n");
-- 
2.12.3



More information about the devel mailing list