summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-05-16 09:36:55 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-05-16 09:36:55 -0600
commit8103e0321234bec9383d442068a66162e67c2598 (patch)
tree9e7265ee49152481ea4f341779ddf5742daf6365 /apps
parent4e4fe19a8deba9dbb63294bb2ba74a452a663a9f (diff)
downloadpx4-nuttx-8103e0321234bec9383d442068a66162e67c2598.tar.gz
px4-nuttx-8103e0321234bec9383d442068a66162e67c2598.tar.bz2
px4-nuttx-8103e0321234bec9383d442068a66162e67c2598.zip
apps/examples/helloxx entry point name was mangled when built as an NSH builtin; plus some README updates
Diffstat (limited to 'apps')
-rw-r--r--apps/ChangeLog.txt2
-rw-r--r--apps/examples/Makefile5
-rw-r--r--apps/examples/cxxtest/Makefile2
-rw-r--r--apps/examples/helloxx/Makefile2
-rw-r--r--apps/examples/helloxx/helloxx_main.cxx40
5 files changed, 26 insertions, 25 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt
index ec626ea84..a7f0fad8b 100644
--- a/apps/ChangeLog.txt
+++ b/apps/ChangeLog.txt
@@ -553,3 +553,5 @@
is not selected. Also, complete the empty Kconfig file (2013-5-7).
* apps/NxWidgets/Kconfig: Updated to match NxWidgets/Kconfig by
Ken Pettit (2013-5-11).
+ * apps/examples/helloxx: C++ name mangling was occurring when this
+ example is built as an NSH built-in application. (2013-5-16).
diff --git a/apps/examples/Makefile b/apps/examples/Makefile
index a10fef5dc..7827bf9a3 100644
--- a/apps/examples/Makefile
+++ b/apps/examples/Makefile
@@ -59,13 +59,10 @@ CNTXTDIRS = pwm
ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
CNTXTDIRS += adc can cdcacm composite cxxtest dhcpd discover flash_test ftpd
-CNTXTDIRS += hello json keypadtestmodbus mtdpart nettest nxlines relays
+CNTXTDIRS += hello helloxx json keypadtestmodbus mtdpart nettest nxlines relays
CNTXTDIRS += qencoder smart_test telnetd watchdog wgetjson
endif
-ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y)
-CNTXTDIRS += helloxx
-endif
ifeq ($(CONFIG_EXAMPLES_LCDRW_BUILTIN),y)
CNTXTDIRS += lcdrw
endif
diff --git a/apps/examples/cxxtest/Makefile b/apps/examples/cxxtest/Makefile
index 97fdb6ede..ecdc1d4fb 100644
--- a/apps/examples/cxxtest/Makefile
+++ b/apps/examples/cxxtest/Makefile
@@ -100,7 +100,7 @@ $(CXXOBJS): %$(OBJEXT): %.cxx
$(call ARCHIVE, $(BIN), $(OBJS))
@touch .built
-ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y)
+ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
$(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat: $(DEPCONFIG) Makefile
$(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main)
diff --git a/apps/examples/helloxx/Makefile b/apps/examples/helloxx/Makefile
index 44d880658..5cbe7dd59 100644
--- a/apps/examples/helloxx/Makefile
+++ b/apps/examples/helloxx/Makefile
@@ -100,7 +100,7 @@ $(CXXOBJS): %$(OBJEXT): %.cxx
$(call ARCHIVE, $(BIN), $(OBJS))
@touch .built
-ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y)
+ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
$(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat: $(DEPCONFIG) Makefile
$(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main)
diff --git a/apps/examples/helloxx/helloxx_main.cxx b/apps/examples/helloxx/helloxx_main.cxx
index 60fd0487b..eeca52263 100644
--- a/apps/examples/helloxx/helloxx_main.cxx
+++ b/apps/examples/helloxx/helloxx_main.cxx
@@ -1,7 +1,7 @@
//***************************************************************************
// examples/helloxx/helloxx_main.cxx
//
-// Copyright (C) 2009, 2011-2012 Gregory Nutt. All rights reserved.
+// Copyright (C) 2009, 2011-2013 Gregory Nutt. All rights reserved.
// Author: Gregory Nutt <gnutt@nuttx.org>
//
// Redistribution and use in source and binary forms, with or without
@@ -128,38 +128,40 @@ static CHelloWorld g_HelloWorld;
* Name: helloxx_main
****************************************************************************/
-int helloxx_main(int argc, char *argv[])
+extern "C"
{
- // If C++ initialization for static constructors is supported, then do
- // that first
+ int helloxx_main(int argc, char *argv[])
+ {
+ // If C++ initialization for static constructors is supported, then do
+ // that first
#ifdef CONFIG_HAVE_CXXINITIALIZE
- up_cxxinitialize();
+ up_cxxinitialize();
#endif
- // Exercise an explictly instantiated C++ object
+ // Exercise an explictly instantiated C++ object
- CHelloWorld *pHelloWorld = new CHelloWorld;
- printf("helloxx_main: Saying hello from the dynamically constructed instance\n");
- pHelloWorld->HelloWorld();
+ CHelloWorld *pHelloWorld = new CHelloWorld;
+ printf("helloxx_main: Saying hello from the dynamically constructed instance\n");
+ pHelloWorld->HelloWorld();
- // Exercise an C++ object instantiated on the stack
+ // Exercise an C++ object instantiated on the stack
#ifndef CONFIG_EXAMPLES_HELLOXX_NOSTACKCONST
- CHelloWorld HelloWorld;
+ CHelloWorld HelloWorld;
- printf("helloxx_main: Saying hello from the instance constructed on the stack\n");
- HelloWorld.HelloWorld();
+ printf("helloxx_main: Saying hello from the instance constructed on the stack\n");
+ HelloWorld.HelloWorld();
#endif
- // Exercise an statically constructed C++ object
+ // Exercise an statically constructed C++ object
#ifdef CONFIG_HAVE_CXXINITIALIZE
- printf("helloxx_main: Saying hello from the statically constructed instance\n");
- g_HelloWorld.HelloWorld();
+ printf("helloxx_main: Saying hello from the statically constructed instance\n");
+ g_HelloWorld.HelloWorld();
#endif
- delete pHelloWorld;
- return 0;
+ delete pHelloWorld;
+ return 0;
+ }
}
-