libxx: All cxx libraries move down one level

Since there are some patches that need to be loaded manually, the original method is rather confusing. Now these patches that need to be loaded manually are classified into various cxx library folders, and each dynamically downloaded cxx library is moved down one directory to make the directory structure clearer.

Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
This commit is contained in:
wangmingrong1
2024-11-06 16:30:22 +08:00
committed by Xiang Xiao
parent 6611480904
commit db31e56957
28 changed files with 486 additions and 493 deletions
+1
View File
@@ -0,0 +1 @@
/uClibc++
@@ -0,0 +1,48 @@
From 44aa27328deb99a1cf3253ce3af07bccdfd012f2 Mon Sep 17 00:00:00 2001
From: zhuyanlin <zhuyanlin1@xiaomi.com>
Date: Mon, 30 Aug 2021 14:11:53 +0800
Subject: [PATCH 1/2] uClibcxx:basic_definitions: fix GCC-specific definitions
gcc use __GNUC__ instead off __GCC__
---
include/basic_definitions | 4 ++--
include/cstddef | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/uClibc++/include/basic_definitions uClibc++/include/basic_definitions
index 9936563..1a8dc31 100644
--- a/uClibc++/include/basic_definitions
+++ uClibc++/include/basic_definitions
@@ -33,13 +33,13 @@
#endif
-#ifdef __GCC__
+#ifdef __GNUC__
#define __UCLIBCXX_NORETURN __attribute__ ((__noreturn__))
#else
#define __UCLIBCXX_NORETURN
#endif
-#ifdef __GCC__
+#ifdef __GNUC__
# ifndef _UCXX_NOTHROW
# ifndef __cplusplus
# define _UCXX_NOTHROW __attribute__((__nothrow__))
diff --git a/uClibc++/include/cstddef uClibc++/include/cstddef
index d44834b..b229673 100644
--- a/uClibc++/include/cstddef
+++ uClibc++/include/cstddef
@@ -43,7 +43,7 @@
#ifndef _CPP_CSTDDEF
#define _CPP_CSTDDEF 1
-#ifdef __GCC__
+#ifdef __GNUC__
#pragma GCC system_header
#endif
--
2.25.1
@@ -0,0 +1,298 @@
From b9028c8bc1a4cd00feb5328521bdde332fefeda3 Mon Sep 17 00:00:00 2001
From: zhuyanlin <zhuyanlin1@xiaomi.com>
Date: Mon, 27 Sep 2021 21:47:41 +0800
Subject: [PATCH] uclibxx: use overload constructor of filebuf & ostream
Instead of set valiable in Init, use overload constructor in
filebuf & stream class
---
include/fstream | 15 +++++++--
include/ios | 21 +++---------
include/istream | 4 +++
include/ostream | 8 +++++
include/streambuf | 6 ++--
src/ios.cpp | 84 ++++++++---------------------------------------
6 files changed, 44 insertions(+), 94 deletions(-)
diff --git a/uClibc++/include/fstream uClibc++/include/fstream
index fddfa35..99a016e 100644
--- a/uClibc++/include/fstream
+++ uClibc++/include/fstream
@@ -53,9 +53,6 @@ namespace std{
template <class charT, class traits> class _UCXXEXPORT basic_filebuf
: public basic_streambuf<charT,traits>
{
-#ifdef __UCLIBCXX_SUPPORT_CDIR__
- friend ios_base::Init::Init(); //Needed for cout/cin stuff
-#endif
public:
// Types (inherited from basic_streambuf:
typedef typename basic_streambuf<charT, traits>::char_type char_type;
@@ -79,6 +76,18 @@ namespace std{
gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
}
+ _UCXXEXPORT basic_filebuf(FILE *p, ios_base::openmode opdfor)
+ : basic_streambuf<charT, traits>(opdfor), fp(p), pbuffer(0),
+ gbuffer(0), append(false)
+ {
+ pbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__];
+ gbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__];
+
+ this->setp(pbuffer, pbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
+ //Position get buffer so that there is no data available
+ this->setg(gbuffer, gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__,
+ gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
+ }
_UCXXEXPORT virtual ~basic_filebuf(){
sync();
diff --git a/uClibc++/include/ios uClibc++/include/ios
index ac6566a..6d2dd68 100644
--- a/uClibc++/include/ios
+++ uClibc++/include/ios
@@ -45,15 +45,6 @@ namespace std{
}
};
#endif
-#ifdef __UCLIBCXX_SUPPORT_CDIR__
- class _UCXXLOCAL Init{
- public:
- _UCXXEXPORT Init();
- _UCXXEXPORT ~Init();
- private:
- static int init_cnt;
- };
-#endif
public:
@@ -154,11 +145,7 @@ namespace std{
protected:
_UCXXEXPORT ios_base() : mLocale(), mformat(dec | skipws ), mstate(goodbit),
mmode(), mdir(), mprecision(6), mwidth(0)
-#ifdef __UCLIBCXX_SUPPORT_CDIR__
- ,mInit()
-#endif
{
-
}
locale mLocale;
fmtflags mformat;
@@ -167,9 +154,6 @@ namespace std{
seekdir mdir;
streamsize mprecision;
streamsize mwidth;
-#ifdef __UCLIBCXX_SUPPORT_CDIR__
- Init mInit;
-#endif
};
@@ -346,7 +330,10 @@ namespace std{
: fill_char(' '), mtied(0), mstreambuf(0), throw_mask(0) {
init(sb);
}
-
+ explicit _UCXXEXPORT basic_ios(basic_streambuf<charT,traits>* sb, basic_ostream<charT,traits>* tied)
+ : fill_char(' '), mtied(tied), mstreambuf(0), throw_mask(0) {
+ init(sb);
+ }
basic_ios() : mtied(0), mstreambuf(0){ }
virtual _UCXXEXPORT ~basic_ios(){
diff --git a/uClibc++/include/istream uClibc++/include/istream
index 2d58abd..8fa9ad4 100644
--- a/uClibc++/include/istream
+++ uClibc++/include/istream
@@ -55,6 +55,10 @@ namespace std{
{
basic_ios<charT, traits>::init(sb);
}
+ explicit basic_istream(basic_streambuf<charT,traits>* sb, basic_ostream<charT,traits>* tied)
+ : basic_ios<charT, traits>(sb, tied), count_last_ufmt_input(0)
+ {
+ }
virtual ~basic_istream() { }
class sentry;
diff --git a/uClibc++/include/ostream uClibc++/include/ostream
index 3072589..086a297 100644
--- a/uClibc++/include/ostream
+++ uClibc++/include/ostream
@@ -58,6 +58,14 @@ namespace std {
{
basic_ios<charT,traits>::init(sb);
}
+
+ _UCXXEXPORT basic_ostream(basic_streambuf<charT,traits>* sb, ios_base::fmtflags fmtfl)
+ : basic_ios<charT, traits>(sb)
+ {
+ basic_ios<charT,traits>::init(sb);
+ ios_base::setf(fmtfl);
+ }
+
virtual _UCXXEXPORT ~basic_ostream();
class sentry;
diff --git a/uClibc++/include/streambuf uClibc++/include/streambuf
index 0daa388..5327296 100644
--- a/uClibc++/include/streambuf
+++ uClibc++/include/streambuf
@@ -33,9 +33,6 @@ namespace std{
template <class charT, class traits> class _UCXXEXPORT basic_streambuf{
public:
-#ifdef __UCLIBCXX_SUPPORT_CDIR__
- friend ios_base::Init::Init();
-#endif
// Types:
typedef charT char_type;
typedef typename traits::int_type int_type;
@@ -116,6 +113,9 @@ namespace std{
mgbeg(0), mgnext(0), mgend(0), mpbeg(0), mpnext(0), mpend(0),
openedFor(0)
{ }
+ basic_streambuf(ios_base::openmode opdfor)
+ : openedFor(opdfor)
+ { }
basic_streambuf<char, char_traits<char> > & operator=(const basic_streambuf<char, char_traits<char> > &){
return *this;
}
diff --git a/uClibc++/src/ios.cpp uClibc++/src/ios.cpp
index 3b85d5b..e6a390f 100644
--- a/uClibc++/src/ios.cpp
+++ uClibc++/src/ios.cpp
@@ -29,32 +29,31 @@ namespace std{
#ifdef __UCLIBCXX_SUPPORT_CDIR__
- _UCXXLOCAL int ios_base::Init::init_cnt = 0; //Needed to ensure the static value is created
//Create buffers first
#ifdef __UCLIBCXX_SUPPORT_COUT__
- _UCXXEXPORT filebuf _cout_filebuf;
+ _UCXXEXPORT filebuf _cout_filebuf(stdout, ios_base::out);
#endif
#ifdef __UCLIBCXX_SUPPORT_CIN__
- _UCXXEXPORT filebuf _cin_filebuf;
+ _UCXXEXPORT filebuf _cin_filebuf(stdin, ios_base::in);
#endif
#ifdef __UCLIBCXX_SUPPORT_CERR__
- _UCXXEXPORT filebuf _cerr_filebuf;
+ _UCXXEXPORT filebuf _cerr_filebuf(stderr, ios_base::out);
#endif
#ifdef __UCLIBCXX_SUPPORT_CLOG__
- _UCXXEXPORT filebuf _clog_filebuf;
+ _UCXXEXPORT filebuf _clog_filebuf(stderr, ios_base::out);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCOUT__
- _UCXXEXPORT wfilebuf _wcout_filebuf;
+ _UCXXEXPORT wfilebuf _wcout_filebuf(stdout, ios_base::out);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCIN__
- _UCXXEXPORT wfilebuf _wcin_filebuf;
+ _UCXXEXPORT wfilebuf _wcin_filebuf(stdin, ios_base::in);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCERR__
- _UCXXEXPORT wfilebuf _wcerr_filebuf;
+ _UCXXEXPORT wfilebuf _wcerr_filebuf(stderr, ios_base::out);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCLOG__
- _UCXXEXPORT wfilebuf _wclog_filebuf;
+ _UCXXEXPORT wfilebuf _wclog_filebuf(stderr, ios_base::out);
#endif
//Then create streams
@@ -62,10 +61,10 @@ namespace std{
_UCXXEXPORT ostream cout(&_cout_filebuf);
#endif
#ifdef __UCLIBCXX_SUPPORT_CIN__
- _UCXXEXPORT istream cin(&_cin_filebuf);
+ _UCXXEXPORT istream cin(&_cin_filebuf, &cout);
#endif
#ifdef __UCLIBCXX_SUPPORT_CERR__
- _UCXXEXPORT ostream cerr(&_cerr_filebuf);
+ _UCXXEXPORT ostream cerr(&_cerr_filebuf, ios_base::unitbuf);
#endif
#ifdef __UCLIBCXX_SUPPORT_CLOG__
_UCXXEXPORT ostream clog(&_clog_filebuf);
@@ -74,72 +73,15 @@ namespace std{
_UCXXEXPORT wostream wcout(&_wcout_filebuf);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCIN__
- _UCXXEXPORT wistream wcin(&_wcin_filebuf);
+ _UCXXEXPORT wistream wcin(&_wcin_filebuf, &wcout);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCERR__
- _UCXXEXPORT wostream wcerr(&_wcerr_filebuf);
+ _UCXXEXPORT wostream wcerr(&_wcerr_filebuf, ios_base::unitbuf);
#endif
#ifdef __UCLIBCXX_SUPPORT_WCLOG__
_UCXXEXPORT wostream wclog(&_wclog_filebuf);
#endif
-
- _UCXXEXPORT ios_base::Init::Init(){
- if(init_cnt == 0){ //Need to construct cout et al
-#ifdef __UCLIBCXX_SUPPORT_COUT__
- _cout_filebuf.fp = stdout;
- _cout_filebuf.openedFor = ios_base::out;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_CERR__
- _cerr_filebuf.fp = stderr;
- _cerr_filebuf.openedFor = ios_base::out;
- cerr.mformat |= ios_base::unitbuf;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_CLOG__
- _clog_filebuf.fp = stderr;
- _clog_filebuf.openedFor = ios_base::out;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_CIN__
- _cin_filebuf.fp = stdin;
- _cin_filebuf.openedFor = ios_base::in;
-
-#ifdef __UCLIBCXX_SUPPORT_COUT__
- cin.tie(&cout);
-#endif
-
-#endif
-#ifdef __UCLIBCXX_SUPPORT_WCOUT__
- _wcout_filebuf.fp = stdout;
- _wcout_filebuf.openedFor = ios_base::out;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_WCERR__
- _wcerr_filebuf.fp = stderr;
- _wcerr_filebuf.openedFor = ios_base::out;
- wcerr.mformat |= ios_base::unitbuf;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_WCLOG__
- _wclog_filebuf.fp = stderr;
- _wclog_filebuf.openedFor = ios_base::out;
-#endif
-#ifdef __UCLIBCXX_SUPPORT_WCIN__
- _wcin_filebuf.fp = stdin;
- _wcin_filebuf.openedFor = ios_base::in;
-
-#ifdef __UCLIBCXX_SUPPORT_WCOUT__
- wcin.tie(&wcout);
-#endif
-
-#endif
- }
- init_cnt++;
- }
-
- _UCXXEXPORT ios_base::Init::~Init(){
- --init_cnt;
- if(init_cnt==0){
-
- }
- }
#endif
--
2.25.1
+116
View File
@@ -0,0 +1,116 @@
# ##############################################################################
# libs/libxx/uClibc++/CMakeLists.txt
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. The ASF licenses this
# file to you under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
# ##############################################################################
if(CONFIG_UCLIBCXX)
set(UCLIBCXX_DIR ${CMAKE_CURRENT_LIST_DIR}/uClibc++)
if(NOT EXISTS ${UCLIBCXX_DIR})
set(UCLIBCXX_VERSION 0.2.5)
FetchContent_Declare(
uClibc++
DOWNLOAD_NAME "uClibc++-${UCLIBCXX_VERSION}.tar.bz2"
DOWNLOAD_DIR ${CMAKE_CURRENT_LIST_DIR}
URL "https://git.busybox.net/uClibc++/snapshot/uClibc++-${UCLIBCXX_VERSION}.tar.bz2"
SOURCE_DIR
${CMAKE_CURRENT_LIST_DIR}/uClibc++
BINARY_DIR
${CMAKE_BINARY_DIR}/libs/libc/uClibc++
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
INSTALL_COMMAND
""
TEST_COMMAND
""
PATCH_COMMAND
patch -p1 -d ${CMAKE_CURRENT_LIST_DIR}/uClibc++ <
${CMAKE_CURRENT_LIST_DIR}/0001-uClibcxx-basic_definitions-fix-GCC-specific-definiti.patch
&& patch -p1 -d ${CMAKE_CURRENT_LIST_DIR}/uClibc++ <
${CMAKE_CURRENT_LIST_DIR}/0001-uclibxx-use-overload-constructor-of-filebuf-ostream.patch
DOWNLOAD_NO_PROGRESS true
TIMEOUT 30)
FetchContent_GetProperties(uClibc++)
if(NOT uClibc++_POPULATED)
FetchContent_Populate(uClibc++)
endif()
endif()
nuttx_create_symlink(${CMAKE_CURRENT_LIST_DIR}/uClibc++/include
${CMAKE_BINARY_DIR}/include/uClibc++)
configure_file(
${CMAKE_CURRENT_LIST_DIR}/system_configuration.h
${CMAKE_BINARY_DIR}/include/uClibc++/system_configuration.h COPYONLY)
set_property(
TARGET nuttx
APPEND
PROPERTY NUTTX_CXX_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/include/uClibc++)
set(SRCS
algorithm.cpp
associative_base.cpp
bitset.cpp
char_traits.cpp
complex.cpp
deque.cpp
exception.cpp
fstream.cpp
func_exception.cpp
iomanip.cpp
ios.cpp
iostream.cpp
istream.cpp
iterator.cpp
limits.cpp
list.cpp
locale.cpp
map.cpp
numeric.cpp
ostream.cpp
queue.cpp
set.cpp
sstream.cpp
stack.cpp
stdexcept.cpp
streambuf.cpp
string.cpp
utility.cpp
valarray.cpp
vector.cpp)
set(TARGET_SRCS)
foreach(src ${SRCS})
string(PREPEND src uClibc++/src/)
list(APPEND TARGET_SRCS ${src})
endforeach()
nuttx_add_system_library(uClibc++)
target_sources(uClibc++ PRIVATE ${TARGET_SRCS})
endif()
+60
View File
@@ -0,0 +1,60 @@
############################################################################
# libs/libxx/uClibc++/Make.defs
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
###########################################################################
UCLIBCXX_VERSION=0.2.5
# Download and unpack tarball if no git repo found
ifeq ($(wildcard uClibc++/uClibc++/.git),)
uClibc++-$(UCLIBCXX_VERSION).tar.bz2:
curl -O -L https://git.busybox.net/uClibc++/snapshot/$@
uClibc++/uClibc++: uClibc++-$(UCLIBCXX_VERSION).tar.bz2
$(Q) tar -xf $<
$(Q) $(DELFILE) $<
$(Q) mv uClibc++-$(UCLIBCXX_VERSION) $@
$(Q) patch -p0 < uClibc++/0001-uClibcxx-basic_definitions-fix-GCC-specific-definiti.patch -d uClibc++
$(Q) patch -p0 < uClibc++/0001-uclibxx-use-overload-constructor-of-filebuf-ostream.patch -d uClibc++
endif
$(TOPDIR)/include/uClibc++: uClibc++/uClibc++
$(Q) $(DIRLINK) $(CURDIR)/uClibc++/uClibc++/include $(TOPDIR)/include/uClibc++
$(Q) $(COPYFILE) $(CURDIR)/uClibc++/system_configuration.h $(TOPDIR)/include/uClibc++
context:: $(TOPDIR)/include/uClibc++
distclean::
$(Q) $(DELFILE) $(TOPDIR)/include/uClibc++/system_configuration.h
$(Q) $(DIRUNLINK) $(TOPDIR)/include/uClibc++
ifeq ($(wildcard uClibc++/uClibc++/.git),)
$(call DELDIR, uClibc++/uClibc++)
endif
CPPSRCS += algorithm.cpp associative_base.cpp bitset.cpp char_traits.cpp
CPPSRCS += complex.cpp deque.cpp exception.cpp fstream.cpp
CPPSRCS += func_exception.cpp iomanip.cpp ios.cpp iostream.cpp istream.cpp
CPPSRCS += iterator.cpp limits.cpp list.cpp locale.cpp map.cpp numeric.cpp
CPPSRCS += ostream.cpp queue.cpp set.cpp sstream.cpp stack.cpp stdexcept.cpp
CPPSRCS += streambuf.cpp string.cpp utility.cpp valarray.cpp
CPPSRCS += vector.cpp
DEPPATH += --dep-path uClibc++/uClibc++/src
VPATH += uClibc++/uClibc++/src
+106
View File
@@ -0,0 +1,106 @@
/****************************************************************************
* libs/libxx/system_configuration.h
*
# SPDX-License-Identifier: Apache-2.0
#
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef SYSTEM_CONFIGURATION_H
#define SYSTEM_CONFIGURATION_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/compiler.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Version Number */
#define __UCLIBCXX_MAJOR__ 0
#define __UCLIBCXX_MINOR__ 2
#define __UCLIBCXX_SUBLEVEL__ 6-git
/* Target Features and Options */
#ifdef CONFIG_HAVE_FLOAT
# define __UCLIBCXX_HAS_FLOATS__ 1
#endif
#ifdef CONFIG_HAVE_LONG_DOUBLE
# define __UCLIBCXX_HAS_LONG_DOUBLE__ 1
#endif
#undef __UCLIBCXX_HAS_TLS__
#define __UCLIBCXX_WARNINGS__ "-Wall"
#define __BUILD_EXTRA_LIBRARIES__ ""
#define __HAVE_DOT_CONFIG__ 1
/* String and I/O Stream Support */
#ifdef CONFIG_CXX_WCHAR
# define __UCLIBCXX_HAS_WCHAR__ 1
#endif
#define __UCLIBCXX_IOSTREAM_BUFSIZE__ CONFIG_UCLIBCXX_BUFSIZE
#undef __UCLIBCXX_HAS_LFS__
#define __UCLIBCXX_SUPPORT_CDIR__ 1
#define __UCLIBCXX_SUPPORT_CIN__ 1
#define __UCLIBCXX_SUPPORT_COUT__ 1
#define __UCLIBCXX_SUPPORT_CERR__ 1
#define __UCLIBCXX_SUPPORT_CLOG__ 1
#ifdef CONFIG_CXX_WCHAR
# define __UCLIBCXX_SUPPORT_WCIN__ 1
# define __UCLIBCXX_SUPPORT_WCOUT__ 1
# define __UCLIBCXX_SUPPORT_WCERR__ 1
# define __UCLIBCXX_SUPPORT_WCLOG__ 1
#endif
/* STL and Code Expansion */
#define __UCLIBCXX_STL_BUFFER_SIZE__ CONFIG_UCLIBCXX_BUFSIZE
#define __UCLIBCXX_CODE_EXPANSION__ 1
#define __UCLIBCXX_EXPAND_CONSTRUCTORS_DESTRUCTORS__ 1
#define __UCLIBCXX_EXPAND_STRING_CHAR__ 1
#define __UCLIBCXX_EXPAND_VECTOR_BASIC__ 1
#define __UCLIBCXX_EXPAND_IOS_CHAR__ 1
#define __UCLIBCXX_EXPAND_STREAMBUF_CHAR__ 1
#define __UCLIBCXX_EXPAND_ISTREAM_CHAR__ 1
#define __UCLIBCXX_EXPAND_OSTREAM_CHAR__ 1
#define __UCLIBCXX_EXPAND_FSTREAM_CHAR__ 1
#define __UCLIBCXX_EXPAND_SSTREAM_CHAR__ 1
/* Library Installation Options */
#define __UCLIBCXX_RUNTIME_PREFIX__ "/usr/uClibc++"
#define __UCLIBCXX_RUNTIME_INCLUDE_SUBDIR__ "/include"
#define __UCLIBCXX_RUNTIME_LIB_SUBDIR__ "/lib"
#define __UCLIBCXX_RUNTIME_BIN_SUBDIR__ "/bin"
#ifdef CONFIG_CXX_EXCEPTION
# define __UCLIBCXX_EXCEPTION_SUPPORT__ 1
#endif
#undef __IMPORT_LIBSUP__
#undef __IMPORT_LIBGCC_EH__
#define __BUILD_STATIC_LIB__ 1
#define __BUILD_ONLY_STATIC_LIB__
#ifdef CONFIG_DEBUG_ASSERTIONS
# define __DODEBUG__ 1
#endif
#endif /* SYSTEM_CONFIGURATION_H */