This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new b217de7  apps: Remove all stuff related to CONFIG_xxx_CXXINITIALIZE
b217de7 is described below

commit b217de70e5ff90e2913ce1d2c98300743bb880dd
Author: Xiang Xiao <[email protected]>
AuthorDate: Tue Jun 30 20:57:45 2020 +0800

    apps: Remove all stuff related to CONFIG_xxx_CXXINITIALIZE
    
    since it is moved to the central place in nuttx side instead
    
    Signed-off-by: Xiang Xiao <[email protected]>
    Change-Id: I544d6110f1ca6460f7c82f970870aa9b1e7ab3dd
---
 examples/README.txt                 |   5 --
 examples/elf/Kconfig                |  10 ---
 examples/elf/elf_main.c             |   8 ---
 examples/elf/tests/helloxx/Makefile |   8 +--
 examples/helloxx/Kconfig            |  14 ----
 examples/helloxx/helloxx_main.cxx   |  16 -----
 examples/nxterm/nxterm_main.c       |  22 +++---
 graphics/nxwm/src/nxwm_main.cxx     |  10 ---
 graphics/twm4nx/src/twm4nx_main.cxx |   7 --
 include/platform/cxxinitialize.h    |  84 ----------------------
 platform/Kconfig                    |   1 -
 platform/Makefile                   |   3 -
 platform/gnu/Kconfig                |  13 ----
 platform/gnu/Make.defs              |  51 --------------
 platform/gnu/gnu_cxxinitialize.c    | 134 ------------------------------------
 system/nsh/Kconfig                  |  11 ---
 system/nsh/README.txt               |  10 ---
 system/nsh/nsh_main.c               |  14 ----
 testing/README.txt                  |   5 --
 testing/cxxtest/Kconfig             |  14 ----
 testing/cxxtest/README.txt          |   5 --
 testing/cxxtest/cxxtest_main.cxx    |  22 ------
 22 files changed, 13 insertions(+), 454 deletions(-)

diff --git a/examples/README.txt b/examples/README.txt
index 23f4cfb..de4c759 100644
--- a/examples/README.txt
+++ b/examples/README.txt
@@ -542,11 +542,6 @@ examples/helloxx
       "built-in"  that can be executed from the NSH command line.
     CONFIG_EXAMPLES_HELLOXX_NOSTACKCONST - Set if the system does not
       support construction of objects on the stack.
-    CONFIG_EXAMPLES_HELLOXX_CXXINITIALIZE - By default, if CONFIG_HAVE_CXX
-      and CONFIG_HAVE_CXXINITIALIZE are defined, then this example
-      will call the NuttX function to initialize static C++ constructors.
-      This option may be disabled, however, if that static initialization
-      was performed elsewhere.
 
   Also needed:
 
diff --git a/examples/elf/Kconfig b/examples/elf/Kconfig
index 1dd4246..8bb752b 100644
--- a/examples/elf/Kconfig
+++ b/examples/elf/Kconfig
@@ -120,16 +120,6 @@ config EXAMPLES_ELF_LIBC
                program greatly increasing the total code size.  This option is
                primarily intended only for testing.
 
-config EXAMPLES_ELF_CXXINITIALIZE
-       bool "C++ Initialization"
-       default y
-       depends on HAVE_CXX && HAVE_CXXINITIALIZE
-       ---help---
-               By default, if CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE are
-               defined, then this example will call the NuttX function to
-               initialize static C++ constructors.  This option may be 
disabled,
-               however, if that static initialization was performed elsewhere.
-
 config EXAMPLES_ELF_UCLIBCXX
        bool "uClibc++ is installed"
        default n
diff --git a/examples/elf/elf_main.c b/examples/elf/elf_main.c
index bdeba4f..b35308b 100644
--- a/examples/elf/elf_main.c
+++ b/examples/elf/elf_main.c
@@ -41,8 +41,6 @@
 #include <nuttx/drivers/ramdisk.h>
 #include <nuttx/binfmt/binfmt.h>
 
-#include "platform/cxxinitialize.h"
-
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
@@ -208,12 +206,6 @@ int main(int argc, FAR char *argv[])
   int ret;
   int i;
 
-#if defined(CONFIG_EXAMPLES_ELF_CXXINITIALIZE)
-  /* Call all C++ static constructors */
-
-  up_cxxinitialize();
-#endif
-
   /* Initialize the memory monitor */
 
   mm_initmonitor();
diff --git a/examples/elf/tests/helloxx/Makefile 
b/examples/elf/tests/helloxx/Makefile
index 4fea478..6212963 100644
--- a/examples/elf/tests/helloxx/Makefile
+++ b/examples/elf/tests/helloxx/Makefile
@@ -63,7 +63,7 @@ BIN1 = hello++1
 ALL_BIN = $(FSIMG_DIR)/$(BIN1)
 BIN2 = hello++2
 ALL_BIN += $(FSIMG_DIR)/$(BIN2)
-ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
+ifeq ($(CONFIG_HAVE_CXXINITIALIZE),y)
 BIN3 = hello++3
 ALL_BIN += $(FSIMG_DIR)/$(BIN3)
 ifeq ($(CONFIG_EXAMPLES_ELF_UCLIBCXX),y)
@@ -80,7 +80,7 @@ OBJS1 = $(SRCS1:.c=$(OBJEXT))
 SRCS2 = $(BIN2).c
 OBJS2 = $(SRCS2:.c=$(OBJEXT))
 
-ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
+ifeq ($(CONFIG_HAVE_CXXINITIALIZE),y)
 SRCS3 = $(BIN3).c
 OBJS3 = $(SRCS3:.c=$(OBJEXT))
 ifeq ($(CONFIG_EXAMPLES_ELF_UCLIBCXX),y)
@@ -125,7 +125,7 @@ $(BIN2): $(OBJS2)
 
 # BIN3 is equivalent to BIN2 except that is uses static initializers
 
-ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
+ifeq ($(CONFIG_HAVE_CXXINITIALIZE),y)
 $(BIN3): $(OBJS3)
        @echo "LD: $<"
        $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
@@ -158,7 +158,7 @@ ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
        $(Q) $(STRIP) $(FSIMG_DIR)/$(BIN2)
 endif
 
-ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
+ifeq ($(CONFIG_HAVE_CXXINITIALIZE),y)
 $(FSIMG_DIR)/$(BIN3): $(BIN3)
        $(Q) mkdir -p $(FSIMG_DIR)
        $(Q) install $(BIN3) $(FSIMG_DIR)/$(BIN3)
diff --git a/examples/helloxx/Kconfig b/examples/helloxx/Kconfig
index 7843254..630c93b 100644
--- a/examples/helloxx/Kconfig
+++ b/examples/helloxx/Kconfig
@@ -9,17 +9,3 @@ config EXAMPLES_HELLOXX
        depends on HAVE_CXX
        ---help---
                Enable the \"Hello, World!\" C++ example
-
-if EXAMPLES_HELLOXX
-
-config EXAMPLES_HELLOXX_CXXINITIALIZE
-       bool "C++ Initialization"
-       default y
-       depends on HAVE_CXX && HAVE_CXXINITIALIZE
-       ---help---
-               By default, if CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE are
-               defined, then this example will call the NuttX function to
-               initialize static C++ constructors.  This option may be 
disabled,
-               however, if that static initialization was performed elsewhere.
-
-endif
diff --git a/examples/helloxx/helloxx_main.cxx 
b/examples/helloxx/helloxx_main.cxx
index 6eda33f..2edae81 100644
--- a/examples/helloxx/helloxx_main.cxx
+++ b/examples/helloxx/helloxx_main.cxx
@@ -42,19 +42,10 @@
 #include <cstdio>
 #include <debug.h>
 
-#include <nuttx/init.h>
-
-#include "platform/cxxinitialize.h"
-
 //***************************************************************************
 // Definitions
 //***************************************************************************
 // Configuration ************************************************************
