<div dir="ltr"><div>Hello, <br></div><div>As I mentioned in previous threads, RSB patch was not generating function symbols defined</div><div>in ndbm.c, but they were generated when I build newlib repository for SPARC.</div><div>.<br></div><div>.</div><div>So, I made a script to add them manually, from newlib build, to rtems/5/.....<br></div><div><a href="https://github.com/VARoDeK/MiniProject_1-Add_newlib_object_files_to_rtems_libraries/blob/master/script.sh">https://github.com/VARoDeK/MiniProject_1-Add_newlib_object_files_to_rtems_libraries/blob/master/script.sh</a></div><div>.</div><div>.</div><div>The compilation of minimal Testsuite was Successful this time and is generating</div><div>expected correct results.</div><div>========================</div><div>OUTPUT</div><div>========================</div><div>*** BEGIN OF TEST PSXNDBM 01 ***<br>*** TEST VERSION: 5.0.0.5cbee18e0030981cd61b8c9d556cc5c57f6ee082-modified<br>*** TEST STATE: EXPECTED-PASS<br>*** TEST BUILD: RTEMS_POSIX_API<br>*** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB d694d16e5a7241827471af98c8f978ff3eb331fd, Newlib 5c2a3661c)<br>Open Database<br>Store Records in Database<br>Fetch Records from Database<br><br>Name: VARoDeK, <br>Phone Number: 123-321-777-888<br><br>Close Database<br><br>*** END OF TEST PSXNDBM 01 ***<br><br><br>*** FATAL ***<br>fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT)<br>fatal code: 0 (0x00000000)<br>RTEMS version: 5.0.0.5cbee18e0030981cd61b8c9d556cc5c57f6ee082-modified<br>RTEMS tools: 7.4.1 20190514 (RTEMS 5, RSB d694d16e5a7241827471af98c8f978ff3eb331fd, Newlib 5c2a3661c)<br>executing thread ID: 0x08a010001<br>executing thread name: UI1 <br></div><div><div>========================</div><div>.</div><div>I will now make a Testsuite for each and every error and output.</div><div>Should I send the ndbm patch to newlib now?<br></div><div>.</div><div>.</div><div>.</div><div>.</div><div>.</div><div><div>========================</div><div>Patch for Testsuite</div><div><div>========================</div><div>---<br> testsuites/psxtests/Makefile.am      |   8 +++<br> testsuites/psxtests/<a href="http://configure.ac">configure.ac</a>     |   1 +<br> testsuites/psxtests/psxndbm01/init.c | 103 +++++++++++++++++++++++++++<br> 3 files changed, 112 insertions(+)<br> create mode 100644 testsuites/psxtests/psxndbm01/init.c<br><br>diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am<br>index 59c9f2085b..c805973afb 100755<br>--- a/testsuites/psxtests/Makefile.am<br>+++ b/testsuites/psxtests/Makefile.am<br>@@ -694,6 +694,14 @@ psxmutexattr01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxmutexattr01) \<br>         $(support_includes) -I$(top_srcdir)/include<br> endif<br> <br>+if TEST_psxndbm01<br>+psx_tests += psxndbm01<br>+psxndbm01_SOURCES = psxndbm01/init.c<br>+psxndbm01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxndbm01) \<br>+       $(support_includes)<br>+endif<br>+<br>+<br> if TEST_psxobj01<br> psx_tests += psxobj01<br> psx_screens += psxobj01/psxobj01.scn<br>diff --git a/testsuites/psxtests/<a href="http://configure.ac">configure.ac</a> b/testsuites/psxtests/<a href="http://configure.ac">configure.ac</a><br>index 85559e4aa5..07d7ccaf55 100644<br>--- a/testsuites/psxtests/<a href="http://configure.ac">configure.ac</a><br>+++ b/testsuites/psxtests/<a href="http://configure.ac">configure.ac</a><br>@@ -110,6 +110,7 @@ RTEMS_TEST_CHECK([psxmsgq02])<br> RTEMS_TEST_CHECK([psxmsgq03])<br> RTEMS_TEST_CHECK([psxmsgq04])<br> RTEMS_TEST_CHECK([psxmutexattr01])<br>+RTEMS_TEST_CHECK([psxndbm01])<br> RTEMS_TEST_CHECK([psxobj01])<br> RTEMS_TEST_CHECK([psxonce01])<br> RTEMS_TEST_CHECK([psxpasswd01])<br>diff --git a/testsuites/psxtests/psxndbm01/init.c b/testsuites/psxtests/psxndbm01/init.c<br>new file mode 100644<br>index 0000000000..74dec0c969<br>--- /dev/null<br>+++ b/testsuites/psxtests/psxndbm01/init.c<br>@@ -0,0 +1,103 @@<br>+/**<br>+ *  @file<br>+ *  @brief Test suite for inttypes.h methods<br>+ */<br>+<br>+/*<br>+ * SPDX-License-Identifier: BSD-2-Clause<br>+ *<br>+ * Copyright (C) 2019 Vaibhav Gupta<br>+ *<br>+ * Redistribution and use in source and binary forms, with or without<br>+ * modification, are permitted provided that the following conditions<br>+ * are met:<br>+ * 1. Redistributions of source code must retain the above copyright<br>+ *    notice, this list of conditions and the following disclaimer.<br>+ * 2. Redistributions in binary form must reproduce the above copyright<br>+ *    notice, this list of conditions and the following disclaimer in the<br>+ *    documentation and/or other materials provided with the distribution.<br>+ *<br>+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"<br>+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE<br>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE<br>+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE<br>+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br>+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br>+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br>+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN<br>+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)<br>+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br>+ * POSSIBILITY OF SUCH DAMAGE.<br>+ */<br>+<br>+#ifdef HAVE_CONFIG_H<br>+#include "config.h"<br>+#endif<br>+<br>+#include <errno.h><br>+#include <fcntl.h><br>+#include <ndbm.h><br>+#include <stddef.h><br>+#include <stdint.h><br>+#include <stdio.h><br>+#include <sys/stat.h><br>+#include <rtems/test.h><br>+#include <tmacros.h><br>+<br>+<br>+const char rtems_test_name[] = "PSXNDBM 01";<br>+<br>+#define NAME     "VARoDeK"<br>+#define PHONE_NO "123-321-777-888"<br>+#define DB_NAME  "phones_test"<br>+<br>+/* forward declarations to avoid warnings */<br>+rtems_task Init(rtems_task_argument ignored);<br>+DBM *db;<br>+<br>+rtems_task Init(rtems_task_argument ignored)<br>+{<br>+  datum name = { NAME , sizeof(NAME) };<br>+  datum put_phone_no = { PHONE_NO, sizeof(PHONE_NO) };<br>+  datum get_phone_no;<br>+<br>+  TEST_BEGIN();<br>+<br>+  puts( "Open Database" );<br>+  db = dbm_open( DB_NAME , O_RDWR | O_CREAT | O_TRUNC , S_IRWXU );<br>+  rtems_test_assert( db != NULL );<br>+<br>+  puts( "Store Records in Database" );<br>+  dbm_store( db , name , put_phone_no , DBM_INSERT );<br>+<br>+  puts( "Fetch Records from Database" );<br>+  get_phone_no = dbm_fetch( db , name );<br>+  printf( "\nName: %s, \nPhone Number: %s\n\n", (char *)name.dptr , (char *)get_phone_no.dptr );<br>+<br>+  puts( "Close Database" );<br>+  dbm_close( db );<br>+<br>+<br>+<br>+<br>+  TEST_END();<br>+  rtems_test_exit(0);<br>+<br>+}<br>+<br>+/* NOTICE: the clock driver is explicitly disabled */<br>+<br>+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER<br>+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER<br>+<br>+#define CONFIGURE_MAXIMUM_TASKS            1<br>+<br>+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6<br>+<br>+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE<br>+<br>+#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION<br>+<br>+#define CONFIGURE_INIT<br>+#include <rtems/confdefs.h><br>+/* end of file */<br>-- <br>2.21.0<br></div><div><div>========================</div></div></div></div></div></div>