diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 18d308df60fd8f93075beec976d10b8a78fe7790..87f0c6fed8c9986f8ced9380d0cf3ff70adad93b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2008-04-28 Benjamin Kosnik <bkoz@redhat.com> + + * include/bits/c++config: Move os_defines and cpu_defines after + namespace definitions and base macros. + 2008-04-28 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/35887 diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index 498bc3202653a70b64473628dea1aaa89a54a4ac..7b2ce7798a12c35378ee24b738a163cf63d6e791 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -36,12 +36,6 @@ #ifndef _GLIBCXX_CXX_CONFIG_H #define _GLIBCXX_CXX_CONFIG_H 1 -// Pick up any OS-specific definitions. -#include <bits/os_defines.h> - -// Pick up any CPU-specific definitions. -#include <bits/cpu_defines.h> - // The current version of the C++ library in compressed ISO date format. #define __GLIBCXX__ @@ -216,6 +210,28 @@ namespace std } #endif +// XXX GLIBCXX_ABI Deprecated +// Define if compatibility should be provided for -mlong-double-64 +#if defined __cplusplus && defined __LONG_DOUBLE_128__ +# undef _GLIBCXX_LONG_DOUBLE_COMPAT +#endif + +// Namespace associations for long double 128 mode. +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT +namespace std +{ + inline namespace __gnu_cxx_ldbl128 { } +} +# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128:: +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 { +# define _GLIBCXX_END_LDBL_NAMESPACE } +#else +# define _GLIBCXX_LDBL_NAMESPACE +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE +# define _GLIBCXX_END_LDBL_NAMESPACE +#endif + + // Defines for C compatibility. In particular, define extern "C" // linkage only when using C++, same with namespaces. #if __cplusplus @@ -230,25 +246,13 @@ namespace std # define _GLIBCXX_END_NAMESPACE #endif -// Define if compatibility should be provided for -mlong-double-64. -#undef _GLIBCXX_LONG_DOUBLE_COMPAT +// First includes. -// XXX GLIBCXX_ABI Deprecated -// Namespace associations for long double 128 mode. -_GLIBCXX_BEGIN_NAMESPACE(std) -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && defined __cplusplus -# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128:: -# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 { -# define _GLIBCXX_END_LDBL_NAMESPACE } - inline namespace __gnu_cxx_ldbl128 { } -#else -# define _GLIBCXX_LDBL_NAMESPACE -# define _GLIBCXX_BEGIN_LDBL_NAMESPACE -# define _GLIBCXX_END_LDBL_NAMESPACE -#endif -_GLIBCXX_END_NAMESPACE +// Pick up any OS-specific definitions. +#include <bits/os_defines.h> +// Pick up any CPU-specific definitions. +#include <bits/cpu_defines.h> // Allow use of "export template." This is currently not a feature // that g++ supports. @@ -264,7 +268,6 @@ _GLIBCXX_END_NAMESPACE # define _GLIBCXX_EXTERN_TEMPLATE 1 #endif - // Certain function definitions that are meant to be overridable from // user code are decorated with this macro. For some targets, this // macro causes these definitions to be weak. @@ -272,14 +275,6 @@ _GLIBCXX_END_NAMESPACE # define _GLIBCXX_WEAK_DEFINITION #endif -// Macro used to indicate that the native "C" includes, when compiled -// as "C++", have declarations in namespace std and not the global -// namespace. Note, this is unrelated to possible "C" compatibility -// includes that inject C90/C99 names into the global namespace. -#if __cplusplus == 199711L -# define _GLIBCXX_NAMESPACE_GLOBAL_INJECTION 1 -#endif - // The remainder of the prewritten config is automatic; all the // user hooks are listed above.