-// C++ initialization requires CXX initializer support
-
-#if !defined(CONFIG_HAVE_CXX) || !defined(CONFIG_HAVE_CXXINITIALIZE)
-#  undef CONFIG_EXAMPLES_HELLOXX_CXXINITIALIZE
-#endif
 
 // Debug ********************************************************************
 // Non-standard debug that may be enabled just for testing the constructors
@@ -129,13 +120,6 @@ extern "C"
 {
   int main(int argc, FAR char *argv[])
  {
-    // If C++ initialization for static constructors is supported, then do
-    // that first
-
-#ifdef CONFIG_EXAMPLES_HELLOXX_CXXINITIALIZE
-    up_cxxinitialize();
-#endif
-
     // Exercise an explicitly instantiated C++ object
 
     CHelloWorld *pHelloWorld = new CHelloWorld;
diff --git a/examples/nxterm/nxterm_main.c b/examples/nxterm/nxterm_main.c
index 0384630..9f60848 100644
--- a/examples/nxterm/nxterm_main.c
+++ b/examples/nxterm/nxterm_main.c
@@ -63,7 +63,6 @@
 #include <nuttx/nx/nxfonts.h>
 #include <nuttx/nx/nxterm.h>
 
-#include "platform/cxxinitialize.h"
 #include "nshlib/nshlib.h"
 
 #include "nxterm_internal.h"
@@ -117,7 +116,8 @@ static int nxterm_initialize(void)
   ret = boardctl(BOARDIOC_NX_START, 0);
   if (ret < 0)
     {
-      printf("nxterm_initialize: Failed to start the NX server: %d\n", errno);
+      printf("nxterm_initialize: Failed to start the NX server: %d\n",
+             errno);
       return ERROR;
     }
 
@@ -145,9 +145,9 @@ static int nxterm_initialize(void)
         }
 #endif
 
-      /* Start a separate thread to listen for server events.  This is probably
-       * the least efficient way to do this, but it makes this example flow 
more
-       * smoothly.
+      /* Start a separate thread to listen for server events.  This is
+       * probably the least efficient way to do this, but it makes this
+       * example flow more smoothly.
        */
 
       pthread_attr_init(&attr);
@@ -230,12 +230,6 @@ int main(int argc, FAR char *argv[])
   printf("nxterm_main: Started\n");
   memset(&g_nxterm_vars, 0, sizeof(struct nxterm_state_s));
 
-  /* Call all C++ static constructors */
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-  up_cxxinitialize();
-#endif
-
   /* NSH Initialization *****************************************************/
 
   /* Initialize the NSH library */
@@ -312,8 +306,10 @@ int main(int argc, FAR char *argv[])
 
   /* Determine the size and position of the window */
 
-  g_nxterm_vars.wndo.wsize.w = g_nxterm_vars.xres / 2 + g_nxterm_vars.xres / 4;
-  g_nxterm_vars.wndo.wsize.h = g_nxterm_vars.yres / 2 + g_nxterm_vars.yres / 4;
+  g_nxterm_vars.wndo.wsize.w = g_nxterm_vars.xres / 2 +
+                               g_nxterm_vars.xres / 4;
+  g_nxterm_vars.wndo.wsize.h = g_nxterm_vars.yres / 2 +
+                               g_nxterm_vars.yres / 4;
 
   g_nxterm_vars.wpos.x       = g_nxterm_vars.xres / 8;
   g_nxterm_vars.wpos.y       = g_nxterm_vars.yres / 8;
diff --git a/graphics/nxwm/src/nxwm_main.cxx b/graphics/nxwm/src/nxwm_main.cxx
index f4cf73b..8543c6e 100644
--- a/graphics/nxwm/src/nxwm_main.cxx
+++ b/graphics/nxwm/src/nxwm_main.cxx
@@ -49,10 +49,6 @@
 #  include "platform/configdata.h"
 #endif
 
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-#  include "platform/cxxinitialize.h"
-#endif
-
 #include "graphics/nxwm/ctaskbar.hxx"
 #include "graphics/nxwm/cstartwindow.hxx"
 
@@ -502,12 +498,6 @@ static bool createMediaPlayer(void)
 
 int main(int argc, char *argv[])
 {
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-  // Call all C++ static constructors
-
-  up_cxxinitialize();
-#endif
-
 #if defined(CONFIG_LIB_BOARDCTL) && !defined(CONFIG_BOARD_LATE_INITIALIZE)
   // Should we perform board-specific initialization?  There are two ways
   // that board initialization can occur:  1) automatically via
diff --git a/graphics/twm4nx/src/twm4nx_main.cxx 
b/graphics/twm4nx/src/twm4nx_main.cxx
index ae41de9..ef7772b 100644
--- a/graphics/twm4nx/src/twm4nx_main.cxx
+++ b/graphics/twm4nx/src/twm4nx_main.cxx
@@ -46,7 +46,6 @@
 
 #include <sys/boardctl.h>
 
-#include "platform/cxxinitialize.h"
 #include "netutils/netinit.h"
 
 #include "graphics/twm4nx/twm4nx_config.hxx"
@@ -143,12 +142,6 @@ int main(int argc, FAR char *argv[])
 
   UNUSED(ret);
 
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-  // Call all C++ static constructors
-
-  up_cxxinitialize();
-#endif
-
   /* Create an instance of CTwm4Nx and initialize it */
 
   FAR CTwm4Nx *twm4nx = new CTwm4Nx(display);
diff --git a/include/platform/cxxinitialize.h b/include/platform/cxxinitialize.h
deleted file mode 100644
index 37ca83e..0000000
--- a/include/platform/cxxinitialize.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * apps/include/platform/cxxinitialize.h
- *
- *   Copyright (C) 2017 Gregory Nutt.  All rights reserved.
- *   Author: Gregory Nutt <[email protected]>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- *    used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#ifndef __APPS_INCLUDE_PLATFORM_CXXINITIALIZE_H
-#define __APPS_INCLUDE_PLATFORM_CXXINITIALIZE_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-#undef EXTERN
-#if defined(__cplusplus)
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-
-#define EXTERN extern
-#endif
-
-/****************************************************************************
- * Name: up_cxxinitialize
- *
- * Description:
- *   If C++ and C++ static constructors are supported, then this function
- *   must be provided by board-specific logic in order to perform
- *   initialization of the static C++ class instances.
- *
- *   This function should then be called in the application-specific
- *   logic in order to perform the C++ initialization.  NOTE  that no
- *   component of the core NuttX RTOS logic is involved; This function
- *   definition only provides the 'contract' between application
- *   specific C++ code and platform-specific toolchain support
- *
- ****************************************************************************/
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-void up_cxxinitialize(void);
-#endif
-
-#undef EXTERN
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __APPS_INCLUDE_PLATFORM_CXXINITIALIZE_H */
diff --git a/platform/Kconfig b/platform/Kconfig
index c3baac9..844dcc9 100644
--- a/platform/Kconfig
+++ b/platform/Kconfig
@@ -16,7 +16,6 @@ config PLATFORM_CONFIGDATA
                volatile storage can be used:  A file, EEPROM, hardcoded values 
in
                FLASH, etc.
 
-source "$APPSDIR/platform/gnu/Kconfig"
 source "$APPSDIR/platform/board/Kconfig"
 
 endmenu # Platform-specific Support
diff --git a/platform/Makefile b/platform/Makefile
index 35732a8..a0d2a9a 100644
--- a/platform/Makefile
+++ b/platform/Makefile
@@ -39,7 +39,6 @@ CONFIG_ARCH_BOARD ?= dummy
 
 # Directories
 
-GNUDIR      = gnu
 PLATFORMDIR = board
 DUMMYDIR    = $(APPDIR)/platform/dummy
 
@@ -54,11 +53,9 @@ VPATH       += board
 ROOTDEPPATH += --obj-path bin
 ROOTDEPPATH += --obj-suffix $(OBJEXT)
 ROOTDEPPATH += --dep-path $(PLATFORMDIR)
-ROOTDEPPATH += --dep-path $(GNUDIR)
 
 # Binaries
 
--include $(GNUDIR)$(DELIM)Make.defs
 -include $(PLATFORMDIR)$(DELIM)Make.defs
 
 # Build context setup
diff --git a/platform/gnu/Kconfig b/platform/gnu/Kconfig
deleted file mode 100644
index 43bccac..0000000
--- a/platform/gnu/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see the file kconfig-language.txt in the NuttX tools repository.
-#
-
-config HAVE_CXXINITIALIZE
-       bool "Have C++ initialization"
-       default n
-       depends on HAVE_CXX
-       ---help---
-               The platform-specific logic includes support for initialization
-               of static C++ instances for this architecture and for the 
selected
-               toolchain (via up_cxxinitialize()).
diff --git a/platform/gnu/Make.defs b/platform/gnu/Make.defs
deleted file mode 100644
index 65d7b0f..0000000
--- a/platform/gnu/Make.defs
+++ /dev/null
@@ -1,51 +0,0 @@
-############################################################################
-# apps/platform/gnu/Make.defs
-#
-#   Copyright (C) 2017 Gregory Nutt. All rights reserved.
-#   Author: Gregory Nutt <[email protected]>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in
-#    the documentation and/or other materials provided with the
-#    distribution.
-# 3. Neither the name NuttX nor the names of its contributors may be
-#    used to endorse or promote products derived from this software
-#    without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-############################################################################
-
-# Check for a GNU toolchain
-
-ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
-
-# Add GNU specific sources to ASRCS and CSRCS
-
-ifeq ($(CONFIG_HAVE_CXXINITIALIZE),y)
-CSRCS += gnu_cxxinitialize.c
-endif
-
-# Add the gnu/ sub-directory to the build
-
-VPATH += :gnu
-DEPPATH += --dep-path gnu
-
-endif # CONFIG_ARCH_TOOLCHAIN_GNU
diff --git a/platform/gnu/gnu_cxxinitialize.c b/platform/gnu/gnu_cxxinitialize.c
deleted file mode 100644
index 35993e9..0000000
--- a/platform/gnu/gnu_cxxinitialize.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
- * apps/platform/gnu/gnu_cxxinitialize.c
- *
- *   Copyright (C) 2017 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <[email protected]>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- *    used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <debug.h>
-
-#include "platform/cxxinitialize.h"
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-/* Debug ********************************************************************/
-/* Non-standard debug that may be enabled just for testing the static
- * constructors.
- */
-
-#ifdef CONFIG_DEBUG_CXX
-#  define cxxinfo        _info
-#else
-#  define cxxinfo(x...)
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-/* This type defines one entry in initialization array */
-
-typedef void (*initializer_t)(void);
-
-/****************************************************************************
- * External References
- ****************************************************************************/
-/* _sinit and _einit are symbols exported by the linker script that mark the
- * beginning and the end of the C++ initialization section.
- */
-
-extern initializer_t _sinit;
-extern initializer_t _einit;
-
-/* _stext and _etext are symbols exported by the linker script that mark the
- * beginning and the end of text.
- */
-
-extern uint32_t _stext;
-extern uint32_t _etext;
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_cxxinitialize
- *
- * Description:
- *   If C++ and C++ static constructors are supported, then this function
- *   must be provided by board-specific logic in order to perform
- *   initialization of the static C++ class instances.
- *
- *   This function should then be called in the application-specific
- *   user_start logic in order to perform the C++ initialization.  NOTE
- *   that no component of the core NuttX RTOS logic is involved; this
- *   function definition only provides the 'contract' between application
- *   specific C++ code and platform-specific toolchain support.
- *
- ****************************************************************************/
-
-void up_cxxinitialize(void)
-{
-  initializer_t *initp;
-
-  cxxinfo("_sinit: %p _einit: %p _stext: %p _etext: %p\n",
-          &_sinit, &_einit, &_stext, &_etext);
-
-  /* Visit each entry in the initialization table */
-
-  for (initp = &_sinit; initp != &_einit; initp++)
-    {
-      initializer_t initializer = *initp;
-      cxxinfo("initp: %p initializer: %p\n", initp, initializer);
-
-      /* Make sure that the address is non-NULL and lies in the text region
-       * defined by the linker script.  Some toolchains may put NULL values
-       * or counts in the initialization table.
-       */
-
-      if ((void *)initializer > (void *)&_stext &&
-          (void *)initializer < (void *)&_etext)
-        {
-          cxxinfo("Calling %p\n", initializer);
-          initializer();
-        }
-    }
-}
-
-#endif /* CONFIG_HAVE_CXX && CONFIG_HAVE_CXXINITIALIZE */
diff --git a/system/nsh/Kconfig b/system/nsh/Kconfig
index e92a297..2b27447 100644
--- a/system/nsh/Kconfig
+++ b/system/nsh/Kconfig
@@ -76,15 +76,4 @@ config SYSTEM_NSH_PROGNAME
                This is the name of the program that will be used when the NSH 
ELF
                program is installed.
 
-config SYSTEM_NSH_CXXINITIALIZE
-       bool "C++ Initialization"
-       default n
-       depends on HAVE_CXX && HAVE_CXXINITIALIZE
-       ---help---
-               If HAVE_CXX and HAVE_CXXINITIALIZE are selected, then this NSH
-               example can be configured to initialize C++ constructors when it
-               is started.  NSH does not use C++ and, by default, assumes that
-               constructors are initialized elsewhere.  However, you can force
-               NSH to initialize constructors by setting this option.
-
 endif
diff --git a/system/nsh/README.txt b/system/nsh/README.txt
index 1a49ed8..81bbc23 100644
--- a/system/nsh/README.txt
+++ b/system/nsh/README.txt
@@ -43,13 +43,3 @@ README
 
     CONFIG_STDIO_BUFFER_SIZE - Some value >= 64
     CONFIG_STDIO_LINEBUFFER=y
-
-  C++ Support
-  -----------
-  If CONFIG_HAVE_CXX=y and CONFIG_HAVE_CXXINITIALIZE=y, then this NSH
-  example can be configured to initialize C++ constructors when it
-  is started.  NSH does not use C++ and, by default, assumes that
-  constructors are initialized elsewhere.  However, you can force
-  NSH to initialize constructors by setting:
-
-    CONFIG_SYSTEM_NSH_CXXINITIALIZE=y
diff --git a/system/nsh/nsh_main.c b/system/nsh/nsh_main.c
index 9571bbd..8aaf0a2 100644
--- a/system/nsh/nsh_main.c
+++ b/system/nsh/nsh_main.c
@@ -50,8 +50,6 @@
 #  include <nuttx/symtab.h>
 #endif
 
-#include "platform/cxxinitialize.h"
-
 #include "nshlib/nshlib.h"
 
 /****************************************************************************
@@ -80,12 +78,6 @@
 #  undef CONFIG_SYSTEM_NSH_SYMTAB
 #endif
 
-/* C++ initialization requires CXX initializer support */
-
-#if !defined(CONFIG_HAVE_CXX) || !defined(CONFIG_HAVE_CXXINITIALIZE)
-#  undef CONFIG_SYSTEM_NSH_CXXINITIALIZE
-#endif
-
 /* The NSH telnet console requires networking support (and TCP/IP) */
 
 #ifndef CONFIG_NET
@@ -137,12 +129,6 @@ int main(int argc, FAR char *argv[])
       sched_setparam(0, &param);
     }
 
-#if defined(CONFIG_SYSTEM_NSH_CXXINITIALIZE)
-  /* Call all C++ static constructors */
-
-  up_cxxinitialize();
-#endif
-
 #if defined(CONFIG_SYSTEM_NSH_SYMTAB)
   /* Make sure that we are using our symbol table */
 
diff --git a/testing/README.txt b/testing/README.txt
index 32ab345..4bcc647 100644
--- a/testing/README.txt
+++ b/testing/README.txt
@@ -28,11 +28,6 @@ testing/cxxtest
   Example Configuration Options
   -----------------------------
     CONFIG_TESTING_CXXTEST=y - Eanbles the example
-    CONFIG_TESTING_CXXTEST_CXXINITIALIZE=y - By default, if CONFIG_HAVE_CXX
-      and CONFIG_HAVE_CXXINITIALIZE are defined, then this example
-      will call the NuttX function to initialize static C++ constructors.
-      This option may be disabled, however, if that static initialization
-      was performed elsewhere.
 
   Other Required Configuration Settings
   -------------------------------------
diff --git a/testing/cxxtest/Kconfig b/testing/cxxtest/Kconfig
index 9951ca1..056e126 100644
--- a/testing/cxxtest/Kconfig
+++ b/testing/cxxtest/Kconfig
@@ -9,17 +9,3 @@ config TESTING_CXXTEST
        depends on HAVE_CXX
        ---help---
                Enable the C++ test program
-
-if TESTING_CXXTEST
-
-config TESTING_CXXTEST_CXXINITIALIZE
-       bool "C++ Initialization"
-       default y
-       depends on HAVE_CXX && HAVE_CXXINITIALIZE
-       ---help---
-               By default, if CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE are
-               defined, then this example will call the NuttX function to
-               initialize static C++ constructors.  This option may be 
disabled,
-               however, if that static initialization was performed elsewhere.
-
-endif
diff --git a/testing/cxxtest/README.txt b/testing/cxxtest/README.txt
index 2b55501..189a14e 100644
--- a/testing/cxxtest/README.txt
+++ b/testing/cxxtest/README.txt
@@ -16,11 +16,6 @@ README
   Example Configuration Options
   -----------------------------
     CONFIG_TESTING_CXXTEST=y - Eanbles the example
-    CONFIG_TESTING_CXXTEST_CXXINITIALIZE=y - By default, if CONFIG_HAVE_CXX
-      and CONFIG_HAVE_CXXINITIALIZE are defined, then this example
-      will call the NuttX function to initialize static C++ constructors.
-      This option may be disabled, however, if that static initialization
-      was performed elsewhere.
 
   Other Required Configuration Settings
   -------------------------------------
diff --git a/testing/cxxtest/cxxtest_main.cxx b/testing/cxxtest/cxxtest_main.cxx
index 3e0db8a..60037f8 100644
--- a/testing/cxxtest/cxxtest_main.cxx
+++ b/testing/cxxtest/cxxtest_main.cxx
@@ -47,24 +47,9 @@
 #include <stdexcept>
 #include <cassert>
 
-#include <nuttx/init.h>
-
-#include "platform/cxxinitialize.h"
-
 using namespace std;
 
 //***************************************************************************
-// Definitions
-//***************************************************************************
-// Configuration ************************************************************
-// C++ initialization requires CXX initializer support
-
-#if !defined(CONFIG_HAVE_CXX) || !defined(CONFIG_HAVE_CXXINITIALIZE)
-#  warning Support for static initializers is NOT enabled
-#  undef CONFIG_TESTING_CXXTEST_CXXINITIALIZE
-#endif
-
-//***************************************************************************
 // Private Classes
 //***************************************************************************
 
@@ -247,13 +232,6 @@ extern "C"
 {
   int main(int argc, char *argv[])
   {
-    // If C++ initialization for static constructors is supported, then do
-    // that first
-
-#ifdef CONFIG_TESTING_CXXTEST_CXXINITIALIZE
-    up_cxxinitialize();
-#endif
-
     test_ofstream();
     test_iostream();
     test_stl();

Reply via email to