diff options
Diffstat (limited to 'nuttx/libxx')
-rw-r--r-- | nuttx/libxx/Kconfig | 69 | ||||
-rw-r--r-- | nuttx/libxx/Makefile | 115 | ||||
-rw-r--r-- | nuttx/libxx/README.txt | 42 | ||||
-rw-r--r-- | nuttx/libxx/libxx_cxa_atexit.cxx | 146 | ||||
-rw-r--r-- | nuttx/libxx/libxx_cxapurevirtual.cxx | 69 | ||||
-rw-r--r-- | nuttx/libxx/libxx_delete.cxx | 62 | ||||
-rw-r--r-- | nuttx/libxx/libxx_deletea.cxx | 62 | ||||
-rw-r--r-- | nuttx/libxx/libxx_eabi_atexit.cxx | 78 | ||||
-rw-r--r-- | nuttx/libxx/libxx_internal.hxx | 67 | ||||
-rw-r--r-- | nuttx/libxx/libxx_new.cxx | 102 | ||||
-rw-r--r-- | nuttx/libxx/libxx_newa.cxx | 102 | ||||
-rw-r--r-- | nuttx/libxx/libxx_stdthrow.cxx | 74 |
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(); - } -} |