aboutsummaryrefslogtreecommitdiff
path: root/nuttx/libxx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/libxx')
-rw-r--r--nuttx/libxx/Kconfig69
-rw-r--r--nuttx/libxx/Makefile115
-rw-r--r--nuttx/libxx/README.txt42
-rw-r--r--nuttx/libxx/libxx_cxa_atexit.cxx146
-rw-r--r--nuttx/libxx/libxx_cxapurevirtual.cxx69
-rw-r--r--nuttx/libxx/libxx_delete.cxx62
-rw-r--r--nuttx/libxx/libxx_deletea.cxx62
-rw-r--r--nuttx/libxx/libxx_eabi_atexit.cxx78
-rw-r--r--nuttx/libxx/libxx_internal.hxx67
-rw-r--r--nuttx/libxx/libxx_new.cxx102
-rw-r--r--nuttx/libxx/libxx_newa.cxx102
-rw-r--r--nuttx/libxx/libxx_stdthrow.cxx74
12 files changed, 0 insertions, 988 deletions
diff --git a/nuttx/libxx/Kconfig b/nuttx/libxx/Kconfig
deleted file mode 100644
index 9c78342c2..000000000
--- a/nuttx/libxx/Kconfig
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-comment "Basic CXX Support"
-
-config C99_BOOL8
- bool "sizeof(_Bool) is 8-bits"
- default n
- ---help---
- This setting means (1) your C++ compiler has sizeof(_Bool) == 8, (2)
- your C compiler supports the C99 _Bool intrinsic type, and (2) that
- the C99 _Bool type also has size 1.
-
-config HAVE_CXX
- bool "Have C++ compiler"
- default n
- ---help---
- Toolchain supports C++ and CXX, CXXFLAGS, and COMPILEXX have been
- defined in the configurations Make.defs file.
-
-if HAVE_CXX
-
-config HAVE_CXXINITIALIZE
- bool "Have C++ initialization"
- default n
- ---help---
- The platform-specific logic includes support for initialization
- of static C++ instances for this architecture and for the selected
- toolchain (via up_cxxinitialize()).
-
-config CXX_NEWLONG
- bool "size_t is type long"
- default n
- ---help---
- size_t may be type long or type int. This matters for some
- C++ library routines because the NuttX size_t might not have
- the same underlying type as your toolchain's size_t.
-
-comment "uClibc++ Standard C++ Library"
-
-config UCLIBCXX
- bool "Build uClibc++ (must be installed)"
- default n
- ---help---
- If you have installed uClibc++ into the NuttX source try, then it can
- be built by selecting this option. See misc/uClibc++/README.txt for
- information on installing uClibc++.
-
-if UCLIBCXX
-
-config UCLIBCXX_EXCEPTION
- bool "Enable Exception Suppport"
- default y
-
-config UCLIBCXX_IOSTREAM_BUFSIZE
- int "IO Stream Buffer Size"
- default 32
-
-config UCLIBCXX_HAVE_LIBSUPCXX
- bool "Have libsupc++ (required)"
- default y
- ---help---
- Select if your toolchain provides libsupc++. This option is required
- at present because the built-in libsupc++ support is incomplete.
-
-endif
-endif
diff --git a/nuttx/libxx/Makefile b/nuttx/libxx/Makefile
deleted file mode 100644
index 2ab146e9c..000000000
--- a/nuttx/libxx/Makefile
+++ /dev/null
@@ -1,115 +0,0 @@
-############################################################################
-# libxx/Makefile
-#
-# Copyright (C) 2009, 2012 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <gnutt@nuttx.org>
-#
-# 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.
-#
-###########################################################################
-
--include $(TOPDIR)/Make.defs
-
-# Sources
-
-ASRCS =
-CSRCS =
-
-CXXSRCS = libxx_cxapurevirtual.cxx libxx_eabi_atexit.cxx libxx_cxa_atexit.cxx
-
-# Some of the libxx/ files are not need if uClibc++ is installed because
-# uClibx++ replaces them
-
-ifneq ($(CONFIG_UCLIBCXX),y)
-CXXSRCS += libxx_delete.cxx libxx_deletea.cxx libxx_new.cxx libxx_newa.cxx
-CXXSRCS += libxx_stdthrow.cxx
-else
-ifneq ($(UCLIBCXX_EXCEPTION),y)
-CXXSRCS += libxx_stdthrow.cxx
-endif
-endif
-
-# Paths
-
-DEPPATH = --dep-path .
-VPATH = .
-
-# Include the uClibc++ Make.defs file if selected. If it is included,
-# the uClibc++/Make.defs file will add its files to the source file list,
-# add its DEPPATH info, and will add the appropriate paths to the VPATH
-# variable
-#
-# Note that an error will occur if you select CONFIG_LIBXX_UCLIBCXX
-# without installing the uClibc++ package. This is intentional to let
-# you know about the configuration problem. Refer to misc/uClibc++/README.txt
-# for more information
-
-ifeq ($(CONFIG_UCLIBCXX),y)
-include uClibc++/Make.defs
-endif
-
-# Object Files
-
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-COBJS = $(CSRCS:.c=$(OBJEXT))
-CXXOBJS = $(CXXSRCS:.cxx=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS) $(CXXSRCS)
-OBJS = $(AOBJS) $(COBJS) $(CXXOBJS)
-
-BIN = libcxx$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(CXXOBJS): %$(OBJEXT): %.cxx
- $(call COMPILEXX, $<, $@)
-
-$(BIN): $(OBJS)
- $(call ARCHIVE, $@, $(OBJS))
-
-.depend: Makefile $(SRCS)
- $(Q) $(MKDEP) $(DEPPATH) "$(CXX)" -- $(CXXFLAGS) -- $(SRCS) >Make.dep
- $(Q) touch $@
-
-depend: .depend
-
-clean:
- $(call DELFILE, $(BIN))
- $(call CLEAN)
-
-distclean: clean
- $(call DELFILE, Make.dep)
- $(call DELFILE, .depend)
-
--include Make.dep
diff --git a/nuttx/libxx/README.txt b/nuttx/libxx/README.txt
deleted file mode 100644
index 7a1c51fa7..000000000
--- a/nuttx/libxx/README.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-libxx/README.txt
-^^^^^^^^^^^^^^^^
-
-This directory contains a fragmentary C++ library that will allow
-to build only the simplest of C++ applications. In the deeply
-embedded world, that is probably all that is necessary. If you
-have a need for more extensive C++ support, the following libraries
-are recommended:
-
- - libstdc++ (part of GCC)
- - STLport http://www.stlport.org/
- - uClibc++ http://cxx.uclibc.org/
- - uSTL http://ustl.sourceforge.net/
-
-There is a version of uClibc++ that is customized for NuttX that can
-be found here: misc/uClibc++. See misc/uClibc++ for installation
-instructions.
-
-At present, only the following are supported here:
-
- - void *operator new(std::size_t nbytes);
- - void operator delete(void* ptr);
- - void operator delete[](void *ptr);
- - void __cxa_pure_virtual(void);
- - int __aeabi_atexit(void* object, void (*destroyer)(void*), void *dso_handle);
- - int __cxa_atexit(__cxa_exitfunc_t func, FAR void *arg, FAR void *dso_handle);
-
-operator new
-------------
-
- This operator should take a type of size_t. But size_t has an unknown underlying
- type. In the nuttx sys/types.h header file, size_t is typed as uint32_t
- (which is determined by architecture-specific logic). But the C++
- compiler may believe that size_t is of a different type resulting in
- compilation errors in the operator. Using the underlying integer type
- instead of size_t seems to resolve the compilation issues. Need to
- REVISIT this.
-
- Once some C++ compilers, this will cause an error:
-
- Problem: "'operator new' takes size_t ('...') as first parameter"
- Workaround: Add -fpermissive to the compilation flags
diff --git a/nuttx/libxx/libxx_cxa_atexit.cxx b/nuttx/libxx/libxx_cxa_atexit.cxx
deleted file mode 100644
index cd31f94f6..000000000
--- a/nuttx/libxx/libxx_cxa_atexit.cxx
+++ /dev/null
@@ -1,146 +0,0 @@
-//***************************************************************************
-// libxx/libxx_eabi_atexit.cxx
-//
-// Copyright (C) 2012 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstdlib>
-#include <cassert>
-
-#include "libxx_internal.hxx"
-
-//***************************************************************************
-// Pre-processor Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Types
-//***************************************************************************
-
-struct __cxa_atexit_s
-{
- __cxa_exitfunc_t func;
- FAR void *arg;
-};
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-extern "C"
-{
- //*************************************************************************
- // Public Data
- //*************************************************************************
-
- FAR void *__dso_handle = NULL;
-
- //*************************************************************************
- // Private Functions
- //*************************************************************************
-
- //*************************************************************************
- // Name: __cxa_callback
- //
- // Description:
- // This is really just an "adaptor" function that matches the form of
- // the __cxa_exitfunc_t to an onexitfunc_t using an allocated structure
- // to marshall the call parameters.
- //
- //*************************************************************************
-
-#if CONFIG_SCHED_ONEXIT
- static void __cxa_callback(int exitcode, FAR void *arg)
- {
- FAR struct __cxa_atexit_s *alloc = (FAR struct __cxa_atexit_s *)arg;
- DEBUGASSERT(alloc && alloc->func);
-
- alloc->func(alloc->arg);
- free(alloc);
- }
-#endif
-
- //*************************************************************************
- // Public Functions
- //*************************************************************************
-
- //*************************************************************************
- // Name: __cxa_atexit
- //
- // Description:
- // __cxa_atexit() registers a destructor function to be called by exit().
- // On a call to exit(), the registered functions should be called with
- // the single argument 'arg'. Destructor functions shall always be
- // called in the reverse order to their registration (i.e. the most
- // recently registered function shall be called first),
- //
- // If shared libraries were supported, the callbacks should be invoked
- // when the shared library is unloaded as well.
- //
- // Reference:
- // Linux base
- //
- //*************************************************************************
-
- int __cxa_atexit(__cxa_exitfunc_t func, FAR void *arg, FAR void *dso_handle)
- {
-#if CONFIG_SCHED_ONEXIT
- // Allocate memory to hold the marshaled __cxa_exitfunc_t call
- // information.
-
- FAR struct __cxa_atexit_s *alloc =
- (FAR struct __cxa_atexit_s *)malloc(sizeof(struct __cxa_atexit_s));
-
- if (alloc)
- {
- // Register the function to be called when the task/thread exists.
-
- alloc->func = func;
- alloc->arg = arg;
-
- return on_exit(__cxa_callback, alloc);
- }
- else
-#endif
- {
- // What else can we do?
-
- return 0;
- }
- }
-}
diff --git a/nuttx/libxx/libxx_cxapurevirtual.cxx b/nuttx/libxx/libxx_cxapurevirtual.cxx
deleted file mode 100644
index e8912558a..000000000
--- a/nuttx/libxx/libxx_cxapurevirtual.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-//***************************************************************************
-// libxx/libxx_cxapurevirtual.cxx
-//
-// Copyright (C) 2009 2011 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cassert>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Operators
-//***************************************************************************
-
-//***************************************************************************
-// Name: __cxa_pure_virtual
-//
-// Description:
-// Crash when an un-implemented pure virtual function is called
-//
-//***************************************************************************
-
-extern "C"
-{
- void __cxa_pure_virtual(void)
- {
- PANIC(100);
- }
-}
-
diff --git a/nuttx/libxx/libxx_delete.cxx b/nuttx/libxx/libxx_delete.cxx
deleted file mode 100644
index d9203a228..000000000
--- a/nuttx/libxx/libxx_delete.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-//***************************************************************************
-// libxx/libxx_new.cxx
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstdlib>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Operators
-//***************************************************************************
-
-//***************************************************************************
-// Name: delete
-//***************************************************************************
-
-void operator delete(void* ptr)
-{
- free(ptr);
-}
diff --git a/nuttx/libxx/libxx_deletea.cxx b/nuttx/libxx/libxx_deletea.cxx
deleted file mode 100644
index e7cfee647..000000000
--- a/nuttx/libxx/libxx_deletea.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-//***************************************************************************
-// libxx/libxx_newa.cxx
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstdlib>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Operators
-//***************************************************************************
-
-//***************************************************************************
-// Name: delete
-//***************************************************************************
-
-void operator delete[](void *ptr)
-{
- free(ptr);
-}
diff --git a/nuttx/libxx/libxx_eabi_atexit.cxx b/nuttx/libxx/libxx_eabi_atexit.cxx
deleted file mode 100644
index 25f8306a8..000000000
--- a/nuttx/libxx/libxx_eabi_atexit.cxx
+++ /dev/null
@@ -1,78 +0,0 @@
-//***************************************************************************
-// libxx/libxx_eabi_atexit.cxx
-//
-// Copyright (C) 2012 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstdlib>
-
-#include "libxx_internal.hxx"
-
-//***************************************************************************
-// Pre-processor Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Public Functions
-//***************************************************************************
-
-extern "C"
-{
- //*************************************************************************
- // Name: __aeabi_atexit
- //
- // Description:
- // Registers static object destructors. Normally atexit(f) should call
- // __aeabi_atexit (NULL, f, NULL). But in the usage model here, static
- // constructors are initialized at power up and are never destroyed
- // because they have global scope and must persist for as long as the
- // embedded device is powered on.
- //
- // Reference:
- // http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041c/IHI0041C_cppabi.pdf
- //
- //*************************************************************************
-
- int __aeabi_atexit(FAR void *object, __cxa_exitfunc_t func, FAR void *dso_handle)
- {
- return __cxa_atexit(func, object, dso_handle); // 0 ? OK; non-0 ? failed
- }
-}
diff --git a/nuttx/libxx/libxx_internal.hxx b/nuttx/libxx/libxx_internal.hxx
deleted file mode 100644
index fe84c763e..000000000
--- a/nuttx/libxx/libxx_internal.hxx
+++ /dev/null
@@ -1,67 +0,0 @@
-//***************************************************************************
-// lib/libxx_internal.h
-//
-// Copyright (C) 2012 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 __LIBXX_LIBXX_INTERNAL_HXX
-#define __LIBXX_LIBXX_INTERNAL_HXX
-
-//***************************************************************************
-// Included Files
-//***************************************************************************
-
-#include <nuttx/config.h>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Public Types
-//***************************************************************************/
-
-typedef CODE void (*__cxa_exitfunc_t)(void *arg);
-
-//***************************************************************************
-// Public Variables
-//***************************************************************************
-
-extern "C" FAR void *__dso_handle;
-
-//***************************************************************************
-// Public Function Prototypes
-//***************************************************************************
-
-extern "C" int __cxa_atexit(__cxa_exitfunc_t func, void *arg, void *dso_handle);
-
-#endif // __LIBXX_LIBXX_INTERNAL_HXX
diff --git a/nuttx/libxx/libxx_new.cxx b/nuttx/libxx/libxx_new.cxx
deleted file mode 100644
index 0563b6580..000000000
--- a/nuttx/libxx/libxx_new.cxx
+++ /dev/null
@@ -1,102 +0,0 @@
-//***************************************************************************
-// libxx/libxx_new.cxx
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstddef>
-#include <cstdlib>
-#include <debug.h>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Operators
-//***************************************************************************
-
-//***************************************************************************
-// Name: new
-//
-// NOTE:
-// This should take a type of size_t. But size_t has an unknown underlying
-// type. In the nuttx sys/types.h header file, size_t is typed as uint32_t
-// (which is determined by architecture-specific logic). But the C++
-// compiler may believe that size_t is of a different type resulting in
-// compilation errors in the operator. Using the underlying integer type
-// instead of size_t seems to resolve the compilation issues. Need to
-// REVISIT this.
-//
-//***************************************************************************
-
-//void *operator new(size_t nbytes)
-#ifdef CONFIG_CXX_NEWLONG
-void *operator new(unsigned long nbytes)
-#else
-void *operator new(unsigned int nbytes)
-#endif
-{
- // We have to allocate something
-
- if (nbytes < 1)
- {
- nbytes = 1;
- }
-
- // Perform the allocation
-
- void *alloc = malloc(nbytes);
-
-#ifdef CONFIG_DEBUG
- if (alloc == 0)
- {
- // Oh my.. we are required to return a valid pointer and
- // we cannot throw an exception! We are bad.
-
- dbg("Failed to allocate\n");
- }
-#endif
-
- // Return the allocated value
-
- return alloc;
-}
diff --git a/nuttx/libxx/libxx_newa.cxx b/nuttx/libxx/libxx_newa.cxx
deleted file mode 100644
index ad7806865..000000000
--- a/nuttx/libxx/libxx_newa.cxx
+++ /dev/null
@@ -1,102 +0,0 @@
-//***************************************************************************
-// libxx/libxx_newa.cxx
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <gnutt@nuttx.org>
-//
-// 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 <cstddef>
-#include <cstdlib>
-#include <debug.h>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Operators
-//***************************************************************************
-
-//***************************************************************************
-// Name: new
-//
-// NOTE:
-// This should take a type of size_t. But size_t has an unknown underlying
-// type. In the nuttx sys/types.h header file, size_t is typed as uint32_t
-// (which is determined by architecture-specific logic). But the C++
-// compiler may believe that size_t is of a different type resulting in
-// compilation errors in the operator. Using the underlying integer type
-// instead of size_t seems to resolve the compilation issues. Need to
-// REVISIT this.
-//
-//***************************************************************************
-
-//void *operator new[](size_t size)
-#ifdef CONFIG_CXX_NEWLONG
-void *operator new[](unsigned long nbytes)
-#else
-void *operator new[](unsigned int nbytes)
-#endif
-{
- // We have to allocate something
-
- if (nbytes < 1)
- {
- nbytes = 1;
- }
-
- // Perform the allocation
-
- void *alloc = malloc(nbytes);
-
-#ifdef CONFIG_DEBUG
- if (alloc == 0)
- {
- // Oh my.. we are required to return a valid pointer and
- // we cannot throw an exception! We are bad.
-
- dbg("Failed to allocate\n");
- }
-#endif
-
- // Return the allocated value
-
- return alloc;
-}
diff --git a/nuttx/libxx/libxx_stdthrow.cxx b/nuttx/libxx/libxx_stdthrow.cxx
deleted file mode 100644
index 588fae264..000000000
--- a/nuttx/libxx/libxx_stdthrow.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-//***************************************************************************
-// libxx/libxx_newa.cxx
-//
-// Copyright (C) 2012 Gregory Nutt. All rights reserved.
-// Author: Petteri Aimonen <petteri.aimonen@gmail.com>;
-//
-// 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 <cstdlib>
-#include <debug.h>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-//***************************************************************************
-// Public Functions
-//***************************************************************************
-
-namespace std
-{
- void __throw_out_of_range(const char*)
- {
- dbg("C++: Vector .at() with argument out of range\n");
- abort();
- }
-
- void __throw_length_error(const char*)
- {
- dbg("C++: Vector resize to excessive length\n");
- abort();
- }
-
- void __throw_bad_alloc()
- {
- dbg("C++: Bad allocation\n");
- abort();
- }
-}