[PATCH 3/3] rtems: Provide nonzero argc required by gtest init

2017-09-30 Thread Martin Erik Werner
Signed-off-by: Martin Erik Werner 
---
 rtems/gtest-main.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/rtems/gtest-main.h b/rtems/gtest-main.h
index 81ec91e..797d12e 100644
--- a/rtems/gtest-main.h
+++ b/rtems/gtest-main.h
@@ -39,8 +39,9 @@
 extern "C" {
   void *POSIX_Init(void *)
   {
-int argc = 0;
-char **argv = NULL;
+/* gtest requires nonzero arg count */
+int argc = 1;
+char *argv[] = { "dummy" };
 testing::InitGoogleTest(, argv);
 
 int exit_status = RUN_ALL_TESTS();
-- 
2.11.0

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


[PATCH 2/3] rtems: Make prefix configurable

2017-09-30 Thread Martin Erik Werner
If the toolchain has been relocated, the configured-with-prefix will not
match the desired install path. Hence enable setting prefix manually in
the install-target.sh script.

Signed-off-by: Martin Erik Werner 
---
 rtems/install-target.sh | 21 +++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/rtems/install-target.sh b/rtems/install-target.sh
index f6d89f6..df2e5d1 100755
--- a/rtems/install-target.sh
+++ b/rtems/install-target.sh
@@ -3,9 +3,26 @@
 target="$1"
 
 CXX="$target-g++"
-if which "$CXX" ; then
-   prefix=`"$CXX" --verbose 2>&1 | grep 'Configured with' | sed 
's/.*prefix=//' | sed 's/ .*//'`
 
+case $# in
+   1)
+   if ! which "$CXX" ; then
+   exit 1
+   fi
+   prefix=`"$CXX" --verbose 2>&1 | grep 'Configured with' | sed 
's/.*prefix=//' | sed 's/ .*//'`
+   ;;
+
+   2)
+   prefix="$2"
+   ;;
+
+   *)
+   echo "usage install-target.sh  []"
+   exit 1
+   ;;
+esac
+
+if which "$CXX" ; then
for i in `"$CXX" --print-multi-lib` ; do
multilibdir=`echo $i | sed 's/;.*//'`
CFLAGS=`echo $i | sed 's/.*;//' | sed 's/@/ -/g'`
-- 
2.11.0

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


[PATCH 1/3] rtems: Handle multi-level multilib directories

2017-09-30 Thread Martin Erik Werner
Sometimes, multilib directories have multiple levels, for example
no-delay/soft-float, make sure to handle this by creating directories
before installing.

Signed-off-by: Martin Erik Werner 
---
 rtems/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/rtems/Makefile b/rtems/Makefile
index 52a82df..4852d60 100644
--- a/rtems/Makefile
+++ b/rtems/Makefile
@@ -43,6 +43,7 @@ $(BUILDDIR)/%.o: $(SRCDIR)/%.cc
$(CXX) $(CPPFLAGS) $(CFLAGS) $(DEPFLAGS) $(WARNFLAGS) -c $< -o $@
 
 install: all
+   mkdir -p $(PREFIX)/$(TARGET)/lib/$(MULTILIBDIR)
install -m 644 -t $(PREFIX)/$(TARGET)/lib/$(MULTILIBDIR) $(LIB)
 
 RTEMS_HEADERS =
-- 
2.11.0

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


[PATCH 0/3] Some fixes for Google Test on RTEMS

2017-09-30 Thread Martin Erik Werner
Based on some experimentation with Google Test on RTEMS, here are some
patches that fell out of that process, which might be interesting?

Martin Erik Werner (3):
  rtems: Handle multi-level multilib directories
  rtems: Make prefix configurable
  rtems: Provide nonzero argc required by gtest init

 rtems/Makefile  |  1 +
 rtems/gtest-main.h  |  5 +++--
 rtems/install-target.sh | 21 +++--
 3 files changed, 23 insertions(+), 4 deletions(-)

I have tested this on a non-virtual or1k target, and gotten it working
with the precompiled and installed gtest.a and gtest-main.h.

Some details that might be worth noting is that:
* -std=gnu++11 appears to be needed for fdopen() and other posix
  non-ansi friends.
* -lgtest must be linked after the test suite object.

-- 
2.11.0

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