stdcxx: update to version 10.3.0

Issue #4094
This commit is contained in:
Christian Prochaska 2021-04-05 03:09:56 +02:00 committed by Christian Helmuth
parent 9a3d5dcf21
commit a0f5d34e25
10 changed files with 6348 additions and 108 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
// Predefined symbols and macros -*- C++ -*-
// Copyright (C) 1997-2018 Free Software Foundation, Inc.
// Copyright (C) 1997-2020 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
@ -24,17 +24,17 @@
/** @file bits/c++config.h
* This is an internal header file, included by other library headers.
* Do not attempt to use it directly. @headername{iosfwd}
* Do not attempt to use it directly. @headername{version}
*/
#ifndef _GLIBCXX_CXX_CONFIG_H
#define _GLIBCXX_CXX_CONFIG_H 1
// The major release number for the GCC release the C++ library belongs to.
#define _GLIBCXX_RELEASE 8
#define _GLIBCXX_RELEASE 10
// The datestamp of the C++ library in compressed ISO date format.
#define __GLIBCXX__ 20190222
#define __GLIBCXX__ 20210408
// Macros for various attributes.
// _GLIBCXX_PURE
@ -77,15 +77,20 @@
// Macros for deprecated attributes.
// _GLIBCXX_USE_DEPRECATED
// _GLIBCXX_DEPRECATED
// _GLIBCXX_DEPRECATED_SUGGEST
// _GLIBCXX17_DEPRECATED
// _GLIBCXX20_DEPRECATED( string-literal )
#ifndef _GLIBCXX_USE_DEPRECATED
# define _GLIBCXX_USE_DEPRECATED 1
#endif
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
#else
# define _GLIBCXX_DEPRECATED
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
#endif
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
@ -94,11 +99,25 @@
# define _GLIBCXX17_DEPRECATED
#endif
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
#else
# define _GLIBCXX20_DEPRECATED(MSG)
#endif
// Macros for ABI tag attributes.
#ifndef _GLIBCXX_ABI_TAG_CXX11
# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))
#endif
// Macro to warn about unused results.
#if __cplusplus >= 201703L
# define _GLIBCXX_NODISCARD [[__nodiscard__]]
#else
# define _GLIBCXX_NODISCARD
#endif
#if __cplusplus
@ -122,15 +141,23 @@
#endif
#ifndef _GLIBCXX17_CONSTEXPR
# if __cplusplus > 201402L
# if __cplusplus >= 201703L
# define _GLIBCXX17_CONSTEXPR constexpr
# else
# define _GLIBCXX17_CONSTEXPR
# endif
#endif
#ifndef _GLIBCXX20_CONSTEXPR
# if __cplusplus > 201703L
# define _GLIBCXX20_CONSTEXPR constexpr
# else
# define _GLIBCXX20_CONSTEXPR
# endif
#endif
#ifndef _GLIBCXX17_INLINE
# if __cplusplus > 201402L
# if __cplusplus >= 201703L
# define _GLIBCXX17_INLINE inline
# else
# define _GLIBCXX17_INLINE
@ -141,12 +168,12 @@
#ifndef _GLIBCXX_NOEXCEPT
# if __cplusplus >= 201103L
# define _GLIBCXX_NOEXCEPT noexcept
# define _GLIBCXX_NOEXCEPT_IF(_COND) noexcept(_COND)
# define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)
# define _GLIBCXX_USE_NOEXCEPT noexcept
# define _GLIBCXX_THROW(_EXC)
# else
# define _GLIBCXX_NOEXCEPT
# define _GLIBCXX_NOEXCEPT_IF(_COND)
# define _GLIBCXX_NOEXCEPT_IF(...)
# define _GLIBCXX_USE_NOEXCEPT throw()
# define _GLIBCXX_THROW(_EXC) throw(_EXC)
# endif
@ -191,7 +218,6 @@
{
namespace __debug { }
namespace __parallel { }
namespace __profile { }
namespace __cxx1998 { }
namespace __detail {
@ -309,9 +335,8 @@ _GLIBCXX_END_NAMESPACE_VERSION
# define _GLIBCXX_END_NAMESPACE_VERSION
#endif
// Inline namespaces for special modes: debug, parallel, profile.
#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) \
|| defined(_GLIBCXX_PROFILE)
// Inline namespaces for special modes: debug, parallel.
#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL)
namespace std
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@ -335,23 +360,12 @@ _GLIBCXX_END_NAMESPACE_VERSION
# ifdef _GLIBCXX_PARALLEL
inline namespace __parallel { }
# endif
// Inline namespaces for profile mode
# ifdef _GLIBCXX_PROFILE
inline namespace __profile { }
# endif
}
// Check for invalid usage and unsupported mixed-mode use.
# if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL)
# error illegal use of multiple inlined namespaces
# endif
# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_DEBUG)
# error illegal use of multiple inlined namespaces
# endif
# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_PARALLEL)
# error illegal use of multiple inlined namespaces
# endif
// Check for invalid use due to lack for weak symbols.
# if __NO_INLINE__ && !__GXX_WEAK__
@ -370,7 +384,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
// _GLIBCXX_END_NAMESPACE_ALGO
// _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
// _GLIBCXX_END_NAMESPACE_CONTAINER
#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PROFILE)
#if defined(_GLIBCXX_DEBUG)
# define _GLIBCXX_STD_C __cxx1998
# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \
namespace _GLIBCXX_STD_C {
@ -438,7 +452,7 @@ namespace std
{
// Avoid the use of assert, because we're trying to keep the <cassert>
// include out of the mix.
inline void
extern "C++" inline void
__replacement_assert(const char* __file, int __line,
const char* __function, const char* __condition)
{
@ -535,7 +549,7 @@ namespace std
// Most of the following conditions are due to limitations in the current
// implementation.
#if __cplusplus >= 201103L && _GLIBCXX_USE_CXX11_ABI \
&& _GLIBCXX_USE_DUAL_ABI && __cpp_transactional_memory >= 201505L \
&& _GLIBCXX_USE_DUAL_ABI && __cpp_transactional_memory >= 201500L \
&& !_GLIBCXX_FULLY_DYNAMIC_STRING && _GLIBCXX_USE_WEAK_REF \
&& _GLIBCXX_USE_ALLOCATOR_NEW
#define _GLIBCXX_TXN_SAFE transaction_safe
@ -609,12 +623,75 @@ namespace std
# endif
#endif
// Unless explicitly specified, enable char8_t extensions only if the core
// language char8_t feature macro is defined.
#ifndef _GLIBCXX_USE_CHAR8_T
# ifdef __cpp_char8_t
# define _GLIBCXX_USE_CHAR8_T 1
# endif
#endif
#ifdef _GLIBCXX_USE_CHAR8_T
# define __cpp_lib_char8_t 201907L
#endif
/* Define if __float128 is supported on this host. */
#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
#ifndef __ARM_EABI__
#define _GLIBCXX_USE_FLOAT128 1
#endif
#endif
#if __GNUC__ >= 7
// Assume these are available if the compiler claims to be a recent GCC:
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same_as(T, U)
# if __GNUC__ >= 9
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
# endif
#elif defined(__is_identifier) && defined(__has_builtin)
// For non-GNU compilers:
# if ! __is_identifier(__has_unique_object_representations)
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
# endif
# if ! __is_identifier(__is_aggregate)
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
# endif
# if __has_builtin(__builtin_launder)
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
# endif
# if __has_builtin(__builtin_is_constant_evaluated)
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
# endif
# if ! __is_identifier(__is_same)
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same(T, U)
# endif
#endif // GCC
// PSTL configuration
#if __cplusplus >= 201703L
// This header is not installed for freestanding:
#if __has_include(<pstl/pstl_config.h>)
// Preserved here so we have some idea which version of upstream we've pulled in
// #define PSTL_VERSION 9000
// For now this defaults to being based on the presence of Thread Building Blocks
# ifndef _GLIBCXX_USE_TBB_PAR_BACKEND
# define _GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)
# endif
// This section will need some rework when a new (default) backend type is added
# if _GLIBCXX_USE_TBB_PAR_BACKEND
# define _PSTL_PAR_BACKEND_TBB
# else
# define _PSTL_PAR_BACKEND_SERIAL
# endif
# define _PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)
# define _PSTL_ASSERT_MSG(_Condition, _Message) __glibcxx_assert(_Condition)
#include <pstl/pstl_config.h>
#endif // __has_include
#endif // C++17
// End of prewritten config; the settings discovered at configure time follow.
/* config.h. Generated from config.h.in by configure. */
@ -629,6 +706,9 @@ namespace std
/* Define to 1 if you have the `aligned_alloc' function. */
/* #undef _GLIBCXX_HAVE_ALIGNED_ALLOC */
/* Define to 1 if you have the <arpa/inet.h> header file. */
#define _GLIBCXX_HAVE_ARPA_INET_H 1
/* Define to 1 if you have the `asinf' function. */
/* #undef _GLIBCXX_HAVE_ASINF */
@ -650,6 +730,9 @@ namespace std
/* Define to 1 if you have the `atanl' function. */
/* #undef _GLIBCXX_HAVE_ATANL */
/* Defined if shared_ptr reference counting should use atomic operations. */
#define _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@ -683,66 +766,9 @@ namespace std
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
/* Define if EBADMSG exists. */
#define _GLIBCXX_HAVE_EBADMSG 1
/* Define if ECANCELED exists. */
#define _GLIBCXX_HAVE_ECANCELED 1
/* Define if ECHILD exists. */
#define _GLIBCXX_HAVE_ECHILD 1
/* Define if EIDRM exists. */
#define _GLIBCXX_HAVE_EIDRM 1
/* Define to 1 if you have the <endian.h> header file. */
/* #undef _GLIBCXX_HAVE_ENDIAN_H */
/* Define if ENODATA exists. */
/* #undef _GLIBCXX_HAVE_ENODATA */
/* Define if ENOLINK exists. */
#define _GLIBCXX_HAVE_ENOLINK 1
/* Define if ENOSPC exists. */
#define _GLIBCXX_HAVE_ENOSPC 1
/* Define if ENOSR exists. */
/* #undef _GLIBCXX_HAVE_ENOSR */
/* Define if ENOSTR exists. */
/* #undef _GLIBCXX_HAVE_ENOSTR */
/* Define if ENOTRECOVERABLE exists. */
#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
/* Define if ENOTSUP exists. */
#define _GLIBCXX_HAVE_ENOTSUP 1
/* Define if EOVERFLOW exists. */
#define _GLIBCXX_HAVE_EOVERFLOW 1
/* Define if EOWNERDEAD exists. */
#define _GLIBCXX_HAVE_EOWNERDEAD 1
/* Define if EPERM exists. */
#define _GLIBCXX_HAVE_EPERM 1
/* Define if EPROTO exists. */
#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. */
#define _GLIBCXX_HAVE_ETXTBSY 1
/* Define if EWOULDBLOCK exists. */
#define _GLIBCXX_HAVE_EWOULDBLOCK 1
/* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */
/* #undef _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 */
@ -828,14 +854,10 @@ namespace std
#define _GLIBCXX_HAVE_INT64_T 1
/* Define if int64_t is a long. */
#ifdef __x86_64__
#define _GLIBCXX_HAVE_INT64_T_LONG 1
#endif
/* Define if int64_t is a long long. */
#ifndef __x86_64__
#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1
#endif
/* #undef _GLIBCXX_HAVE_INT64_T_LONG_LONG */
/* Define to 1 if you have the <inttypes.h> header file. */
#define _GLIBCXX_HAVE_INTTYPES_H 1
@ -888,6 +910,9 @@ namespace std
/* Only used in build directory testsuite_hooks.h. */
#define _GLIBCXX_HAVE_LIMIT_VMEM 1
/* Define if link is available in <unistd.h>. */
#define _GLIBCXX_HAVE_LINK 1
/* Define if futex syscall is available. */
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */
@ -939,6 +964,15 @@ namespace std
/* Define to 1 if you have the <nan.h> header file. */
/* #undef _GLIBCXX_HAVE_NAN_H */
/* Define to 1 if you have the <netdb.h> header file. */
#define _GLIBCXX_HAVE_NETDB_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define _GLIBCXX_HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <netinet/tcp.h> header file. */
#define _GLIBCXX_HAVE_NETINET_TCP_H 1
/* Define if <math.h> defines obsolete isinf function. */
/* #undef _GLIBCXX_HAVE_OBSOLETE_ISINF */
@ -948,6 +982,9 @@ namespace std
/* Define if poll is available in <poll.h>. */
#define _GLIBCXX_HAVE_POLL 1
/* Define to 1 if you have the <poll.h> header file. */
#define _GLIBCXX_HAVE_POLL_H 1
/* Define to 1 if you have the `posix_memalign' function. */
/* #undef _GLIBCXX_HAVE_POSIX_MEMALIGN */
@ -963,6 +1000,9 @@ namespace std
/* Define to 1 if you have the `quick_exit' function. */
/* #undef _GLIBCXX_HAVE_QUICK_EXIT */
/* Define if readlink is available in <unistd.h>. */
#define _GLIBCXX_HAVE_READLINK 1
/* Define to 1 if you have the `setenv' function. */
/* #undef _GLIBCXX_HAVE_SETENV */
@ -990,6 +1030,9 @@ namespace std
/* Defined if sleep exists. */
#define _GLIBCXX_HAVE_SLEEP 1
/* Define to 1 if you have the `sockatmark' function. */
/* #undef _GLIBCXX_HAVE_SOCKATMARK */
/* Define to 1 if you have the `sqrtf' function. */
/* #undef _GLIBCXX_HAVE_SQRTF */
@ -1032,6 +1075,9 @@ namespace std
/* Define if strxfrm_l is available in <string.h>. */
/* #undef _GLIBCXX_HAVE_STRXFRM_L */
/* Define if symlink is available in <unistd.h>. */
#define _GLIBCXX_HAVE_SYMLINK 1
/* Define to 1 if the target runtime linker supports binding the same symbol
to different versions. */
/* #undef _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT */
@ -1063,6 +1109,9 @@ namespace std
/* Define to 1 if you have the <sys/sem.h> header file. */
#define _GLIBCXX_HAVE_SYS_SEM_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define _GLIBCXX_HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/statvfs.h> header file. */
#define _GLIBCXX_HAVE_SYS_STATVFS_H 1
@ -1102,9 +1151,15 @@ namespace std
/* Define to 1 if you have the <tgmath.h> header file. */
#define _GLIBCXX_HAVE_TGMATH_H 1
/* Define to 1 if you have the `timespec_get' function. */
/* #undef _GLIBCXX_HAVE_TIMESPEC_GET */
/* Define to 1 if the target supports thread-local storage. */
/* #undef _GLIBCXX_HAVE_TLS */
/* Define if truncate is available in <unistd.h>. */
#define _GLIBCXX_HAVE_TRUNCATE 1
/* Define to 1 if you have the <uchar.h> header file. */
#define _GLIBCXX_HAVE_UCHAR_H 1
@ -1330,6 +1385,9 @@ namespace std
/* Define to 1 if you have the `_tanl' function. */
/* #undef _GLIBCXX_HAVE__TANL */
/* Define to 1 if you have the `_wfopen' function. */
/* #undef _GLIBCXX_HAVE__WFOPEN */
/* Define to 1 if you have the `__cxa_thread_atexit' function. */
/* #undef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT */
@ -1385,6 +1443,14 @@ namespace std
/* Version number of package */
/* #undef _GLIBCXX_VERSION */
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _GLIBCXX_DARWIN_USE_64_BIT_INODE
# define _GLIBCXX_DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _GLIBCXX_FILE_OFFSET_BITS */
/* Define if C99 functions in <complex.h> should be used in <complex> for
C++11. Using compiler builtins for these functions requires corresponding
C99 library functions to be present. */
@ -1428,9 +1494,7 @@ namespace std
/* #undef _GLIBCXX98_USE_C99_WCHAR */
/* Define if the compiler supports C++11 atomics. */
#ifndef __ARM_EABI__
#define _GLIBCXX_ATOMIC_BUILTINS 1
#endif
/* Define to use concept checking code from the boost libraries. */
/* #undef _GLIBCXX_CONCEPT_CHECKS */
@ -1537,6 +1601,10 @@ namespace std
this host. */
/* #undef _GLIBCXX_USE_DECIMAL_FLOAT */
/* Define if /dev/random and /dev/urandom are available for
std::random_device. */
/* #undef _GLIBCXX_USE_DEV_RANDOM */
/* Define if fchmod is available in <sys/stat.h>. */
#define _GLIBCXX_USE_FCHMOD 1
@ -1550,9 +1618,7 @@ namespace std
/* #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 */
@ -1560,6 +1626,9 @@ namespace std
/* Define if code specialized for long long should be used. */
#define _GLIBCXX_USE_LONG_LONG 1
/* Define if lstat is available in <sys/stat.h>. */
#define _GLIBCXX_USE_LSTAT 1
/* Defined if nanosleep is available. */
/* #undef _GLIBCXX_USE_NANOSLEEP */
@ -1569,6 +1638,16 @@ namespace std
/* Define if pthreads_num_processors_np is available in <pthread.h>. */
/* #undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP */
/* Define if pthread_cond_clockwait is available in <pthread.h>. */
/* #undef _GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT */
/* Define if pthread_mutex_clocklock is available in <pthread.h>. */
/* #undef _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK */
/* Define if pthread_rwlock_clockrdlock and pthread_rwlock_clockwrlock are
available in <pthread.h>. */
/* #undef _GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK */
/* Define if POSIX read/write locks are available in <gthr.h>. */
/* #undef _GLIBCXX_USE_PTHREAD_RWLOCK_T */
@ -1600,6 +1679,9 @@ namespace std
/* Define if obsolescent tmpnam is available in <stdio.h>. */
#define _GLIBCXX_USE_TMPNAM 1
/* Define if utime is available in <utime.h>. */
#define _GLIBCXX_USE_UTIME 1
/* Define if utimensat and UTIME_OMIT are available in <sys/stat.h> and
AT_FDCWD in <fcntl.h>. */
#define _GLIBCXX_USE_UTIMENSAT 1
@ -1611,13 +1693,17 @@ namespace std
#define _GLIBCXX_VERBOSE 1
/* Defined if as can handle rdrand. */
#ifndef __ARM_EABI__
#define _GLIBCXX_X86_RDRAND 1
#endif
/* Defined if as can handle rdseed. */
#define _GLIBCXX_X86_RDSEED 1
/* Define to 1 if mutex_timedlock is available. */
#define _GTHREAD_USE_MUTEX_TIMEDLOCK 1
/* Define for large files, on AIX-style hosts. */
/* #undef _GLIBCXX_LARGE_FILES */
/* Define if all C++11 floating point overloads are available in <math.h>. */
#if __cplusplus >= 201103L
/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP */

View File

@ -1,17 +1,19 @@
file origins
------------
- bits/gstdint.h: manually created
- bits/c++config.h:
- bits/gstdint.h: manually created
- ../spec/<arch>/stdcxx/bits/c++config.h:
- gathered from Noux-gcc built with the previous stdcxx version
- apply https://raw.githubusercontent.com/cproc/genode_stuff/stdcxx/stdcxx_update_genode.patch
- update the gcc port hash
- prepare the modified gcc port
- run 'make noux-pkg/gcc_x86' for the 'x86_32' platform
- find 'build/x86_32/noux-pkg/gcc_x86/x86_64-pc-elf/32/libstdc++-v3/include/x86_64-pc-elf/bits/c++config.h'
- copy 'build/x86_32/noux-pkg/gcc_x86/x86_64-pc-elf/32/libstdc++-v3/include/x86_64-pc-elf/bits/c++config.h'
- run 'make noux-pkg/gcc_x86' for the 'x86_64' platform
- find 'build/x86_64/noux-pkg/gcc_x86/x86_64-pc-elf/64/libstdc++-v3/include/x86_64-pc-elf/bits/c++config.h'
- run 'make noux-pkg/gcc_arm' for the 'pbxa9' platform
- find 'build/pbxa9/noux-pkg/gcc_arm/arm-none-eabi/libstdc++-v3/include/arm-none-eabi/bits/c++config.h'
- create a combined 'c++config.h' file by making the differing macros of the three generated files
depend on the '__x86_64__' and '__ARM_EABI__' macros
- copy 'build/x86_64/noux-pkg/gcc_x86/x86_64-pc-elf/64/libstdc++-v3/include/x86_64-pc-elf/bits/c++config.h'
- run 'make noux-pkg/gcc_arm' for the 'arm_v7a' platform
- copy 'build/arm_v7a/noux-pkg/gcc_arm/arm-none-eabi/libstdc++-v3/include/arm-none-eabi/bits/c++config.h'
- run 'make noux-pkg/gcc_arm_64' for the 'arm_v8a' platform
- copy 'build/arm_v8a/noux-pkg/gcc_arm_64/aarch64-none-elf/libstdc++-v3/include/aarch64-none-elf/bits/c++config.h'
- #define _GLIBCXX_HAS_GTHREADS 1 in all of the copied files
- #undef _GLIBCXX_HAVE_TLS in all of the copied files

View File

@ -9,6 +9,22 @@ INC_DIR += $(STDCXX_PORT_INCLUDE_DIR) \
$(STDCXX_PORT_INCLUDE_DIR)/std \
$(STDCXX_PORT_INCLUDE_DIR)/c_global
ifeq ($(filter-out $(SPECS),arm),)
INC_DIR += $(STDCXX_INCLUDE_DIR)/../spec/arm/stdcxx
endif
ifeq ($(filter-out $(SPECS),arm_64),)
INC_DIR += $(STDCXX_INCLUDE_DIR)/../spec/arm_64/stdcxx
endif
ifeq ($(filter-out $(SPECS),x86_32),)
INC_DIR += $(STDCXX_INCLUDE_DIR)/../spec/x86_32/stdcxx
endif
ifeq ($(filter-out $(SPECS),x86_64),)
INC_DIR += $(STDCXX_INCLUDE_DIR)/../spec/x86_64/stdcxx
endif
# stdcxx headers include libc headers
include $(call select_from_repositories,lib/import/import-libc.mk)

View File

@ -385,6 +385,7 @@ _ZNSt18condition_variableC1Ev T
_ZNSt18condition_variableC2Ev T
_ZNSt18condition_variableD1Ev T
_ZNSt18condition_variableD2Ev T
_ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info T
_ZNSt19__iosfail_type_infoD0Ev T
_ZNSt19__iosfail_type_infoD1Ev T
_ZNSt19__iosfail_type_infoD2Ev T
@ -1239,6 +1240,7 @@ _ZNSaIwED1Ev W
_ZNSaIwED2Ev W
_ZNSdC1Ev W
_ZNSdC2Ev W
_ZNSdD2Ev W
_ZNSi10_M_extractIPvEERSiRT_ W
_ZNSi10_M_extractIbEERSiRT_ W
_ZNSi10_M_extractIdEERSiRT_ W
@ -1634,6 +1636,7 @@ _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev W
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_ W
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm W
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev W
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode W
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE W
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl W
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm W
@ -1662,6 +1665,7 @@ _ZNSt7__cxx1115messages_bynameIcEC2EPKcm W
_ZNSt7__cxx1115messages_bynameIwEC1EPKcm W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev W
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev W
@ -1675,6 +1679,7 @@ _ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev W
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE W
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode W
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev W
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev W
_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev W
_ZNSt7__cxx118messagesIcEC2Em W

View File

@ -1 +1 @@
80f380143250d4f951433876698b54fdac32b95f
d2865c41fafbbf66051d38e7b742c4d5bc2f05a3

View File

@ -1,9 +1,9 @@
LICENSE := LGPL
VERSION := 8.3.0
VERSION := 10.3.0
DOWNLOADS := gcc.archive
URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
SHA(gcc) := 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
SHA(gcc) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
DIR(gcc) := src/lib/stdcxx
SIG(gcc) := ${URL(gcc)}
KEY(gcc) := GNU

View File

@ -8,13 +8,33 @@ $(MIRROR_FROM_REP_DIR):
PORT_DIR := $(call port_dir,$(REP_DIR)/ports/stdcxx)
content: include/stdcxx
content: include/stdcxx \
include/spec/arm/stdcxx \
include/spec/arm_64/stdcxx \
include/spec/x86_32/stdcxx \
include/spec/x86_64/stdcxx
include/stdcxx:
mkdir -p $@
cp -r $(PORT_DIR)/include/stdcxx/* $@/
cp -r $(REP_DIR)/include/stdcxx/bits/* $@/bits/
include/spec/arm/stdcxx:
mkdir -p $@
cp -r $(REP_DIR)/$@/* $@/
include/spec/arm_64/stdcxx:
mkdir -p $@
cp -r $(REP_DIR)/$@/* $@/
include/spec/x86_32/stdcxx:
mkdir -p $@
cp -r $(REP_DIR)/$@/* $@/
include/spec/x86_64/stdcxx:
mkdir -p $@
cp -r $(REP_DIR)/$@/* $@/
content: LICENSE
LICENSE: