From c39e5557c5e5659640692ed8204d00960a2cac90 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Thu, 8 Nov 2012 14:10:34 +0100 Subject: [PATCH] libports: stdcxx 4.7.2 update Fixes #469. --- .gitignore | 9 +- libports/include/stdcxx-genode/README | 12 + .../include/stdcxx-genode/bits/c++allocator.h | 7 - .../include/stdcxx-genode/bits/c++config.h | 253 ++++++++++++------ .../include/stdcxx-genode/bits/c++locale.h | 1 - .../include/stdcxx-genode/bits/cpu_defines.h | 0 .../stdcxx-genode/bits/exception_defines.h | 47 ---- .../include/stdcxx-genode/bits/os_defines.h | 0 libports/include/stdcxx-genode/exception | 1 - libports/lib/mk/stdcxx.mk | 16 +- libports/ports/stdcxx.inc | 2 +- libports/ports/stdcxx.mk | 26 +- 12 files changed, 218 insertions(+), 156 deletions(-) create mode 100644 libports/include/stdcxx-genode/README delete mode 100644 libports/include/stdcxx-genode/bits/c++allocator.h delete mode 120000 libports/include/stdcxx-genode/bits/c++locale.h delete mode 100644 libports/include/stdcxx-genode/bits/cpu_defines.h delete mode 100644 libports/include/stdcxx-genode/bits/exception_defines.h delete mode 100644 libports/include/stdcxx-genode/bits/os_defines.h delete mode 120000 libports/include/stdcxx-genode/exception diff --git a/.gitignore b/.gitignore index 7d6169e8a2..7bfdd7c33b 100644 --- a/.gitignore +++ b/.gitignore @@ -77,20 +77,25 @@ /libports/include/gmp/x86_64/gmp-mparam.h /libports/include/mpc/ /libports/include/mpfr/ +/libports/include/stdcxx-genode/bits/atomic_lockfree_defines.h /libports/include/stdcxx-genode/bits/atomic_word.h /libports/include/stdcxx-genode/bits/basic_file.h +/libports/include/stdcxx-genode/bits/c++allocator.h /libports/include/stdcxx-genode/bits/c++io.h +/libports/include/stdcxx-genode/bits/c++locale.h +/libports/include/stdcxx-genode/bits/cpu_defines.h +/libports/include/stdcxx-genode/bits/cxxabi_tweaks.h /libports/include/stdcxx-genode/bits/ctype_base.h /libports/include/stdcxx-genode/bits/ctype_inline.h -/libports/include/stdcxx-genode/bits/ctype_noninline.h /libports/include/stdcxx-genode/bits/cxxabi_forced.h /libports/include/stdcxx-genode/bits/error_constants.h +/libports/include/stdcxx-genode/bits/exception_defines.h /libports/include/stdcxx-genode/bits/hash_bytes.h /libports/include/stdcxx-genode/bits/messages_members.h +/libports/include/stdcxx-genode/bits/os_defines.h /libports/include/stdcxx-genode/bits/time_members.h /libports/include/stdcxx-genode/bits/exception_ptr.h /libports/include/stdcxx-genode/bits/nested_exception.h -/libports/include/stdcxx-genode/initializer_list /libports/include/stdcxx-genode/exception /libports/include/stdcxx-genode/new /libports/src/lib/gmp/mpn/asm-defs.m4 diff --git a/libports/include/stdcxx-genode/README b/libports/include/stdcxx-genode/README new file mode 100644 index 0000000000..961cfdc4c2 --- /dev/null +++ b/libports/include/stdcxx-genode/README @@ -0,0 +1,12 @@ +file origins +------------ + +- bits/gstdint.h: manually created +- bits/gthr.h: renamed copy of 'libgcc/gthr-single.h' from GCC source +- bits/c++config.h: + - run 'make noux-pkg/gcc_x86' for a 32-bit x86 platform + - run 'make noux-pkg/gcc_x86' for a 64-bit x86 platform + - run 'make noux-pkg/gcc_arm' for a 32-bit ARM platform + - compare the generated 'c++config.h' files + - create a combined 'c++config.h' file by making the differing macros + depend on the '__x86_64__' and '__ARM_EABI__' macros diff --git a/libports/include/stdcxx-genode/bits/c++allocator.h b/libports/include/stdcxx-genode/bits/c++allocator.h deleted file mode 100644 index 4a00076cb5..0000000000 --- a/libports/include/stdcxx-genode/bits/c++allocator.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _INCLUDE__STDCXX_GENODE__BITS__CXXALLOCATOR_H_ -#define _INCLUDE__STDCXX_GENODE__BITS__CXXALLOCATOR_H_ - -#include -#define __glibcxx_base_allocator __gnu_cxx::new_allocator - -#endif /* _INCLUDE__STDCXX_GENODE__BITS__CXXALLOCATOR_H_ */ diff --git a/libports/include/stdcxx-genode/bits/c++config.h b/libports/include/stdcxx-genode/bits/c++config.h index 26563d0283..6af028a60e 100644 --- a/libports/include/stdcxx-genode/bits/c++config.h +++ b/libports/include/stdcxx-genode/bits/c++config.h @@ -32,7 +32,7 @@ #define _GLIBCXX_CXX_CONFIG_H 1 // The current version of the C++ library in compressed ISO date format. -#define __GLIBCXX__ 20110627 +#define __GLIBCXX__ 20120920 // Macros for various attributes. // _GLIBCXX_PURE @@ -52,10 +52,9 @@ # define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) #endif +// See below for C++ #ifndef _GLIBCXX_NOTHROW -# ifdef __cplusplus -# define _GLIBCXX_NOTHROW throw() -# else +# ifndef __cplusplus # define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) # endif #endif @@ -99,6 +98,23 @@ # endif #endif +// Macro for noexcept, to support in mixed 03/0x mode. +#ifndef _GLIBCXX_NOEXCEPT +# ifdef __GXX_EXPERIMENTAL_CXX0X__ +# define _GLIBCXX_NOEXCEPT noexcept +# define _GLIBCXX_USE_NOEXCEPT noexcept +# define _GLIBCXX_THROW(_EXC) +# else +# define _GLIBCXX_NOEXCEPT +# define _GLIBCXX_USE_NOEXCEPT throw() +# define _GLIBCXX_THROW(_EXC) throw(_EXC) +# endif +#endif + +#ifndef _GLIBCXX_NOTHROW +# define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT +#endif + // Macro for extern template, ie controling template linkage via use // of extern keyword on template declaration. As documented in the g++ // manual, it inhibits all implicit instantiations and is used @@ -132,6 +148,8 @@ namespace __detail { } } + namespace tr2 { } + namespace decimal { } namespace chrono { } @@ -162,41 +180,45 @@ namespace std // Defined if inline namespaces are used for versioning. -# define _GLIBCXX_INLINE_VERSION 0 +# define _GLIBCXX_INLINE_VERSION 0 // Inline namespace for symbol versioning. #if _GLIBCXX_INLINE_VERSION + namespace std { - inline namespace _6 { } + inline namespace __7 { } - namespace rel_ops { inline namespace _6 { } } + namespace rel_ops { inline namespace __7 { } } namespace tr1 { - inline namespace _6 { } - namespace placeholders { inline namespace _6 { } } - namespace regex_constants { inline namespace _6 { } } - namespace __detail { inline namespace _6 { } } + inline namespace __7 { } + namespace placeholders { inline namespace __7 { } } + namespace regex_constants { inline namespace __7 { } } + namespace __detail { inline namespace __7 { } } } - namespace decimal { inline namespace _6 { } } + namespace tr2 + { inline namespace __7 { } } - namespace chrono { inline namespace _6 { } } - namespace placeholders { inline namespace _6 { } } - namespace regex_constants { inline namespace _6 { } } - namespace this_thread { inline namespace _6 { } } + namespace decimal { inline namespace __7 { } } - namespace __detail { inline namespace _6 { } } - namespace __regex { inline namespace _6 { } } + namespace chrono { inline namespace __7 { } } + namespace placeholders { inline namespace __7 { } } + namespace regex_constants { inline namespace __7 { } } + namespace this_thread { inline namespace __7 { } } + + namespace __detail { inline namespace __7 { } } + namespace __regex { inline namespace __7 { } } } namespace __gnu_cxx { - inline namespace _6 { } - namespace __detail { inline namespace _6 { } } + inline namespace __7 { } + namespace __detail { inline namespace __7 { } } } -# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace _6 { +# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __7 { # define _GLIBCXX_END_NAMESPACE_VERSION } #else # define _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -213,7 +235,7 @@ namespace std namespace __cxx1998 { #if _GLIBCXX_INLINE_VERSION - inline namespace _6 { } + inline namespace __7 { } #endif } @@ -268,7 +290,7 @@ namespace std # define _GLIBCXX_END_NAMESPACE_CONTAINER \ } _GLIBCXX_END_NAMESPACE_VERSION # undef _GLIBCXX_EXTERN_TEMPLATE -# define _GLIBCXX_EXTERN_TEMPLATE 1 -1 +# define _GLIBCXX_EXTERN_TEMPLATE -1 #endif #ifdef _GLIBCXX_PARALLEL @@ -469,7 +491,7 @@ namespace std /* #undef _GLIBCXX_HAVE_CEILL */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_COMPLEX_H */ +#define _GLIBCXX_HAVE_COMPLEX_H 1 /* Define to 1 if you have the `cosf' function. */ /* #undef _GLIBCXX_HAVE_COSF */ @@ -487,13 +509,16 @@ namespace std #define _GLIBCXX_HAVE_DLFCN_H 1 /* Define if EBADMSG exists. */ -/* #undef _GLIBCXX_HAVE_EBADMSG */ +#define _GLIBCXX_HAVE_EBADMSG 1 /* Define if ECANCELED exists. */ -/* #undef _GLIBCXX_HAVE_ECANCELED */ +#define _GLIBCXX_HAVE_ECANCELED 1 + +/* Define if ECHILD exists. */ +#define _GLIBCXX_HAVE_ECHILD 1 /* Define if EIDRM exists. */ -/* #undef _GLIBCXX_HAVE_EIDRM */ +#define _GLIBCXX_HAVE_EIDRM 1 /* Define to 1 if you have the header file. */ /* #undef _GLIBCXX_HAVE_ENDIAN_H */ @@ -502,7 +527,10 @@ namespace std /* #undef _GLIBCXX_HAVE_ENODATA */ /* Define if ENOLINK exists. */ -/* #undef _GLIBCXX_HAVE_ENOLINK */ +#define _GLIBCXX_HAVE_ENOLINK 1 + +/* Define if ENOSPC exists. */ +#define _GLIBCXX_HAVE_ENOSPC 1 /* Define if ENOSR exists. */ /* #undef _GLIBCXX_HAVE_ENOSR */ @@ -514,22 +542,31 @@ namespace std /* #undef _GLIBCXX_HAVE_ENOTRECOVERABLE */ /* Define if ENOTSUP exists. */ -/* #undef _GLIBCXX_HAVE_ENOTSUP */ +#define _GLIBCXX_HAVE_ENOTSUP 1 /* Define if EOVERFLOW exists. */ -/* #undef _GLIBCXX_HAVE_EOVERFLOW */ +#define _GLIBCXX_HAVE_EOVERFLOW 1 /* Define if EOWNERDEAD exists. */ /* #undef _GLIBCXX_HAVE_EOWNERDEAD */ +/* Define if EPERM exists. */ +#define _GLIBCXX_HAVE_EPERM 1 + /* Define if EPROTO exists. */ -/* #undef _GLIBCXX_HAVE_EPROTO */ +#define _GLIBCXX_HAVE_EPROTO 1 /* Define if ETIME exists. */ /* #undef _GLIBCXX_HAVE_ETIME */ +/* Define if ETIMEDOUT exists. */ +#define _GLIBCXX_HAVE_ETIMEDOUT 1 + /* Define if ETXTBSY exists. */ -/* #undef _GLIBCXX_HAVE_ETXTBSY */ +#define _GLIBCXX_HAVE_ETXTBSY 1 + +/* Define if EWOULDBLOCK exists. */ +#define _GLIBCXX_HAVE_EWOULDBLOCK 1 /* Define to 1 if you have the header file. */ /* #undef _GLIBCXX_HAVE_EXECINFO_H */ @@ -547,7 +584,7 @@ namespace std /* #undef _GLIBCXX_HAVE_FABSL */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_FENV_H */ +#define _GLIBCXX_HAVE_FENV_H 1 /* Define to 1 if you have the `finite' function. */ /* #undef _GLIBCXX_HAVE_FINITE */ @@ -588,9 +625,8 @@ namespace std /* Define if _Unwind_GetIPInfo is available. */ #define _GLIBCXX_HAVE_GETIPINFO 1 -/* Define if gthr-default.h exists (meaning that threading support is - enabled). */ -/* #undef _GLIBCXX_HAVE_GTHR_DEFAULT */ +/* Define if gets is available in . */ +#define _GLIBCXX_HAVE_GETS 1 /* Define to 1 if you have the `hypot' function. */ /* #undef _GLIBCXX_HAVE_HYPOT */ @@ -605,16 +641,20 @@ namespace std /* #undef _GLIBCXX_HAVE_ICONV */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_IEEEFP_H */ +#define _GLIBCXX_HAVE_IEEEFP_H 1 /* Define if int64_t is available in . */ -/* #undef _GLIBCXX_HAVE_INT64_T */ +#define _GLIBCXX_HAVE_INT64_T 1 /* Define if int64_t is a long. */ -/* #undef _GLIBCXX_HAVE_INT64_T_LONG */ +#ifdef __x86_64__ +#define _GLIBCXX_HAVE_INT64_T_LONG 1 +#endif /* Define if int64_t is a long long. */ -/* #undef _GLIBCXX_HAVE_INT64_T_LONG_LONG */ +#ifndef __x86_64__ +#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1 +#endif /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_INTTYPES_H 1 @@ -638,10 +678,10 @@ namespace std /* #undef _GLIBCXX_HAVE_ISNANL */ /* Defined if iswblank exists. */ -/* #undef _GLIBCXX_HAVE_ISWBLANK */ +#define _GLIBCXX_HAVE_ISWBLANK 1 /* Define if LC_MESSAGES is available in . */ -/* #undef _GLIBCXX_HAVE_LC_MESSAGES */ +#define _GLIBCXX_HAVE_LC_MESSAGES 1 /* Define to 1 if you have the `ldexpf' function. */ /* #undef _GLIBCXX_HAVE_LDEXPF */ @@ -686,13 +726,13 @@ namespace std /* #undef _GLIBCXX_HAVE_LOGL */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */ +#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1 /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */ +#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1 /* Define if mbstate_t exists in wchar.h. */ -/* #undef _GLIBCXX_HAVE_MBSTATE_T */ +#define _GLIBCXX_HAVE_MBSTATE_T 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_MEMORY_H 1 @@ -751,8 +791,11 @@ namespace std /* Define to 1 if you have the `sqrtl' function. */ /* #undef _GLIBCXX_HAVE_SQRTL */ +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDALIGN_H 1 + /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_STDBOOL_H */ +#define _GLIBCXX_HAVE_STDBOOL_H 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_STDINT_H 1 @@ -764,7 +807,7 @@ namespace std /* #undef _GLIBCXX_HAVE_STRERROR_L */ /* Define if strerror_r is available in . */ -/* #undef _GLIBCXX_HAVE_STRERROR_R */ +#define _GLIBCXX_HAVE_STRERROR_R 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_STRINGS_H 1 @@ -786,13 +829,13 @@ namespace std /* #undef _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */ +#define _GLIBCXX_HAVE_SYS_FILIO_H 1 /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_IOCTL_H */ +#define _GLIBCXX_HAVE_SYS_IOCTL_H 1 /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_IPC_H */ +#define _GLIBCXX_HAVE_SYS_IPC_H 1 /* Define to 1 if you have the header file. */ /* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */ @@ -801,10 +844,10 @@ namespace std /* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_PARAM_H */ +#define _GLIBCXX_HAVE_SYS_PARAM_H 1 /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_RESOURCE_H */ +#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_SYS_SEM_H 1 @@ -812,20 +855,23 @@ namespace std /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_SYS_STAT_H 1 +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_SYSINFO_H */ + /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_TIME_H */ +#define _GLIBCXX_HAVE_SYS_TIME_H 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_SYS_UIO_H */ +#define _GLIBCXX_HAVE_SYS_UIO_H 1 /* Define if S_IFREG is available in . */ /* #undef _GLIBCXX_HAVE_S_IFREG */ /* Define if S_IFREG is available in . */ -/* #undef _GLIBCXX_HAVE_S_ISREG */ +#define _GLIBCXX_HAVE_S_ISREG 1 /* Define to 1 if you have the `tanf' function. */ /* #undef _GLIBCXX_HAVE_TANF */ @@ -840,7 +886,7 @@ namespace std /* #undef _GLIBCXX_HAVE_TANL */ /* Define to 1 if you have the header file. */ -/* #undef _GLIBCXX_HAVE_TGMATH_H */ +#define _GLIBCXX_HAVE_TGMATH_H 1 /* Define to 1 if the target supports thread-local storage. */ /* #undef _GLIBCXX_HAVE_TLS */ @@ -849,25 +895,25 @@ namespace std #define _GLIBCXX_HAVE_UNISTD_H 1 /* Defined if vfwscanf exists. */ -/* #undef _GLIBCXX_HAVE_VFWSCANF */ +#define _GLIBCXX_HAVE_VFWSCANF 1 /* Defined if vswscanf exists. */ -/* #undef _GLIBCXX_HAVE_VSWSCANF */ +#define _GLIBCXX_HAVE_VSWSCANF 1 /* Defined if vwscanf exists. */ -/* #undef _GLIBCXX_HAVE_VWSCANF */ +#define _GLIBCXX_HAVE_VWSCANF 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_WCHAR_H 1 /* Defined if wcstof exists. */ -/* #undef _GLIBCXX_HAVE_WCSTOF */ +#define _GLIBCXX_HAVE_WCSTOF 1 /* Define to 1 if you have the header file. */ #define _GLIBCXX_HAVE_WCTYPE_H 1 /* Define if writev is available in . */ -/* #undef _GLIBCXX_HAVE_WRITEV */ +#define _GLIBCXX_HAVE_WRITEV 1 /* Define to 1 if you have the `_acosf' function. */ /* #undef _GLIBCXX_HAVE__ACOSF */ @@ -1090,7 +1136,7 @@ namespace std /* #undef SIZEOF_INT */ /* The size of `long', as computed by sizeof. */ -// #define SIZEOF_LONG 4 +/* #undef SIZEOF_LONG */ /* The size of `short', as computed by sizeof. */ /* #undef SIZEOF_SHORT */ @@ -1104,25 +1150,15 @@ namespace std /* Version number of package */ /* #undef _GLIBCXX_VERSION */ -/* Define if builtin atomic operations for bool are supported on this host. */ -/* #undef _GLIBCXX_ATOMIC_BUILTINS_1 */ - -/* Define if builtin atomic operations for short are supported on this host. - */ -/* #undef _GLIBCXX_ATOMIC_BUILTINS_2 */ - -/* Define if builtin atomic operations for int are supported on this host. */ -/* #undef _GLIBCXX_ATOMIC_BUILTINS_4 */ - -/* Define if builtin atomic operations for long long are supported on this - host. */ -/* #undef _GLIBCXX_ATOMIC_BUILTINS_8 */ +/* Define if the compiler supports C++11 atomics. */ +#define _GLIBCXX_ATOMIC_BUILTINS 1 /* Define to use concept checking code from the boost libraries. */ /* #undef _GLIBCXX_CONCEPT_CHECKS */ -/* Define if a fully dynamic basic_string is wanted. */ -/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */ +/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable, + undefined for platform defaults */ +#define _GLIBCXX_FULLY_DYNAMIC_STRING 0 /* Define if gthreads library is available. */ /* #undef _GLIBCXX_HAS_GTHREADS */ @@ -1133,13 +1169,17 @@ namespace std /* Define if compatibility should be provided for -mlong-double-64. */ /* Define if ptrdiff_t is int. */ +#ifndef __x86_64__ #define _GLIBCXX_PTRDIFF_T_IS_INT 1 +#endif /* Define if using setrlimit to set resource limits during "make check" */ /* #undef _GLIBCXX_RES_LIMITS */ /* Define if size_t is unsigned int. */ -// #define _GLIBCXX_SIZE_T_IS_UINT 1 +#ifndef __x86_64__ +#define _GLIBCXX_SIZE_T_IS_UINT 1 +#endif /* Define if the compiler is configured for setjmp/longjmp exceptions. */ /* #undef _GLIBCXX_SJLJ_EXCEPTIONS */ @@ -1184,15 +1224,15 @@ namespace std /* Define if C99 functions in should be imported in in namespace std::tr1. */ -/* #undef _GLIBCXX_USE_C99_CTYPE_TR1 */ +#define _GLIBCXX_USE_C99_CTYPE_TR1 1 /* Define if C99 functions in should be imported in in namespace std::tr1. */ -/* #undef _GLIBCXX_USE_C99_FENV_TR1 */ +#define _GLIBCXX_USE_C99_FENV_TR1 1 /* Define if C99 functions in should be imported in in namespace std::tr1. */ -/* #undef _GLIBCXX_USE_C99_INTTYPES_TR1 */ +#define _GLIBCXX_USE_C99_INTTYPES_TR1 1 /* Define if wchar_t C99 functions in should be imported in in namespace std::tr1. */ @@ -1200,7 +1240,7 @@ namespace std /* Define if C99 functions or macros in should be imported in in namespace std. */ -/* #undef _GLIBCXX_USE_C99_MATH */ +#define _GLIBCXX_USE_C99_MATH 1 /* Define if C99 functions or macros in should be imported in in namespace std::tr1. */ @@ -1208,7 +1248,7 @@ namespace std /* Define if C99 types in should be imported in in namespace std::tr1. */ -/* #undef _GLIBCXX_USE_C99_STDINT_TR1 */ +#define _GLIBCXX_USE_C99_STDINT_TR1 1 /* Defined if clock_gettime has monotonic clock support. */ /* #undef _GLIBCXX_USE_CLOCK_MONOTONIC */ @@ -1220,8 +1260,21 @@ namespace std this host. */ /* #undef _GLIBCXX_USE_DECIMAL_FLOAT */ +/* Define if __float128 is supported on this host. */ +#ifndef __ARM_EABI__ +#define _GLIBCXX_USE_FLOAT128 1 +#endif + /* Defined if gettimeofday is available. */ -/* #undef _GLIBCXX_USE_GETTIMEOFDAY */ +#define _GLIBCXX_USE_GETTIMEOFDAY 1 + +/* Define if get_nprocs is available in . */ +/* #undef _GLIBCXX_USE_GET_NPROCS */ + +/* Define if __int128 is supported on this host. */ +#ifdef __x86_64__ +#define _GLIBCXX_USE_INT128 1 +#endif /* Define if LFS support is available. */ /* #undef _GLIBCXX_USE_LFS */ @@ -1235,6 +1288,9 @@ namespace std /* Define if NLS translations are to be used. */ /* #undef _GLIBCXX_USE_NLS */ +/* Define if pthreads_num_processors_np is available in . */ +/* #undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP */ + /* Define if /dev/random and /dev/urandom are available for the random_device of TR1 (Chapter 5.1). */ /* #undef _GLIBCXX_USE_RANDOM_TR1 */ @@ -1242,8 +1298,35 @@ namespace std /* Defined if sched_yield is available. */ /* #undef _GLIBCXX_USE_SCHED_YIELD */ +/* Define if _SC_NPROCESSORS_ONLN is available in . */ +#define _GLIBCXX_USE_SC_NPROCESSORS_ONLN 1 + +/* Define if _SC_NPROC_ONLN is available in . */ +/* #undef _GLIBCXX_USE_SC_NPROC_ONLN */ + +/* Define if sysctl(), CTL_HW and HW_NCPU are available in . */ +/* #undef _GLIBCXX_USE_SYSCTL_HW_NCPU */ + /* Define if code specialized for wchar_t should be used. */ -/* #undef _GLIBCXX_USE_WCHAR_T */ +#define _GLIBCXX_USE_WCHAR_T 1 + +/* Define to 1 if mutex_timedlock is available. */ +#define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 + +/* Define if all C++ overloads are available in . */ +#if __cplusplus >= 199711L +/* #undef __CORRECT_ISO_CPP_MATH_H_PROTO1 */ +#endif + +/* Define if only double std::abs(double) is available in . */ +#if __cplusplus >= 199711L +/* #undef __CORRECT_ISO_CPP_MATH_H_PROTO2 */ +#endif + +/* Define if all C++ overloads are available in . */ +#if __cplusplus >= 199711L +/* #undef __CORRECT_ISO_CPP_STDLIB_H_PROTO */ +#endif #if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF) # define _GLIBCXX_HAVE_ACOSF 1 diff --git a/libports/include/stdcxx-genode/bits/c++locale.h b/libports/include/stdcxx-genode/bits/c++locale.h deleted file mode 120000 index 79487ff5bb..0000000000 --- a/libports/include/stdcxx-genode/bits/c++locale.h +++ /dev/null @@ -1 +0,0 @@ -../../../contrib/stdcxx-4.6.1/config/locale/generic/c_locale.h \ No newline at end of file diff --git a/libports/include/stdcxx-genode/bits/cpu_defines.h b/libports/include/stdcxx-genode/bits/cpu_defines.h deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/libports/include/stdcxx-genode/bits/exception_defines.h b/libports/include/stdcxx-genode/bits/exception_defines.h deleted file mode 100644 index 269937cff9..0000000000 --- a/libports/include/stdcxx-genode/bits/exception_defines.h +++ /dev/null @@ -1,47 +0,0 @@ -// -fno-exceptions Support -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2006, 2007, 2008, 2009, -// 2011 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/exception_defines.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{exception} - */ - -#ifndef _EXCEPTION_DEFINES_H -#define _EXCEPTION_DEFINES_H 1 - -#ifndef __EXCEPTIONS -// Iff -fno-exceptions, transform error handling code to work without it. -# define __try if (true) -# define __catch(X) if (false) -# define __throw_exception_again -#else -// Else proceed normally. -# define __try try -# define __catch(X) catch(X) -# define __throw_exception_again throw -#endif - -#endif diff --git a/libports/include/stdcxx-genode/bits/os_defines.h b/libports/include/stdcxx-genode/bits/os_defines.h deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/libports/include/stdcxx-genode/exception b/libports/include/stdcxx-genode/exception deleted file mode 120000 index 2b37056f44..0000000000 --- a/libports/include/stdcxx-genode/exception +++ /dev/null @@ -1 +0,0 @@ -../../contrib/stdcxx-4.6.1/libsupc++/exception \ No newline at end of file diff --git a/libports/lib/mk/stdcxx.mk b/libports/lib/mk/stdcxx.mk index 7bd588b253..df3e1d7475 100644 --- a/libports/lib/mk/stdcxx.mk +++ b/libports/lib/mk/stdcxx.mk @@ -6,18 +6,22 @@ STDCXX_DIR = $(REP_DIR)/contrib/$(STDCXX) INC_DIR += $(REP_DIR)/include/stdcxx-genode/bits # exclude code that is no single compilation unit -FILTER_OUT = hash-long-double-aux.cc +FILTER_OUT = hash-long-double-tr1-aux.cc # exclude deprecated parts FILTER_OUT += strstream.cc -# add libsupc++ sources -SRC_CC = $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/*.cc))) +# add libstdc++ sources +SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++11/*.cc))) +SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++98/*.cc))) # add config/locale/generic sources SRC_CC += $(notdir $(wildcard $(STDCXX_DIR)/config/locale/generic/*.cc)) -CC_OPT += -D__GXX_EXPERIMENTAL_CXX0X__ -std=c++0x +# add config/os/generic sources +SRC_CC += $(notdir $(wildcard $(STDCXX_DIR)/config/os/generic/*.cc)) + +CC_OPT += -D__GXX_EXPERIMENTAL_CXX0X__ -std=c++11 # add config/io backend SRC_CC += basic_file_stdio.cc @@ -32,8 +36,10 @@ INC_DIR += $(STDCXX_DIR)/libsupc++ include $(REP_DIR)/lib/import/import-stdcxx.mk -vpath %.cc $(STDCXX_DIR)/src +vpath %.cc $(STDCXX_DIR)/src/c++11 +vpath %.cc $(STDCXX_DIR)/src/c++98 vpath %.cc $(STDCXX_DIR)/config/locale/generic +vpath %.cc $(STDCXX_DIR)/config/os/generic vpath %.cc $(STDCXX_DIR)/config/io vpath %.cc $(STDCXX_DIR)/libsupc++ diff --git a/libports/ports/stdcxx.inc b/libports/ports/stdcxx.inc index a73dcd6c74..ea0b44f542 100644 --- a/libports/ports/stdcxx.inc +++ b/libports/ports/stdcxx.inc @@ -1,2 +1,2 @@ -STDCXX_VERSION = 4.6.1 +STDCXX_VERSION = 4.7.2 STDCXX = stdcxx-$(STDCXX_VERSION) diff --git a/libports/ports/stdcxx.mk b/libports/ports/stdcxx.mk index 46584d0342..ba2ac5642e 100644 --- a/libports/ports/stdcxx.mk +++ b/libports/ports/stdcxx.mk @@ -1,7 +1,7 @@ include ports/stdcxx.inc STDCXX_TBZ2 = $(STDCXX).tar.bz2 -STDCXX_URL = ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(STDCXX_VERSION)/gcc-g++-$(STDCXX_VERSION).tar.bz2 +STDCXX_URL = ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(STDCXX_VERSION)/gcc-$(STDCXX_VERSION).tar.bz2 # # Interface to top-level prepare Makefile @@ -11,19 +11,23 @@ PORTS += $(STDCXX) STDCXX_GEN_INCLUDES := \ include/stdcxx-genode/new \ include/stdcxx-genode/exception \ - include/stdcxx-genode/initializer_list \ + include/stdcxx-genode/bits/c++allocator.h \ include/stdcxx-genode/bits/c++locale.h \ + include/stdcxx-genode/bits/cpu_defines.h \ + include/stdcxx-genode/bits/cxxabi_tweaks.h \ include/stdcxx-genode/bits/hash_bytes.h \ include/stdcxx-genode/bits/error_constants.h \ + include/stdcxx-genode/bits/os_defines.h \ include/stdcxx-genode/bits/cxxabi_forced.h \ + include/stdcxx-genode/bits/atomic_lockfree_defines.h \ include/stdcxx-genode/bits/basic_file.h \ include/stdcxx-genode/bits/c++io.h \ include/stdcxx-genode/bits/atomic_word.h \ include/stdcxx-genode/bits/ctype_base.h \ include/stdcxx-genode/bits/ctype_inline.h \ - include/stdcxx-genode/bits/ctype_noninline.h \ include/stdcxx-genode/bits/time_members.h \ include/stdcxx-genode/bits/messages_members.h \ + include/stdcxx-genode/bits/exception_defines.h \ include/stdcxx-genode/bits/exception_ptr.h \ include/stdcxx-genode/bits/nested_exception.h @@ -48,20 +52,30 @@ include/stdcxx-genode/new: $(VERBOSE)ln -s ../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/new $@ include/stdcxx-genode/exception: $(VERBOSE)ln -s ../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/exception $@ -include/stdcxx-genode/initializer_list: - $(VERBOSE)ln -s ../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/initializer_list $@ include/stdcxx-genode/bits/hash_bytes.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/hash_bytes.h $@ +include/stdcxx-genode/bits/exception_defines.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/exception_defines.h $@ include/stdcxx-genode/bits/exception_ptr.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/exception_ptr.h $@ include/stdcxx-genode/bits/nested_exception.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/nested_exception.h $@ include/stdcxx-genode/bits/cxxabi_forced.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/cxxabi_forced.h $@ +include/stdcxx-genode/bits/atomic_lockfree_defines.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/libsupc++/atomic_lockfree_defines.h $@ +include/stdcxx-genode/bits/c++allocator.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/allocator/new_allocator_base.h $@ include/stdcxx-genode/bits/c++locale.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/locale/generic/c_locale.h $@ +include/stdcxx-genode/bits/cpu_defines.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/cpu/generic/cpu_defines.h $@ +include/stdcxx-genode/bits/cxxabi_tweaks.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/cpu/generic/cxxabi_tweaks.h $@ include/stdcxx-genode/bits/error_constants.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/os/generic/error_constants.h $@ +include/stdcxx-genode/bits/os_defines.h: + $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/os/generic/os_defines.h $@ include/stdcxx-genode/bits/basic_file.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/io/basic_file_stdio.h $@ include/stdcxx-genode/bits/c++io.h: @@ -72,8 +86,6 @@ include/stdcxx-genode/bits/ctype_base.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/os/generic/ctype_base.h $@ include/stdcxx-genode/bits/ctype_inline.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/os/generic/ctype_inline.h $@ -include/stdcxx-genode/bits/ctype_noninline.h: - $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/os/generic/ctype_noninline.h $@ include/stdcxx-genode/bits/time_members.h: $(VERBOSE)ln -s ../../../$(CONTRIB_DIR)/$(STDCXX)/config/locale/generic/time_members.h $@ include/stdcxx-genode/bits/messages_members.h: