diff options
Diffstat (limited to 'src/libs')
187 files changed, 1060 insertions, 15742 deletions
diff --git a/src/libs/Makefile.kmk b/src/libs/Makefile.kmk index 9d846a7e..8fe7218d 100644 --- a/src/libs/Makefile.kmk +++ b/src/libs/Makefile.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -26,7 +26,7 @@ include $(KBUILD_PATH)/subheader.kmk # Compression libs used by IPRT and <what was it again?>. include $(PATH_SUB_CURRENT)/liblzf-3.4/Makefile.kmk -if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_TESTSUITE) \ +if !defined(VBOX_ONLY_SDK) \ && "$(SDK_VBOX_ZLIB_INCS)" == "$(PATH_ROOT)/src/libs/zlib-1.2.6" include $(PATH_SUB_CURRENT)/zlib-1.2.6/Makefile.kmk endif @@ -39,8 +39,8 @@ endif # !VBOX_ONLY_DOCS # Libcurl for inet access if defined(VBOX_WITH_LIBCURL) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) && !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_TESTSUITE) \ - && "$(SDK_VBOX_LIBCURL_INCS)" == "$(PATH_ROOT)/src/libs/curl-7.19.4/include" - include $(PATH_SUB_CURRENT)/curl-7.19.4/Makefile.kmk + && "$(SDK_VBOX_LIBCURL_INCS)" == "$(PATH_ROOT)/src/libs/curl-7.27.0/include" + include $(PATH_SUB_CURRENT)/curl-7.27.0/Makefile.kmk endif # The kStuff lib used by IPRT and the debugger. @@ -52,11 +52,11 @@ endif if !defined(VBOX_ONLY_SDK) \ && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \ || defined(VBOX_WITH_EXTPACK_PUEL_BUILD)) - include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk + include $(PATH_SUB_CURRENT)/openssl-0.9.8y/Makefile.kmk endif # libjpeg for VRDP video redirection -if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL) +if defined(VBOX_WITH_VRDP) include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk endif @@ -68,18 +68,16 @@ if defined(VBOX_WITH_MAIN) \ include $(PATH_SUB_CURRENT)/xpcom18a4/Makefile.kmk endif - # FFmpeg & VP8 for test videos. - if defined(VBOX_WITH_FFMPEG) && !defined(VBOX_OSE) && !defined(VBOX_ONLY_DOCS) && !defined(VBOX_WITH_SDK) - if1of ($(KBUILD_TARGET), darwin linux solaris) - include $(PATH_SUB_CURRENT)/ffmpeg-20060710/Makefile.kmk - endif + # VP8 for video capture + if defined(VBOX_WITH_VPX) && !defined(VBOX_ONLY_DOCS) && !defined(VBOX_WITH_SDK) \ + && ("$(SDK_VBOX_VPX_INCS)" == "$(SDK_VBOX_VPX_DEFAULT_INCS)") if1of ($(KBUILD_TARGET), darwin linux solaris win) include $(PATH_SUB_CURRENT)/libvpx/Makefile.kmk endif endif endif -if !defined(VBOX_ONLY_TESTSUITE) && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) +if !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS) ifeq ($(SDK_VBOX_LIBXML2_INCS),$(PATH_ROOT)/src/libs/libxml2-2.6.31/include) include $(PATH_SUB_CURRENT)/libxml2-2.6.31/Makefile.kmk endif diff --git a/src/libs/boost-1.37.0/LICENSE_1_0.txt b/src/libs/boost-1.37.0/LICENSE_1_0.txt deleted file mode 100644 index 36b7cd93..00000000 --- a/src/libs/boost-1.37.0/LICENSE_1_0.txt +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/src/libs/boost-1.37.0/boost/assert.hpp b/src/libs/boost-1.37.0/boost/assert.hpp deleted file mode 100644 index c227f17b..00000000 --- a/src/libs/boost-1.37.0/boost/assert.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// boost/assert.hpp - BOOST_ASSERT(expr) -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2007 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// Note: There are no include guards. This is intentional. -// -// See http://www.boost.org/libs/utility/assert.html for documentation. -// - -#undef BOOST_ASSERT - -#if defined(BOOST_DISABLE_ASSERTS) - -# define BOOST_ASSERT(expr) ((void)0) - -#elif defined(BOOST_ENABLE_ASSERT_HANDLER) - -#include <boost/current_function.hpp> - -namespace boost -{ - -void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined - -} // namespace boost - -#define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) - -#else -# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same -# define BOOST_ASSERT(expr) assert(expr) -#endif - -#undef BOOST_VERIFY - -#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) - -# define BOOST_VERIFY(expr) ((void)(expr)) - -#else - -# define BOOST_VERIFY(expr) BOOST_ASSERT(expr) - -#endif diff --git a/src/libs/boost-1.37.0/boost/checked_delete.hpp b/src/libs/boost-1.37.0/boost/checked_delete.hpp deleted file mode 100644 index 9bb84e8e..00000000 --- a/src/libs/boost-1.37.0/boost/checked_delete.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED -#define BOOST_CHECKED_DELETE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/checked_delete.hpp -// -// Copyright (c) 2002, 2003 Peter Dimov -// Copyright (c) 2003 Daniel Frey -// Copyright (c) 2003 Howard Hinnant -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/utility/checked_delete.html for documentation. -// - -namespace boost -{ - -// verify that types are complete for increased safety - -template<class T> inline void checked_delete(T * x) -{ - // intentionally complex - simplification causes regressions - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete x; -} - -template<class T> inline void checked_array_delete(T * x) -{ - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete [] x; -} - -template<class T> struct checked_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - // boost:: disables ADL - boost::checked_delete(x); - } -}; - -template<class T> struct checked_array_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - boost::checked_array_delete(x); - } -}; - -} // namespace boost - -#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/config.hpp b/src/libs/boost-1.37.0/boost/config.hpp deleted file mode 100644 index 055a2785..00000000 --- a/src/libs/boost-1.37.0/boost/config.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Boost config.hpp configuration header file ------------------------------// - -// (C) Copyright John Maddock 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org/libs/config for most recent version. - -// Boost config.hpp policy and rationale documentation has been moved to -// http://www.boost.org/libs/config -// -// CAUTION: This file is intended to be completely stable - -// DO NOT MODIFY THIS FILE! -// - -#ifndef BOOST_CONFIG_HPP -#define BOOST_CONFIG_HPP - -// if we don't have a user config, then use the default location: -#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) -# define BOOST_USER_CONFIG <boost/config/user.hpp> -#endif -// include it first: -#ifdef BOOST_USER_CONFIG -# include BOOST_USER_CONFIG -#endif - -// if we don't have a compiler config set, try and find one: -#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG) -# include <boost/config/select_compiler_config.hpp> -#endif -// if we have a compiler config, include it now: -#ifdef BOOST_COMPILER_CONFIG -# include BOOST_COMPILER_CONFIG -#endif - -// if we don't have a std library config set, try and find one: -#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) -# include <boost/config/select_stdlib_config.hpp> -#endif -// if we have a std library config, include it now: -#ifdef BOOST_STDLIB_CONFIG -# include BOOST_STDLIB_CONFIG -#endif - -// if we don't have a platform config set, try and find one: -#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG) -# include <boost/config/select_platform_config.hpp> -#endif -// if we have a platform config, include it now: -#ifdef BOOST_PLATFORM_CONFIG -# include BOOST_PLATFORM_CONFIG -#endif - -// get config suffix code: -#include <boost/config/suffix.hpp> - -#endif // BOOST_CONFIG_HPP - - - - - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/abi/borland_prefix.hpp b/src/libs/boost-1.37.0/boost/config/abi/borland_prefix.hpp deleted file mode 100644 index 49f42494..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi/borland_prefix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// for C++ Builder the following options effect the ABI: -// -// -b (on or off - effect emum sizes) -// -Vx (on or off - empty members) -// -Ve (on or off - empty base classes) -// -aX (alignment - 5 options). -// -pX (Calling convention - 4 options) -// -VmX (member pointer size and layout - 5 options) -// -VC (on or off, changes name mangling) -// -Vl (on or off, changes struct layout). - -// In addition the following warnings are sufficiently annoying (and -// unfixable) to have them turned off by default: -// -// 8027 - functions containing [for|while] loops are not expanded inline -// 8026 - functions taking class by value arguments are not expanded inline - -#pragma nopushoptwarn -# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026 - - - diff --git a/src/libs/boost-1.37.0/boost/config/abi/borland_suffix.hpp b/src/libs/boost-1.37.0/boost/config/abi/borland_suffix.hpp deleted file mode 100644 index 940535f3..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi/borland_suffix.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -# pragma option pop -#pragma nopushoptwarn - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/abi/msvc_prefix.hpp b/src/libs/boost-1.37.0/boost/config/abi/msvc_prefix.hpp deleted file mode 100644 index 97f06cdc..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi/msvc_prefix.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// -// Boost binaries are built with the compiler's default ABI settings, -// if the user changes their default alignment in the VS IDE then their -// code will no longer be binary compatible with the bjam built binaries -// unless this header is included to force Boost code into a consistent ABI. -// -// Note that inclusion of this header is only necessary for libraries with -// separate source, header only libraries DO NOT need this as long as all -// translation units are built with the same options. -// -#if defined(_M_X64) -# pragma pack(push,16) -#else -# pragma pack(push,8) -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/abi/msvc_suffix.hpp b/src/libs/boost-1.37.0/boost/config/abi/msvc_suffix.hpp deleted file mode 100644 index a64d783e..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi/msvc_suffix.hpp +++ /dev/null @@ -1,8 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#pragma pack(pop) - - diff --git a/src/libs/boost-1.37.0/boost/config/abi_prefix.hpp b/src/libs/boost-1.37.0/boost/config/abi_prefix.hpp deleted file mode 100644 index 3b134749..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi_prefix.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// abi_prefix header -------------------------------------------------------// - -// (c) Copyright John Maddock 2003 - -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). - -#ifndef BOOST_CONFIG_ABI_PREFIX_HPP -# define BOOST_CONFIG_ABI_PREFIX_HPP -#else -# error double inclusion of header boost/config/abi_prefix.hpp is an error -#endif - -#include <boost/config.hpp> - -// this must occur after all other includes and before any code appears: -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_PREFIX -#endif - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - diff --git a/src/libs/boost-1.37.0/boost/config/abi_suffix.hpp b/src/libs/boost-1.37.0/boost/config/abi_suffix.hpp deleted file mode 100644 index 93916166..00000000 --- a/src/libs/boost-1.37.0/boost/config/abi_suffix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// abi_sufffix header -------------------------------------------------------// - -// (c) Copyright John Maddock 2003 - -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). - -// This header should be #included AFTER code that was preceded by a #include -// <boost/config/abi_prefix.hpp>. - -#ifndef BOOST_CONFIG_ABI_PREFIX_HPP -# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp -#else -# undef BOOST_CONFIG_ABI_PREFIX_HPP -#endif - -// the suffix header occurs after all of our code: -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_SUFFIX -#endif - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/auto_link.hpp b/src/libs/boost-1.37.0/boost/config/auto_link.hpp deleted file mode 100644 index df58d4f9..00000000 --- a/src/libs/boost-1.37.0/boost/config/auto_link.hpp +++ /dev/null @@ -1,368 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - /* - * LOCATION: see http://www.boost.org for most recent version. - * FILE auto_link.hpp - * VERSION see <boost/version.hpp> - * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. - */ - -/************************************************************************* - -USAGE: -~~~~~~ - -Before including this header you must define one or more of define the following macros: - -BOOST_LIB_NAME: Required: A string containing the basename of the library, - for example boost_regex. -BOOST_LIB_TOOLSET: Optional: the base name of the toolset. -BOOST_DYN_LINK: Optional: when set link to dll rather than static library. -BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name - of the library selected (useful for debugging). -BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, - rather than a mangled-name version. - -These macros will be undef'ed at the end of the header, further this header -has no include guards - so be sure to include it only once from your library! - -Algorithm: -~~~~~~~~~~ - -Libraries for Borland and Microsoft compilers are automatically -selected here, the name of the lib is selected according to the following -formula: - -BOOST_LIB_PREFIX - + BOOST_LIB_NAME - + "_" - + BOOST_LIB_TOOLSET - + BOOST_LIB_THREAD_OPT - + BOOST_LIB_RT_OPT - "-" - + BOOST_LIB_VERSION - -These are defined as: - -BOOST_LIB_PREFIX: "lib" for static libraries otherwise "". - -BOOST_LIB_NAME: The base name of the lib ( for example boost_regex). - -BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc). - -BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. - -BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, - contains one or more of the following letters after - a hiphen: - - s static runtime (dynamic if not present). - d debug build (release if not present). - g debug/diagnostic runtime (release if not present). - p STLPort Build. - -BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. - - -***************************************************************************/ - -#ifdef __cplusplus -# ifndef BOOST_CONFIG_HPP -# include <boost/config.hpp> -# endif -#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) -// -// C language compatability (no, honestly) -// -# define BOOST_MSVC _MSC_VER -# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) -# define BOOST_DO_STRINGIZE(X) #X -#endif -// -// Only include what follows for known and supported compilers: -// -#if defined(BOOST_MSVC) \ - || defined(__BORLANDC__) \ - || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) - -#ifndef BOOST_VERSION_HPP -# include <boost/version.hpp> -#endif - -#ifndef BOOST_LIB_NAME -# error "Macro BOOST_LIB_NAME not set (internal error)" -#endif - -// -// error check: -// -#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) -# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") -# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") -# error "Incompatible build options" -#endif -// -// select toolset if not defined already: -// -#ifndef BOOST_LIB_TOOLSET -// Note: no compilers before 1200 are supported -#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) - -# ifdef UNDER_CE - // vc6: -# define BOOST_LIB_TOOLSET "evc4" -# else - // vc6: -# define BOOST_LIB_TOOLSET "vc6" -# endif - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) - - // vc7: -# define BOOST_LIB_TOOLSET "vc7" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) - - // vc71: -# define BOOST_LIB_TOOLSET "vc71" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400) - - // vc80: -# define BOOST_LIB_TOOLSET "vc80" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500) - - // vc90: -# define BOOST_LIB_TOOLSET "vc90" - -#elif defined(__BORLANDC__) - - // CBuilder 6: -# define BOOST_LIB_TOOLSET "bcb" - -#elif defined(__ICL) - - // Intel C++, no version number: -# define BOOST_LIB_TOOLSET "iw" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) - - // Metrowerks CodeWarrior 8.x -# define BOOST_LIB_TOOLSET "cw8" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) - - // Metrowerks CodeWarrior 9.x -# define BOOST_LIB_TOOLSET "cw9" - -#endif -#endif // BOOST_LIB_TOOLSET - -// -// select thread opt: -// -#if defined(_MT) || defined(__MT__) -# define BOOST_LIB_THREAD_OPT "-mt" -#else -# define BOOST_LIB_THREAD_OPT -#endif - -#if defined(_MSC_VER) || defined(__MWERKS__) - -# ifdef _DLL - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdp" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-p" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdpn" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-pn" -# endif - -# else - -# if defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gd" -# else -# define BOOST_LIB_RT_OPT -# endif - -# endif - -# else - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdp" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-sp" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdpn" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-spn" -# endif - -# else - -# if defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgd" -# else -# define BOOST_LIB_RT_OPT "-s" -# endif - -# endif - -# endif - -#elif defined(__BORLANDC__) - -// -// figure out whether we want the debug builds or not: -// -#if __BORLANDC__ > 0x561 -#pragma defineonoption BOOST_BORLAND_DEBUG -v -#endif -// -// sanity check: -// -#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) -#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form" -#endif - -# ifdef _RTLDLL - -# ifdef BOOST_BORLAND_DEBUG -# define BOOST_LIB_RT_OPT "-d" -# else -# define BOOST_LIB_RT_OPT -# endif - -# else - -# ifdef BOOST_BORLAND_DEBUG -# define BOOST_LIB_RT_OPT "-sd" -# else -# define BOOST_LIB_RT_OPT "-s" -# endif - -# endif - -#endif - -// -// select linkage opt: -// -#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK) -# define BOOST_LIB_PREFIX -#elif defined(BOOST_DYN_LINK) -# error "Mixing a dll boost library with a static runtime is a really bad idea..." -#else -# define BOOST_LIB_PREFIX "lib" -#endif - -// -// now include the lib: -// -#if defined(BOOST_LIB_NAME) \ - && defined(BOOST_LIB_PREFIX) \ - && defined(BOOST_LIB_TOOLSET) \ - && defined(BOOST_LIB_THREAD_OPT) \ - && defined(BOOST_LIB_RT_OPT) \ - && defined(BOOST_LIB_VERSION) - -#ifndef BOOST_AUTO_LINK_NOMANGLE -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") -# ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") -# endif -#else -# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") -# ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") -# endif -#endif - -#else -# error "some required macros where not defined (internal logic error)." -#endif - - -#endif // _MSC_VER || __BORLANDC__ - -// -// finally undef any macros we may have set: -// -#ifdef BOOST_LIB_PREFIX -# undef BOOST_LIB_PREFIX -#endif -#if defined(BOOST_LIB_NAME) -# undef BOOST_LIB_NAME -#endif -// Don't undef this one: it can be set by the user and should be the -// same for all libraries: -//#if defined(BOOST_LIB_TOOLSET) -//# undef BOOST_LIB_TOOLSET -//#endif -#if defined(BOOST_LIB_THREAD_OPT) -# undef BOOST_LIB_THREAD_OPT -#endif -#if defined(BOOST_LIB_RT_OPT) -# undef BOOST_LIB_RT_OPT -#endif -#if defined(BOOST_LIB_LINK_OPT) -# undef BOOST_LIB_LINK_OPT -#endif -#if defined(BOOST_LIB_DEBUG_OPT) -# undef BOOST_LIB_DEBUG_OPT -#endif -#if defined(BOOST_DYN_LINK) -# undef BOOST_DYN_LINK -#endif -#if defined(BOOST_AUTO_LINK_NOMANGLE) -# undef BOOST_AUTO_LINK_NOMANGLE -#endif - - - - - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/borland.hpp b/src/libs/boost-1.37.0/boost/config/compiler/borland.hpp deleted file mode 100644 index d16c06d0..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/borland.hpp +++ /dev/null @@ -1,243 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Borland C++ compiler setup: - -// -// versions check: -// we don't support Borland prior to version 5.4: -#if __BORLANDC__ < 0x540 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// last known and checked version is 0x600 (Builder X preview) -// or 0x593 (CodeGear C++ Builder 2007 December 2007 update): -#if (__BORLANDC__ > 0x593) && (__BORLANDC__ != 0x600) -//# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -//# else -//# pragma message( "Unknown compiler version - please run the configure tests and report the results") -//# endif -#elif (__BORLANDC__ == 0x600) -# error "CBuilderX preview compiler is no longer supported" -#endif - -// -// Support macros to help with standard library detection -#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL) -# define BOOST_BCB_WITH_ROGUE_WAVE -#elif __BORLANDC__ < 0x570 -# define BOOST_BCB_WITH_STLPORT -#else -# define BOOST_BCB_WITH_DINKUMWARE -#endif - -// -// Version 5.0 and below: -# if __BORLANDC__ <= 0x0550 -// Borland C++Builder 4 and 5: -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# if __BORLANDC__ == 0x0550 -// Borland C++Builder 5, command-line compiler 5.5: -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# endif -# endif - -// Version 5.51 and below: -#if (__BORLANDC__ <= 0x551) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_DEDUCED_TYPENAME -// workaround for missing WCHAR_MAX/WCHAR_MIN: -#include <climits> -#include <cwchar> -#ifndef WCHAR_MAX -# define WCHAR_MAX 0xffff -#endif -#ifndef WCHAR_MIN -# define WCHAR_MIN 0 -#endif -#endif - -// Borland C++ Builder 6 and below: -#if (__BORLANDC__ <= 0x564) -# define BOOST_NO_INTEGRAL_INT64_T - -# ifdef NDEBUG - // fix broken <cstring> so that Boost.test works: -# include <cstring> -# undef strcmp -# endif - // fix broken errno declaration: -# include <errno.h> -# ifndef errno -# define errno errno -# endif - -#endif - -// -// new bug in 5.61: -#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) - // this seems to be needed by the command line compiler, but not the IDE: -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -#endif - -// Borland C++ Builder 2006 Update 2 and below: -#if (__BORLANDC__ <= 0x582) -# define BOOST_NO_SFINAE -# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -# define BOOST_NO_TEMPLATE_TEMPLATES - -# define BOOST_NO_PRIVATE_IN_AGGREGATE - -# ifdef _WIN32 -# define BOOST_NO_SWPRINTF -# elif defined(linux) || defined(__linux__) || defined(__linux) - // we should really be able to do without this - // but the wcs* functions aren't imported into std:: -# define BOOST_NO_STDC_NAMESPACE - // _CPPUNWIND doesn't get automatically set for some reason: -# pragma defineonoption BOOST_CPPUNWIND -x -# endif -#endif - -// Borland C++ Builder 2007 December 2007 Update and below: -#if (__BORLANDC__ <= 0x593) - // we shouldn't really need this - but too many things choke - // without it, this needs more investigation: -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS - -// Temporary workaround -#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif - -// Borland C++ Builder 2008 and below: -#if (__BORLANDC__ <= 0x601) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_ILLEGAL_CV_REFERENCES -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -#endif - -// -// Positive Feature detection -// -// Borland C++ Builder 2008 and below: -#if (__BORLANDC__ >= 0x599) -# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax -#endif - -#if defined( BOOST_CODEGEAR_0X_SUPPORT ) -# #if __BORLANDC__ >= 0x610 -# define BOOST_HAS_ALIGNOF -# define BOOST_HAS_CHAR16_T -# define BOOST_HAS_CHAR32_T -# define BOOST_HAS_DECLTYPE -//# define BOOST_HAS_DEFAULTED_FN -//# define BOOST_HAS_DELETED_FN -# define BOOST_HAS_EXPLICIT_CONVERSION_OPS -//# define BOOST_HAS_NULLPTR -//# define BOOST_HAS_RAW_STRING -# define BOOST_HAS_REF_QUALIFIER -# define BOOST_HAS_RVALUE_REFS -//# define BOOST_HAS_SCOPED_ENUM -# define BOOST_HAS_STATIC_ASSERT -//# define BOOST_HAS_VARIADIC_TMPL -# #endif //__BORLANDC__ >= 0x610 -#endif - -#if __BORLANDC__ >= 0x590 -# define BOOST_HAS_TR1_HASH - -# define BOOST_HAS_MACRO_USE_FACET -#endif - -// -// Post 0x561 we have long long and stdint.h: -#if __BORLANDC__ >= 0x561 -# ifndef __NO_LONG_LONG -# define BOOST_HAS_LONG_LONG -# endif - // On non-Win32 platforms let the platform config figure this out: -# ifdef _WIN32 -# define BOOST_HAS_STDINT_H -# endif -#endif - -// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is -// defined, then we have 0x560 or greater with the Rogue Wave implementation -// which presumably has the std::DBL_MAX bug. -#if defined( BOOST_BCB_WITH_ROGUE_WAVE ) -// <climits> is partly broken, some macros define symbols that are really in -// namespace std, so you end up having to use illegal constructs like -// std::DBL_MAX, as a fix we'll just include float.h and have done with: -#include <float.h> -#endif -// -// __int64: -// -#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__) -# define BOOST_HAS_MS_INT64 -#endif -// -// check for exception handling support: -// -#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// -// all versions have a <dirent.h>: -// -#ifndef __STRICT_ANSI__ -# define BOOST_HAS_DIRENT_H -#endif -// -// all versions support __declspec: -// -#ifndef __STRICT_ANSI__ -# define BOOST_HAS_DECLSPEC -#endif -// -// ABI fixing headers: -// -#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" -#endif -#endif -// -// Disable Win32 support in ANSI mode: -// -#if __BORLANDC__ < 0x600 -# pragma defineonoption BOOST_DISABLE_WIN32 -A -#elif defined(__STRICT_ANSI__) -# define BOOST_DISABLE_WIN32 -#endif -// -// MSVC compatibility mode does some nasty things: -// TODO: look up if this doesn't apply to the whole 12xx range -// -#if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_VOID_RETURNS -#endif - -#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/codegear.hpp b/src/libs/boost-1.37.0/boost/config/compiler/codegear.hpp deleted file mode 100644 index d27817a9..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/codegear.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// CodeGear C++ compiler setup: - -#if !defined( BOOST_WITH_CODEGEAR_WARNINGS ) -// these warnings occur frequently in optimized template code -# pragma warn -8004 // var assigned value, but never used -# pragma warn -8008 // condition always true/false -# pragma warn -8066 // dead code can never execute -# pragma warn -8104 // static members with ctors not threadsafe -# pragma warn -8105 // reference member in class without ctors -#endif -// -// versions check: -// last known and checked version is 0x610 -#if (__CODEGEARC__ > 0x610) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message( "Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - -// CodeGear C++ Builder 2009 -#if (__CODEGEARC__ <= 0x610) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_NO_USING_TEMPLATE - // we shouldn't really need this - but too many things choke - // without it, this needs more investigation: -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type -# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member - -// Temporary hack, until specific MPL preprocessed headers are generated -# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -# ifdef NDEBUG - // fix broken <cstring> so that Boost.test works: -# include <cstring> -# undef strcmp -# endif - // fix broken errno declaration: -# include <errno.h> -# ifndef errno -# define errno errno -# endif - -#endif - - -# define BOOST_HAS_CHAR16_T -# define BOOST_HAS_CHAR32_T -# define BOOST_HAS_LONG_LONG - -//# define BOOST_HAS_ALIGNOF -# define BOOST_HAS_DECLTYPE -# define BOOST_HAS_EXPLICIT_CONVERSION_OPS -//# define BOOST_HAS_RVALUE_REFS -# define BOOST_HAS_SCOPED_ENUM -//# define BOOST_HAS_STATIC_ASSERT -# define BOOST_HAS_STD_TYPE_TRAITS - -# define BOOST_HAS_TR1_HASH -# define BOOST_HAS_TR1_TYPE_TRAITS -# define BOOST_HAS_TR1_UNORDERED_MAP -# define BOOST_HAS_TR1_UNORDERED_SET - -# define BOOST_HAS_MACRO_USE_FACET - - - // On non-Win32 platforms let the platform config figure this out: -# ifdef _WIN32 -# define BOOST_HAS_STDINT_H -# endif - -// -// __int64: -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_MS_INT64 -#endif -// -// check for exception handling support: -// -#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// -// all versions have a <dirent.h>: -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_DIRENT_H -#endif -// -// all versions support __declspec: -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_DECLSPEC -#endif -// -// ABI fixing headers: -// -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" -#endif -// -// Disable Win32 support in ANSI mode: -// -# pragma defineonoption BOOST_DISABLE_WIN32 -A -// -// MSVC compatibility mode does some nasty things: -// TODO: look up if this doesn't apply to the whole 12xx range -// -#if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_VOID_RETURNS -#endif - -#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/comeau.hpp b/src/libs/boost-1.37.0/boost/config/compiler/comeau.hpp deleted file mode 100644 index 278222dc..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/comeau.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Douglas Gregor 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Aleksey Gurtovoy 2003. -// (C) Copyright Beman Dawes 2003. -// (C) Copyright Jens Maurer 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Comeau C++ compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -#if (__COMO_VERSION__ <= 4245) - -# if defined(_MSC_VER) && _MSC_VER <= 1300 -# if _MSC_VER > 100 - // only set this in non-strict mode: -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# endif -# endif - -// Void returns don't work when emulating VC 6 (Peter Dimov) -// TODO: look up if this doesn't apply to the whole 12xx range -# if defined(_MSC_VER) && (_MSC_VER < 1300) -# define BOOST_NO_VOID_RETURNS -# endif - -#endif // version 4245 - -// -// enable __int64 support in VC emulation mode -// -# if defined(_MSC_VER) && (_MSC_VER >= 1200) -# define BOOST_HAS_MS_INT64 -# endif - -#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) - -// -// versions check: -// we don't know Comeau prior to version 4245: -#if __COMO_VERSION__ < 4245 -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4245: -#if (__COMO_VERSION__ > 4245) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/common_edg.hpp b/src/libs/boost-1.37.0/boost/config/compiler/common_edg.hpp deleted file mode 100644 index 0443be1a..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/common_edg.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright Markus Schoepflin 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// -// Options common to all edg based compilers. -// -// This is included from within the individual compiler mini-configs. - -#ifndef __EDG_VERSION__ -# error This file requires that __EDG_VERSION__ be defined. -#endif - -#if (__EDG_VERSION__ <= 238) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_SFINAE -#endif - -#if (__EDG_VERSION__ <= 240) -# define BOOST_NO_VOID_RETURNS -#endif - -#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -#endif - -#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) -# define BOOST_NO_TEMPLATE_TEMPLATES -#endif - -#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) -# define BOOST_NO_IS_ABSTRACT -#endif - -#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif - -// See also kai.hpp which checks a Kai-specific symbol for EH -# if !defined(__KCC) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -# if !defined(__NO_LONG_LONG) -# define BOOST_HAS_LONG_LONG -# endif - -#ifdef c_plusplus -// EDG has "long long" in non-strict mode -// However, some libraries have insufficient "long long" support -// #define BOOST_HAS_LONG_LONG -#endif - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/compaq_cxx.hpp b/src/libs/boost-1.37.0/boost/config/compiler/compaq_cxx.hpp deleted file mode 100644 index b44486c6..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/compaq_cxx.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Tru64 C++ compiler setup (now HP): - -#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// Nothing to do here? - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/digitalmars.hpp b/src/libs/boost-1.37.0/boost/config/compiler/digitalmars.hpp deleted file mode 100644 index 46848479..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/digitalmars.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) Christof Meerwald 2003 -// Copyright (C) Dan Watkins 2003 -// -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// Digital Mars C++ compiler setup: -#define BOOST_COMPILER __DMC_VERSION_STRING__ - -#define BOOST_HAS_LONG_LONG -#define BOOST_HAS_PRAGMA_ONCE - -#if (__DMC__ <= 0x833) -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TEMPLATE_TEMPLATES -#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING -#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#endif -#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG) -#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#define BOOST_NO_OPERATORS_IN_NAMESPACE -#define BOOST_NO_UNREACHABLE_RETURN_DETECTION -#define BOOST_NO_SFINAE -#define BOOST_NO_USING_TEMPLATE -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif - -// -// has macros: -#if (__DMC__ >= 0x840) -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_WINTHREADS -#endif - -#if (__DMC__ >= 0x847) -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_LOG1P -#endif - -// -// Is this really the best way to detect whether the std lib is in namespace std? -// -#include <cstddef> -#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD) -# define BOOST_NO_STDC_NAMESPACE -#endif - - -// check for exception handling support: -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif - -#if __DMC__ < 0x800 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is ...: -#if (__DMC__ > 0x848) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/src/libs/boost-1.37.0/boost/config/compiler/gcc.hpp b/src/libs/boost-1.37.0/boost/config/compiler/gcc.hpp deleted file mode 100644 index 27df829b..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/gcc.hpp +++ /dev/null @@ -1,158 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Jens Maurer 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Douglas Gregor 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Synge Todo 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// GNU C++ compiler setup: - -#if __GNUC__ < 3 -# if __GNUC_MINOR__ == 91 - // egcs 1.1 won't parse shared_ptr.hpp without this: -# define BOOST_NO_AUTO_PTR -# endif -# if __GNUC_MINOR__ < 95 - // - // Prior to gcc 2.95 member templates only partly - // work - define BOOST_MSVC6_MEMBER_TEMPLATES - // instead since inline member templates mostly work. - // -# define BOOST_NO_MEMBER_TEMPLATES -# if __GNUC_MINOR__ >= 9 -# define BOOST_MSVC6_MEMBER_TEMPLATES -# endif -# endif - -# if __GNUC_MINOR__ < 96 -# define BOOST_NO_SFINAE -# endif - -# if __GNUC_MINOR__ <= 97 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# endif - -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_IS_ABSTRACT -#elif __GNUC__ == 3 -# if defined (__PATHSCALE__) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_IS_ABSTRACT -# endif - // - // gcc-3.x problems: - // - // Bug specific to gcc 3.1 and 3.2: - // -# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# endif -# if __GNUC_MINOR__ < 4 -# define BOOST_NO_IS_ABSTRACT -# endif -#endif -#if __GNUC__ < 4 -// -// All problems to gcc-3.x and earlier here: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#ifndef __EXCEPTIONS -# define BOOST_NO_EXCEPTIONS -#endif - - -// -// Threading support: Turn this on unconditionally here (except for -// those platforms where we can know for sure). It will get turned off again -// later if no threading API is detected. -// -#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define BOOST_HAS_THREADS -#endif - -// -// gcc has "long long" -// -#define BOOST_HAS_LONG_LONG - -// -// gcc implements the named return value optimization since version 3.1 -// -#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 ) -#define BOOST_HAS_NRVO -#endif -// -// RTTI and typeinfo detection is possible post gcc-4.3: -// -#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403 -# ifndef __GXX_RTTI -# define BOOST_NO_TYPEID -# define BOOST_NO_RTTI -# endif -#endif - -// -// C++0x features -// -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2) -// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are -// passed on the command line, which in turn defines -// __GXX_EXPERIMENTAL_CXX0X__. -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_HAS_STATIC_ASSERT -# define BOOST_HAS_VARIADIC_TMPL -# define BOOST_HAS_RVALUE_REFS -# define BOOST_HAS_DECLTYPE -# endif -#endif - -// -// Potential C++0x features -// - -// Variadic templates compiler: -// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html -#ifdef __VARIADIC_TEMPLATES -# define BOOST_HAS_VARIADIC_TMPL -#endif - -// ConceptGCC compiler: -// http://www.generic-programming.org/software/ConceptGCC/ -#ifdef __GXX_CONCEPTS__ -# define BOOST_HAS_CONCEPTS -# define BOOST_COMPILER "ConceptGCC version " __VERSION__ -#endif - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "GNU C++ version " __VERSION__ -#endif - -// -// versions check: -// we don't know gcc prior to version 2.90: -#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90) -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4.3 (Pre-release): -#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 3)) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -// we don't emit warnings here anymore since there are no defect macros defined for -// gcc post 3.4, so any failures are gcc regressions... -//# warning "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/gcc_xml.hpp b/src/libs/boost-1.37.0/boost/config/compiler/gcc_xml.hpp deleted file mode 100644 index 5dd67c76..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/gcc_xml.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// (C) Copyright John Maddock 2006. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// GCC-XML C++ compiler setup: - -# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3)) -# define BOOST_NO_IS_ABSTRACT -# endif - -// -// Threading support: Turn this on unconditionally here (except for -// those platforms where we can know for sure). It will get turned off again -// later if no threading API is detected. -// -#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define BOOST_HAS_THREADS -#endif - -// -// gcc has "long long" -// -#define BOOST_HAS_LONG_LONG - -#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/greenhills.hpp b/src/libs/boost-1.37.0/boost/config/compiler/greenhills.hpp deleted file mode 100644 index 038b6b2b..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/greenhills.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Greenhills C++ compiler setup: - -#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// we don't support Greenhills prior to version 0: -#if __ghs < 0 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0: -#if (__ghs > 0) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/hp_acc.hpp b/src/libs/boost-1.37.0/boost/config/compiler/hp_acc.hpp deleted file mode 100644 index 5a766c59..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/hp_acc.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Toon Knapen 2003. -// (C) Copyright Boris Gubenko 2006 - 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// HP aCC C++ compiler setup: - -#if defined(__EDG__) -#include "boost/config/compiler/common_edg.hpp" -#endif - -#if (__HP_aCC <= 33100) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# if !defined(_NAMESPACE_STD) -# define BOOST_NO_STD_LOCALE -# define BOOST_NO_STRINGSTREAM -# endif -#endif - -#if (__HP_aCC <= 33300) -// member templates are sufficiently broken that we disable them for now -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -#endif - -#if (__HP_aCC <= 38000) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#if (__HP_aCC > 50000) && (__HP_aCC < 60000) -# define BOOST_NO_UNREACHABLE_RETURN_DETECTION -# define BOOST_NO_TEMPLATE_TEMPLATES -# define BOOST_NO_SWPRINTF -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#endif - -// optional features rather than defects: -#if (__HP_aCC >= 33900) -# define BOOST_HAS_LONG_LONG -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#endif - -#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 ) -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -#endif - -// This macro should not be defined when compiling in strict ansi -// mode, but, currently, we don't have the ability to determine -// what standard mode we are compiling with. Some future version -// of aCC6 compiler will provide predefined macros reflecting the -// compilation options, including the standard mode. -#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98)) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC) - -// -// versions check: -// we don't support HP aCC prior to version 33000: -#if __HP_aCC < 33000 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// -// Extended checks for supporting aCC on PA-RISC -#if __HP_aCC > 30000 && __HP_aCC < 50000 -# if __HP_aCC < 38000 - // versions prior to version A.03.80 not supported -# error "Compiler version not supported - version A.03.80 or higher is required" -# elif !defined(__hpxstd98) - // must compile using the option +hpxstd98 with version A.03.80 and above -# error "Compiler option '+hpxstd98' is required for proper support" -# endif //PA-RISC -#endif - -// -// last known and checked version for HP-UX/ia64 is 61300 -// last known and checked version for PA-RISC is 38000 -#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98))) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/src/libs/boost-1.37.0/boost/config/compiler/intel.hpp b/src/libs/boost-1.37.0/boost/config/compiler/intel.hpp deleted file mode 100644 index bc3d4e99..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/intel.hpp +++ /dev/null @@ -1,173 +0,0 @@ -// (C) Copyright John Maddock 2001-8. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002 - 2003. -// (C) Copyright Guillaume Melquiond 2002 - 2003. -// (C) Copyright Beman Dawes 2003. -// (C) Copyright Martin Wille 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Intel compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -#if defined(__INTEL_COMPILER) -# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER -#elif defined(__ICL) -# define BOOST_INTEL_CXX_VERSION __ICL -#elif defined(__ICC) -# define BOOST_INTEL_CXX_VERSION __ICC -#elif defined(__ECC) -# define BOOST_INTEL_CXX_VERSION __ECC -#endif - -#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -#define BOOST_INTEL BOOST_INTEL_CXX_VERSION - -#if defined(_WIN32) || defined(_WIN64) -# define BOOST_INTEL_WIN BOOST_INTEL -#else -# define BOOST_INTEL_LINUX BOOST_INTEL -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# define BOOST_NO_TEMPLATE_TEMPLATES -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 600) - -# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov) - -// Boost libraries assume strong standard conformance unless otherwise -// indicated by a config macro. As configured by Intel, the EDG front-end -// requires certain compiler options be set to achieve that strong conformance. -// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt) -// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for -// details as they apply to particular versions of the compiler. When the -// compiler does not predefine a macro indicating if an option has been set, -// this config file simply assumes the option has been set. -// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if -// the compiler option is not enabled. - -# define BOOST_NO_SWPRINTF -# endif - -// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov) - -# if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_VOID_RETURNS -# define BOOST_NO_INTEGRAL_INT64_T -# endif - -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32) -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -#endif - -// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864 -#if BOOST_INTEL_CXX_VERSION < 600 -# define BOOST_NO_INTRINSIC_WCHAR_T -#else -// We should test the macro _WCHAR_T_DEFINED to check if the compiler -// supports wchar_t natively. *BUT* there is a problem here: the standard -// headers define this macro if they typedef wchar_t. Anyway, we're lucky -// because they define it without a value, while Intel C++ defines it -// to 1. So we can check its value to see if the macro was defined natively -// or not. -// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T -// is used instead. -# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0) -# define BOOST_NO_INTRINSIC_WCHAR_T -# endif -#endif - -#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -// -// Figure out when Intel is emulating this gcc bug -// (All Intel versions prior to 9.0.26, and versions -// later than that if they are set up to emulate gcc 3.2 -// or earlier): -// -# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# endif -#endif -#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) -// GCC or VC emulation: -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif -// -// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T -// set correctly, if we don't do this now, we will get errors later -// in type_traits code among other things, getting this correct -// for the Intel compiler is actually remarkably fragile and tricky: -// -#if defined(BOOST_NO_INTRINSIC_WCHAR_T) -#include <cwchar> -template< typename T > struct assert_no_intrinsic_wchar_t; -template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; }; -// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T -// where it is defined above: -typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_; -#else -template< typename T > struct assert_intrinsic_wchar_t; -template<> struct assert_intrinsic_wchar_t<wchar_t> {}; -// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line: -template<> struct assert_intrinsic_wchar_t<unsigned short> {}; -#endif - -#if _MSC_VER+0 >= 1000 -# if _MSC_VER >= 1200 -# define BOOST_HAS_MS_INT64 -# endif -# define BOOST_NO_SWPRINTF -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#elif defined(_WIN32) -# define BOOST_DISABLE_WIN32 -#endif - -// I checked version 6.0 build 020312Z, it implements the NRVO. -// Correct this as you find out which version of the compiler -// implemented the NRVO first. (Daniel Frey) -#if (BOOST_INTEL_CXX_VERSION >= 600) -# define BOOST_HAS_NRVO -#endif - -// -// versions check: -// we don't support Intel prior to version 5.0: -#if BOOST_INTEL_CXX_VERSION < 500 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// Intel on MacOS requires -#if defined(__APPLE__) && defined(__INTEL_COMPILER) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -// Intel on Altix Itanium -#if defined(__itanium__) && defined(__INTEL_COMPILER) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -// -// last known and checked version: -#if (BOOST_INTEL_CXX_VERSION > 1010) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# elif defined(_MSC_VER) -// -// We don't emit this warning any more, since we have so few -// defect macros set anyway (just the one). -// -//# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/kai.hpp b/src/libs/boost-1.37.0/boost/config/compiler/kai.hpp deleted file mode 100644 index de16f1a6..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/kai.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Kai C++ compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) - // at least on Sun, the contents of <cwchar> is not in namespace std -# define BOOST_NO_STDC_NAMESPACE -# endif - -// see also common_edg.hpp which needs a special check for __KCC -# if !defined(_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION) - -// -// last known and checked version is 4001: -#if (__KCC_VERSION > 4001) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/metrowerks.hpp b/src/libs/boost-1.37.0/boost/config/compiler/metrowerks.hpp deleted file mode 100644 index 2b60b56f..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/metrowerks.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright David Abrahams 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Stefan Slapeta 2004. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Metrowerks C++ compiler setup: - -// locale support is disabled when linking with the dynamic runtime -# ifdef _MSL_NO_LOCALE -# define BOOST_NO_STD_LOCALE -# endif - -# if __MWERKS__ <= 0x2301 // 5.3 -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_NO_POINTER_TO_MEMBER_CONST -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -# endif - -# if __MWERKS__ <= 0x2401 // 6.2 -//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if(__MWERKS__ <= 0x2407) // 7.x -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -# define BOOST_NO_UNREACHABLE_RETURN_DETECTION -# endif - -# if(__MWERKS__ <= 0x3003) // 8.x -# define BOOST_NO_SFINAE -# endif - -// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last -// tested version *only*: -# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_IS_ABSTRACT -# endif - -#if !__option(wchar_type) -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -#if !__option(exceptions) -# define BOOST_NO_EXCEPTIONS -#endif - -#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh) -# if __MWERKS__ == 0x3000 -# define BOOST_COMPILER_VERSION 8.0 -# elif __MWERKS__ == 0x3001 -# define BOOST_COMPILER_VERSION 8.1 -# elif __MWERKS__ == 0x3002 -# define BOOST_COMPILER_VERSION 8.2 -# elif __MWERKS__ == 0x3003 -# define BOOST_COMPILER_VERSION 8.3 -# elif __MWERKS__ == 0x3200 -# define BOOST_COMPILER_VERSION 9.0 -# elif __MWERKS__ == 0x3201 -# define BOOST_COMPILER_VERSION 9.1 -# elif __MWERKS__ == 0x3202 -# define BOOST_COMPILER_VERSION 9.2 -# elif __MWERKS__ == 0x3204 -# define BOOST_COMPILER_VERSION 9.3 -# elif __MWERKS__ == 0x3205 -# define BOOST_COMPILER_VERSION 9.4 -# elif __MWERKS__ == 0x3206 -# define BOOST_COMPILER_VERSION 9.5 -# else -# define BOOST_COMPILER_VERSION __MWERKS__ -# endif -#else -# define BOOST_COMPILER_VERSION __MWERKS__ -#endif - -// -// C++0x features -// -#if __MWERKS__ > 0x3206 && __option(rvalue_refs) -# define BOOST_HAS_RVALUE_REFS -#endif - -#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// versions check: -// we don't support Metrowerks prior to version 5.3: -#if __MWERKS__ < 0x2301 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version: -#if (__MWERKS__ > 0x3205) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/mpw.hpp b/src/libs/boost-1.37.0/boost/config/compiler/mpw.hpp deleted file mode 100644 index 8ab2aacb..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/mpw.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// MPW C++ compilers setup: - -# if defined(__SC__) -# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__) -# elif defined(__MRC__) -# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__) -# else -# error "Using MPW compiler configuration by mistake. Please update." -# endif - -// -// MPW 8.90: -// -#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_INTRINSIC_WCHAR_T -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# define BOOST_NO_USING_TEMPLATE - -# define BOOST_NO_CWCHAR -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - -# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */ -#endif - -// -// versions check: -// we don't support MPW prior to version 8.9: -#if MPW_CPLUS < 0x890 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0x890: -#if (MPW_CPLUS > 0x890) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/pgi.hpp b/src/libs/boost-1.37.0/boost/config/compiler/pgi.hpp deleted file mode 100644 index 41f29c75..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/pgi.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (C) Copyright Noel Belcourt 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// PGI C++ compiler setup: - -#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ -#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// - -#if (__PGIC__ >= 7) - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_SWPRINTF - -#else - -# error "Pgi compiler not configured - please reconfigure" - -#endif -// -// version check: -// probably nothing to do here? - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/sgi_mipspro.hpp b/src/libs/boost-1.37.0/boost/config/compiler/sgi_mipspro.hpp deleted file mode 100644 index 33e97e9a..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/sgi_mipspro.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// SGI C++ compiler setup: - -#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) - -#include "boost/config/compiler/common_edg.hpp" - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// -#define BOOST_HAS_THREADS -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP - -#undef BOOST_NO_SWPRINTF -#undef BOOST_DEDUCED_TYPENAME -// -// version check: -// probably nothing to do here? - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/sunpro_cc.hpp b/src/libs/boost-1.37.0/boost/config/compiler/sunpro_cc.hpp deleted file mode 100644 index f513c2dc..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/sunpro_cc.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Peter Dimov 2002. -// (C) Copyright Aleksey Gurtovoy 2002 - 2003. -// (C) Copyright David Abrahams 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Sun C++ compiler setup: - -# if __SUNPRO_CC <= 0x500 -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if (__SUNPRO_CC <= 0x520) - // - // Sunpro 5.2 and earler: - // - // although sunpro 5.2 supports the syntax for - // inline initialization it often gets the value - // wrong, especially where the value is computed - // from other constants (J Maddock 6th May 2001) -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION - - // Although sunpro 5.2 supports the syntax for - // partial specialization, it often seems to - // bind to the wrong specialization. Better - // to disable it until suppport becomes more stable - // (J Maddock 6th May 2001). -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif - -# if (__SUNPRO_CC <= 0x530) - // Requesting debug info (-g) with Boost.Python results - // in an internal compiler error for "static const" - // initialized in-class. - // >> Assertion: (../links/dbg_cstabs.cc, line 611) - // while processing ../test.cpp at line 0. - // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002) -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION - - // SunPro 5.3 has better support for partial specialization, - // but breaks when compiling std::less<shared_ptr<T> > - // (Jens Maurer 4 Nov 2001). - - // std::less specialization fixed as reported by George - // Heintzelman; partial specialization re-enabled - // (Peter Dimov 17 Jan 2002) - -//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // integral constant expressions with 64 bit numbers fail -# define BOOST_NO_INTEGRAL_INT64_T -# endif - -# if (__SUNPRO_CC < 0x570) -# define BOOST_NO_TEMPLATE_TEMPLATES - // see http://lists.boost.org/MailArchives/boost/msg47184.php - // and http://lists.boost.org/MailArchives/boost/msg47220.php -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_SFINAE -# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -# endif -# if (__SUNPRO_CC <= 0x580) -# define BOOST_NO_IS_ABSTRACT -# endif - -// -// Issues that effect all known versions: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_ADL_BARRIER - -#if(__SUNPRO_CC >= 0x590) -# define BOOST_HAS_LONG_LONG -#endif - - -#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) - -// -// versions check: -// we don't support sunpro prior to version 4: -#if __SUNPRO_CC < 0x400 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0x590: -#if (__SUNPRO_CC > 0x590) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/vacpp.hpp b/src/libs/boost-1.37.0/boost/config/compiler/vacpp.hpp deleted file mode 100644 index 826939f1..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/vacpp.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Toon Knapen 2001 - 2003. -// (C) Copyright Lie-Quan Lee 2001. -// (C) Copyright Markus Schoepflin 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Visual Age (IBM) C++ compiler setup: - -#if __IBMCPP__ <= 501 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -#endif - -#if (__IBMCPP__ <= 502) -// Actually the compiler supports inclass member initialization but it -// requires a definition for the class member and it doesn't recognize -// it as an integral constant expression when used as a template argument. -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -#endif - -#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -#endif - -// -// On AIX thread support seems to be indicated by _THREAD_SAFE: -// -#ifdef _THREAD_SAFE -# define BOOST_HAS_THREADS -#endif - -#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__) - -// -// versions check: -// we don't support Visual age prior to version 5: -#if __IBMCPP__ < 500 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 600: -#if (__IBMCPP__ > 600) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - -// Some versions of the compiler have issues with default arguments on partial specializations -#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS - - - - diff --git a/src/libs/boost-1.37.0/boost/config/compiler/visualc.hpp b/src/libs/boost-1.37.0/boost/config/compiler/visualc.hpp deleted file mode 100644 index 187591be..00000000 --- a/src/libs/boost-1.37.0/boost/config/compiler/visualc.hpp +++ /dev/null @@ -1,199 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Microsoft Visual C++ compiler setup: - -#define BOOST_MSVC _MSC_VER - -// turn off the warnings before we #include anything -#pragma warning( disable : 4503 ) // warning: decorated name length exceeded - -#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4 -# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_VOID_RETURNS -# define BOOST_NO_EXCEPTION_STD_NAMESPACE - // disable min/max macro defines on vc6: - // -#endif - -#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0 - -# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# endif - -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_DEDUCED_TYPENAME -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE - -// VC++ 6/7 has member templates but they have numerous problems including -// cases of silent failure, so for safety we define: -# define BOOST_NO_MEMBER_TEMPLATES -// For VC++ experts wishing to attempt workarounds, we define: -# define BOOST_MSVC6_MEMBER_TEMPLATES - -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_TEMPLATE_TEMPLATES -# define BOOST_NO_SFINAE -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS -// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)? -# if (_MSC_VER > 1200) -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -# endif - -#endif - -#if _MSC_VER < 1400 -// although a conforming signature for swprint exists in VC7.1 -// it appears not to actually work: -# define BOOST_NO_SWPRINTF -#endif - -#if defined(UNDER_CE) -// Windows CE does not have a conforming signature for swprintf -# define BOOST_NO_SWPRINTF -#endif - -#if _MSC_VER <= 1400 // 1400 == VC++ 8.0 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#endif - -#if _MSC_VER <= 1500 // 1500 == VC++ 9.0 -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#if _MSC_VER == 1500 // 1500 == VC++ 9.0 - // A bug in VC9: -# define BOOST_NO_ADL_BARRIER -#endif - -#ifndef _NATIVE_WCHAR_T_DEFINED -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -#if defined(_WIN32_WCE) || defined(UNDER_CE) -# define BOOST_NO_THREADEX -# define BOOST_NO_GETSYSTEMTIMEASFILETIME -# define BOOST_NO_SWPRINTF -#endif - -// -// check for exception handling support: -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif - -// -// __int64 support: -// -#if (_MSC_VER >= 1200) -# define BOOST_HAS_MS_INT64 -#endif -#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS) -# define BOOST_HAS_LONG_LONG -#endif -#if (_MSC_VER >= 1400) && !defined(_DEBUG) -# define BOOST_HAS_NRVO -#endif -// -// disable Win32 API's if compiler extentions are -// turned off: -// -#ifndef _MSC_EXTENSIONS -# define BOOST_DISABLE_WIN32 -#endif -#ifndef _CPPRTTI -# define BOOST_NO_RTTI -#endif - -// -// all versions support __declspec: -// -#define BOOST_HAS_DECLSPEC -// -// prefix and suffix headers: -// -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" -#endif - -// TODO: -// these things are mostly bogus. 1200 means version 12.0 of the compiler. The -// artificial versions assigned to them only refer to the versions of some IDE -// these compilers have been shipped with, and even that is not all of it. Some -// were shipped with freely downloadable SDKs, others as crosscompilers in eVC. -// IOW, you can't use these 'versions' in any sensible way. Sorry. -# if defined(UNDER_CE) -# if _MSC_VER < 1200 - // Note: these are so far off, they are not really supported -# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202 -# define BOOST_COMPILER_VERSION evc4.0 -# elif _MSC_VER == 1400 -# define BOOST_COMPILER_VERSION evc8 -# else -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown EVC++ compiler version - please run the configure tests and report the results" -# else -# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") -# endif -# endif -# else -# if _MSC_VER < 1200 - // Note: these are so far off, they are not really supported -# define BOOST_COMPILER_VERSION 5.0 -# elif _MSC_VER < 1300 -# define BOOST_COMPILER_VERSION 6.0 -# elif _MSC_VER == 1300 -# define BOOST_COMPILER_VERSION 7.0 -# elif _MSC_VER == 1310 -# define BOOST_COMPILER_VERSION 7.1 -# elif _MSC_VER == 1400 -# define BOOST_COMPILER_VERSION 8.0 -# elif _MSC_VER == 1500 -# define BOOST_COMPILER_VERSION 9.0 -# else -# define BOOST_COMPILER_VERSION _MSC_VER -# endif -# endif - -#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// versions check: -// we don't support Visual C++ prior to version 6: -#if _MSC_VER < 1200 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 1500 (VC9): -#if (_MSC_VER > 1500) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif diff --git a/src/libs/boost-1.37.0/boost/config/no_tr1/cmath.hpp b/src/libs/boost-1.37.0/boost/config/no_tr1/cmath.hpp deleted file mode 100644 index d8268d84..00000000 --- a/src/libs/boost-1.37.0/boost/config/no_tr1/cmath.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2008. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// The aim of this header is just to include <cmath> but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/cmath is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_CMATH -# define BOOST_CONFIG_CMATH - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_CMATH_RECURSION -# endif - -# include <cmath> - -# ifdef BOOST_CONFIG_NO_CMATH_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_CMATH_RECURSION -# endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/no_tr1/complex.hpp b/src/libs/boost-1.37.0/boost/config/no_tr1/complex.hpp deleted file mode 100644 index ca200922..00000000 --- a/src/libs/boost-1.37.0/boost/config/no_tr1/complex.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// The aim of this header is just to include <complex> but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/complex is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_COMPLEX -# define BOOST_CONFIG_COMPLEX - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_COMPLEX_RECURSION -# endif - -# include <complex> - -# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_COMPLEX_RECURSION -# endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/no_tr1/functional.hpp b/src/libs/boost-1.37.0/boost/config/no_tr1/functional.hpp deleted file mode 100644 index e395efc1..00000000 --- a/src/libs/boost-1.37.0/boost/config/no_tr1/functional.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// The aim of this header is just to include <functional> but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/functional is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_FUNCTIONAL -# define BOOST_CONFIG_FUNCTIONAL - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# endif - -# include <functional> - -# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/no_tr1/memory.hpp b/src/libs/boost-1.37.0/boost/config/no_tr1/memory.hpp deleted file mode 100644 index 2b5d2080..00000000 --- a/src/libs/boost-1.37.0/boost/config/no_tr1/memory.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// The aim of this header is just to include <memory> but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/memory is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_MEMORY -# define BOOST_CONFIG_MEMORY - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_MEMORY_RECURSION -# endif - -# include <memory> - -# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_MEMORY_RECURSION -# endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/no_tr1/utility.hpp b/src/libs/boost-1.37.0/boost/config/no_tr1/utility.hpp deleted file mode 100644 index dea8f115..00000000 --- a/src/libs/boost-1.37.0/boost/config/no_tr1/utility.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// The aim of this header is just to include <utility> but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/utility is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_UTILITY -# define BOOST_CONFIG_UTILITY - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_UTILITY_RECURSION -# endif - -# include <utility> - -# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_UTILITY_RECURSION -# endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/platform/aix.hpp b/src/libs/boost-1.37.0/boost/config/platform/aix.hpp deleted file mode 100644 index 894ef42c..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/aix.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// IBM/Aix specific config options: - -#define BOOST_PLATFORM "IBM Aix" - -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_NL_TYPES_H -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_CLOCK_GETTIME - -// This needs support in "boost/cstdint.hpp" exactly like FreeBSD. -// This platform has header named <inttypes.h> which includes all -// the things needed. -#define BOOST_HAS_STDINT_H - -// Threading API's: -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_DELAY_NP -#define BOOST_HAS_SCHED_YIELD -//#define BOOST_HAS_PTHREAD_YIELD - -// boilerplate code: -#include <boost/config/posix_features.hpp> - - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/amigaos.hpp b/src/libs/boost-1.37.0/boost/config/platform/amigaos.hpp deleted file mode 100644 index 34bcf412..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/amigaos.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright John Maddock 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -#define BOOST_PLATFORM "AmigaOS" - -#define BOOST_DISABLE_THREADS -#define BOOST_NO_CWCHAR -#define BOOST_NO_STD_WSTRING -#define BOOST_NO_INTRINSIC_WCHAR_T - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/beos.hpp b/src/libs/boost-1.37.0/boost/config/platform/beos.hpp deleted file mode 100644 index 48c3d8dc..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/beos.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// (C) Copyright John Maddock 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// BeOS specific config options: - -#define BOOST_PLATFORM "BeOS" - -#define BOOST_NO_CWCHAR -#define BOOST_NO_CWCTYPE -#define BOOST_HAS_UNISTD_H - -#define BOOST_HAS_BETHREADS - -#ifndef BOOST_DISABLE_THREADS -# define BOOST_HAS_THREADS -#endif - -// boilerplate code: -#include <boost/config/posix_features.hpp> - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/bsd.hpp b/src/libs/boost-1.37.0/boost/config/platform/bsd.hpp deleted file mode 100644 index 810d3707..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/bsd.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Douglas Gregor 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// generic BSD config options: - -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) -#error "This platform is not BSD" -#endif - -#ifdef __FreeBSD__ -#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) -#elif defined(__NetBSD__) -#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) -#elif defined(__OpenBSD__) -#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) -#elif defined(__DragonFly__) -#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) -#endif - -// -// is this the correct version check? -// FreeBSD has <nl_types.h> but does not -// advertise the fact in <unistd.h>: -// -#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__) -# define BOOST_HAS_NL_TYPES_H -#endif - -// -// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h> -// and not in <unistd.h> -// -#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3)) || defined(__OpenBSD__) -# define BOOST_HAS_PTHREADS -#endif - -// -// No wide character support in the BSD header files: -// -#if defined(__NetBSD__) -#define __NetBSD_GCC__ (__GNUC__ * 1000000 \ - + __GNUC_MINOR__ * 1000 \ - + __GNUC_PATCHLEVEL__) -// XXX - the following is required until c++config.h -// defines _GLIBCXX_HAVE_SWPRINTF and friends -// or the preprocessor conditionals are removed -// from the cwchar header. -#define _GLIBCXX_HAVE_SWPRINTF 1 -#endif - -#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || (__NetBSD_GCC__ >= 2095003)) -# define BOOST_NO_CWCHAR -#endif -// -// The BSD <ctype.h> has macros only, no functions: -// -#if !defined(__OpenBSD__) -# define BOOST_NO_CTYPE_FUNCTIONS -#endif - -// -// thread API's not auto detected: -// -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_SIGACTION - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/cygwin.hpp b/src/libs/boost-1.37.0/boost/config/platform/cygwin.hpp deleted file mode 100644 index 41fcaa10..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/cygwin.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// cygwin specific config options: - -#define BOOST_PLATFORM "Cygwin" -#define BOOST_NO_CWCTYPE -#define BOOST_NO_CWCHAR -#define BOOST_NO_SWPRINTF -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_LOG1P -#define BOOST_HAS_EXPM1 - -// -// Threading API: -// See if we have POSIX threads, if we do use them, otherwise -// revert to native Win threads. -#define BOOST_HAS_UNISTD_H -#include <unistd.h> -#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_PTHREADS -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_SIGACTION -#else -# if !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_WINTHREADS -# endif -# define BOOST_HAS_FTIME -#endif - -// -// find out if we have a stdint.h, there should be a better way to do this: -// -#include <sys/types.h> -#ifdef _STDINT_H -#define BOOST_HAS_STDINT_H -#endif - -// boilerplate code: -#include <boost/config/posix_features.hpp> - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/hpux.hpp b/src/libs/boost-1.37.0/boost/config/platform/hpux.hpp deleted file mode 100644 index 19ce68e5..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/hpux.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Toon Knapen 2003. -// (C) Copyright Boris Gubenko 2006 - 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// hpux specific config options: - -#define BOOST_PLATFORM "HP-UX" - -// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h> -// However, it has the following problem: -// Use of UINT32_C(0) results in "0u l" for the preprocessed source -// (verifyable with gcc 2.95.3) -#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC) -# define BOOST_HAS_STDINT_H -#endif - -#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE)) -# define BOOST_NO_SWPRINTF -#endif -#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE) -# define BOOST_NO_CWCTYPE -#endif - -#if defined(__GNUC__) -# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) - // GNU C on HP-UX does not support threads (checked up to gcc 3.3) -# define BOOST_DISABLE_THREADS -# elif !defined(BOOST_DISABLE_THREADS) - // threads supported from gcc-3.3 onwards: -# define BOOST_HAS_THREADS -# define BOOST_HAS_PTHREADS -# endif -#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS) -# define BOOST_HAS_PTHREADS -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - -// the following are always available: -#ifndef BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_GETTIMEOFDAY -#endif -#ifndef BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_SCHED_YIELD -#endif -#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#endif -#ifndef BOOST_HAS_NL_TYPES_H -# define BOOST_HAS_NL_TYPES_H -#endif -#ifndef BOOST_HAS_NANOSLEEP -# define BOOST_HAS_NANOSLEEP -#endif -#ifndef BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_GETTIMEOFDAY -#endif -#ifndef BOOST_HAS_DIRENT_H -# define BOOST_HAS_DIRENT_H -#endif -#ifndef BOOST_HAS_CLOCK_GETTIME -# define BOOST_HAS_CLOCK_GETTIME -#endif -#ifndef BOOST_HAS_SIGACTION -# define BOOST_HAS_SIGACTION -#endif -#ifndef BOOST_HAS_NRVO -# ifndef __parisc -# define BOOST_HAS_NRVO -# endif -#endif -#ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -#endif -#ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -#endif - diff --git a/src/libs/boost-1.37.0/boost/config/platform/irix.hpp b/src/libs/boost-1.37.0/boost/config/platform/irix.hpp deleted file mode 100644 index aeae49c8..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/irix.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -// See http://www.boost.org for most recent version. - -// SGI Irix specific config options: - -#define BOOST_PLATFORM "SGI Irix" - -#define BOOST_NO_SWPRINTF -// -// these are not auto detected by POSIX feature tests: -// -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - -#ifdef __GNUC__ - // GNU C on IRIX does not support threads (checked up to gcc 3.3) -# define BOOST_DISABLE_THREADS -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/linux.hpp b/src/libs/boost-1.37.0/boost/config/platform/linux.hpp deleted file mode 100644 index 51ae1334..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/linux.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// linux specific config options: - -#define BOOST_PLATFORM "linux" - -// make sure we have __GLIBC_PREREQ if available at all -#include <cstdlib> - -// -// <stdint.h> added to glibc 2.1.1 -// We can only test for 2.1 though: -// -#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) - // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines - // int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h> - // only when using GCC. -# if defined __GNUC__ -# define BOOST_HAS_STDINT_H -# endif -#endif - -#if defined(__LIBCOMO__) - // - // como on linux doesn't have std:: c functions: - // NOTE: versions of libcomo prior to beta28 have octal version numbering, - // e.g. version 25 is 21 (dec) - // -# if __LIBCOMO_VERSION__ <= 20 -# define BOOST_NO_STDC_NAMESPACE -# endif - -# if __LIBCOMO_VERSION__ <= 21 -# define BOOST_NO_SWPRINTF -# endif - -#endif - -// -// If glibc is past version 2 then we definitely have -// gettimeofday, earlier versions may or may not have it: -// -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -# define BOOST_HAS_GETTIMEOFDAY -#endif - -#ifdef __USE_POSIX199309 -# define BOOST_HAS_NANOSLEEP -#endif - -#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) -// __GLIBC_PREREQ is available since 2.1.2 - - // swprintf is available since glibc 2.2.0 -# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) -# define BOOST_NO_SWPRINTF -# endif -#else -# define BOOST_NO_SWPRINTF -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - -#ifndef __GNUC__ -// -// if the compiler is not gcc we still need to be able to parse -// the GNU system headers, some of which (mainly <stdint.h>) -// use GNU specific extensions: -// -# ifndef __extension__ -# define __extension__ -# endif -# ifndef __const__ -# define __const__ const -# endif -# ifndef __volatile__ -# define __volatile__ volatile -# endif -# ifndef __signed__ -# define __signed__ signed -# endif -# ifndef __typeof__ -# define __typeof__ typeof -# endif -# ifndef __inline__ -# define __inline__ inline -# endif -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/macos.hpp b/src/libs/boost-1.37.0/boost/config/platform/macos.hpp deleted file mode 100644 index 2780ef99..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/macos.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Bill Kempf 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Mac OS specific config options: - -#define BOOST_PLATFORM "Mac OS" - -#if __MACH__ && !defined(_MSL_USING_MSL_C) - -// Using the Mac OS X system BSD-style C library. - -# ifndef BOOST_HAS_UNISTD_H -# define BOOST_HAS_UNISTD_H -# endif -// -// Begin by including our boilerplate code for POSIX -// feature detection, this is safe even when using -// the MSL as Metrowerks supply their own <unistd.h> -// to replace the platform-native BSD one. G++ users -// should also always be able to do this on MaxOS X. -// -# include <boost/config/posix_features.hpp> -# ifndef BOOST_HAS_STDINT_H -# define BOOST_HAS_STDINT_H -# endif - -// -// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday, -// of these only pthreads are advertised in <unistd.h>, so set the -// other options explicitly: -// -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_SIGACTION - -# if (__GNUC__ < 3) && !defined( __APPLE_CC__) - -// GCC strange "ignore std" mode works better if you pretend everything -// is in the std namespace, for the most part. - -# define BOOST_NO_STDC_NAMESPACE -# endif - -# if (__GNUC__ == 4) - -// Both gcc and intel require these. -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_NANOSLEEP - -# endif - -#else - -// Using the MSL C library. - -// We will eventually support threads in non-Carbon builds, but we do -// not support this yet. -# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) - -# if !defined(BOOST_HAS_PTHREADS) -# define BOOST_HAS_MPTASKS -# elif ( __dest_os == __mac_os_x ) -// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the -// gettimeofday and no posix. -# define BOOST_HAS_GETTIMEOFDAY -# endif - -// The MP task implementation of Boost Threads aims to replace MP-unsafe -// parts of the MSL, so we turn on threads unconditionally. -# define BOOST_HAS_THREADS - -// The remote call manager depends on this. -# define BOOST_BIND_ENABLE_PASCAL - -# endif - -#endif - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/qnxnto.hpp b/src/libs/boost-1.37.0/boost/config/platform/qnxnto.hpp deleted file mode 100644 index b1377c8d..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/qnxnto.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright Jim Douglas 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// QNX specific config options: - -#define BOOST_PLATFORM "QNX" - -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - -// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h -// or log1p and expm1: -#undef BOOST_HAS_NL_TYPES_H -#undef BOOST_HAS_LOG1P -#undef BOOST_HAS_EXPM1 - -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_HAS_NANOSLEEP - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/solaris.hpp b/src/libs/boost-1.37.0/boost/config/platform/solaris.hpp deleted file mode 100644 index 9f925666..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/solaris.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// sun specific config options: - -#define BOOST_PLATFORM "Sun Solaris" - -#define BOOST_HAS_GETTIMEOFDAY - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include <boost/config/posix_features.hpp> - -// -// pthreads don't actually work with gcc unless _PTHREADS is defined: -// -#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) -# undef BOOST_HAS_PTHREADS -#endif - - - - diff --git a/src/libs/boost-1.37.0/boost/config/platform/win32.hpp b/src/libs/boost-1.37.0/boost/config/platform/win32.hpp deleted file mode 100644 index 9344818f..00000000 --- a/src/libs/boost-1.37.0/boost/config/platform/win32.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Bill Kempf 2001. -// (C) Copyright Aleksey Gurtovoy 2003. -// (C) Copyright Rene Rivera 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Win32 specific config options: - -#define BOOST_PLATFORM "Win32" - -// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION. -#if defined(__MINGW32__) -# include <_mingw.h> -#endif - -#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF) -# define BOOST_NO_SWPRINTF -#endif - -#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) -# define BOOST_HAS_DECLSPEC -#endif - -#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) -# define BOOST_HAS_STDINT_H -# define __STDC_LIMIT_MACROS -# define BOOST_HAS_DIRENT_H -# define BOOST_HAS_UNISTD_H -#endif - -// -// Win32 will normally be using native Win32 threads, -// but there is a pthread library avaliable as an option, -// we used to disable this when BOOST_DISABLE_WIN32 was -// defined but no longer - this should allow some -// files to be compiled in strict mode - while maintaining -// a consistent setting of BOOST_HAS_THREADS across -// all translation units (needed for shared_ptr etc). -// - -#ifdef _WIN32_WCE -# define BOOST_NO_ANSI_APIS -#endif - -#ifndef BOOST_HAS_PTHREADS -# define BOOST_HAS_WINTHREADS -#endif - -#ifndef BOOST_DISABLE_WIN32 -// WEK: Added -#define BOOST_HAS_FTIME -#define BOOST_WINDOWS 1 - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/posix_features.hpp b/src/libs/boost-1.37.0/boost/config/posix_features.hpp deleted file mode 100644 index d1295479..00000000 --- a/src/libs/boost-1.37.0/boost/config/posix_features.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -// See http://www.boost.org for most recent version. - -// All POSIX feature tests go in this file, -// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well -// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's -// may be present but none-functional unless _POSIX_C_SOURCE and -// _XOPEN_SOURCE have been defined to the right value (it's up -// to the user to do this *before* including any header, although -// in most cases the compiler will do this for you). - -# if defined(BOOST_HAS_UNISTD_H) -# include <unistd.h> - - // XOpen has <nl_types.h>, but is this the correct version check? -# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3) -# define BOOST_HAS_NL_TYPES_H -# endif - - // POSIX version 6 requires <stdint.h> -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100) -# define BOOST_HAS_STDINT_H -# endif - - // POSIX version 2 requires <dirent.h> -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L) -# define BOOST_HAS_DIRENT_H -# endif - - // POSIX version 3 requires <signal.h> to have sigaction: -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L) -# define BOOST_HAS_SIGACTION -# endif - // POSIX defines _POSIX_THREADS > 0 for pthread support, - // however some platforms define _POSIX_THREADS without - // a value, hence the (_POSIX_THREADS+0 >= 0) check. - // Strictly speaking this may catch platforms with a - // non-functioning stub <pthreads.h>, but such occurrences should - // occur very rarely if at all. -# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS) -# define BOOST_HAS_PTHREADS -# endif - - // BOOST_HAS_NANOSLEEP: - // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME: -# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \ - || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) -# define BOOST_HAS_NANOSLEEP -# endif - - // BOOST_HAS_CLOCK_GETTIME: - // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME - // but at least one platform - linux - defines that flag without - // defining clock_gettime): -# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) -# define BOOST_HAS_CLOCK_GETTIME -# endif - - // BOOST_HAS_SCHED_YIELD: - // This is predicated on _POSIX_PRIORITY_SCHEDULING or - // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME. -# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\ - || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\ - || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) -# define BOOST_HAS_SCHED_YIELD -# endif - - // BOOST_HAS_GETTIMEOFDAY: - // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE: - // These are predicated on _XOPEN_VERSION, and appears to be first released - // in issue 4, version 2 (_XOPEN_VERSION > 500). - // Likewise for the functions log1p and expm1. -# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) -# define BOOST_HAS_GETTIMEOFDAY -# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# endif -# ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -# endif -# ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -# endif -# endif - -# endif - - - - diff --git a/src/libs/boost-1.37.0/boost/config/requires_threads.hpp b/src/libs/boost-1.37.0/boost/config/requires_threads.hpp deleted file mode 100644 index cfaff230..00000000 --- a/src/libs/boost-1.37.0/boost/config/requires_threads.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP -#define BOOST_CONFIG_REQUIRES_THREADS_HPP - -#ifndef BOOST_CONFIG_HPP -# include <boost/config.hpp> -#endif - -#if defined(BOOST_DISABLE_THREADS) - -// -// special case to handle versions of gcc which don't currently support threads: -// -#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG)) -// -// this is checked up to gcc 3.3: -// -#if defined(__sgi) || defined(__hpux) -# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)" -#endif - -#endif - -# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" - -#elif !defined(BOOST_HAS_THREADS) - -# if defined __COMO__ -// Comeau C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)" - -#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) -// Intel -#ifdef _WIN32 -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" -#else -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp" -#endif - -# elif defined __GNUC__ -// GNU C++: -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" - -#elif defined __sgi -// SGI MIPSpro C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE" - -#elif defined __DECCXX -// Compaq Tru64 Unix cxx -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" - -#elif defined __BORLANDC__ -// Borland -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" - -#elif defined __MWERKS__ -// Metrowerks CodeWarrior -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd" - -#elif defined __SUNPRO_CC -// Sun Workshop Compiler C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" - -#elif defined __HP_aCC -// HP aCC -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" - -#elif defined(__IBMCPP__) -// IBM Visual Age -# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler" - -#elif defined _MSC_VER -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for -// example) also #define _MSC_VER -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" - -#else - -# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use" - -#endif // compilers - -#endif // BOOST_HAS_THREADS - -#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP diff --git a/src/libs/boost-1.37.0/boost/config/select_compiler_config.hpp b/src/libs/boost-1.37.0/boost/config/select_compiler_config.hpp deleted file mode 100644 index 9141cd63..00000000 --- a/src/libs/boost-1.37.0/boost/config/select_compiler_config.hpp +++ /dev/null @@ -1,119 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Martin Wille 2003. -// (C) Copyright Guillaume Melquiond 2003. -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org/ for most recent version. - - -// one identification macro for each of the -// compilers we support: - -# define BOOST_CXX_GCCXML 0 -# define BOOST_CXX_COMO 0 -# define BOOST_CXX_DMC 0 -# define BOOST_CXX_INTEL 0 -# define BOOST_CXX_GNUC 0 -# define BOOST_CXX_KCC 0 -# define BOOST_CXX_SGI 0 -# define BOOST_CXX_TRU64 0 -# define BOOST_CXX_GHS 0 -# define BOOST_CXX_BORLAND 0 -# define BOOST_CXX_CW 0 -# define BOOST_CXX_SUNPRO 0 -# define BOOST_CXX_HPACC 0 -# define BOOST_CXX_MPW 0 -# define BOOST_CXX_IBMCPP 0 -# define BOOST_CXX_MSVC 0 -# define BOOST_CXX_PGI 0 - - -// locate which compiler we are using and define -// BOOST_COMPILER_CONFIG as needed: - -#if defined(__GCCXML__) -// GCC-XML emulates other compilers, it has to appear first here! -# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp" - -#elif defined __COMO__ -// Comeau C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" - -#elif defined __DMC__ -// Digital Mars C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" - -#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) -// Intel -# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" - -# elif defined __GNUC__ -// GNU C++: -# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp" - -#elif defined __KCC -// Kai C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp" - -#elif defined __sgi -// SGI MIPSpro C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp" - -#elif defined __DECCXX -// Compaq Tru64 Unix cxx -# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp" - -#elif defined __ghs -// Greenhills C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp" - -#elif defined __CODEGEARC__ -// CodeGear - must be checked for before Borland -# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp" - -#elif defined __BORLANDC__ -// Borland -# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp" - -#elif defined __MWERKS__ -// Metrowerks CodeWarrior -# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp" - -#elif defined __SUNPRO_CC -// Sun Workshop Compiler C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp" - -#elif defined __HP_aCC -// HP aCC -# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp" - -#elif defined(__MRC__) || defined(__SC__) -// MPW MrCpp or SCpp -# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp" - -#elif defined(__IBMCPP__) -// IBM Visual Age -# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp" - -#elif defined(__PGI) -// Portland Group Inc. -# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp" - -#elif defined _MSC_VER -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for -// example) also #define _MSC_VER -# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp" - -#elif defined (BOOST_ASSERT_CONFIG) -// this must come last - generate an error if we don't -// recognise the compiler: -# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" - -#endif diff --git a/src/libs/boost-1.37.0/boost/config/select_platform_config.hpp b/src/libs/boost-1.37.0/boost/config/select_platform_config.hpp deleted file mode 100644 index a4c7ad6a..00000000 --- a/src/libs/boost-1.37.0/boost/config/select_platform_config.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Jens Maurer 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed. -// Note that we define the headers to include using "header_name" not -// <header_name> in order to prevent macro expansion within the header -// name (for example "linux" is a macro on linux systems). - -#if defined(linux) || defined(__linux) || defined(__linux__) -// linux: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" - -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) -// BSD: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp" - -#elif defined(sun) || defined(__sun) -// solaris: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp" - -#elif defined(__sgi) -// SGI Irix: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp" - -#elif defined(__hpux) -// hp unix: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp" - -#elif defined(__CYGWIN__) -// cygwin is not win32: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -// win32: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" - -#elif defined(__BEOS__) -// BeOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" - -#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) -// MacOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" - -#elif defined(__IBMCPP__) || defined(_AIX) -// IBM -# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" - -#elif defined(__amigaos__) -// AmigaOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp" - -#elif defined(__QNXNTO__) -// QNX: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp" - -#else - -# if defined(unix) \ - || defined(__unix) \ - || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) - - // generic unix platform: - -# ifndef BOOST_HAS_UNISTD_H -# define BOOST_HAS_UNISTD_H -# endif - -# include <boost/config/posix_features.hpp> - -# endif - -# if defined (BOOST_ASSERT_CONFIG) - // this must come last - generate an error if we don't - // recognise the platform: -# error "Unknown platform - please configure and report the results to boost.org" -# endif - -#endif - - - diff --git a/src/libs/boost-1.37.0/boost/config/select_stdlib_config.hpp b/src/libs/boost-1.37.0/boost/config/select_stdlib_config.hpp deleted file mode 100644 index 13e5e4ce..00000000 --- a/src/libs/boost-1.37.0/boost/config/select_stdlib_config.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -// See http://www.boost.org for most recent version. - -// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: - -// we need to include a std lib header here in order to detect which -// library is in use, use <utility> as it's about the smallest -// of the std lib headers - do not rely on this header being included - -// users can short-circuit this header if they know whose std lib -// they are using. - -#include <boost/config/no_tr1/utility.hpp> - -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -// STLPort library; this _must_ come first, otherwise since -// STLport typically sits on top of some other library, we -// can end up detecting that first rather than STLport: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" - -#elif defined(__LIBCOMO__) -// Comeau STL: -#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" - -#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -// Rogue Wave library: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" - -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -// GNU libstdc++ 3 -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" - -#elif defined(__STL_CONFIG_H) -// generic SGI STL -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp" - -#elif defined(__MSL_CPP__) -// MSL standard lib: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" - -#elif defined(__IBMCPP__) -// take the default VACPP std lib -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" - -#elif defined(MSIPL_COMPILE_H) -// Modena C++ standard library -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" - -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Dinkumware Library (this has to appear after any possible replacement libraries): -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" - -#elif defined (BOOST_ASSERT_CONFIG) -// this must come last - generate an error if we don't -// recognise the library: -# error "Unknown standard library - please configure and report the results to boost.org" - -#endif - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/dinkumware.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/dinkumware.hpp deleted file mode 100644 index 01f1238d..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/dinkumware.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Guillaume Melquiond 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Dinkumware standard library config: - -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#include <boost/config/no_tr1/utility.hpp> -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#error This is not the Dinkumware lib! -#endif -#endif - - -#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306) - // full dinkumware 3.06 and above - // fully conforming provided the compiler supports it: -# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h -# define BOOST_NO_STDC_NAMESPACE -# endif -# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC) -# define BOOST_NO_STD_ALLOCATOR -# endif -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) - // if this lib version is set up for vc6 then there is no std::use_facet: -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET - // C lib functions aren't in namespace std either: -# define BOOST_NO_STDC_NAMESPACE - // and nor is <exception> -# define BOOST_NO_EXCEPTION_STD_NAMESPACE -# endif -// There's no numeric_limits<long long> support unless _LONGLONG is defined: -# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310) -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# endif -// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>, -// and no <slist> at all -#else -# define BOOST_MSVC_STD_ITERATOR 1 -# define BOOST_NO_STD_ITERATOR -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -# define BOOST_NO_STDC_NAMESPACE -# define BOOST_NO_STD_USE_FACET -# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -# define BOOST_HAS_MACRO_USE_FACET -# ifndef _CPPLIB_VER - // Updated Dinkum library defines this, and provides - // its own min and max definitions. -# define BOOST_NO_STD_MIN_MAX -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# endif -#endif - -// -// std extension namespace is stdext for vc7.1 and later, -// the same applies to other compilers that sit on top -// of vc7.1 (Intel and Comeau): -// -#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__) -# define BOOST_STD_EXTENSION_NAMESPACE stdext -#endif - - -#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) - // if we're using a dinkum lib that's - // been configured for VC6/7 then there is - // no iterator traits (true even for icl) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310) -// Intel C++ chokes over any non-trivial use of <locale> -// this may be an overly restrictive define, but regex fails without it: -# define BOOST_NO_STD_LOCALE -#endif - -#ifdef _CPPLIB_VER -# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER -#else -# define BOOST_DINKUMWARE_STDLIB 1 -#endif - -#ifdef _CPPLIB_VER -# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER) -#else -# define BOOST_STDLIB "Dinkumware standard library version 1.x" -#endif - - - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/libcomo.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/libcomo.hpp deleted file mode 100644 index 749781fe..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/libcomo.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// (C) Copyright John Maddock 2002 - 2003. -// (C) Copyright Jens Maurer 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Comeau STL: - -#if !defined(__LIBCOMO__) -# include <boost/config/no_tr1/utility.hpp> -# if !defined(__LIBCOMO__) -# error "This is not the Comeau STL!" -# endif -#endif - -// -// std::streambuf<wchar_t> is non-standard -// NOTE: versions of libcomo prior to beta28 have octal version numbering, -// e.g. version 25 is 21 (dec) -#if __LIBCOMO_VERSION__ <= 22 -# define BOOST_NO_STD_WSTREAMBUF -#endif - -#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32) -#define BOOST_NO_SWPRINTF -#endif - -#if __LIBCOMO_VERSION__ >= 31 -# define BOOST_HAS_HASH -# define BOOST_HAS_SLIST -#endif - -// -// Intrinsic type_traits support. -// The SGI STL has it's own __type_traits class, which -// has intrinsic compiler support with SGI's compilers. -// Whatever map SGI style type traits to boost equivalents: -// -#define BOOST_HAS_SGI_TYPE_TRAITS - -#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/libstdcpp3.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/libstdcpp3.hpp deleted file mode 100644 index a619e3eb..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/libstdcpp3.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Jens Maurer 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// config for libstdc++ v3 -// not much to go in here: - -#ifdef __GLIBCXX__ -#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) -#else -#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) -#endif - -#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) -# define BOOST_NO_CWCHAR -# define BOOST_NO_CWCTYPE -# define BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTREAMBUF -#endif - -#if defined(__osf__) && !defined(_REENTRANT) \ - && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) -// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header -// file is included, therefore for consistency we define it here as well. -# define _REENTRANT -#endif - -#ifdef __GLIBCXX__ // gcc 3.4 and greater: -# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ - || defined(_GLIBCXX__PTHREADS) - // - // If the std lib has thread support turned on, then turn it on in Boost - // as well. We do this because some gcc-3.4 std lib headers define _REENTANT - // while others do not... - // -# define BOOST_HAS_THREADS -# else -# define BOOST_DISABLE_THREADS -# endif -#elif defined(__GLIBCPP__) \ - && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ - && !defined(_GLIBCPP__PTHREADS) - // disable thread support if the std lib was built single threaded: -# define BOOST_DISABLE_THREADS -#endif - -#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) -// linux on arm apparently doesn't define _REENTRANT -// so just turn on threading support whenever the std lib is thread safe: -# define BOOST_HAS_THREADS -#endif - - -#if !defined(_GLIBCPP_USE_LONG_LONG) \ - && !defined(_GLIBCXX_USE_LONG_LONG)\ - && defined(BOOST_HAS_LONG_LONG) -// May have been set by compiler/*.hpp, but "long long" without library -// support is useless. -# undef BOOST_HAS_LONG_LONG -#endif - -#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 -# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx -# define BOOST_HAS_SLIST -# define BOOST_HAS_HASH -# define BOOST_SLIST_HEADER <ext/slist> -# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) -# define BOOST_HASH_SET_HEADER <ext/hash_set> -# define BOOST_HASH_MAP_HEADER <ext/hash_map> -# else -# define BOOST_HASH_SET_HEADER <backward/hash_set> -# define BOOST_HASH_MAP_HEADER <backward/hash_map> -# endif -#endif diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/modena.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/modena.hpp deleted file mode 100644 index 3d0f76be..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/modena.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// (C) Copyright Jens Maurer 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Modena C++ standard library (comes with KAI C++) - -#if !defined(MSIPL_COMPILE_H) -# include <boost/config/no_tr1/utility.hpp> -# if !defined(__MSIPL_COMPILE_H) -# error "This is not the Modena C++ library!" -# endif -#endif - -#ifndef MSIPL_NL_TYPES -#define BOOST_NO_STD_MESSAGES -#endif - -#ifndef MSIPL_WCHART -#define BOOST_NO_STD_WSTRING -#endif - -#define BOOST_STDLIB "Modena C++ standard library" - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/msl.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/msl.hpp deleted file mode 100644 index f8d8752b..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/msl.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Darin Adler 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Metrowerks standard library: - -#ifndef __MSL_CPP__ -# include <boost/config/no_tr1/utility.hpp> -# ifndef __MSL_CPP__ -# error This is not the MSL standard library! -# endif -#endif - -#if __MSL_CPP__ >= 0x6000 // Pro 6 -# define BOOST_HAS_HASH -# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks -#endif -#define BOOST_HAS_SLIST - -#if __MSL_CPP__ < 0x6209 -# define BOOST_NO_STD_MESSAGES -#endif - -// check C lib version for <stdint.h> -#include <cstddef> - -#if defined(__MSL__) && (__MSL__ >= 0x5000) -# define BOOST_HAS_STDINT_H -# if !defined(__PALMOS_TRAPS__) -# define BOOST_HAS_UNISTD_H -# endif - // boilerplate code: -# include <boost/config/posix_features.hpp> -#endif - -#if defined(_MWMT) || _MSL_THREADSAFE -# define BOOST_HAS_THREADS -#endif - -#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET -#endif - - -#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) - - - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/roguewave.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/roguewave.hpp deleted file mode 100644 index ebf4c1f8..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/roguewave.hpp +++ /dev/null @@ -1,153 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2003. -// (C) Copyright Boris Gubenko 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// Rogue Wave std lib: - -#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# include <boost/config/no_tr1/utility.hpp> -# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# error This is not the Rogue Wave standard library -# endif -#endif -// -// figure out a consistent version number: -// -#ifndef _RWSTD_VER -# define BOOST_RWSTD_VER 0x010000 -#elif _RWSTD_VER < 0x010000 -# define BOOST_RWSTD_VER (_RWSTD_VER << 8) -#else -# define BOOST_RWSTD_VER _RWSTD_VER -#endif - -#ifndef _RWSTD_VER -# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)" -#elif _RWSTD_VER < 0x04010200 - # define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER) -#else -# ifdef _RWSTD_VER_STR -# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR -# else -# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER) -# endif -#endif - -// -// Prior to version 2.2.0 the primary template for std::numeric_limits -// does not have compile time constants, even though specializations of that -// template do: -// -#if BOOST_RWSTD_VER < 0x020200 -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the -// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817): -#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550)) -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -# endif - -// -// Borland version of numeric_limits lacks __int64 specialisation: -// -#ifdef __BORLANDC__ -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#endif - -// -// No std::iterator if it can't figure out default template args: -// -#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000) -# define BOOST_NO_STD_ITERATOR -#endif - -// -// No iterator traits without partial specialization: -// -#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// Prior to version 2.0, std::auto_ptr was buggy, and there were no -// new-style iostreams, and no conformant std::allocator: -// -#if (BOOST_RWSTD_VER < 0x020000) -# define BOOST_NO_AUTO_PTR -# define BOOST_NO_STRINGSTREAM -# define BOOST_NO_STD_ALLOCATOR -# define BOOST_NO_STD_LOCALE -#endif - -// -// No template iterator constructors without member template support: -// -#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -#endif - -// -// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use -// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR -// on HP aCC systems even though the allocator is in fact broken): -// -#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100) -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// If we have a std::locale, we still may not have std::use_facet: -// -#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE) -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET -#endif - -// -// There's no std::distance prior to version 2, or without -// partial specialization support: -// -#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - #define BOOST_NO_STD_DISTANCE -#endif - -// -// Some versions of the rogue wave library don't have assignable -// OutputIterators: -// -#if BOOST_RWSTD_VER < 0x020100 -# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -#endif - -// -// Disable BOOST_HAS_LONG_LONG when the library has no support for it. -// -#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG) -# undef BOOST_HAS_LONG_LONG -#endif - -// -// check that on HP-UX, the proper RW library is used -// -#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD) -# error "Boost requires Standard RW library. Please compile and link with -AA" -#endif - -// -// Define macros specific to RW V2.2 on HP-UX -// -#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100) -# ifndef __HP_TC1_MAKE_PAIR -# define __HP_TC1_MAKE_PAIR -# endif -# ifndef _HP_INSTANTIATE_STD2_VL -# define _HP_INSTANTIATE_STD2_VL -# endif -#endif diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/sgi.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/sgi.hpp deleted file mode 100644 index f3fa05b2..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/sgi.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Jens Maurer 2001 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// generic SGI STL: - -#if !defined(__STL_CONFIG_H) -# include <boost/config/no_tr1/utility.hpp> -# if !defined(__STL_CONFIG_H) -# error "This is not the SGI STL!" -# endif -#endif - -// -// No std::iterator traits without partial specialisation: -// -#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No std::stringstream with gcc < 3 -// -#if defined(__GNUC__) && (__GNUC__ < 3) && \ - ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \ - !defined(__STL_USE_NEW_IOSTREAMS) || \ - defined(__APPLE_CC__) - // Note that we only set this for GNU C++ prior to 2.95 since the - // latest patches for that release do contain a minimal <sstream> - // If you are running a 2.95 release prior to 2.95.3 then this will need - // setting, but there is no way to detect that automatically (other - // than by running the configure script). - // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't - // have <sstream>. -# define BOOST_NO_STRINGSTREAM -#endif - -// -// Assume no std::locale without own iostreams (this may be an -// incorrect assumption in some cases): -// -#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// Original native SGI streams have non-standard std::messages facet: -// -#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// SGI's new iostreams have missing "const" in messages<>::open -// -#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_MESSAGES -#endif - -// -// No template iterator constructors, or std::allocator -// without member templates: -// -#if !defined(__STL_MEMBER_TEMPLATES) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// We always have SGI style hash_set, hash_map, and slist: -// -#define BOOST_HAS_HASH -#define BOOST_HAS_SLIST - -// -// If this is GNU libstdc++2, then no <limits> and no std::wstring: -// -#if (defined(__GNUC__) && (__GNUC__ < 3)) -# include <string> -# if defined(__BASTRING__) -# define BOOST_NO_LIMITS -// Note: <boost/limits.hpp> will provide compile-time constants -# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_STD_WSTRING -# endif -#endif - -// -// There is no standard iterator unless we have namespace support: -// -#if !defined(__STL_USE_NAMESPACES) -# define BOOST_NO_STD_ITERATOR -#endif - -// -// Intrinsic type_traits support. -// The SGI STL has it's own __type_traits class, which -// has intrinsic compiler support with SGI's compilers. -// Whatever map SGI style type traits to boost equivalents: -// -#define BOOST_HAS_SGI_TYPE_TRAITS - -#define BOOST_STDLIB "SGI standard library" - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/stlport.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/stlport.hpp deleted file mode 100644 index b1dabf23..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/stlport.hpp +++ /dev/null @@ -1,203 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Jens Maurer 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// STLPort standard library config: - -#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -# include <boost/config/no_tr1/utility.hpp> -# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -# error "This is not STLPort!" -# endif -#endif - -// -// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -// for versions prior to 4.1(beta) -// -#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400) -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// -// If STLport thinks that there is no partial specialisation, then there is no -// std::iterator traits: -// -#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION)) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No new style iostreams on GCC without STLport's iostreams enabled: -// -#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS)) -# define BOOST_NO_STRINGSTREAM -#endif - -// -// No new iostreams implies no std::locale, and no std::stringstream: -// -#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -# define BOOST_NO_STRINGSTREAM -#endif - -// -// If the streams are not native, and we have a "using ::x" compiler bug -// then the io stream facets are not available in namespace std:: -// -#ifdef _STLPORT_VERSION -# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -# endif -#else -# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -# endif -#endif - -// -// Without member template support enabled, their are no template -// iterate constructors, and no std::allocator: -// -#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES)) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -#endif -// -// however we always have at least a partial allocator: -// -#define BOOST_HAS_PARTIAL_STD_ALLOCATOR - -#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) -# define BOOST_NO_STD_ALLOCATOR -#endif - -#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// If STLport thinks there is no wchar_t at all, then we have to disable -// the support for the relevant specilazations of std:: templates. -// -#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT) -# ifndef BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTRING -# endif -# ifndef BOOST_NO_STD_WSTREAMBUF -# define BOOST_NO_STD_WSTREAMBUF -# endif -#endif - -// -// We always have SGI style hash_set, hash_map, and slist: -// -#ifndef _STLP_NO_EXTENSIONS -#define BOOST_HAS_HASH -#define BOOST_HAS_SLIST -#endif - -// -// STLport does a good job of importing names into namespace std::, -// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our -// workaround does not conflict with STLports: -// -// -// Harold Howe says: -// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with -// BCB6 does cause problems. If we detect C++ Builder, then don't define -// BOOST_NO_STDC_NAMESPACE -// -#if !defined(__BORLANDC__) && !defined(__DMC__) -// -// If STLport is using it's own namespace, and the real names are in -// the global namespace, then we duplicate STLport's using declarations -// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't -// necessarily import all the names we need into namespace std:: -// -# if (defined(__STL_IMPORT_VENDOR_CSTD) \ - || defined(__STL_USE_OWN_NAMESPACE) \ - || defined(_STLP_IMPORT_VENDOR_CSTD) \ - || defined(_STLP_USE_OWN_NAMESPACE)) \ - && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD)) -# define BOOST_NO_STDC_NAMESPACE -# define BOOST_NO_EXCEPTION_STD_NAMESPACE -# endif -#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 -// STLport doesn't import std::abs correctly: -#include <stdlib.h> -namespace std { using ::abs; } -// and strcmp/strcpy don't get imported either ('cos they are macros) -#include <string.h> -#ifdef strcpy -# undef strcpy -#endif -#ifdef strcmp -# undef strcmp -#endif -#ifdef _STLP_VENDOR_CSTD -namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; } -#endif -#endif - -// -// std::use_facet may be non-standard, uses a class instead: -// -#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_STLP_USE_FACET -#endif - -// -// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but -// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import -// into std:: ourselves). -// -#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE) -# define BOOST_NO_CWCHAR -# define BOOST_NO_CWCTYPE -#endif - -// -// If STLport for some reason was configured so that it thinks that wchar_t -// is not an intrinsic type, then we have to disable the support for it as -// well (we would be missing required specializations otherwise). -// -#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT) -# undef BOOST_NO_INTRINSIC_WCHAR_T -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -// -// Borland ships a version of STLport with C++ Builder 6 that lacks -// hashtables and the like: -// -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) -# undef BOOST_HAS_HASH -#endif - -// -// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max -// -#if defined(__GNUC__) && (__GNUC__ < 3) -# include <algorithm> // for std::min and std::max -# define BOOST_USING_STD_MIN() ((void)0) -# define BOOST_USING_STD_MAX() ((void)0) -namespace boost { using std::min; using std::max; } -#endif - -#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) - - - - - - - - diff --git a/src/libs/boost-1.37.0/boost/config/stdlib/vacpp.hpp b/src/libs/boost-1.37.0/boost/config/stdlib/vacpp.hpp deleted file mode 100644 index 8321ee0c..00000000 --- a/src/libs/boost-1.37.0/boost/config/stdlib/vacpp.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -#if __IBMCPP__ <= 501 -# define BOOST_NO_STD_ALLOCATOR -#endif - -#define BOOST_HAS_MACRO_USE_FACET -#define BOOST_NO_STD_MESSAGES - -#define BOOST_STDLIB "Visual Age default standard library" - - - diff --git a/src/libs/boost-1.37.0/boost/config/suffix.hpp b/src/libs/boost-1.37.0/boost/config/suffix.hpp deleted file mode 100644 index f71c644f..00000000 --- a/src/libs/boost-1.37.0/boost/config/suffix.hpp +++ /dev/null @@ -1,590 +0,0 @@ -// Boost config.hpp configuration header file ------------------------------// - -// Copyright (c) 2001-2003 John Maddock -// Copyright (c) 2001 Darin Adler -// Copyright (c) 2001 Peter Dimov -// Copyright (c) 2002 Bill Kempf -// Copyright (c) 2002 Jens Maurer -// Copyright (c) 2002-2003 David Abrahams -// Copyright (c) 2003 Gennaro Prota -// Copyright (c) 2003 Eric Friedman -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org/ for most recent version. - -// Boost config.hpp policy and rationale documentation has been moved to -// http://www.boost.org/libs/config/ -// -// This file is intended to be stable, and relatively unchanging. -// It should contain boilerplate code only - no compiler specific -// code unless it is unavoidable - no changes unless unavoidable. - -#ifndef BOOST_CONFIG_SUFFIX_HPP -#define BOOST_CONFIG_SUFFIX_HPP - -// -// look for long long by looking for the appropriate macros in <limits.h>. -// Note that we use limits.h rather than climits for maximal portability, -// remember that since these just declare a bunch of macros, there should be -// no namespace issues from this. -// -#if !defined(BOOST_HAS_LONG_LONG) \ - && !defined(BOOST_MSVC) && !defined(__BORLANDC__) -# include <limits.h> -# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) -# define BOOST_HAS_LONG_LONG -# endif -#endif - -// GCC 3.x will clean up all of those nasty macro definitions that -// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine -// it under GCC 3.x. -#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS) -# undef BOOST_NO_CTYPE_FUNCTIONS -#endif - -// -// Assume any extensions are in namespace std:: unless stated otherwise: -// -# ifndef BOOST_STD_EXTENSION_NAMESPACE -# define BOOST_STD_EXTENSION_NAMESPACE std -# endif - -// -// If cv-qualified specializations are not allowed, then neither are cv-void ones: -// -# if defined(BOOST_NO_CV_SPECIALIZATIONS) \ - && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# endif - -// -// If there is no numeric_limits template, then it can't have any compile time -// constants either! -// -# if defined(BOOST_NO_LIMITS) \ - && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -# endif - -// -// if there is no long long then there is no specialisation -// for numeric_limits<long long> either: -// -#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -#endif - -// -// if there is no __int64 then there is no specialisation -// for numeric_limits<__int64> either: -// -#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#endif - -// -// if member templates are supported then so is the -// VC6 subset of member templates: -// -# if !defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) -# define BOOST_MSVC6_MEMBER_TEMPLATES -# endif - -// -// Without partial specialization, can't test for partial specialisation bugs: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) -# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -# endif - -// -// Without partial specialization, we can't have array-type partial specialisations: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -# endif - -// -// Without partial specialization, std::iterator_traits can't work: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_STD_ITERATOR_TRAITS) -# define BOOST_NO_STD_ITERATOR_TRAITS -# endif - -// -// Without partial specialization, partial -// specialization with default args won't work either: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) -# define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS -# endif - -// -// Without member template support, we can't have template constructors -// in the standard library either: -// -# if defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ - && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# endif - -// -// Without member template support, we can't have a conforming -// std::allocator template either: -// -# if defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ - && !defined(BOOST_NO_STD_ALLOCATOR) -# define BOOST_NO_STD_ALLOCATOR -# endif - -// -// without ADL support then using declarations will break ADL as well: -// -#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif - -// -// Without typeid support we have no dynamic RTTI either: -// -#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -// -// If we have a standard allocator, then we have a partial one as well: -// -#if !defined(BOOST_NO_STD_ALLOCATOR) -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#endif - -// -// We can't have a working std::use_facet if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET) -# define BOOST_NO_STD_USE_FACET -# endif - -// -// We can't have a std::messages facet if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES) -# define BOOST_NO_STD_MESSAGES -# endif - -// -// We can't have a working std::wstreambuf if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF) -# define BOOST_NO_STD_WSTREAMBUF -# endif - -// -// We can't have a <cwctype> if there is no <cwchar>: -// -# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE) -# define BOOST_NO_CWCTYPE -# endif - -// -// We can't have a swprintf if there is no <cwchar>: -// -# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF) -# define BOOST_NO_SWPRINTF -# endif - -// -// If Win32 support is turned off, then we must turn off -// threading support also, unless there is some other -// thread API enabled: -// -#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \ - && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS) -# define BOOST_DISABLE_THREADS -#endif - -// -// Turn on threading support if the compiler thinks that it's in -// multithreaded mode. We put this here because there are only a -// limited number of macros that identify this (if there's any missing -// from here then add to the appropriate compiler section): -// -#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \ - || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS) -# define BOOST_HAS_THREADS -#endif - -// -// Turn threading support off if BOOST_DISABLE_THREADS is defined: -// -#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS) -# undef BOOST_HAS_THREADS -#endif - -// -// Turn threading support off if we don't recognise the threading API: -// -#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\ - && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\ - && !defined(BOOST_HAS_MPTASKS) -# undef BOOST_HAS_THREADS -#endif - -// -// Turn threading detail macros off if we don't (want to) use threading -// -#ifndef BOOST_HAS_THREADS -# undef BOOST_HAS_PTHREADS -# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# undef BOOST_HAS_PTHREAD_YIELD -# undef BOOST_HAS_PTHREAD_DELAY_NP -# undef BOOST_HAS_WINTHREADS -# undef BOOST_HAS_BETHREADS -# undef BOOST_HAS_MPTASKS -#endif - -// -// If the compiler claims to be C99 conformant, then it had better -// have a <stdint.h>: -// -# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) -# define BOOST_HAS_STDINT_H -# ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -# endif -# ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -# endif -# endif - -// -// Define BOOST_NO_SLIST and BOOST_NO_HASH if required. -// Note that this is for backwards compatibility only. -// -# if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST) -# define BOOST_NO_SLIST -# endif - -# if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH) -# define BOOST_NO_HASH -# endif - -// -// Set BOOST_SLIST_HEADER if not set already: -// -#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER) -# define BOOST_SLIST_HEADER <slist> -#endif - -// -// Set BOOST_HASH_SET_HEADER if not set already: -// -#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER) -# define BOOST_HASH_SET_HEADER <hash_set> -#endif - -// -// Set BOOST_HASH_MAP_HEADER if not set already: -// -#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER) -# define BOOST_HASH_MAP_HEADER <hash_map> -#endif - -// BOOST_HAS_ABI_HEADERS -// This macro gets set if we have headers that fix the ABI, -// and prevent ODR violations when linking to external libraries: -#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS) -# define BOOST_HAS_ABI_HEADERS -#endif - -#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS) -# undef BOOST_HAS_ABI_HEADERS -#endif - -// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------// -// Because std::size_t usage is so common, even in boost headers which do not -// otherwise use the C library, the <cstddef> workaround is included here so -// that ugly workaround code need not appear in many other boost headers. -// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef> -// must still be #included in the usual places so that <cstddef> inclusion -// works as expected with standard conforming compilers. The resulting -// double inclusion of <cstddef> is harmless. - -# ifdef BOOST_NO_STDC_NAMESPACE -# include <cstddef> - namespace std { using ::ptrdiff_t; using ::size_t; } -# endif - -// Workaround for the unfortunate min/max macros defined by some platform headers - -#define BOOST_PREVENT_MACRO_SUBSTITUTION - -#ifndef BOOST_USING_STD_MIN -# define BOOST_USING_STD_MIN() using std::min -#endif - -#ifndef BOOST_USING_STD_MAX -# define BOOST_USING_STD_MAX() using std::max -#endif - -// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------// - -# ifdef BOOST_NO_STD_MIN_MAX - -namespace std { - template <class _Tp> - inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { - return __b < __a ? __b : __a; - } - template <class _Tp> - inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { - return __a < __b ? __b : __a; - } -} - -# endif - -// BOOST_STATIC_CONSTANT workaround --------------------------------------- // -// On compilers which don't allow in-class initialization of static integral -// constant members, we must use enums as a workaround if we want the constants -// to be available at compile-time. This macro gives us a convenient way to -// declare such constants. - -# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment } -# else -# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment -# endif - -// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------// -// When the standard library does not have a conforming std::use_facet there -// are various workarounds available, but they differ from library to library. -// The same problem occurs with has_facet. -// These macros provide a consistent way to access a locale's facets. -// Usage: -// replace -// std::use_facet<Type>(loc); -// with -// BOOST_USE_FACET(Type, loc); -// Note do not add a std:: prefix to the front of BOOST_USE_FACET! -// Use for BOOST_HAS_FACET is analogous. - -#if defined(BOOST_NO_STD_USE_FACET) -# ifdef BOOST_HAS_TWO_ARG_USE_FACET -# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0)) -# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0)) -# elif defined(BOOST_HAS_MACRO_USE_FACET) -# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type) -# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type) -# elif defined(BOOST_HAS_STLP_USE_FACET) -# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc)) -# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) -# endif -#else -# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc) -# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) -#endif - -// BOOST_NESTED_TEMPLATE workaround ------------------------------------------// -// Member templates are supported by some compilers even though they can't use -// the A::template member<U> syntax, as a workaround replace: -// -// typedef typename A::template rebind<U> binder; -// -// with: -// -// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder; - -#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD -# define BOOST_NESTED_TEMPLATE template -#else -# define BOOST_NESTED_TEMPLATE -#endif - -// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------// -// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION -// is defined, in which case it evaluates to return x; Use when you have a return -// statement that can never be reached. - -#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION -# define BOOST_UNREACHABLE_RETURN(x) return x; -#else -# define BOOST_UNREACHABLE_RETURN(x) -#endif - -// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------// -// -// Some compilers don't support the use of `typename' for dependent -// types in deduced contexts, e.g. -// -// template <class T> void f(T, typename T::type); -// ^^^^^^^^ -// Replace these declarations with: -// -// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type); - -#ifndef BOOST_NO_DEDUCED_TYPENAME -# define BOOST_DEDUCED_TYPENAME typename -#else -# define BOOST_DEDUCED_TYPENAME -#endif - -#ifndef BOOST_NO_TYPENAME_WITH_CTOR -# define BOOST_CTOR_TYPENAME typename -#else -# define BOOST_CTOR_TYPENAME -#endif - -// long long workaround ------------------------------------------// -// On gcc (and maybe other compilers?) long long is alway supported -// but it's use may generate either warnings (with -ansi), or errors -// (with -pedantic -ansi) unless it's use is prefixed by __extension__ -// -#if defined(BOOST_HAS_LONG_LONG) -namespace boost{ -# ifdef __GNUC__ - __extension__ typedef long long long_long_type; - __extension__ typedef unsigned long long ulong_long_type; -# else - typedef long long long_long_type; - typedef unsigned long long ulong_long_type; -# endif -} -#endif - -// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// -// -// Some compilers have problems with function templates whose template -// parameters don't appear in the function parameter list (basically -// they just link one instantiation of the template in the final -// executable). These macros provide a uniform way to cope with the -// problem with no effects on the calling syntax. - -// Example: -// -// #include <iostream> -// #include <ostream> -// #include <typeinfo> -// -// template <int n> -// void f() { std::cout << n << ' '; } -// -// template <typename T> -// void g() { std::cout << typeid(T).name() << ' '; } -// -// int main() { -// f<1>(); -// f<2>(); -// -// g<int>(); -// g<double>(); -// } -// -// With VC++ 6.0 the output is: -// -// 2 2 double double -// -// To fix it, write -// -// template <int n> -// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... } -// -// template <typename T> -// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... } -// - - -#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS - -# include "boost/type.hpp" -# include "boost/non_type.hpp" - -# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0 -# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>* -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0 -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>* - -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \ - , BOOST_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \ - , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \ - , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \ - , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - -#else - -// no workaround needed: expand to nothing - -# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - - -#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS - - -// ---------------------------------------------------------------------------// - -// -// Helper macro BOOST_STRINGIZE: -// Converts the parameter X to a string after macro replacement -// on X has been performed. -// -#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) -#define BOOST_DO_STRINGIZE(X) #X - -// -// Helper macro BOOST_JOIN: -// The following piece of macro magic joins the two -// arguments together, even when one of the arguments is -// itself a macro (see 16.3.1 in C++ standard). The key -// is that macro expansion of macro arguments does not -// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. -// -#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y ) -#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y) -#define BOOST_DO_JOIN2( X, Y ) X##Y - -// -// Set some default values for compiler/library/platform names. -// These are for debugging config setup only: -// -# ifndef BOOST_COMPILER -# define BOOST_COMPILER "Unknown ISO C++ Compiler" -# endif -# ifndef BOOST_STDLIB -# define BOOST_STDLIB "Unknown ISO standard library" -# endif -# ifndef BOOST_PLATFORM -# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) -# define BOOST_PLATFORM "Generic Unix" -# else -# define BOOST_PLATFORM "Unknown" -# endif -# endif - -#endif - - diff --git a/src/libs/boost-1.37.0/boost/config/user.hpp b/src/libs/boost-1.37.0/boost/config/user.hpp deleted file mode 100644 index 5a4a9d47..00000000 --- a/src/libs/boost-1.37.0/boost/config/user.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// boost/config/user.hpp ---------------------------------------------------// - -// (C) Copyright John Maddock 2001. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// Do not check in modified versions of this file, -// This file may be customized by the end user, but not by boost. - -// -// Use this file to define a site and compiler specific -// configuration policy: -// - -// define this to locate a compiler config file: -// #define BOOST_COMPILER_CONFIG <myheader> - -// define this to locate a stdlib config file: -// #define BOOST_STDLIB_CONFIG <myheader> - -// define this to locate a platform config file: -// #define BOOST_PLATFORM_CONFIG <myheader> - -// define this to disable compiler config, -// use if your compiler config has nothing to set: -// #define BOOST_NO_COMPILER_CONFIG - -// define this to disable stdlib config, -// use if your stdlib config has nothing to set: -// #define BOOST_NO_STDLIB_CONFIG - -// define this to disable platform config, -// use if your platform config has nothing to set: -// #define BOOST_NO_PLATFORM_CONFIG - -// define this to disable all config options, -// excluding the user config. Use if your -// setup is fully ISO compliant, and has no -// useful extensions, or for autoconf generated -// setups: -// #define BOOST_NO_CONFIG - -// define this to make the config "optimistic" -// about unknown compiler versions. Normally -// unknown compiler versions are assumed to have -// all the defects of the last known version, however -// setting this flag, causes the config to assume -// that unknown compiler versions are fully conformant -// with the standard: -// #define BOOST_STRICT_CONFIG - -// define this to cause the config to halt compilation -// with an #error if it encounters anything unknown -- -// either an unknown compiler version or an unknown -// compiler/platform/library: -// #define BOOST_ASSERT_CONFIG - - -// define if you want to disable threading support, even -// when available: -// #define BOOST_DISABLE_THREADS - -// define when you want to disable Win32 specific features -// even when available: -// #define BOOST_DISABLE_WIN32 - -// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any -// prefix/suffix headers that normally control things like struct -// packing and alignment. -// #define BOOST_DISABLE_ABI_HEADERS - -// BOOST_ABI_PREFIX: A prefix header to include in place of whatever -// boost.config would normally select, any replacement should set up -// struct packing and alignment options as required. -// #define BOOST_ABI_PREFIX my-header-name - -// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever -// boost.config would normally select, any replacement should undo -// the effects of the prefix header. -// #define BOOST_ABI_SUFFIX my-header-name - -// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, -// to be linked as dll's rather than static libraries on Microsoft Windows -// (this macro is used to turn on __declspec(dllimport) modifiers, so that -// the compiler knows which symbols to look for in a dll rather than in a -// static library). Note that there may be some libraries that can only -// be statically linked (Boost.Test for example) and others which may only -// be dynamically linked (Boost.Threads for example), in these cases this -// macro has no effect. -// #define BOOST_ALL_DYN_LINK - -// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll -// rather than a static library on Microsoft Windows: replace the WHATEVER -// part of the macro name with the name of the library that you want to -// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or -// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) -// modifiers, so that the compiler knows which symbols to look for in a dll -// rather than in a static library). -// Note that there may be some libraries that can only be statically linked -// (Boost.Test for example) and others which may only be dynamically linked -// (Boost.Threads for example), in these cases this macro is unsupported. -// #define BOOST_WHATEVER_DYN_LINK - -// BOOST_ALL_NO_LIB: Tells the config system not to automatically select -// which libraries to link against. -// Normally if a compiler supports #pragma lib, then the correct library -// build variant will be automatically selected and linked against, -// simply by the act of including one of that library's headers. -// This macro turns that feature off. -// #define BOOST_ALL_NO_LIB - -// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically -// select which library to link against for library "whatever", -// replace WHATEVER in the macro name with the name of the library; -// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. -// Normally if a compiler supports #pragma lib, then the correct library -// build variant will be automatically selected and linked against, simply -// by the act of including one of that library's headers. This macro turns -// that feature off. -// #define BOOST_WHATEVER_NO_LIB - - - diff --git a/src/libs/boost-1.37.0/boost/config/warning_disable.hpp b/src/libs/boost-1.37.0/boost/config/warning_disable.hpp deleted file mode 100644 index 26ff1323..00000000 --- a/src/libs/boost-1.37.0/boost/config/warning_disable.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright John Maddock 2008 -// Use, modification, and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// This file exists to turn off some overly-pedantic warning emitted -// by certain compilers. You should include this header only in: -// -// * A test case, before any other headers, or, -// * A library source file before any other headers. -// -// IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. -// -// YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. -// -// The only warnings disabled here are those that are: -// -// * Quite unreasonably pedantic. -// * Generally only emitted by a single compiler. -// * Can't easily be fixed: for example if the vendors own std lib -// code emits these warnings! -// -// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: -// not even std library ones! Doing so may turn the warning -// off too late to be of any use. For example the VC++ C4996 -// warning can be omitted from <iosfwd> if that header is included -// before or by this one :-( -// - -#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP -#define BOOST_CONFIG_WARNING_DISABLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1400) - // Error 'function': was declared deprecated - // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx - // This error is emitted when you use some perfectly conforming - // std lib functions in a perfectly correct way, and also by - // some of Microsoft's own std lib code ! -# pragma warning(disable:4996) -#endif -#if defined(__INTEL_COMPILER) || defined(__ICL) - // As above: gives warning when a "deprecated" - // std library function is encountered. -# pragma warning(disable:1786) -#endif - -#endif // BOOST_CONFIG_WARNING_DISABLE_HPP diff --git a/src/libs/boost-1.37.0/boost/current_function.hpp b/src/libs/boost-1.37.0/boost/current_function.hpp deleted file mode 100644 index aa5756e0..00000000 --- a/src/libs/boost-1.37.0/boost/current_function.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED -#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/current_function.hpp - BOOST_CURRENT_FUNCTION -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// http://www.boost.org/libs/utility/current_function.html -// - -namespace boost -{ - -namespace detail -{ - -inline void current_function_helper() -{ - -#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__DMC__) && (__DMC__ >= 0x810) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__FUNCSIG__) - -# define BOOST_CURRENT_FUNCTION __FUNCSIG__ - -#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) - -# define BOOST_CURRENT_FUNCTION __FUNCTION__ - -#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) - -# define BOOST_CURRENT_FUNCTION __FUNC__ - -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) - -# define BOOST_CURRENT_FUNCTION __func__ - -#else - -# define BOOST_CURRENT_FUNCTION "(unknown)" - -#endif - -} - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/bad_weak_ptr.hpp b/src/libs/boost-1.37.0/boost/detail/bad_weak_ptr.hpp deleted file mode 100644 index 93ecec9b..00000000 --- a/src/libs/boost-1.37.0/boost/detail/bad_weak_ptr.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef BOOST_BAD_WEAK_PTR_HPP_INCLUDED -#define BOOST_BAD_WEAK_PTR_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/bad_weak_ptr.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <exception> - -#ifdef __BORLANDC__ -# pragma warn -8026 // Functions with excep. spec. are not expanded inline -#endif - -namespace boost -{ - -// The standard library that comes with Borland C++ 5.5.1, 5.6.4 -// defines std::exception and its members as having C calling -// convention (-pc). When the definition of bad_weak_ptr -// is compiled with -ps, the compiler issues an error. -// Hence, the temporary #pragma option -pc below. - -#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 -# pragma option push -pc -#endif - -class bad_weak_ptr: public std::exception -{ -public: - - virtual char const * what() const throw() - { - return "tr1::bad_weak_ptr"; - } -}; - -#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 -# pragma option pop -#endif - -} // namespace boost - -#ifdef __BORLANDC__ -# pragma warn .8026 // Functions with excep. spec. are not expanded inline -#endif - -#endif // #ifndef BOOST_BAD_WEAK_PTR_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/interlocked.hpp b/src/libs/boost-1.37.0/boost/detail/interlocked.hpp deleted file mode 100644 index b6c8d750..00000000 --- a/src/libs/boost-1.37.0/boost/detail/interlocked.hpp +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED -#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/interlocked.hpp -// -// Copyright 2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/config.hpp> - -#if defined( BOOST_USE_WINDOWS_H ) - -# include <windows.h> - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer - -#elif defined(_WIN32_WCE) - -// under Windows CE we still have old-style Interlocked* functions - -extern "C" long __cdecl InterlockedIncrement( long* ); -extern "C" long __cdecl InterlockedDecrement( long* ); -extern "C" long __cdecl InterlockedCompareExchange( long*, long, long ); -extern "C" long __cdecl InterlockedExchange( long*, long ); -extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) - -#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) - -extern "C" long __cdecl _InterlockedIncrement( long volatile * ); -extern "C" long __cdecl _InterlockedDecrement( long volatile * ); -extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __cdecl _InterlockedExchange( long volatile *, long); -extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long); - -# pragma intrinsic( _InterlockedIncrement ) -# pragma intrinsic( _InterlockedDecrement ) -# pragma intrinsic( _InterlockedCompareExchange ) -# pragma intrinsic( _InterlockedExchange ) -# pragma intrinsic( _InterlockedExchangeAdd ) - -# if defined(_M_IA64) || defined(_M_AMD64) - -extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* ); -extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* ); - -# pragma intrinsic( _InterlockedCompareExchangePointer ) -# pragma intrinsic( _InterlockedExchangePointer ) - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer - -# else - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -# endif - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -namespace boost -{ - -namespace detail -{ - -extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long ); - -} // namespace detail - -} // namespace boost - -# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -#else - -# error "Interlocked intrinsics not available" - -#endif - -#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/shared_count.hpp b/src/libs/boost-1.37.0/boost/detail/shared_count.hpp deleted file mode 100644 index 8f137770..00000000 --- a/src/libs/boost-1.37.0/boost/detail/shared_count.hpp +++ /dev/null @@ -1,412 +0,0 @@ -#ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED -#define BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/shared_count.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#ifdef __BORLANDC__ -# pragma warn -8027 // Functions containing try are not expanded inline -#endif - -#include <boost/config.hpp> -#include <boost/checked_delete.hpp> -#include <boost/throw_exception.hpp> -#include <boost/detail/bad_weak_ptr.hpp> -#include <boost/detail/sp_counted_base.hpp> -#include <boost/detail/sp_counted_impl.hpp> -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of <memory> doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including <memory> directly: -#include <boost/config/no_tr1/memory.hpp> // std::auto_ptr -#include <functional> // std::less -#include <new> // std::bad_alloc - -namespace boost -{ - -namespace detail -{ - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -int const shared_count_id = 0x2C35F101; -int const weak_count_id = 0x298C38A4; - -#endif - -struct sp_nothrow_tag {}; - -class weak_count; - -class shared_count -{ -private: - - sp_counted_base * pi_; - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - int id_; -#endif - - friend class weak_count; - -public: - - shared_count(): pi_(0) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - } - - template<class Y> explicit shared_count( Y * p ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = new sp_counted_impl_p<Y>( p ); - } - catch(...) - { - boost::checked_delete( p ); - throw; - } - -#else - - pi_ = new sp_counted_impl_p<Y>( p ); - - if( pi_ == 0 ) - { - boost::checked_delete( p ); - boost::throw_exception( std::bad_alloc() ); - } - -#endif - } - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) - template<class Y, class D> shared_count( Y * p, D d ): pi_(0) -#else - template<class P, class D> shared_count( P p, D d ): pi_(0) -#endif -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) - typedef Y* P; -#endif -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = new sp_counted_impl_pd<P, D>(p, d); - } - catch(...) - { - d(p); // delete p - throw; - } - -#else - - pi_ = new sp_counted_impl_pd<P, D>(p, d); - - if(pi_ == 0) - { - d(p); // delete p - boost::throw_exception(std::bad_alloc()); - } - -#endif - } - - template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - typedef sp_counted_impl_pda<P, D, A> impl_type; - typedef typename A::template rebind< impl_type >::other A2; - - A2 a2( a ); - -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); - } - catch(...) - { - d( p ); - - if( pi_ != 0 ) - { - a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); - } - - throw; - } - -#else - - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - - if( pi_ != 0 ) - { - new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); - } - else - { - d( p ); - boost::throw_exception( std::bad_alloc() ); - } - -#endif - } - -#ifndef BOOST_NO_AUTO_PTR - - // auto_ptr<Y> is special cased to provide the strong guarantee - - template<class Y> - explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#ifdef BOOST_NO_EXCEPTIONS - - if( pi_ == 0 ) - { - boost::throw_exception(std::bad_alloc()); - } - -#endif - - r.release(); - } - -#endif - - ~shared_count() // nothrow - { - if( pi_ != 0 ) pi_->release(); -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - id_ = 0; -#endif - } - - shared_count(shared_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - if( pi_ != 0 ) pi_->add_ref_copy(); - } - - explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0 - shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0 - - shared_count & operator= (shared_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if( tmp != 0 ) tmp->add_ref_copy(); - if( pi_ != 0 ) pi_->release(); - pi_ = tmp; - } - - return *this; - } - - void swap(shared_count & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - r.pi_ = pi_; - pi_ = tmp; - } - - long use_count() const // nothrow - { - return pi_ != 0? pi_->use_count(): 0; - } - - bool unique() const // nothrow - { - return use_count() == 1; - } - - bool empty() const // nothrow - { - return pi_ == 0; - } - - friend inline bool operator==(shared_count const & a, shared_count const & b) - { - return a.pi_ == b.pi_; - } - - friend inline bool operator<(shared_count const & a, shared_count const & b) - { - return std::less<sp_counted_base *>()( a.pi_, b.pi_ ); - } - - void * get_deleter( sp_typeinfo const & ti ) const - { - return pi_? pi_->get_deleter( ti ): 0; - } -}; - - -class weak_count -{ -private: - - sp_counted_base * pi_; - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - int id_; -#endif - - friend class shared_count; - -public: - - weak_count(): pi_(0) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(weak_count_id) -#endif - { - } - - weak_count(shared_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - if(pi_ != 0) pi_->weak_add_ref(); - } - - weak_count(weak_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - if(pi_ != 0) pi_->weak_add_ref(); - } - - ~weak_count() // nothrow - { - if(pi_ != 0) pi_->weak_release(); -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - id_ = 0; -#endif - } - - weak_count & operator= (shared_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if(tmp != 0) tmp->weak_add_ref(); - if(pi_ != 0) pi_->weak_release(); - pi_ = tmp; - } - - return *this; - } - - weak_count & operator= (weak_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if(tmp != 0) tmp->weak_add_ref(); - if(pi_ != 0) pi_->weak_release(); - pi_ = tmp; - } - - return *this; - } - - void swap(weak_count & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - r.pi_ = pi_; - pi_ = tmp; - } - - long use_count() const // nothrow - { - return pi_ != 0? pi_->use_count(): 0; - } - - friend inline bool operator==(weak_count const & a, weak_count const & b) - { - return a.pi_ == b.pi_; - } - - friend inline bool operator<(weak_count const & a, weak_count const & b) - { - return std::less<sp_counted_base *>()(a.pi_, b.pi_); - } -}; - -inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif -{ - if( pi_ == 0 || !pi_->add_ref_lock() ) - { - boost::throw_exception( boost::bad_weak_ptr() ); - } -} - -inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif -{ - if( pi_ != 0 && !pi_->add_ref_lock() ) - { - pi_ = 0; - } -} - -} // namespace detail - -} // namespace boost - -#ifdef __BORLANDC__ -# pragma warn .8027 // Functions containing try are not expanded inline -#endif - -#endif // #ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_convertible.hpp b/src/libs/boost-1.37.0/boost/detail/sp_convertible.hpp deleted file mode 100644 index 2c1539bd..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_convertible.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef BOOST_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED -#define BOOST_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_convertible.hpp -// -// Copyright 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt - -#include <boost/config.hpp> - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ <= 0x610 ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - -namespace boost -{ - -namespace detail -{ - -template< class Y, class T > struct sp_convertible -{ - typedef char (&yes) [1]; - typedef char (&no) [2]; - - static yes f( T* ); - static no f( ... ); - - enum _vt { value = sizeof( f( (Y*)0 ) ) == sizeof(yes) }; -}; - -struct sp_empty -{ -}; - -template< bool > struct sp_enable_if_convertible_impl; - -template<> struct sp_enable_if_convertible_impl<true> -{ - typedef sp_empty type; -}; - -template<> struct sp_enable_if_convertible_impl<false> -{ -}; - -template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value > -{ -}; - -} // namespace detail - -} // namespace boost - -#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base.hpp deleted file mode 100644 index c25a57f4..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base.hpp -// -// Copyright 2005, 2006 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/config.hpp> - -#if defined( BOOST_SP_DISABLE_THREADS ) -# include <boost/detail/sp_counted_base_nt.hpp> - -#elif defined( BOOST_SP_USE_SPINLOCK ) -# include <boost/detail/sp_counted_base_spin.hpp> - -#elif defined( BOOST_SP_USE_PTHREADS ) -# include <boost/detail/sp_counted_base_pt.hpp> - -#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 ) -# include <boost/detail/sp_counted_base_nt.hpp> - -#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) -# include <boost/detail/sp_counted_base_gcc_x86.hpp> - -#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) -# include <boost/detail/sp_counted_base_gcc_ia64.hpp> - -#elif defined(__HP_aCC) && defined(__ia64) -# include <boost/detail/sp_counted_base_acc_ia64.hpp> - -#elif defined( __MWERKS__ ) && defined( __POWERPC__ ) -# include <boost/detail/sp_counted_base_cw_ppc.hpp> - -#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) -# include <boost/detail/sp_counted_base_gcc_ppc.hpp> - -#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( __arm__ ) && !defined( __hppa ) && ( !defined( __INTEL_COMPILER ) || defined( __ia64__ ) ) -# include <boost/detail/sp_counted_base_sync.hpp> - -#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) ) -# include <boost/detail/sp_counted_base_gcc_sparc.hpp> - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) -# include <boost/detail/sp_counted_base_w32.hpp> - -#elif !defined( BOOST_HAS_THREADS ) -# include <boost/detail/sp_counted_base_nt.hpp> - -#else -# include <boost/detail/sp_counted_base_spin.hpp> - -#endif - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_acc_ia64.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_acc_ia64.hpp deleted file mode 100644 index c956b8e0..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_acc_ia64.hpp +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED - -// -// detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64 -// -// Copyright 2007 Baruch Zilber -// Copyright 2007 Boris Gubenko -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// - -#include <boost/detail/sp_typeinfo.hpp> -#include <machine/sys/inline.h> - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE)); - if (1 == r) - { - _Asm_mf(); - } - - return r - 1; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int v = *pw; - - for (;;) - { - if (0 == v) - { - return 0; - } - - _Asm_mov_to_ar(_AREG_CCV, - v, - (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE)); - int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE)); - if (r == v) - { - return r + 1; - } - - v = r; - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_ppc.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_ppc.hpp deleted file mode 100644 index 3f432528..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_ppc.hpp +++ /dev/null @@ -1,170 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( register long * pw ) -{ - register int a; - - asm - { -loop: - - lwarx a, 0, pw - addi a, a, 1 - stwcx. a, 0, pw - bne- loop - } -} - -inline long atomic_decrement( register long * pw ) -{ - register int a; - - asm - { - sync - -loop: - - lwarx a, 0, pw - addi a, a, -1 - stwcx. a, 0, pw - bne- loop - - isync - } - - return a; -} - -inline long atomic_conditional_increment( register long * pw ) -{ - register int a; - - asm - { -loop: - - lwarx a, 0, pw - cmpwi a, 0 - beq store - - addi a, a, 1 - -store: - - stwcx. a, 0, pw - bne- loop - } - - return a; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<long const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_x86.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_x86.hpp deleted file mode 100644 index b2e3f9bb..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_cw_x86.hpp +++ /dev/null @@ -1,158 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_cw_x86.hpp - CodeWarrion on 486+ -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2005 Rene Rivera -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - // int r = *pw; - // *pw += dv; - // return r; - - asm - { - mov esi, [pw] - mov eax, dv - lock xadd dword ptr [esi], eax - } -} - -inline void atomic_increment( int * pw ) -{ - //atomic_exchange_and_add( pw, 1 ); - - asm - { - mov esi, [pw] - lock inc dword ptr [esi] - } -} - -inline int atomic_conditional_increment( int * pw ) -{ - // int rv = *pw; - // if( rv != 0 ) ++*pw; - // return rv; - - asm - { - mov esi, [pw] - mov eax, dword ptr [esi] - L0: - test eax, eax - je L1 - mov ebx, eax - inc ebx - lock cmpxchg dword ptr [esi], ebx - jne L0 - L1: - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<int const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ia64.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ia64.hpp deleted file mode 100644 index 7535295d..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ia64.hpp +++ /dev/null @@ -1,157 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED - -// -// detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64 -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2006 Peter Dimov -// Copyright 2005 Ben Hutchings -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - int tmp; - - // No barrier is required here but fetchadd always has an acquire or - // release barrier associated with it. We choose release as it should be - // cheaper. - __asm__ ("fetchadd4.rel %0=%1,1" : - "=r"(tmp), "=m"(*pw) : - "m"( *pw )); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int rv; - - __asm__ (" fetchadd4.rel %0=%1,-1 ;; \n" - " cmp.eq p7,p0=1,%0 ;; \n" - "(p7) ld4.acq %0=%1 " : - "=&r"(rv), "=m"(*pw) : - "m"( *pw ) : - "p7"); - - return rv; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int rv, tmp, tmp2; - - __asm__ ("0: ld4 %0=%3 ;; \n" - " cmp.eq p7,p0=0,%0 ;; \n" - "(p7) br.cond.spnt 1f \n" - " mov ar.ccv=%0 \n" - " add %1=1,%0 ;; \n" - " cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n" - " cmp.ne p7,p0=%0,%2 ;; \n" - "(p7) br.cond.spnt 0b \n" - " mov %0=%1 ;; \n" - "1:" : - "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) : - "m"( *pw ) : - "ar.ccv", "p7"); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ppc.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ppc.hpp deleted file mode 100644 index cea2740b..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_ppc.hpp +++ /dev/null @@ -1,181 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - int tmp; - - __asm__ - ( - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "addi %1, %1, 1\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b": - - "=m"( *pw ), "=&b"( tmp ): - "r"( pw ), "m"( *pw ): - "cc" - ); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int rv; - - __asm__ __volatile__ - ( - "sync\n\t" - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "addi %1, %1, -1\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b\n\t" - "isync": - - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): - "memory", "cc" - ); - - return rv; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int rv; - - __asm__ - ( - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "cmpwi %1, 0\n\t" - "beq 1f\n\t" - "addi %1, %1, 1\n\t" - "1:\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b": - - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): - "cc" - ); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<int const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_sparc.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_sparc.hpp deleted file mode 100644 index 2afca168..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_sparc.hpp +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+ -// -// Copyright (c) 2006 Piotr Wyderski -// Copyright (c) 2006 Tomas Puverle -// Copyright (c) 2006 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// -// Thanks to Michael van der Westhuizen - -#include <boost/detail/sp_typeinfo.hpp> -#include <inttypes.h> // int32_t - -namespace boost -{ - -namespace detail -{ - -inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ ) -{ - __asm__ __volatile__( "cas %0, %2, %1" - : "+m" (*dest_), "+r" (swap_) - : "r" (compare_) - : "memory" ); - - return swap_; -} - -inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv ) -{ - // long r = *pw; - // *pw += dv; - // return r; - - for( ;; ) - { - int32_t r = *pw; - - if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) ) - { - return r; - } - } -} - -inline void atomic_increment( int32_t * pw ) -{ - atomic_fetch_and_add( pw, 1 ); -} - -inline int32_t atomic_decrement( int32_t * pw ) -{ - return atomic_fetch_and_add( pw, -1 ); -} - -inline int32_t atomic_conditional_increment( int32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - for( ;; ) - { - int32_t r = *pw; - - if( r == 0 ) - { - return r; - } - - if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) ) - { - return r; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int32_t use_count_; // #shared - int32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return const_cast< int32_t const volatile & >( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_x86.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_x86.hpp deleted file mode 100644 index 8bf3171f..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_gcc_x86.hpp +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64 -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - // int r = *pw; - // *pw += dv; - // return r; - - int r; - - __asm__ __volatile__ - ( - "lock\n\t" - "xadd %1, %0": - "=m"( *pw ), "=r"( r ): // outputs (%0, %1) - "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1) - "memory", "cc" // clobbers - ); - - return r; -} - -inline void atomic_increment( int * pw ) -{ - //atomic_exchange_and_add( pw, 1 ); - - __asm__ - ( - "lock\n\t" - "incl %0": - "=m"( *pw ): // output (%0) - "m"( *pw ): // input (%1) - "cc" // clobbers - ); -} - -inline int atomic_conditional_increment( int * pw ) -{ - // int rv = *pw; - // if( rv != 0 ) ++*pw; - // return rv; - - int rv, tmp; - - __asm__ - ( - "movl %0, %%eax\n\t" - "0:\n\t" - "test %%eax, %%eax\n\t" - "je 1f\n\t" - "movl %%eax, %2\n\t" - "incl %2\n\t" - "lock\n\t" - "cmpxchgl %2, %0\n\t" - "jne 0b\n\t" - "1:": - "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2) - "m"( *pw ): // input (%3) - "cc" // clobbers - ); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<int const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_nt.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_nt.hpp deleted file mode 100644 index dc7a0423..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_nt.hpp +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_nt.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - ++use_count_; - } - - bool add_ref_lock() // true on success - { - if( use_count_ == 0 ) return false; - ++use_count_; - return true; - } - - void release() // nothrow - { - if( --use_count_ == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - ++weak_count_; - } - - void weak_release() // nothrow - { - if( --weak_count_ == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return use_count_; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_pt.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_pt.hpp deleted file mode 100644 index cd30de95..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_pt.hpp +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_pt.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/sp_typeinfo.hpp> -#include <pthread.h> - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - - mutable pthread_mutex_t m_; - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { -// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init - -#if defined(__hpux) && defined(_DECTHREADS_) - pthread_mutex_init( &m_, pthread_mutexattr_default ); -#else - pthread_mutex_init( &m_, 0 ); -#endif - } - - virtual ~sp_counted_base() // nothrow - { - pthread_mutex_destroy( &m_ ); - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - pthread_mutex_lock( &m_ ); - ++use_count_; - pthread_mutex_unlock( &m_ ); - } - - bool add_ref_lock() // true on success - { - pthread_mutex_lock( &m_ ); - bool r = use_count_ == 0? false: ( ++use_count_, true ); - pthread_mutex_unlock( &m_ ); - return r; - } - - void release() // nothrow - { - pthread_mutex_lock( &m_ ); - long new_use_count = --use_count_; - pthread_mutex_unlock( &m_ ); - - if( new_use_count == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - pthread_mutex_lock( &m_ ); - ++weak_count_; - pthread_mutex_unlock( &m_ ); - } - - void weak_release() // nothrow - { - pthread_mutex_lock( &m_ ); - long new_weak_count = --weak_count_; - pthread_mutex_unlock( &m_ ); - - if( new_weak_count == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - pthread_mutex_lock( &m_ ); - long r = use_count_; - pthread_mutex_unlock( &m_ ); - - return r; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_solaris.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_solaris.hpp deleted file mode 100644 index a747b391..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_solaris.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED - -// -// detail/sp_counted_base_solaris.hpp -// based on: detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2006 Michael van der Westhuizen -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/sp_typeinfo.hpp> -#include <atomic.h> - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - uint32_t use_count_; // #shared - uint32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_inc_32( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - for( ;; ) - { - uint32_t tmp = static_cast< uint32_t const volatile& >( use_count_ ); - if( tmp == 0 ) return false; - if( atomic_cas_32( &use_count_, tmp, tmp + 1 ) == tmp ) return true; - } - } - - void release() // nothrow - { - if( atomic_dec_32_nv( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_inc_32( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_dec_32_nv( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<long const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_spin.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_spin.hpp deleted file mode 100644 index 610a468c..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_spin.hpp +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/sp_typeinfo.hpp> -#include <boost/detail/spinlock_pool.hpp> - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - - int r = *pw; - *pw += dv; - return r; -} - -inline void atomic_increment( int * pw ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - ++*pw; -} - -inline int atomic_conditional_increment( int * pw ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - - int rv = *pw; - if( rv != 0 ) ++*pw; - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - spinlock_pool<1>::scoped_lock lock( &use_count_ ); - return use_count_; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_sync.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_sync.hpp deleted file mode 100644 index d72dac2b..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_sync.hpp +++ /dev/null @@ -1,155 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics -// -// Copyright (c) 2007 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt - -#include <boost/detail/sp_typeinfo.hpp> -#include <limits.h> - -#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) -# include <ia64intrin.h> -#endif - -namespace boost -{ - -namespace detail -{ - -#if INT_MAX >= 2147483647 - -typedef int sp_int32_t; - -#else - -typedef long sp_int32_t; - -#endif - -inline void atomic_increment( sp_int32_t * pw ) -{ - __sync_fetch_and_add( pw, 1 ); -} - -inline sp_int32_t atomic_decrement( sp_int32_t * pw ) -{ - return __sync_fetch_and_add( pw, -1 ); -} - -inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - sp_int32_t r = *pw; - - for( ;; ) - { - if( r == 0 ) - { - return r; - } - - sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 ); - - if( r2 == r ) - { - return r; - } - else - { - r = r2; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - sp_int32_t use_count_; // #shared - sp_int32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return const_cast< sp_int32_t const volatile & >( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_w32.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_base_w32.hpp deleted file mode 100644 index f9903935..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_base_w32.hpp +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include <boost/detail/interlocked.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/detail/sp_typeinfo.hpp> - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - - void add_ref_copy() - { - BOOST_INTERLOCKED_INCREMENT( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - for( ;; ) - { - long tmp = static_cast< long const volatile& >( use_count_ ); - if( tmp == 0 ) return false; - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 ) - - // work around a code generation bug - - long tmp2 = tmp + 1; - if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true; - -#else - - if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true; - -#endif - } - } - - void release() // nothrow - { - if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - BOOST_INTERLOCKED_INCREMENT( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast<long const volatile &>( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_counted_impl.hpp b/src/libs/boost-1.37.0/boost/detail/sp_counted_impl.hpp deleted file mode 100644 index 81f92da2..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_counted_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_impl.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/config.hpp> - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR) -# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible. -#endif - -#include <boost/checked_delete.hpp> -#include <boost/detail/sp_counted_base.hpp> - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) -#include <boost/detail/quick_allocator.hpp> -#endif - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) -#include <memory> // std::allocator -#endif - -#include <cstddef> // std::size_t - -namespace boost -{ - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn ); -void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn ); - -#endif - -namespace detail -{ - -template<class X> class sp_counted_impl_p: public sp_counted_base -{ -private: - - X * px_; - - sp_counted_impl_p( sp_counted_impl_p const & ); - sp_counted_impl_p & operator= ( sp_counted_impl_p const & ); - - typedef sp_counted_impl_p<X> this_type; - -public: - - explicit sp_counted_impl_p( X * px ): px_( px ) - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook( px, sizeof(X), this ); -#endif - } - - virtual void dispose() // nothrow - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_destructor_hook( px_, sizeof(X), this ); -#endif - boost::checked_delete( px_ ); - } - - virtual void * get_deleter( detail::sp_typeinfo const & ) - { - return 0; - } - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) - - void * operator new( std::size_t ) - { - return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) ); - } - - void operator delete( void * p ) - { - std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 ); - } - -#endif - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) - - void * operator new( std::size_t ) - { - return quick_allocator<this_type>::alloc(); - } - - void operator delete( void * p ) - { - quick_allocator<this_type>::dealloc( p ); - } - -#endif -}; - -// -// Borland's Codeguard trips up over the -Vx- option here: -// -#ifdef __CODEGUARD__ -# pragma option push -Vx- -#endif - -template<class P, class D> class sp_counted_impl_pd: public sp_counted_base -{ -private: - - P ptr; // copy constructor must not throw - D del; // copy constructor must not throw - - sp_counted_impl_pd( sp_counted_impl_pd const & ); - sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & ); - - typedef sp_counted_impl_pd<P, D> this_type; - -public: - - // pre: d(p) must not throw - - sp_counted_impl_pd( P p, D d ): ptr(p), del(d) - { - } - - virtual void dispose() // nothrow - { - del( ptr ); - } - - virtual void * get_deleter( detail::sp_typeinfo const & ti ) - { - return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0; - } - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) - - void * operator new( std::size_t ) - { - return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) ); - } - - void operator delete( void * p ) - { - std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 ); - } - -#endif - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) - - void * operator new( std::size_t ) - { - return quick_allocator<this_type>::alloc(); - } - - void operator delete( void * p ) - { - quick_allocator<this_type>::dealloc( p ); - } - -#endif -}; - -template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base -{ -private: - - P p_; // copy constructor must not throw - D d_; // copy constructor must not throw - A a_; // copy constructor must not throw - - sp_counted_impl_pda( sp_counted_impl_pda const & ); - sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & ); - - typedef sp_counted_impl_pda<P, D, A> this_type; - -public: - - // pre: d( p ) must not throw - - sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a ) - { - } - - virtual void dispose() // nothrow - { - d_( p_ ); - } - - virtual void destroy() // nothrow - { - typedef typename A::template rebind< this_type >::other A2; - - A2 a2( a_ ); - - this->~this_type(); - a2.deallocate( this, 1 ); - } - - virtual void * get_deleter( detail::sp_typeinfo const & ti ) - { - return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0; - } -}; - -#ifdef __CODEGUARD__ -# pragma option pop -#endif - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/sp_typeinfo.hpp b/src/libs/boost-1.37.0/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index e78c9431..00000000 --- a/src/libs/boost-1.37.0/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED -#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_typeinfo.hpp -// -// Copyright 2007 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#include <boost/config.hpp> - -#if defined( BOOST_NO_TYPEID ) - -namespace boost -{ - -namespace detail -{ - -typedef void* sp_typeinfo; - -template<class T> struct sp_typeid_ -{ - static char v_; -}; - -template<class T> char sp_typeid_< T >::v_; - -template<class T> struct sp_typeid_< T const >: sp_typeid_< T > -{ -}; - -template<class T> struct sp_typeid_< T volatile >: sp_typeid_< T > -{ -}; - -template<class T> struct sp_typeid_< T const volatile >: sp_typeid_< T > -{ -}; - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) (&boost::detail::sp_typeid_<T>::v_) - -#else - -#include <typeinfo> - -namespace boost -{ - -namespace detail -{ - -#if defined( BOOST_NO_STD_TYPEINFO ) - -typedef ::type_info sp_typeinfo; - -#else - -typedef std::type_info sp_typeinfo; - -#endif - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) typeid(T) - -#endif - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock.hpp deleted file mode 100644 index 346fb3c6..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/spinlock.hpp -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// struct spinlock -// { -// void lock(); -// bool try_lock(); -// void unlock(); -// -// class scoped_lock; -// }; -// -// #define BOOST_DETAIL_SPINLOCK_INIT <unspecified> -// - -#include <boost/config.hpp> - -#if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ ) -# include <boost/detail/spinlock_gcc_arm.hpp> -#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( __arm__ ) && !defined( __hppa ) && ( !defined( __INTEL_COMPILER ) || defined( __ia64__ ) ) -# include <boost/detail/spinlock_sync.hpp> -#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# include <boost/detail/spinlock_w32.hpp> -#elif defined(BOOST_HAS_PTHREADS) -# include <boost/detail/spinlock_pt.hpp> -#elif !defined(BOOST_HAS_THREADS) -# include <boost/detail/spinlock_nt.hpp> -#else -# error Unrecognized threading platform -#endif - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_gcc_arm.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_gcc_arm.hpp deleted file mode 100644 index c21163bd..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_gcc_arm.hpp +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED - -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/yield_k.hpp> - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - int v_; - -public: - - bool try_lock() - { - int r; - - __asm__ __volatile__( - "swp %0, %1, [%2]": - "=&r"( r ): // outputs - "r"( 1 ), "r"( &v_ ): // inputs - "memory", "cc" ); - - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - __asm__ __volatile__( "" ::: "memory" ); - *const_cast< int volatile* >( &v_ ) = 0; - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_nt.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_nt.hpp deleted file mode 100644 index f03ba08a..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_nt.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_NT_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_NT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/assert.hpp> - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - bool locked_; - -public: - - inline bool try_lock() - { - if( locked_ ) - { - return false; - } - else - { - locked_ = true; - return true; - } - } - - inline void lock() - { - BOOST_ASSERT( !locked_ ); - locked_ = true; - } - - inline void unlock() - { - BOOST_ASSERT( locked_ ); - locked_ = false; - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT { false } - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_NT_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_pool.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_pool.hpp deleted file mode 100644 index a264b1a3..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_pool.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_POOL_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_POOL_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/spinlock_pool.hpp -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// spinlock_pool<0> is reserved for atomic<>, when/if it arrives -// spinlock_pool<1> is reserved for shared_ptr reference counts -// spinlock_pool<2> is reserved for shared_ptr atomic access -// - -#include <boost/config.hpp> -#include <boost/detail/spinlock.hpp> -#include <cstddef> - -namespace boost -{ - -namespace detail -{ - -template< int I > class spinlock_pool -{ -private: - - static spinlock pool_[ 41 ]; - -public: - - static spinlock & spinlock_for( void const * pv ) - { - std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41; - return pool_[ i ]; - } - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) ) - { - sp_.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] = -{ - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT -}; - -} // namespace detail -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_POOL_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_pt.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_pt.hpp deleted file mode 100644 index dfb2d6f4..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_pt.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_PT_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_PT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <pthread.h> - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - pthread_mutex_t v_; - -public: - - bool try_lock() - { - return pthread_mutex_trylock( &v_ ) == 0; - } - - void lock() - { - pthread_mutex_lock( &v_ ); - } - - void unlock() - { - pthread_mutex_unlock( &v_ ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER } - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_PT_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_sync.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_sync.hpp deleted file mode 100644 index a7523967..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_sync.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/yield_k.hpp> - -#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) -# include <ia64intrin.h> -#endif - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - int v_; - -public: - - bool try_lock() - { - int r = __sync_lock_test_and_set( &v_, 1 ); - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - __sync_lock_release( &v_ ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/spinlock_w32.hpp b/src/libs/boost-1.37.0/boost/detail/spinlock_w32.hpp deleted file mode 100644 index aa416c34..00000000 --- a/src/libs/boost-1.37.0/boost/detail/spinlock_w32.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef BOOST_DETAIL_SPINLOCK_W32_HPP_INCLUDED -#define BOOST_DETAIL_SPINLOCK_W32_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include <boost/detail/interlocked.hpp> -#include <boost/detail/yield_k.hpp> - -// BOOST_COMPILER_FENCE - -#if defined(__INTEL_COMPILER) - -#define BOOST_COMPILER_FENCE __memory_barrier(); - -#elif defined( _MSC_VER ) && _MSC_VER >= 1310 - -extern "C" void _ReadWriteBarrier(); -#pragma intrinsic( _ReadWriteBarrier ) - -#define BOOST_COMPILER_FENCE _ReadWriteBarrier(); - -#elif defined(__GNUC__) - -#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" ); - -#else - -#define BOOST_COMPILER_FENCE - -#endif - -// - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - long v_; - -public: - - bool try_lock() - { - long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 ); - - BOOST_COMPILER_FENCE - - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - BOOST_COMPILER_FENCE - *const_cast< long volatile* >( &v_ ) = 0; - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#endif // #ifndef BOOST_DETAIL_SPINLOCK_W32_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/detail/workaround.hpp b/src/libs/boost-1.37.0/boost/detail/workaround.hpp deleted file mode 100644 index 4933a531..00000000 --- a/src/libs/boost-1.37.0/boost/detail/workaround.hpp +++ /dev/null @@ -1,202 +0,0 @@ -// Copyright David Abrahams 2002. -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -#ifndef WORKAROUND_DWA2002126_HPP -# define WORKAROUND_DWA2002126_HPP - -// Compiler/library version workaround macro -// -// Usage: -// -// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -// // workaround for eVC4 and VC6 -// ... // workaround code here -// #endif -// -// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the -// first argument must be undefined or expand to a numeric -// value. The above expands to: -// -// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300 -// -// When used for workarounds that apply to the latest known version -// and all earlier versions of a compiler, the following convention -// should be observed: -// -// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301)) -// -// The version number in this case corresponds to the last version in -// which the workaround was known to have been required. When -// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro -// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates -// the workaround for any version of the compiler. When -// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or -// error will be issued if the compiler version exceeds the argument -// to BOOST_TESTED_AT(). This can be used to locate workarounds which -// may be obsoleted by newer versions. - -# ifndef BOOST_STRICT_CONFIG - -#include <boost/config.hpp> - -#ifndef __BORLANDC__ -#define __BORLANDC___WORKAROUND_GUARD 1 -#else -#define __BORLANDC___WORKAROUND_GUARD 0 -#endif -#ifndef __MSC_VER -#define __MSC_VER_WORKAROUND_GUARD 1 -#else -#define __MSC_VER_WORKAROUND_GUARD 0 -#endif -#ifndef _MSC_FULL_VER -#define _MSC_FULL_VER_WORKAROUND_GUARD 1 -#else -#define _MSC_FULL_VER_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_MSVC -#define BOOST_MSVC_WORKAROUND_GUARD 1 -#else -#define BOOST_MSVC_WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC__ -#define __GNUC___WORKAROUND_GUARD 1 -#else -#define __GNUC___WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC_MINOR__ -#define __GNUC_MINOR___WORKAROUND_GUARD 1 -#else -#define __GNUC_MINOR___WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC_PATCHLEVEL__ -#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1 -#else -#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0 -#endif -#ifndef __IBMCPP__ -#define __IBMCPP___WORKAROUND_GUARD 1 -#else -#define __IBMCPP___WORKAROUND_GUARD 0 -#endif -#ifndef __SUNPRO_CC -#define __SUNPRO_CC_WORKAROUND_GUARD 1 -#else -#define __SUNPRO_CC_WORKAROUND_GUARD 0 -#endif -#ifndef __DECCXX_VER -#define __DECCXX_VER_WORKAROUND_GUARD 1 -#else -#define __DECCXX_VER_WORKAROUND_GUARD 0 -#endif -#ifndef __MWERKS__ -#define __MWERKS___WORKAROUND_GUARD 1 -#else -#define __MWERKS___WORKAROUND_GUARD 0 -#endif -#ifndef __EDG_VERSION__ -#define __EDG_VERSION___WORKAROUND_GUARD 1 -#else -#define __EDG_VERSION___WORKAROUND_GUARD 0 -#endif -#ifndef __HP_aCC -#define __HP_aCC_WORKAROUND_GUARD 1 -#else -#define __HP_aCC_WORKAROUND_GUARD 0 -#endif -#ifndef _CRAYC -#define _CRAYC_WORKAROUND_GUARD 1 -#else -#define _CRAYC_WORKAROUND_GUARD 0 -#endif -#ifndef __DMC__ -#define __DMC___WORKAROUND_GUARD 1 -#else -#define __DMC___WORKAROUND_GUARD 0 -#endif -#ifndef MPW_CPLUS -#define MPW_CPLUS_WORKAROUND_GUARD 1 -#else -#define MPW_CPLUS_WORKAROUND_GUARD 0 -#endif - -#ifndef _RWSTD_VER -#define _RWSTD_VER_WORKAROUND_GUARD 1 -#else -#define _RWSTD_VER_WORKAROUND_GUARD 0 -#endif -#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC -#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1 -#else -#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0 -#endif -#ifndef __SGI_STL_PORT -#define __SGI_STL_PORT_WORKAROUND_GUARD 1 -#else -#define __SGI_STL_PORT_WORKAROUND_GUARD 0 -#endif -#ifndef _STLPORT_VERSION -#define _STLPORT_VERSION_WORKAROUND_GUARD 1 -#else -#define _STLPORT_VERSION_WORKAROUND_GUARD 0 -#endif - -#ifndef BOOST_INTEL_CXX_VERSION -#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_INTEL_WIN -#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_DINKUMWARE_STDLIB -#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1 -#else -#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_INTEL -#define BOOST_INTEL_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_WORKAROUND_GUARD 0 -#endif -// Always define to zero, if it's used it'll be defined my MPL: -#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0 - -# define BOOST_WORKAROUND(symbol, test) \ - ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ - (symbol != 0) && (1 % (( (symbol test) ) + 1))) -// ^ ^ ^ ^ -// The extra level of parenthesis nesting above, along with the -// BOOST_OPEN_PAREN indirection below, is required to satisfy the -// broken preprocessor in MWCW 8.3 and earlier. -// -// The basic mechanism works as follows: -// (symbol test) + 1 => if (symbol test) then 2 else 1 -// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0 -// -// The complication with % is for cooperation with BOOST_TESTED_AT(). -// When "test" is BOOST_TESTED_AT(x) and -// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined, -// -// symbol test => if (symbol <= x) then 1 else -1 -// (symbol test) + 1 => if (symbol <= x) then 2 else 0 -// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero -// - -# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS -# define BOOST_OPEN_PAREN ( -# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1 -# else -# define BOOST_TESTED_AT(value) != ((value)-(value)) -# endif - -# else - -# define BOOST_WORKAROUND(symbol, test) 0 - -# endif - -#endif // WORKAROUND_DWA2002126_HPP diff --git a/src/libs/boost-1.37.0/boost/detail/yield_k.hpp b/src/libs/boost-1.37.0/boost/detail/yield_k.hpp deleted file mode 100644 index d97542d0..00000000 --- a/src/libs/boost-1.37.0/boost/detail/yield_k.hpp +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef BOOST_DETAIL_YIELD_K_HPP_INCLUDED -#define BOOST_DETAIL_YIELD_K_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/yield_k.hpp -// -// Copyright (c) 2008 Peter Dimov -// -// void yield( unsigned k ); -// -// Typical use: -// -// for( unsigned k = 0; !try_lock(); ++k ) yield( k ); -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// - -#include <boost/config.hpp> - -// BOOST_SMT_PAUSE - -#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) ) - -extern "C" void _mm_pause(); -#pragma intrinsic( _mm_pause ) - -#define BOOST_SMT_PAUSE _mm_pause(); - -#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) ) - -#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" ); - -#endif - -// - -#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -#if defined( BOOST_USE_WINDOWS_H ) -# include <windows.h> -#endif - -namespace boost -{ - -namespace detail -{ - -#if !defined( BOOST_USE_WINDOWS_H ) - extern "C" void __stdcall Sleep( unsigned ms ); -#endif - -inline void yield( unsigned k ) -{ - if( k < 4 ) - { - } -#if defined( BOOST_SMT_PAUSE ) - else if( k < 16 ) - { - BOOST_SMT_PAUSE - } -#endif - else if( k < 32 ) - { - Sleep( 0 ); - } - else - { - Sleep( 1 ); - } -} - -} // namespace detail - -} // namespace boost - -#elif defined( BOOST_HAS_PTHREADS ) - -#include <sched.h> -#include <time.h> - -namespace boost -{ - -namespace detail -{ - -inline void yield( unsigned k ) -{ - if( k < 4 ) - { - } -#if defined( BOOST_SMT_PAUSE ) - else if( k < 16 ) - { - BOOST_SMT_PAUSE - } -#endif - else if( k < 32 || k & 1 ) - { - sched_yield(); - } - else - { - // g++ -Wextra warns on {} or {0} - struct timespec rqtp = { 0, 0 }; - - // POSIX says that timespec has tv_sec and tv_nsec - // But it doesn't guarantee order or placement - - rqtp.tv_sec = 0; - rqtp.tv_nsec = 1000; - - nanosleep( &rqtp, 0 ); - } -} - -} // namespace detail - -} // namespace boost - -#else - -namespace boost -{ - -namespace detail -{ - -inline void yield( unsigned ) -{ -} - -} // namespace detail - -} // namespace boost - -#endif - -#endif // #ifndef BOOST_DETAIL_YIELD_K_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/exception/detail/error_info_impl.hpp b/src/libs/boost-1.37.0/boost/exception/detail/error_info_impl.hpp deleted file mode 100644 index 7a57b8bd..00000000 --- a/src/libs/boost-1.37.0/boost/exception/detail/error_info_impl.hpp +++ /dev/null @@ -1,61 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_CE6983AC753411DDA764247956D89593 -#define UUID_CE6983AC753411DDA764247956D89593 - -#include <string> - -namespace -boost - { - namespace - exception_detail - { - class - error_info_base - { - public: - - virtual char const * tag_typeid_name() const = 0; - virtual std::string value_as_string() const = 0; - - protected: - - virtual - ~error_info_base() throw() - { - } - }; - } - - template <class Tag,class T> - class - error_info: - public exception_detail::error_info_base - { - public: - - typedef T value_type; - - error_info( value_type const & value ); - ~error_info() throw(); - - value_type const & - value() const - { - return value_; - } - - private: - - char const * tag_typeid_name() const; - std::string value_as_string() const; - - value_type const value_; - }; - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/detail/is_output_streamable.hpp b/src/libs/boost-1.37.0/boost/exception/detail/is_output_streamable.hpp deleted file mode 100644 index 57376bf3..00000000 --- a/src/libs/boost-1.37.0/boost/exception/detail/is_output_streamable.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_898984B4076411DD973EDFA055D89593 -#define UUID_898984B4076411DD973EDFA055D89593 - -#include <ostream> - -namespace -boost - { - namespace - to_string_detail - { - template <class T,class CharT,class Traits> - char operator<<( std::basic_ostream<CharT,Traits> &, T const & ); - - template <class T,class CharT,class Traits> - struct - is_output_streamable_impl - { - static std::basic_ostream<CharT,Traits> & f(); - static T const & g(); - enum e { value=1!=(sizeof(f()<<g())) }; - }; - } - - template <class T, class CharT=char, class Traits=std::char_traits<CharT> > - struct - is_output_streamable - { - enum e { value=to_string_detail::is_output_streamable_impl<T,CharT,Traits>::value }; - }; - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/detail/object_hex_dump.hpp b/src/libs/boost-1.37.0/boost/exception/detail/object_hex_dump.hpp deleted file mode 100644 index a6221b6d..00000000 --- a/src/libs/boost-1.37.0/boost/exception/detail/object_hex_dump.hpp +++ /dev/null @@ -1,40 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_6F463AC838DF11DDA3E6909F56D89593 -#define UUID_6F463AC838DF11DDA3E6909F56D89593 - -#include <boost/exception/detail/type_info.hpp> -#include <iomanip> -#include <ios> -#include <string> -#include <sstream> - -namespace -boost - { - namespace - exception_detail - { - template <class T> - inline - std::string - object_hex_dump( T const & x, size_t max_size=16 ) - { - std::ostringstream s; - s << "type: " << type_name<T>() << ", size: " << sizeof(T) << ", dump: "; - size_t n=sizeof(T)>max_size?max_size:sizeof(T); - s.fill('0'); - s.width(2); - unsigned char const * b=reinterpret_cast<unsigned char const *>(&x); - s << std::setw(2) << std::hex << (unsigned int)*b; - for( unsigned char const * e=b+n; ++b!=e; ) - s << " " << std::setw(2) << std::hex << (unsigned int)*b; - return s.str(); - } - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/detail/type_info.hpp b/src/libs/boost-1.37.0/boost/exception/detail/type_info.hpp deleted file mode 100644 index 97bf7261..00000000 --- a/src/libs/boost-1.37.0/boost/exception/detail/type_info.hpp +++ /dev/null @@ -1,130 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_C3E1741C754311DDB2834CCA55D89593 -#define UUID_C3E1741C754311DDB2834CCA55D89593 - -#include <boost/detail/sp_typeinfo.hpp> -#include <boost/current_function.hpp> - -namespace -boost - { - template <class T> - inline - char const * - tag_type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return typeid(T*).name(); -#endif - } - - template <class T> - inline - char const * - type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return typeid(T).name(); -#endif - } - - namespace - exception_detail - { -#ifdef BOOST_NO_TYPEID - struct - type_info_ - { - detail::sp_typeinfo type_; - char const * name_; - - explicit - type_info_( detail::sp_typeinfo type, char const * name ): - type_(type), - name_(name) - { - } - - friend - bool - operator==( type_info_ const & a, type_info_ const & b ) - { - return a.type_==b.type_; - } - - friend - bool - operator<( type_info_ const & a, type_info_ const & b ) - { - return a.type_<b.type_; - } - - char const * - name() const - { - return name_; - } - }; -#else - struct - type_info_ - { - detail::sp_typeinfo const * type_; - - explicit - type_info_( detail::sp_typeinfo const & type ): - type_(&type) - { - } - - type_info_( detail::sp_typeinfo const & type, char const * ): - type_(&type) - { - } - - friend - bool - operator==( type_info_ const & a, type_info_ const & b ) - { - return (*a.type_)==(*b.type_); - } - - friend - bool - operator<( type_info_ const & a, type_info_ const & b ) - { - return 0!=(a.type_->before(*b.type_)); - } - - char const * - name() const - { - return type_->name(); - } - }; -#endif - - inline - bool - operator!=( type_info_ const & a, type_info_ const & b ) - { - return !(a==b); - } - } - } - -#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>()) - -#ifndef BOOST_NO_RTTI -#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x)) -#endif - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/diagnostic_information.hpp b/src/libs/boost-1.37.0/boost/exception/diagnostic_information.hpp deleted file mode 100644 index 99273bcf..00000000 --- a/src/libs/boost-1.37.0/boost/exception/diagnostic_information.hpp +++ /dev/null @@ -1,64 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_0552D49838DD11DD90146B8956D89593 -#define UUID_0552D49838DD11DD90146B8956D89593 - -#include <boost/exception/get_error_info.hpp> -#include <exception> -#include <sstream> -#include <string> - -namespace -boost - { - namespace - exception_detail - { - inline - char const * - get_diagnostic_information( exception const & x ) - { - if( error_info_container * c=x.data_.get() ) - try - { - return c->diagnostic_information(); - } - catch(...) - { - } - return 0; - } - } - - inline - std::string - diagnostic_information( exception const & x ) - { - std::ostringstream tmp; - if( boost::shared_ptr<char const * const> f=get_error_info<throw_file>(x) ) - { - tmp << *f; - if( boost::shared_ptr<int const> l=get_error_info<throw_line>(x) ) - tmp << '(' << *l << "): "; - } - tmp << "Throw in function "; - if( boost::shared_ptr<char const * const> fn=get_error_info<throw_function>(x) ) - tmp << *fn; - else - tmp << "(unknown)"; -#ifndef BOOST_NO_RTTI - tmp << "\nDynamic exception type: " << BOOST_EXCEPTION_DYNAMIC_TYPEID(x).name(); - if( std::exception const * e=dynamic_cast<std::exception const *>(&x) ) - tmp << "\nstd::exception::what: " << e->what(); -#endif - if( char const * s=exception_detail::get_diagnostic_information(x) ) - if( *s ) - tmp << '\n' << s; - return tmp.str(); - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/enable_current_exception.hpp b/src/libs/boost-1.37.0/boost/exception/enable_current_exception.hpp deleted file mode 100644 index 7e6403b8..00000000 --- a/src/libs/boost-1.37.0/boost/exception/enable_current_exception.hpp +++ /dev/null @@ -1,6 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include <boost/exception/exception.hpp> diff --git a/src/libs/boost-1.37.0/boost/exception/enable_error_info.hpp b/src/libs/boost-1.37.0/boost/exception/enable_error_info.hpp deleted file mode 100644 index 7e6403b8..00000000 --- a/src/libs/boost-1.37.0/boost/exception/enable_error_info.hpp +++ /dev/null @@ -1,6 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include <boost/exception/exception.hpp> diff --git a/src/libs/boost-1.37.0/boost/exception/error_info.hpp b/src/libs/boost-1.37.0/boost/exception/error_info.hpp deleted file mode 100644 index d80bf399..00000000 --- a/src/libs/boost-1.37.0/boost/exception/error_info.hpp +++ /dev/null @@ -1,6 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -namespace boost { template <class Tag,class T> class error_info; } diff --git a/src/libs/boost-1.37.0/boost/exception/exception.hpp b/src/libs/boost-1.37.0/boost/exception/exception.hpp deleted file mode 100644 index 53e6ed0c..00000000 --- a/src/libs/boost-1.37.0/boost/exception/exception.hpp +++ /dev/null @@ -1,396 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_274DA366004E11DCB1DDFE2E56D89593 -#define UUID_274DA366004E11DCB1DDFE2E56D89593 - -namespace -boost - { - namespace - exception_detail - { - template <class T> - class - refcount_ptr - { - public: - - refcount_ptr(): - px_(0) - { - } - - ~refcount_ptr() - { - release(); - } - - refcount_ptr( refcount_ptr const & x ): - px_(x.px_) - { - add_ref(); - } - - refcount_ptr & - operator=( refcount_ptr const & x ) - { - adopt(x.px_); - return *this; - } - - void - adopt( T * px ) - { - release(); - px_=px; - add_ref(); - } - - T * - get() const - { - return px_; - } - - private: - - T * px_; - - void - add_ref() - { - if( px_ ) - px_->add_ref(); - } - - void - release() - { - if( px_ ) - px_->release(); - } - }; - } - - //////////////////////////////////////////////////////////////////////// - - template <class Tag,class T> - class error_info; - - typedef error_info<struct tag_throw_function,char const *> throw_function; - typedef error_info<struct tag_throw_file,char const *> throw_file; - typedef error_info<struct tag_throw_line,int> throw_line; - - template <> - class - error_info<tag_throw_function,char const *> - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info<tag_throw_file,char const *> - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info<tag_throw_line,int> - { - public: - typedef int value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <class E,class Tag,class T> - E const & operator<<( E const &, error_info<Tag,T> const & ); - - class exception; - - template <class> - class shared_ptr; - - namespace - exception_detail - { - class error_info_base; - struct type_info_; - - struct - error_info_container - { - virtual char const * diagnostic_information() const = 0; - virtual shared_ptr<error_info_base const> get( type_info_ const & ) const = 0; - virtual void set( shared_ptr<error_info_base const> const &, type_info_ const & ) = 0; - virtual void add_ref() const = 0; - virtual void release() const = 0; - - protected: - - virtual - ~error_info_container() throw() - { - } - }; - - template <class> - struct get_info; - - template <> - struct get_info<throw_function>; - - template <> - struct get_info<throw_file>; - - template <> - struct get_info<throw_line>; - - char const * get_diagnostic_information( exception const & ); - } - - class - exception - { - protected: - - exception(): - throw_function_(0), - throw_file_(0), - throw_line_(-1) - { - } - -#ifdef __HP_aCC - //On HP aCC, this protected copy constructor prevents throwing boost::exception. - //On all other platforms, the same effect is achieved by the pure virtual destructor. - exception( exception const & x ) throw(): - data_(x.data_), - throw_function_(x.throw_function_), - throw_file_(x.throw_file_), - throw_line_(x.throw_line_) - { - } -#endif - - virtual ~exception() throw() -#ifndef __HP_aCC - = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors. -#endif - ; - - private: - - template <class E> - friend - E const & - operator<<( E const & x, throw_function const & y ) - { - x.throw_function_=y.v_; - return x; - } - - template <class E> - friend - E const & - operator<<( E const & x, throw_file const & y ) - { - x.throw_file_=y.v_; - return x; - } - - template <class E> - friend - E const & - operator<<( E const & x, throw_line const & y ) - { - x.throw_line_=y.v_; - return x; - } - - friend char const * exception_detail::get_diagnostic_information( exception const & ); - - template <class E,class Tag,class T> - friend E const & operator<<( E const &, error_info<Tag,T> const & ); - - template <class> - friend struct exception_detail::get_info; - friend struct exception_detail::get_info<throw_function>; - friend struct exception_detail::get_info<throw_file>; - friend struct exception_detail::get_info<throw_line>; - - mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_; - mutable char const * throw_function_; - mutable char const * throw_file_; - mutable int throw_line_; - }; - - inline - exception:: - ~exception() throw() - { - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { - template <class T> - struct - error_info_injector: - public T, - public exception - { - explicit - error_info_injector( T const & x ): - T(x) - { - } - - ~error_info_injector() throw() - { - } - }; - - struct large_size { char c[256]; }; - large_size dispatch( exception * ); - - struct small_size { }; - small_size dispatch( void * ); - - template <class,int> - struct enable_error_info_helper; - - template <class T> - struct - enable_error_info_helper<T,sizeof(large_size)> - { - typedef T type; - }; - - template <class T> - struct - enable_error_info_helper<T,sizeof(small_size)> - { - typedef error_info_injector<T> type; - }; - - template <class T> - struct - enable_error_info_return_type - { - typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type; - }; - } - - template <class T> - inline - typename - exception_detail::enable_error_info_return_type<T>::type - enable_error_info( T const & x ) - { - typedef typename exception_detail::enable_error_info_return_type<T>::type rt; - return rt(x); - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { - class - clone_base - { - public: - - virtual clone_base const * clone() const = 0; - virtual void rethrow() const = 0; - - virtual - ~clone_base() throw() - { - } - }; - - inline - void - copy_boost_exception( exception * a, exception const * b ) - { - *a = *b; - } - - inline - void - copy_boost_exception( void *, void const * ) - { - } - - template <class T> - class - clone_impl: - public T, - public clone_base - { - public: - - explicit - clone_impl( T const & x ): - T(x) - { - copy_boost_exception(this,&x); - } - - ~clone_impl() throw() - { - } - - private: - - clone_base const * - clone() const - { - return new clone_impl(*this); - } - - void - rethrow() const - { - throw*this; - } - }; - } - - template <class T> - inline - exception_detail::clone_impl<T> - enable_current_exception( T const & x ) - { - return exception_detail::clone_impl<T>(x); - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/get_error_info.hpp b/src/libs/boost-1.37.0/boost/exception/get_error_info.hpp deleted file mode 100644 index e45d3d6e..00000000 --- a/src/libs/boost-1.37.0/boost/exception/get_error_info.hpp +++ /dev/null @@ -1,134 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_1A590226753311DD9E4CCF6156D89593 -#define UUID_1A590226753311DD9E4CCF6156D89593 - -#include <boost/exception/exception.hpp> -#include <boost/exception/detail/error_info_impl.hpp> -#include <boost/exception/detail/type_info.hpp> -#include <boost/shared_ptr.hpp> - -namespace -boost - { - namespace - exception_detail - { - struct - strwrap - { - std::string str; - char const * ptr; - - explicit - strwrap( char const * s ): - str(s), - ptr(&str[0]) - { - } - - private: - - strwrap( strwrap const & ); - strwrap & operator=( strwrap const & ); - }; - - template <> - struct - get_info<throw_function> - { - static - shared_ptr<char const * const> - get( exception const & x ) - { - if( x.throw_function_ && *x.throw_function_ ) - { - shared_ptr<strwrap> s(new strwrap(x.throw_function_)); - return shared_ptr<char const *>(s,&s->ptr); - } - else - return shared_ptr<char const * const>(); - } - }; - - template <> - struct - get_info<throw_file> - { - static - shared_ptr<char const * const> - get( exception const & x ) - { - if( x.throw_file_ && *x.throw_file_ ) - { - shared_ptr<strwrap> s(new strwrap(x.throw_file_)); - return shared_ptr<char const *>(s,&s->ptr); - } - else - return shared_ptr<char const * const>(); - } - }; - - template <> - struct - get_info<throw_line> - { - static - shared_ptr<int const> - get( exception const & x ) - { - if( x.throw_line_!=-1 ) - return boost::shared_ptr<int>(new int(x.throw_line_)); - else - return shared_ptr<int const>(); - } - }; - - template <class ErrorInfo> - struct - get_info - { - static - shared_ptr<typename ErrorInfo::value_type const> - get( exception const & x ) - { - if( exception_detail::error_info_container * c=x.data_.get() ) - if( shared_ptr<exception_detail::error_info_base const> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) ) - { -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo const *>(eib.get()) ); -#endif - ErrorInfo const * w = static_cast<ErrorInfo const *>(eib.get()); - return shared_ptr<typename ErrorInfo::value_type const>(eib,&w->value()); - } - return shared_ptr<typename ErrorInfo::value_type const>(); - } - }; - } - -#ifdef BOOST_NO_RTTI - template <class ErrorInfo> - inline - shared_ptr<typename ErrorInfo::value_type const> - get_error_info( boost::exception const & x ) - { - return exception_detail::get_info<ErrorInfo>::get(x); - } -#else - template <class ErrorInfo,class E> - inline - shared_ptr<typename ErrorInfo::value_type const> - get_error_info( E const & some_exception ) - { - if( exception const * x = dynamic_cast<exception const *>(&some_exception) ) - return exception_detail::get_info<ErrorInfo>::get(*x); - else - return shared_ptr<typename ErrorInfo::value_type const>(); - } -#endif - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/info.hpp b/src/libs/boost-1.37.0/boost/exception/info.hpp deleted file mode 100644 index a0892c9c..00000000 --- a/src/libs/boost-1.37.0/boost/exception/info.hpp +++ /dev/null @@ -1,151 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_8D22C4CA9CC811DCAA9133D256D89593 -#define UUID_8D22C4CA9CC811DCAA9133D256D89593 - -#include <boost/exception/exception.hpp> -#include <boost/exception/to_string_stub.hpp> -#include <boost/exception/detail/error_info_impl.hpp> -#include <boost/shared_ptr.hpp> -#include <map> - -namespace -boost - { - template <class Tag,class T> - inline - error_info<Tag,T>:: - error_info( value_type const & value ): - value_(value) - { - } - - template <class Tag,class T> - inline - error_info<Tag,T>:: - ~error_info() throw() - { - } - - template <class Tag,class T> - inline - char const * - error_info<Tag,T>:: - tag_typeid_name() const - { - return tag_type_name<Tag>(); - } - - template <class Tag,class T> - inline - std::string - error_info<Tag,T>:: - value_as_string() const - { - return to_string_stub(value_); - } - - namespace - exception_detail - { - class - error_info_container_impl: - public error_info_container - { - public: - - error_info_container_impl(): - count_(0) - { - } - - ~error_info_container_impl() throw() - { - } - - void - set( shared_ptr<error_info_base const> const & x, type_info_ const & typeid_ ) - { - BOOST_ASSERT(x); - info_[typeid_] = x; - diagnostic_info_str_.clear(); - } - - shared_ptr<error_info_base const> - get( type_info_ const & ti ) const - { - error_info_map::const_iterator i=info_.find(ti); - if( info_.end()!=i ) - { - shared_ptr<error_info_base const> const & p = i->second; -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( BOOST_EXCEPTION_DYNAMIC_TYPEID(*p)==ti ); -#endif - return p; - } - return shared_ptr<error_info_base const>(); - } - - char const * - diagnostic_information() const - { - if( diagnostic_info_str_.empty() ) - { - std::string tmp; - for( error_info_map::const_iterator i=info_.begin(),end=info_.end(); i!=end; ++i ) - { - shared_ptr<error_info_base const> const & x = i->second; - tmp += '['; - tmp += x->tag_typeid_name(); - tmp += "] = "; - tmp += x->value_as_string(); - tmp += '\n'; - } - diagnostic_info_str_.swap(tmp); - } - return diagnostic_info_str_.c_str(); - } - - private: - - friend class boost::exception; - - typedef std::map< type_info_, shared_ptr<error_info_base const> > error_info_map; - error_info_map info_; - mutable std::string diagnostic_info_str_; - mutable int count_; - - void - add_ref() const - { - ++count_; - } - - void - release() const - { - if( !--count_ ) - delete this; - } - }; - } - - template <class E,class Tag,class T> - inline - E const & - operator<<( E const & x, error_info<Tag,T> const & v ) - { - typedef error_info<Tag,T> error_info_tag_t; - shared_ptr<error_info_tag_t> p( new error_info_tag_t(v) ); - exception_detail::error_info_container * c; - if( !(c=x.data_.get()) ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t)); - return x; - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/info_tuple.hpp b/src/libs/boost-1.37.0/boost/exception/info_tuple.hpp deleted file mode 100644 index 3c8197a7..00000000 --- a/src/libs/boost-1.37.0/boost/exception/info_tuple.hpp +++ /dev/null @@ -1,67 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_63EE924290FB11DC87BB856555D89593 -#define UUID_63EE924290FB11DC87BB856555D89593 - -#include <boost/exception/info.hpp> -#include <boost/tuple/tuple.hpp> - -namespace -boost - { - template < - class E, - class Tag1,class T1, - class Tag2,class T2 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info<Tag1,T1>, - error_info<Tag2,T2> > const & v ) - { - return x << v.template get<0>() << v.template get<1>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info<Tag1,T1>, - error_info<Tag2,T2>, - error_info<Tag3,T3> > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3, - class Tag4,class T4 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info<Tag1,T1>, - error_info<Tag2,T2>, - error_info<Tag3,T3>, - error_info<Tag4,T4> > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>() << v.template get<3>(); - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/to_string.hpp b/src/libs/boost-1.37.0/boost/exception/to_string.hpp deleted file mode 100644 index e10cbfde..00000000 --- a/src/libs/boost-1.37.0/boost/exception/to_string.hpp +++ /dev/null @@ -1,74 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_7E48761AD92811DC9011477D56D89593 -#define UUID_7E48761AD92811DC9011477D56D89593 - -#include <boost/utility/enable_if.hpp> -#include <boost/exception/detail/is_output_streamable.hpp> -#include <sstream> - -namespace -boost - { - namespace - to_string_detail - { - template <class T> - typename disable_if<is_output_streamable<T>,char>::type to_string( T const & ); - - template <class,bool IsOutputStreamable> - struct has_to_string_impl; - - template <class T> - struct - has_to_string_impl<T,true> - { - enum e { value=1 }; - }; - - template <class T> - struct - has_to_string_impl<T,false> - { - static T const & f(); - enum e { value=1!=sizeof(to_string(f())) }; - }; - } - - template <class T> - inline - typename enable_if<is_output_streamable<T>,std::string>::type - to_string( T const & x ) - { - std::ostringstream out; - out << x; - return out.str(); - } - - template <class T> - struct - has_to_string - { - enum e { value=to_string_detail::has_to_string_impl<T,is_output_streamable<T>::value>::value }; - }; - - template <class T,class U> - inline - std::string - to_string( std::pair<T,U> const & x ) - { - return std::string("(") + to_string(x.first) + ',' + to_string(x.second) + ')'; - } - - inline - std::string - to_string( std::exception const & x ) - { - return x.what(); - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/exception/to_string_stub.hpp b/src/libs/boost-1.37.0/boost/exception/to_string_stub.hpp deleted file mode 100644 index 1cd08bbc..00000000 --- a/src/libs/boost-1.37.0/boost/exception/to_string_stub.hpp +++ /dev/null @@ -1,100 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_E788439ED9F011DCB181F25B55D89593 -#define UUID_E788439ED9F011DCB181F25B55D89593 - -#include <boost/exception/to_string.hpp> -#include <boost/exception/detail/object_hex_dump.hpp> -#include <boost/assert.hpp> - -namespace -boost - { - namespace - exception_detail - { - template <bool ToStringAvailable> - struct - to_string_dispatcher - { - template <class T,class Stub> - static - std::string - convert( T const & x, Stub ) - { - return to_string(x); - } - }; - - template <> - struct - to_string_dispatcher<false> - { - template <class T,class Stub> - static - std::string - convert( T const & x, Stub s ) - { - return s(x); - } - - template <class T> - static - std::string - convert( T const & x, std::string s ) - { - return s; - } - - template <class T> - static - std::string - convert( T const & x, char const * s ) - { - BOOST_ASSERT(s!=0); - return s; - } - }; - - namespace - to_string_dispatch - { - template <class T,class Stub> - inline - std::string - dispatch( T const & x, Stub s ) - { - return to_string_dispatcher<has_to_string<T>::value>::convert(x,s); - } - } - - template <class T> - inline - std::string - string_stub_dump( T const & x ) - { - return "[ " + exception_detail::object_hex_dump(x) + " ]"; - } - } - - template <class T> - inline - std::string - to_string_stub( T const & x ) - { - return exception_detail::to_string_dispatch::dispatch(x,&exception_detail::string_stub_dump<T>); - } - - template <class T,class Stub> - inline - std::string - to_string_stub( T const & x, Stub s ) - { - return exception_detail::to_string_dispatch::dispatch(x,s); - } - } - -#endif diff --git a/src/libs/boost-1.37.0/boost/intrusive_ptr.hpp b/src/libs/boost-1.37.0/boost/intrusive_ptr.hpp deleted file mode 100644 index 338e672f..00000000 --- a/src/libs/boost-1.37.0/boost/intrusive_ptr.hpp +++ /dev/null @@ -1,311 +0,0 @@ -#ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED -#define BOOST_INTRUSIVE_PTR_HPP_INCLUDED - -// -// intrusive_ptr.hpp -// -// Copyright (c) 2001, 2002 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation. -// - -#include <boost/config.hpp> - -#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash -# pragma warning(push) -# pragma warning(disable:4284) // odd return type for operator-> -#endif - -#include <boost/assert.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/detail/sp_convertible.hpp> - -#include <boost/config/no_tr1/functional.hpp> // for std::less - -#if !defined(BOOST_NO_IOSTREAM) -#if !defined(BOOST_NO_IOSFWD) -#include <iosfwd> // for std::basic_ostream -#else -#include <ostream> -#endif -#endif - - -namespace boost -{ - -// -// intrusive_ptr -// -// A smart pointer that uses intrusive reference counting. -// -// Relies on unqualified calls to -// -// void intrusive_ptr_add_ref(T * p); -// void intrusive_ptr_release(T * p); -// -// (p != 0) -// -// The object is responsible for destroying itself. -// - -template<class T> class intrusive_ptr -{ -private: - - typedef intrusive_ptr this_type; - -public: - - typedef T element_type; - - intrusive_ptr(): p_(0) - { - } - - intrusive_ptr(T * p, bool add_ref = true): p_(p) - { - if(p_ != 0 && add_ref) intrusive_ptr_add_ref(p_); - } - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES) - - template<class U> -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() ) - -#else - - intrusive_ptr( intrusive_ptr<U> const & rhs ) - -#endif - : p_( rhs.get() ) - { - if( p_ != 0 ) intrusive_ptr_add_ref( p_ ); - } - -#endif - - intrusive_ptr(intrusive_ptr const & rhs): p_(rhs.p_) - { - if(p_ != 0) intrusive_ptr_add_ref(p_); - } - - ~intrusive_ptr() - { - if(p_ != 0) intrusive_ptr_release(p_); - } - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES) - - template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs) - { - this_type(rhs).swap(*this); - return *this; - } - -#endif - - intrusive_ptr & operator=(intrusive_ptr const & rhs) - { - this_type(rhs).swap(*this); - return *this; - } - - intrusive_ptr & operator=(T * rhs) - { - this_type(rhs).swap(*this); - return *this; - } - - void reset() - { - this_type().swap( *this ); - } - - void reset( T * rhs ) - { - this_type( rhs ).swap( *this ); - } - - T * get() const - { - return p_; - } - - T & operator*() const - { - BOOST_ASSERT( p_ != 0 ); - return *p_; - } - - T * operator->() const - { - BOOST_ASSERT( p_ != 0 ); - return p_; - } - -#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530) - - operator bool () const - { - return p_ != 0; - } - -#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - typedef T * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const // never throws - { - return p_ == 0? 0: &this_type::get; - } - -#else - - typedef T * this_type::*unspecified_bool_type; - - operator unspecified_bool_type () const - { - return p_ == 0? 0: &this_type::p_; - } - -#endif - - // operator! is a Borland-specific workaround - bool operator! () const - { - return p_ == 0; - } - - void swap(intrusive_ptr & rhs) - { - T * tmp = p_; - p_ = rhs.p_; - rhs.p_ = tmp; - } - -private: - - T * p_; -}; - -template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) -{ - return a.get() == b.get(); -} - -template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) -{ - return a.get() != b.get(); -} - -template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, U * b) -{ - return a.get() == b; -} - -template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, U * b) -{ - return a.get() != b; -} - -template<class T, class U> inline bool operator==(T * a, intrusive_ptr<U> const & b) -{ - return a == b.get(); -} - -template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const & b) -{ - return a != b.get(); -} - -#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 - -// Resolve the ambiguity between our op!= and the one in rel_ops - -template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) -{ - return a.get() != b.get(); -} - -#endif - -template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) -{ - return std::less<T *>()(a.get(), b.get()); -} - -template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs) -{ - lhs.swap(rhs); -} - -// mem_fn support - -template<class T> T * get_pointer(intrusive_ptr<T> const & p) -{ - return p.get(); -} - -template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p) -{ - return static_cast<T *>(p.get()); -} - -template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p) -{ - return const_cast<T *>(p.get()); -} - -template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p) -{ - return dynamic_cast<T *>(p.get()); -} - -// operator<< - -#if !defined(BOOST_NO_IOSTREAM) - -#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) && (__GNUC__ < 3) ) - -template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p) -{ - os << p.get(); - return os; -} - -#else - -// in STLport's no-iostreams mode no iostream symbols can be used -#ifndef _STLP_NO_IOSTREAMS - -# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT) -// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL -using std::basic_ostream; -template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p) -# else -template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p) -# endif -{ - os << p.get(); - return os; -} - -#endif // _STLP_NO_IOSTREAMS - -#endif // __GNUC__ < 3 - -#endif // !defined(BOOST_NO_IOSTREAM) - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/memory_order.hpp b/src/libs/boost-1.37.0/boost/memory_order.hpp deleted file mode 100644 index 2524e8aa..00000000 --- a/src/libs/boost-1.37.0/boost/memory_order.hpp +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED -#define BOOST_MEMORY_ORDER_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// boost/memory_order.hpp -// -// Defines enum boost::memory_order per the C++0x working draft -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - - -namespace boost -{ - -enum memory_order -{ - memory_order_relaxed = 0, - memory_order_acquire = 1, - memory_order_release = 2, - memory_order_acq_rel = 3, // acquire | release - memory_order_seq_cst = 7 // acq_rel | 4 -}; - -} // namespace boost - -#endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/non_type.hpp b/src/libs/boost-1.37.0/boost/non_type.hpp deleted file mode 100644 index 896aed4d..00000000 --- a/src/libs/boost-1.37.0/boost/non_type.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// ------------------------------------- -// -// (C) Copyright Gennaro Prota 2003. -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// ------------------------------------------------------ - -#ifndef BOOST_NON_TYPE_HPP_GP_20030417 -#define BOOST_NON_TYPE_HPP_GP_20030417 - - -namespace boost { - - // Just a simple "envelope" for non-type template parameters. Useful - // to work around some MSVC deficiencies. - - template <typename T, T n> - struct non_type { }; - - -} - - -#endif // include guard diff --git a/src/libs/boost-1.37.0/boost/scoped_array.hpp b/src/libs/boost-1.37.0/boost/scoped_array.hpp deleted file mode 100644 index fcb80f6c..00000000 --- a/src/libs/boost-1.37.0/boost/scoped_array.hpp +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED -#define BOOST_SCOPED_ARRAY_HPP_INCLUDED - -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// http://www.boost.org/libs/smart_ptr/scoped_array.htm -// - -#include <boost/assert.hpp> -#include <boost/checked_delete.hpp> -#include <boost/config.hpp> // in case ptrdiff_t not in std - -#include <boost/detail/workaround.hpp> - -#include <cstddef> // for std::ptrdiff_t - -namespace boost -{ - -// Debug hooks - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_array_constructor_hook(void * p); -void sp_array_destructor_hook(void * p); - -#endif - -// scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to -// is guaranteed, either on destruction of the scoped_array or via an explicit -// reset(). Use shared_array or std::vector if your needs are more complex. - -template<class T> class scoped_array // noncopyable -{ -private: - - T * ptr; - - scoped_array(scoped_array const &); - scoped_array & operator=(scoped_array const &); - - typedef scoped_array<T> this_type; - - void operator==( scoped_array const& ) const; - void operator!=( scoped_array const& ) const; - -public: - - typedef T element_type; - - explicit scoped_array(T * p = 0) : ptr(p) // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_array_constructor_hook(ptr); -#endif - } - - ~scoped_array() // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_array_destructor_hook(ptr); -#endif - boost::checked_array_delete(ptr); - } - - void reset(T * p = 0) // never throws - { - BOOST_ASSERT(p == 0 || p != ptr); // catch self-reset errors - this_type(p).swap(*this); - } - - T & operator[](std::ptrdiff_t i) const // never throws - { - BOOST_ASSERT(ptr != 0); - BOOST_ASSERT(i >= 0); - return ptr[i]; - } - - T * get() const // never throws - { - return ptr; - } - - // implicit conversion to "bool" - -#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530) - - operator bool () const - { - return ptr != 0; - } - -#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - typedef T * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const // never throws - { - return ptr == 0? 0: &this_type::get; - } - -#else - - typedef T * this_type::*unspecified_bool_type; - - operator unspecified_bool_type() const // never throws - { - return ptr == 0? 0: &this_type::ptr; - } - -#endif - - bool operator! () const // never throws - { - return ptr == 0; - } - - void swap(scoped_array & b) // never throws - { - T * tmp = b.ptr; - b.ptr = ptr; - ptr = tmp; - } - -}; - -template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) // never throws -{ - a.swap(b); -} - -} // namespace boost - -#endif // #ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/scoped_ptr.hpp b/src/libs/boost-1.37.0/boost/scoped_ptr.hpp deleted file mode 100644 index 279cec3d..00000000 --- a/src/libs/boost-1.37.0/boost/scoped_ptr.hpp +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef BOOST_SCOPED_PTR_HPP_INCLUDED -#define BOOST_SCOPED_PTR_HPP_INCLUDED - -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// http://www.boost.org/libs/smart_ptr/scoped_ptr.htm -// - -#include <boost/assert.hpp> -#include <boost/checked_delete.hpp> -#include <boost/detail/workaround.hpp> - -#ifndef BOOST_NO_AUTO_PTR -# include <memory> // for std::auto_ptr -#endif - -namespace boost -{ - -// Debug hooks - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_scalar_constructor_hook(void * p); -void sp_scalar_destructor_hook(void * p); - -#endif - -// scoped_ptr mimics a built-in pointer except that it guarantees deletion -// of the object pointed to, either on destruction of the scoped_ptr or via -// an explicit reset(). scoped_ptr is a simple solution for simple needs; -// use shared_ptr or std::auto_ptr if your needs are more complex. - -template<class T> class scoped_ptr // noncopyable -{ -private: - - T * ptr; - - scoped_ptr(scoped_ptr const &); - scoped_ptr & operator=(scoped_ptr const &); - - typedef scoped_ptr<T> this_type; - - void operator==( scoped_ptr const& ) const; - void operator!=( scoped_ptr const& ) const; - -public: - - typedef T element_type; - - explicit scoped_ptr(T * p = 0): ptr(p) // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook(ptr); -#endif - } - -#ifndef BOOST_NO_AUTO_PTR - - explicit scoped_ptr(std::auto_ptr<T> p): ptr(p.release()) // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook(ptr); -#endif - } - -#endif - - ~scoped_ptr() // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_destructor_hook(ptr); -#endif - boost::checked_delete(ptr); - } - - void reset(T * p = 0) // never throws - { - BOOST_ASSERT(p == 0 || p != ptr); // catch self-reset errors - this_type(p).swap(*this); - } - - T & operator*() const // never throws - { - BOOST_ASSERT(ptr != 0); - return *ptr; - } - - T * operator->() const // never throws - { - BOOST_ASSERT(ptr != 0); - return ptr; - } - - T * get() const // never throws - { - return ptr; - } - - // implicit conversion to "bool" - -#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530) - - operator bool () const - { - return ptr != 0; - } - -#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - typedef T * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const // never throws - { - return ptr == 0? 0: &this_type::get; - } - -#else - typedef T * this_type::*unspecified_bool_type; - - operator unspecified_bool_type() const // never throws - { - return ptr == 0? 0: &this_type::ptr; - } - -#endif - - bool operator! () const // never throws - { - return ptr == 0; - } - - void swap(scoped_ptr & b) // never throws - { - T * tmp = b.ptr; - b.ptr = ptr; - ptr = tmp; - } -}; - -template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws -{ - a.swap(b); -} - -// get_pointer(p) is a generic way to say p.get() - -template<class T> inline T * get_pointer(scoped_ptr<T> const & p) -{ - return p.get(); -} - -} // namespace boost - -#endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/shared_array.hpp b/src/libs/boost-1.37.0/boost/shared_array.hpp deleted file mode 100644 index 3b82f355..00000000 --- a/src/libs/boost-1.37.0/boost/shared_array.hpp +++ /dev/null @@ -1,193 +0,0 @@ -#ifndef BOOST_SHARED_ARRAY_HPP_INCLUDED -#define BOOST_SHARED_ARRAY_HPP_INCLUDED - -// -// shared_array.hpp -// -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation. -// - -#include <boost/config.hpp> // for broken compiler workarounds - -#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) -#include <boost/detail/shared_array_nmt.hpp> -#else - -#include <memory> // TR1 cyclic inclusion fix - -#include <boost/assert.hpp> -#include <boost/checked_delete.hpp> - -#include <boost/detail/shared_count.hpp> -#include <boost/detail/workaround.hpp> - -#include <cstddef> // for std::ptrdiff_t -#include <algorithm> // for std::swap -#include <functional> // for std::less - -namespace boost -{ - -// -// shared_array -// -// shared_array extends shared_ptr to arrays. -// The array pointed to is deleted when the last shared_array pointing to it -// is destroyed or reset. -// - -template<class T> class shared_array -{ -private: - - // Borland 5.5.1 specific workarounds - typedef checked_array_deleter<T> deleter; - typedef shared_array<T> this_type; - -public: - - typedef T element_type; - - explicit shared_array(T * p = 0): px(p), pn(p, deleter()) - { - } - - // - // Requirements: D's copy constructor must not throw - // - // shared_array will release p by calling d(p) - // - - template<class D> shared_array(T * p, D d): px(p), pn(p, d) - { - } - -// generated copy constructor, assignment, destructor are fine - - void reset(T * p = 0) - { - BOOST_ASSERT(p == 0 || p != px); - this_type(p).swap(*this); - } - - template <class D> void reset(T * p, D d) - { - this_type(p, d).swap(*this); - } - - T & operator[] (std::ptrdiff_t i) const // never throws - { - BOOST_ASSERT(px != 0); - BOOST_ASSERT(i >= 0); - return px[i]; - } - - T * get() const // never throws - { - return px; - } - - // implicit conversion to "bool" - -#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530) - - operator bool () const - { - return px != 0; - } - -#elif defined( _MANAGED ) - - static void unspecified_bool( this_type*** ) - { - } - - typedef void (*unspecified_bool_type)( this_type*** ); - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: unspecified_bool; - } - -#elif \ - ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ - ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) - - typedef T * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: &this_type::get; - } - -#else - - typedef T * this_type::*unspecified_bool_type; - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: &this_type::px; - } - -#endif - - bool operator! () const // never throws - { - return px == 0; - } - - bool unique() const // never throws - { - return pn.unique(); - } - - long use_count() const // never throws - { - return pn.use_count(); - } - - void swap(shared_array<T> & other) // never throws - { - std::swap(px, other.px); - pn.swap(other.pn); - } - -private: - - T * px; // contained pointer - detail::shared_count pn; // reference counter - -}; // shared_array - -template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) // never throws -{ - return a.get() == b.get(); -} - -template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) // never throws -{ - return a.get() != b.get(); -} - -template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) // never throws -{ - return std::less<T*>()(a.get(), b.get()); -} - -template<class T> void swap(shared_array<T> & a, shared_array<T> & b) // never throws -{ - a.swap(b); -} - -} // namespace boost - -#endif // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) - -#endif // #ifndef BOOST_SHARED_ARRAY_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/shared_ptr.hpp b/src/libs/boost-1.37.0/boost/shared_ptr.hpp deleted file mode 100644 index ad2bc17b..00000000 --- a/src/libs/boost-1.37.0/boost/shared_ptr.hpp +++ /dev/null @@ -1,751 +0,0 @@ -#ifndef BOOST_SHARED_PTR_HPP_INCLUDED -#define BOOST_SHARED_PTR_HPP_INCLUDED - -// -// shared_ptr.hpp -// -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001-2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. -// - -#include <boost/config.hpp> // for broken compiler workarounds - -#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) -#include <boost/detail/shared_ptr_nmt.hpp> -#else - -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of <memory> doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including <memory> directly: -#include <boost/config/no_tr1/memory.hpp> // std::auto_ptr - -#include <boost/assert.hpp> -#include <boost/checked_delete.hpp> -#include <boost/throw_exception.hpp> -#include <boost/detail/shared_count.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/detail/sp_convertible.hpp> - -#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) -#include <boost/detail/spinlock_pool.hpp> -#include <boost/memory_order.hpp> -#endif - -#include <algorithm> // for std::swap -#include <functional> // for std::less -#include <typeinfo> // for std::bad_cast - -#if !defined(BOOST_NO_IOSTREAM) -#if !defined(BOOST_NO_IOSFWD) -#include <iosfwd> // for std::basic_ostream -#else -#include <ostream> -#endif -#endif - -#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash -# pragma warning(push) -# pragma warning(disable:4284) // odd return type for operator-> -#endif - -namespace boost -{ - -template<class T> class weak_ptr; -template<class T> class enable_shared_from_this; - -namespace detail -{ - -struct static_cast_tag {}; -struct const_cast_tag {}; -struct dynamic_cast_tag {}; -struct polymorphic_cast_tag {}; - -template<class T> struct shared_ptr_traits -{ - typedef T & reference; -}; - -template<> struct shared_ptr_traits<void> -{ - typedef void reference; -}; - -#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) - -template<> struct shared_ptr_traits<void const> -{ - typedef void reference; -}; - -template<> struct shared_ptr_traits<void volatile> -{ - typedef void reference; -}; - -template<> struct shared_ptr_traits<void const volatile> -{ - typedef void reference; -}; - -#endif - -// enable_shared_from_this support - -template<class T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px ) -{ - if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn); -} - -#ifdef _MANAGED - -// Avoid C4793, ... causes native code generation - -struct sp_any_pointer -{ - template<class T> sp_any_pointer( T* ) {} -}; - -inline void sp_enable_shared_from_this( shared_count const & /*pn*/, sp_any_pointer, sp_any_pointer ) -{ -} - -#else // _MANAGED - -#ifdef sgi -// Turn off: the last argument of the varargs function "sp_enable_shared_from_this" is unnamed -# pragma set woff 3506 -#endif - -inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... ) -{ -} - -#ifdef sgi -# pragma reset woff 3506 -#endif - -#endif // _MANAGED - -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR ) - -// rvalue auto_ptr support based on a technique by Dave Abrahams - -template< class T, class R > struct sp_enable_if_auto_ptr -{ -}; - -template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R > -{ - typedef R type; -}; - -#endif - -} // namespace detail - - -// -// shared_ptr -// -// An enhanced relative of scoped_ptr with reference counted copy semantics. -// The object pointed to is deleted when the last shared_ptr pointing to it -// is destroyed or reset. -// - -template<class T> class shared_ptr -{ -private: - - // Borland 5.5.1 specific workaround - typedef shared_ptr<T> this_type; - -public: - - typedef T element_type; - typedef T value_type; - typedef T * pointer; - typedef typename boost::detail::shared_ptr_traits<T>::reference reference; - - shared_ptr(): px(0), pn() // never throws in 1.30+ - { - } - - template<class Y> - explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete - { - boost::detail::sp_enable_shared_from_this( pn, p, p ); - } - - // - // Requirements: D's copy constructor must not throw - // - // shared_ptr will release p by calling d(p) - // - - template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d) - { - boost::detail::sp_enable_shared_from_this( pn, p, p ); - } - - // As above, but with allocator. A's copy constructor shall not throw. - - template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a ) - { - boost::detail::sp_enable_shared_from_this( pn, p, p ); - } - -// generated copy constructor, assignment, destructor are fine... - -// except that Borland C++ has a bug, and g++ with -Wsynth warns -#if defined(__BORLANDC__) || defined(__GNUC__) - - shared_ptr & operator=(shared_ptr const & r) // never throws - { - px = r.px; - pn = r.pn; // shared_count::op= doesn't throw - return *this; - } - -#endif - - template<class Y> - explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw - { - // it is now safe to copy r.px, as pn(r.pn) did not throw - px = r.px; - } - - template<class Y> - shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag ): px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) // never throws - { - if( !pn.empty() ) - { - px = r.px; - } - } - - template<class Y> -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() ) - -#else - - shared_ptr( shared_ptr<Y> const & r ) - -#endif - : px( r.px ), pn( r.pn ) // never throws - { - } - - // aliasing - template< class Y > - shared_ptr( shared_ptr<Y> const & r, T * p ): px( p ), pn( r.pn ) // never throws - { - } - - template<class Y> - shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn) - { - } - - template<class Y> - shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn) - { - } - - template<class Y> - shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn) - { - if(px == 0) // need to allocate new counter -- the cast failed - { - pn = boost::detail::shared_count(); - } - } - - template<class Y> - shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn) - { - if(px == 0) - { - boost::throw_exception(std::bad_cast()); - } - } - -#ifndef BOOST_NO_AUTO_PTR - - template<class Y> - explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn() - { - Y * tmp = r.get(); - pn = boost::detail::shared_count(r); - boost::detail::sp_enable_shared_from_this( pn, tmp, tmp ); - } - -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - - template<class Ap> - shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn() - { - typename Ap::element_type * tmp = r.get(); - pn = boost::detail::shared_count( r ); - boost::detail::sp_enable_shared_from_this( pn, tmp, tmp ); - } - - -#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_NO_AUTO_PTR - -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) - - template<class Y> - shared_ptr & operator=(shared_ptr<Y> const & r) // never throws - { - px = r.px; - pn = r.pn; // shared_count::op= doesn't throw - return *this; - } - -#endif - -#ifndef BOOST_NO_AUTO_PTR - - template<class Y> - shared_ptr & operator=( std::auto_ptr<Y> & r ) - { - this_type(r).swap(*this); - return *this; - } - -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - - template<class Ap> - typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r ) - { - this_type( r ).swap( *this ); - return *this; - } - - -#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_NO_AUTO_PTR - -// Move support - -#if defined( BOOST_HAS_RVALUE_REFS ) - - shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws - { - pn.swap( r.pn ); - r.px = 0; - } - - template<class Y> -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - shared_ptr( shared_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() ) - -#else - - shared_ptr( shared_ptr<Y> && r ) - -#endif - : px( r.px ), pn() // never throws - { - pn.swap( r.pn ); - r.px = 0; - } - - shared_ptr & operator=( shared_ptr && r ) // never throws - { - this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); - return *this; - } - - template<class Y> - shared_ptr & operator=( shared_ptr<Y> && r ) // never throws - { - this_type( static_cast< shared_ptr<Y> && >( r ) ).swap( *this ); - return *this; - } - -#endif - - void reset() // never throws in 1.30+ - { - this_type().swap(*this); - } - - template<class Y> void reset(Y * p) // Y must be complete - { - BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors - this_type(p).swap(*this); - } - - template<class Y, class D> void reset( Y * p, D d ) - { - this_type( p, d ).swap( *this ); - } - - template<class Y, class D, class A> void reset( Y * p, D d, A a ) - { - this_type( p, d, a ).swap( *this ); - } - - template<class Y> void reset( shared_ptr<Y> const & r, T * p ) - { - this_type( r, p ).swap( *this ); - } - - reference operator* () const // never throws - { - BOOST_ASSERT(px != 0); - return *px; - } - - T * operator-> () const // never throws - { - BOOST_ASSERT(px != 0); - return px; - } - - T * get() const // never throws - { - return px; - } - - // implicit conversion to "bool" - -#if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) - - operator bool () const - { - return px != 0; - } - -#elif defined( _MANAGED ) - - static void unspecified_bool( this_type*** ) - { - } - - typedef void (*unspecified_bool_type)( this_type*** ); - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: unspecified_bool; - } - -#elif \ - ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ - ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ - ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) - - typedef T * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: &this_type::get; - } - -#else - - typedef T * this_type::*unspecified_bool_type; - - operator unspecified_bool_type() const // never throws - { - return px == 0? 0: &this_type::px; - } - -#endif - - // operator! is redundant, but some compilers need it - - bool operator! () const // never throws - { - return px == 0; - } - - bool unique() const // never throws - { - return pn.unique(); - } - - long use_count() const // never throws - { - return pn.use_count(); - } - - void swap(shared_ptr<T> & other) // never throws - { - std::swap(px, other.px); - pn.swap(other.pn); - } - - template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const - { - return pn < rhs.pn; - } - - void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const - { - return pn.get_deleter( ti ); - } - - bool _internal_equiv( shared_ptr const & r ) const - { - return px == r.px && pn == r.pn; - } - -// Tasteless as this may seem, making all members public allows member templates -// to work in the absence of member template friends. (Matthew Langston) - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - -private: - - template<class Y> friend class shared_ptr; - template<class Y> friend class weak_ptr; - - -#endif - - T * px; // contained pointer - boost::detail::shared_count pn; // reference counter - -}; // shared_ptr - -template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b) -{ - return a.get() == b.get(); -} - -template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b) -{ - return a.get() != b.get(); -} - -#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 - -// Resolve the ambiguity between our op!= and the one in rel_ops - -template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b) -{ - return a.get() != b.get(); -} - -#endif - -template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) -{ - return a._internal_less(b); -} - -template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b) -{ - a.swap(b); -} - -template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::static_cast_tag()); -} - -template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::const_cast_tag()); -} - -template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::dynamic_cast_tag()); -} - -// shared_*_cast names are deprecated. Use *_pointer_cast instead. - -template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::static_cast_tag()); -} - -template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::dynamic_cast_tag()); -} - -template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r) -{ - return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag()); -} - -template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r) -{ - BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get()); - return shared_static_cast<T>(r); -} - -// get_pointer() enables boost::mem_fn to recognize shared_ptr - -template<class T> inline T * get_pointer(shared_ptr<T> const & p) -{ - return p.get(); -} - -// operator<< - -#if !defined(BOOST_NO_IOSTREAM) - -#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) && (__GNUC__ < 3) ) - -template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p) -{ - os << p.get(); - return os; -} - -#else - -// in STLport's no-iostreams mode no iostream symbols can be used -#ifndef _STLP_NO_IOSTREAMS - -# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT) -// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL -using std::basic_ostream; -template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p) -# else -template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p) -# endif -{ - os << p.get(); - return os; -} - -#endif // _STLP_NO_IOSTREAMS - -#endif // __GNUC__ < 3 - -#endif // !defined(BOOST_NO_IOSTREAM) - -// get_deleter - -#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \ - ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \ - ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) ) - -// g++ 2.9x doesn't allow static_cast<X const *>(void *) -// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it - -template<class D, class T> D * get_deleter(shared_ptr<T> const & p) -{ - void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D)); - return const_cast<D *>(static_cast<D const *>(q)); -} - -#else - -template<class D, class T> D * get_deleter(shared_ptr<T> const & p) -{ - return static_cast<D *>(p._internal_get_deleter(BOOST_SP_TYPEID(D))); -} - -#endif - -// atomic access - -#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) - -template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) -{ - return false; -} - -template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p ) -{ - boost::detail::spinlock_pool<2>::scoped_lock lock( p ); - return *p; -} - -template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ ) -{ - return atomic_load( p ); -} - -template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r ) -{ - boost::detail::spinlock_pool<2>::scoped_lock lock( p ); - p->swap( r ); -} - -template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ ) -{ - atomic_store( p, r ); // std::move( r ) -} - -template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r ) -{ - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); - - sp.lock(); - p->swap( r ); - sp.unlock(); - - return r; // return std::move( r ) -} - -template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ ) -{ - return atomic_exchange( p, r ); // std::move( r ) -} - -template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w ) -{ - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); - - sp.lock(); - - if( p->_internal_equiv( *v ) ) - { - p->swap( w ); - - sp.unlock(); - - return true; - } - else - { - shared_ptr<T> tmp( *p ); - - sp.unlock(); - - tmp.swap( *v ); - return false; - } -} - -template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ ) -{ - return atomic_compare_exchange( p, v, w ); // std::move( w ) -} - -#endif - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) - -#endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/throw_exception.hpp b/src/libs/boost-1.37.0/boost/throw_exception.hpp deleted file mode 100644 index 69cdad0c..00000000 --- a/src/libs/boost-1.37.0/boost/throw_exception.hpp +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED -#define BOOST_THROW_EXCEPTION_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/throw_exception.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2008 Emil Dotchevski and Reverge Studios, Inc. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// http://www.boost.org/libs/utility/throw_exception.html -// - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> -#include <exception> - -#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x593) ) -# define BOOST_EXCEPTION_DISABLE -#endif - -#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1310 ) -# define BOOST_EXCEPTION_DISABLE -#endif - -#if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE ) -# include <boost/exception/exception.hpp> -# include <boost/current_function.hpp> -# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(::boost::enable_error_info(x) <<\ - ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ - ::boost::throw_file(__FILE__) <<\ - ::boost::throw_line((int)__LINE__)) -#else -# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x) -#endif - -namespace boost -{ - -#ifdef BOOST_NO_EXCEPTIONS - -void throw_exception( std::exception const & e ); // user defined - -#else - -inline void throw_exception_assert_compatibility( std::exception const & ) { } - -template<class E> inline void throw_exception( E const & e ) -{ - //All boost exceptions are required to derive std::exception, - //to ensure compatibility with BOOST_NO_EXCEPTIONS. - throw_exception_assert_compatibility(e); - -#ifndef BOOST_EXCEPTION_DISABLE - throw enable_current_exception(enable_error_info(e)); -#else - throw e; -#endif -} - -#endif - -} // namespace boost - -#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED diff --git a/src/libs/boost-1.37.0/boost/type.hpp b/src/libs/boost-1.37.0/boost/type.hpp deleted file mode 100644 index ab81c916..00000000 --- a/src/libs/boost-1.37.0/boost/type.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// (C) Copyright David Abrahams 2001. -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_TYPE_DWA20010120_HPP -# define BOOST_TYPE_DWA20010120_HPP - -namespace boost { - - // Just a simple "type envelope". Useful in various contexts, mostly to work - // around some MSVC deficiencies. - template <class T> - struct type {}; - -} - -#endif // BOOST_TYPE_DWA20010120_HPP diff --git a/src/libs/boost-1.37.0/boost/weak_ptr.hpp b/src/libs/boost-1.37.0/boost/weak_ptr.hpp deleted file mode 100644 index b3008136..00000000 --- a/src/libs/boost-1.37.0/boost/weak_ptr.hpp +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef BOOST_WEAK_PTR_HPP_INCLUDED -#define BOOST_WEAK_PTR_HPP_INCLUDED - -// -// weak_ptr.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation. -// - -#include <memory> // boost.TR1 include order fix -#include <boost/detail/shared_count.hpp> -#include <boost/shared_ptr.hpp> - -#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash -# pragma warning(push) -# pragma warning(disable:4284) // odd return type for operator-> -#endif - -namespace boost -{ - -template<class T> class weak_ptr -{ -private: - - // Borland 5.5.1 specific workarounds - typedef weak_ptr<T> this_type; - -public: - - typedef T element_type; - - weak_ptr(): px(0), pn() // never throws in 1.30+ - { - } - -// generated copy constructor, assignment, destructor are fine - - -// -// The "obvious" converting constructor implementation: -// -// template<class Y> -// weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws -// { -// } -// -// has a serious problem. -// -// r.px may already have been invalidated. The px(r.px) -// conversion may require access to *r.px (virtual inheritance). -// -// It is not possible to avoid spurious access violations since -// in multithreaded programs r.px may be invalidated at any point. -// - - template<class Y> -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() ) - -#else - - weak_ptr( weak_ptr<Y> const & r ) - -#endif - : pn(r.pn) // never throws - { - px = r.lock().get(); - } - - template<class Y> -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() ) - -#else - - weak_ptr( shared_ptr<Y> const & r ) - -#endif - : px( r.px ), pn( r.pn ) // never throws - { - } - -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) - - template<class Y> - weak_ptr & operator=(weak_ptr<Y> const & r) // never throws - { - px = r.lock().get(); - pn = r.pn; - return *this; - } - - template<class Y> - weak_ptr & operator=(shared_ptr<Y> const & r) // never throws - { - px = r.px; - pn = r.pn; - return *this; - } - -#endif - - shared_ptr<T> lock() const // never throws - { - return shared_ptr<element_type>( *this, boost::detail::sp_nothrow_tag() ); - } - - long use_count() const // never throws - { - return pn.use_count(); - } - - bool expired() const // never throws - { - return pn.use_count() == 0; - } - - void reset() // never throws in 1.30+ - { - this_type().swap(*this); - } - - void swap(this_type & other) // never throws - { - std::swap(px, other.px); - pn.swap(other.pn); - } - - void _internal_assign(T * px2, boost::detail::shared_count const & pn2) - { - px = px2; - pn = pn2; - } - - template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const - { - return pn < rhs.pn; - } - -// Tasteless as this may seem, making all members public allows member templates -// to work in the absence of member template friends. (Matthew Langston) - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - -private: - - template<class Y> friend class weak_ptr; - template<class Y> friend class shared_ptr; - -#endif - - T * px; // contained pointer - boost::detail::weak_count pn; // reference counter - -}; // weak_ptr - -template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b) -{ - return a._internal_less(b); -} - -template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b) -{ - a.swap(b); -} - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_WEAK_PTR_HPP_INCLUDED diff --git a/src/libs/kStuff/Makefile.kmk b/src/libs/kStuff/Makefile.kmk index da9587f8..9d74ae56 100644 --- a/src/libs/kStuff/Makefile.kmk +++ b/src/libs/kStuff/Makefile.kmk @@ -70,6 +70,11 @@ VBox-kStuff_SOURCES = \ iprt/kHlpString-iprt.cpp \ iprt/kRdrFile-iprt.cpp +ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition. + LIBRARIES += VBox-kStuff-x86 + VBox-kStuff-x86_TEMPLATE = VBoxR3Dll-x86 + VBox-kStuff-x86_EXTENDS = VBox-kStuff +endif # # The library for static linking. diff --git a/src/libs/kStuff/iprt/kHlpAlloc-iprt.cpp b/src/libs/kStuff/iprt/kHlpAlloc-iprt.cpp index 6684bf33..7bf8cc3c 100644 --- a/src/libs/kStuff/iprt/kHlpAlloc-iprt.cpp +++ b/src/libs/kStuff/iprt/kHlpAlloc-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/iprt/kHlpAssert-iprt.cpp b/src/libs/kStuff/iprt/kHlpAssert-iprt.cpp index 406bc3e8..2dc3ba7d 100644 --- a/src/libs/kStuff/iprt/kHlpAssert-iprt.cpp +++ b/src/libs/kStuff/iprt/kHlpAssert-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/iprt/kHlpEnv-iprt.cpp b/src/libs/kStuff/iprt/kHlpEnv-iprt.cpp index 17661ca7..105c75c9 100644 --- a/src/libs/kStuff/iprt/kHlpEnv-iprt.cpp +++ b/src/libs/kStuff/iprt/kHlpEnv-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/iprt/kHlpPage-iprt.cpp b/src/libs/kStuff/iprt/kHlpPage-iprt.cpp index b808d997..a9a1c69b 100644 --- a/src/libs/kStuff/iprt/kHlpPage-iprt.cpp +++ b/src/libs/kStuff/iprt/kHlpPage-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/iprt/kHlpString-iprt.cpp b/src/libs/kStuff/iprt/kHlpString-iprt.cpp index 0c74fa55..d7105341 100644 --- a/src/libs/kStuff/iprt/kHlpString-iprt.cpp +++ b/src/libs/kStuff/iprt/kHlpString-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/iprt/kRdrFile-iprt.cpp b/src/libs/kStuff/iprt/kRdrFile-iprt.cpp index 2d890733..0b95962d 100644 --- a/src/libs/kStuff/iprt/kRdrFile-iprt.cpp +++ b/src/libs/kStuff/iprt/kRdrFile-iprt.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2007 Oracle Corporation + * Copyright (C) 2007-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/kStuff/kStuff/include/k/kLdr.h b/src/libs/kStuff/kStuff/include/k/kLdr.h index c7fe7899..795b3f64 100644 --- a/src/libs/kStuff/kStuff/include/k/kLdr.h +++ b/src/libs/kStuff/kStuff/include/k/kLdr.h @@ -1,4 +1,4 @@ -/* $Id: kLdr.h 41 2011-08-24 14:35:57Z bird $ */ +/* $Id: kLdr.h 52 2013-07-09 17:03:37Z bird $ */ /** @file * kLdr - The Dynamic Loader. */ @@ -588,6 +588,14 @@ typedef FNKLDRENUMRSRC *PFNKLDRENUMRSRC; #define KLDR_LANG_ID_UI_CUSTOM_DEFAULT ( ~(KU32)7 ) /** @} */ +/** @name Module Open Flags + * @{ */ +/** Indicates that we won't be loading the module, we're just getting + * information (like symbols and line numbers) out of it. */ +#define KLDRMOD_OPEN_FLAGS_FOR_INFO K_BIT32(0) +/** Mask of valid flags. */ +#define KLDRMOD_OPEN_FLAGS_VALID_MASK KU32_C(0x00000001) +/** @} */ int kLdrModOpen(const char *pszFilename, KU32 fFlags, KCPUARCH enmCpuArch, PPKLDRMOD ppMod); int kLdrModOpenFromRdr(PKRDR pRdr, KU32 fFlags, KCPUARCH enmCpuArch, PPKLDRMOD ppMod); diff --git a/src/libs/kStuff/kStuff/kLdr/kLdrMod.c b/src/libs/kStuff/kStuff/kLdr/kLdrMod.c index 740ae4b5..d3305c3d 100644 --- a/src/libs/kStuff/kStuff/kLdr/kLdrMod.c +++ b/src/libs/kStuff/kStuff/kLdr/kLdrMod.c @@ -1,4 +1,4 @@ -/* $Id: kLdrMod.c 41 2011-08-24 14:35:57Z bird $ */
+/* $Id: kLdrMod.c 52 2013-07-09 17:03:37Z bird $ */
/** @file
* kLdr - The Module Interpreter.
*/
@@ -300,6 +300,8 @@ int kLdrModOpenFromRdr(PKRDR pRdr, KU32 fFlags, KCPUARCH enmCpuArch, PPKLDRMOD p KLDRFOFF offHdr = 0;
int rc;
+ kHlpAssertReturn(!(fFlags & ~KLDRMOD_OPEN_FLAGS_VALID_MASK), KERR_INVALID_PARAMETER);
+
for (;;)
{
/*
diff --git a/src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c b/src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c index 4ad32e2a..6ccff89b 100644 --- a/src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c +++ b/src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c @@ -1,4 +1,4 @@ -/* $Id: kLdrModMachO.c 49 2012-08-28 23:49:20Z bird $ */ +/* $Id: kLdrModMachO.c 53 2013-07-09 17:18:44Z bird $ */ /** @file * kLdr - The Module Interpreter for the MACH-O format. */ @@ -102,6 +102,8 @@ typedef struct KLDRMODMACHOSECT */ typedef struct KLDRMODMACHOSEG { + /** The orignal segment number (in case we had to resort it). */ + KU32 iOrgSegNo; /** The number of sections in the segment. */ KU32 cSections; /** Pointer to the sections belonging to this segment. @@ -123,6 +125,8 @@ typedef struct KLDRMODMACHO const void *pvBits; /** Pointer to the user mapping. */ void *pvMapping; + /** The module open flags. */ + KU32 fOpenFlags; /** The offset of the image. (FAT fun.) */ KLDRFOFF offImage; @@ -185,9 +189,10 @@ static KI32 kldrModMachONumberOfImports(PKLDRMOD pMod, const void *pvBits); static int kldrModMachORelocateBits(PKLDRMOD pMod, void *pvBits, KLDRADDR NewBaseAddress, KLDRADDR OldBaseAddress, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser); -static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *ppMod); +static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, KU32 fOpenFlags, PKLDRMODMACHO *ppMod); static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_header_32_t *pHdr, PKRDR pRdr, KLDRFOFF offImage, - KU32 *pcSegments, KU32 *pcSections, KU32 *pcbStringPool, PKBOOL pfCanLoad); + KU32 fOpenFlags, KU32 *pcSegments, KU32 *pcSections, KU32 *pcbStringPool, + PKBOOL pfCanLoad, PKLDRADDR pLinkAddress); static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStringPool, KU32 cbStringPool); static int kldrModMachOAdjustBaseAddress(PKLDRMODMACHO pModMachO, PKLDRADDR pBaseAddress); @@ -244,7 +249,7 @@ static int kldrModMachOCreate(PCKLDRMODOPS pOps, PKRDR pRdr, KU32 fFlags, KCPUAR /* * Create the instance data and do a minimal header validation. */ - rc = kldrModMachODoCreate(pRdr, offNewHdr == -1 ? 0 : offNewHdr, &pModMachO); + rc = kldrModMachODoCreate(pRdr, offNewHdr == -1 ? 0 : offNewHdr, fFlags, &pModMachO); if (!rc) { @@ -274,7 +279,7 @@ static int kldrModMachOCreate(PCKLDRMODOPS pOps, PKRDR pRdr, KU32 fFlags, KCPUAR * Separate function for reading creating the Mach-O module instance to * simplify cleanup on failure. */ -static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *ppModMachO) +static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, KU32 fOpenFlags, PKLDRMODMACHO *ppModMachO) { union { @@ -291,6 +296,7 @@ static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *pp KSIZE cb; KBOOL fMakeGot; KBOOL fCanLoad = K_TRUE; + KLDRADDR LinkAddress; KU8 cbJmpStub; int rc; *ppModMachO = NULL; @@ -350,8 +356,8 @@ static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *pp ? sizeof(mach_header_32_t) + offImage : sizeof(mach_header_64_t) + offImage); if (!rc) - rc = kldrModMachOPreParseLoadCommands(pbLoadCommands, &s.Hdr32, pRdr, offImage, - &cSegments, &cSections, &cbStringPool, &fCanLoad); + rc = kldrModMachOPreParseLoadCommands(pbLoadCommands, &s.Hdr32, pRdr, offImage, fOpenFlags, + &cSegments, &cSections, &cbStringPool, &fCanLoad, &LinkAddress); if (rc) { kHlpFree(pbLoadCommands); @@ -451,11 +457,12 @@ static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *pp pModMachO->pMod = pMod; pModMachO->pvBits = NULL; pModMachO->pvMapping = NULL; + pModMachO->fOpenFlags = fOpenFlags; pModMachO->Hdr = s.Hdr64; if ( s.Hdr32.magic == IMAGE_MACHO32_SIGNATURE || s.Hdr32.magic == IMAGE_MACHO32_SIGNATURE_OE) pModMachO->Hdr.reserved = 0; - pModMachO->LinkAddress = 0; + pModMachO->LinkAddress = LinkAddress; pModMachO->cbImage = 0; pModMachO->fCanLoad = fCanLoad; pModMachO->fMakeGot = fMakeGot; @@ -503,9 +510,12 @@ static int kldrModMachODoCreate(PKRDR pRdr, KLDRFOFF offImage, PKLDRMODMACHO *pp * @param pcSegments Where to store the section count. * @param pcbStringPool Where to store the string pool size. * @param pfCanLoad Where to store the can-load-image indicator. + * @param pLinkAddress Where to store the image link address (i.e. the + * lowest segment address). */ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_header_32_t *pHdr, PKRDR pRdr, KLDRFOFF offImage, - KU32 *pcSegments, KU32 *pcSections, KU32 *pcbStringPool, PKBOOL pfCanLoad) + KU32 fOpenFlags, KU32 *pcSegments, KU32 *pcSections, KU32 *pcbStringPool, + PKBOOL pfCanLoad, PKLDRADDR pLinkAddress) { union { @@ -518,6 +528,7 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea uuid_command_t *pUuid; } u; const KU64 cbFile = kRdrSize(pRdr) - offImage; + const char *pchCurSegName = NULL; KU32 cSegments = 0; KU32 cSections = 0; KU32 cbStringPool = 0; @@ -533,6 +544,7 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea *pcSections = 0; *pcbStringPool = 0; *pfCanLoad = K_TRUE; + *pLinkAddress = ~(KLDRADDR)0; while (cLeft-- > 0) { @@ -586,8 +598,6 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea && ( u.pSeg32->fileoff > cbFile || (KU64)u.pSeg32->fileoff + u.pSeg32->filesize > cbFile)) return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; - if (!u.pSeg32->filesize && u.pSeg32->fileoff) - return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; if (u.pSeg32->vmsize < u.pSeg32->filesize) return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; if ((u.pSeg32->maxprot & u.pSeg32->initprot) != u.pSeg32->initprot) @@ -655,16 +665,24 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea if (pSect->reserved2) /* (reserved 1 is indirect symbol table index)*/ return KLDR_ERR_MACHO_BAD_SECTION; *pfCanLoad = K_FALSE; - fFileBits = 0; + fFileBits = -1; /* __DATA.__got in the 64-bit mach_kernel has bits, any things without bits? */ break; + case S_MOD_INIT_FUNC_POINTERS: /** @todo this requires a query API or flag... (e.g. C++ constructors) */ + if (!(fOpenFlags & KLDRMOD_OPEN_FLAGS_FOR_INFO)) + return KLDR_ERR_MACHO_UNSUPPORTED_INIT_SECTION; + case S_MOD_TERM_FUNC_POINTERS: /** @todo this requires a query API or flag... (e.g. C++ destructors) */ + if (!(fOpenFlags & KLDRMOD_OPEN_FLAGS_FOR_INFO)) + return KLDR_ERR_MACHO_UNSUPPORTED_TERM_SECTION; + if (pSect->reserved1 || pSect->reserved2) + return KLDR_ERR_MACHO_BAD_SECTION; + fFileBits = 1; + break; /* ignored */ + case S_LITERAL_POINTERS: case S_INTERPOSING: case S_GB_ZEROFILL: - case S_MOD_INIT_FUNC_POINTERS: - return KLDR_ERR_MACHO_UNSUPPORTED_INIT_SECTION; - case S_MOD_TERM_FUNC_POINTERS: - return KLDR_ERR_MACHO_UNSUPPORTED_TERM_SECTION; + return KLDR_ERR_MACHO_UNSUPPORTED_SECTION; default: return KLDR_ERR_MACHO_UNKNOWN_SECTION; @@ -695,7 +713,7 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea return KLDR_ERR_MACHO_BAD_SECTION; - /* count segments and strings */ + /* count segments and strings, calculate image link address. */ switch (pHdr->filetype) { case MH_OBJECT: @@ -711,8 +729,8 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea break; /* a new segment? */ - if ( !cSegments - || kHlpStrNComp(pSect->segname, (pSect - 1)->segname, sizeof(pSect->segname))) + if ( !pchCurSegName + || kHlpStrNComp(pSect->segname, pchCurSegName, sizeof(pSect->segname))) { #if 0 /** @todo This doesn't work because of BSS. */ /* verify that the linker/assembler has ordered sections correctly. */ @@ -726,8 +744,13 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea #endif /* ok. count it and the string. */ - cSegments++; + pchCurSegName = &pSect->segname[0]; cbStringPool += kHlpStrNLen(&pSect->segname[0], sizeof(pSect->segname)) + 1; + cSegments++; + + /* Link address lower? */ + if (*pLinkAddress > u.pSeg32->vmaddr) + *pLinkAddress = u.pSeg32->vmaddr; } break; } @@ -770,8 +793,6 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea && ( u.pSeg64->fileoff > cbFile || u.pSeg64->fileoff + u.pSeg64->filesize > cbFile)) return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; - if (!u.pSeg64->filesize && u.pSeg64->fileoff) - return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; if (u.pSeg64->vmsize < u.pSeg64->filesize) return KLDR_ERR_MACHO_BAD_LOAD_COMMAND; if ((u.pSeg64->maxprot & u.pSeg64->initprot) != u.pSeg64->initprot) @@ -839,24 +860,24 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea if (pSect->reserved2) /* (reserved 1 is indirect symbol table index)*/ return KLDR_ERR_MACHO_BAD_SECTION; *pfCanLoad = K_FALSE; - fFileBits = 0; + fFileBits = -1; /* __DATA.__got in the 64-bit mach_kernel has bits, any things without bits? */ break; + case S_MOD_INIT_FUNC_POINTERS: /** @todo this requires a query API or flag... (e.g. C++ constructors) */ + if (!(fOpenFlags & KLDRMOD_OPEN_FLAGS_FOR_INFO)) + return KLDR_ERR_MACHO_UNSUPPORTED_INIT_SECTION; + case S_MOD_TERM_FUNC_POINTERS: /** @todo this requires a query API or flag... (e.g. C++ destructors) */ + if (!(fOpenFlags & KLDRMOD_OPEN_FLAGS_FOR_INFO)) + return KLDR_ERR_MACHO_UNSUPPORTED_TERM_SECTION; + if (pSect->reserved1 || pSect->reserved2) + return KLDR_ERR_MACHO_BAD_SECTION; + fFileBits = 1; + break; /* ignored */ + case S_LITERAL_POINTERS: case S_INTERPOSING: case S_GB_ZEROFILL: return KLDR_ERR_MACHO_UNSUPPORTED_SECTION; -#if 1 /** @todo this requires a query API or flag... */ - case S_MOD_INIT_FUNC_POINTERS: - return KLDR_ERR_MACHO_UNSUPPORTED_INIT_SECTION; - case S_MOD_TERM_FUNC_POINTERS: - return KLDR_ERR_MACHO_UNSUPPORTED_TERM_SECTION; -#else - case S_MOD_INIT_FUNC_POINTERS: - case S_MOD_TERM_FUNC_POINTERS: - fFileBits = 1; - break; /* ignored */ -#endif default: return KLDR_ERR_MACHO_UNKNOWN_SECTION; @@ -887,7 +908,7 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea return KLDR_ERR_MACHO_BAD_SECTION; - /* count segments and strings */ + /* count segments and strings, calculate image link address. */ switch (pHdr->filetype) { case MH_OBJECT: @@ -903,8 +924,8 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea break; /* a new segment? */ - if ( !cSegments - || kHlpStrNComp(pSect->segname, (pSect - 1)->segname, sizeof(pSect->segname))) + if ( !pchCurSegName + || kHlpStrNComp(pSect->segname, pchCurSegName, sizeof(pSect->segname))) { #if 0 /** @todo This doesn't work because of BSS. */ /* verify that the linker/assembler has ordered sections correctly. */ @@ -918,8 +939,13 @@ static int kldrModMachOPreParseLoadCommands(KU8 *pbLoadCommands, const mach_hea #endif /* ok. count it and the string. */ - cSegments++; + pchCurSegName = &pSect->segname[0]; cbStringPool += kHlpStrNLen(&pSect->segname[0], sizeof(pSect->segname)) + 1; + cSegments++; + + /* Link address lower? */ + if (*pLinkAddress > u.pSeg64->vmaddr) + *pLinkAddress = u.pSeg64->vmaddr; } break; } @@ -1091,15 +1117,15 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin const segment_command_64_t *pSeg64; const symtab_command_t *pSymTab; } u; + const char *pchCurSegName = NULL; KU32 cLeft = pModMachO->Hdr.ncmds; KU32 cbLeft = pModMachO->Hdr.sizeofcmds; const KU8 *pb = pModMachO->pbLoadCommands; - int fFirstSegment = 1; PKLDRSEG pSeg = &pModMachO->pMod->aSegments[0]; PKLDRMODMACHOSEG pSegExtra = &pModMachO->aSegments[0]; PKLDRMODMACHOSECT pSectExtra = pModMachO->paSections; const KU32 cSegments = pModMachO->pMod->cSegments; - KU32 i; + KU32 i, c; while (cLeft-- > 0) { @@ -1118,7 +1144,7 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin section_32_t *pFirstSect; KU32 cSectionsLeft; - pModMachO->LinkAddress = u.pSeg32->vmaddr; + kHlpAssert(u.pSeg32->vmaddr >= pModMachO->LinkAddress); /* * convert, validate and parse the sections. @@ -1161,8 +1187,8 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin break; } - if ( fFirstSegment - || kHlpStrNComp(pSect->segname, (pSect - 1)->segname, sizeof(pSect->segname))) + if ( !pchCurSegName + || kHlpStrNComp(pSect->segname, pchCurSegName, sizeof(pSect->segname))) { /* close the previous segment */ if (pSegExtra != &pModMachO->aSegments[0]) @@ -1196,12 +1222,13 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin pSeg->cbMapped = 0; pSeg->MapAddress = 0; + pSegExtra->iOrgSegNo = pSegExtra - &pModMachO->aSegments[0]; pSegExtra->cSections = 0; pSegExtra->paSections = pSectExtra; pSeg++; pSegExtra++; - fFirstSegment = 0; + pchCurSegName = &pSect->segname[0]; } else { @@ -1253,7 +1280,7 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin section_64_t *pFirstSect; KU32 cSectionsLeft; - pModMachO->LinkAddress = u.pSeg64->vmaddr; + kHlpAssert(u.pSeg64->vmaddr >= pModMachO->LinkAddress); /* * convert, validate and parse the sections. @@ -1296,8 +1323,8 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin break; } - if ( fFirstSegment - || kHlpStrNComp(pSect->segname, (pSect - 1)->segname, sizeof(pSect->segname))) + if ( !pchCurSegName + || kHlpStrNComp(pSect->segname, pchCurSegName, sizeof(pSect->segname))) { /* close the previous segment */ if (pSegExtra != &pModMachO->aSegments[0]) @@ -1331,12 +1358,13 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin pSeg->cbMapped = 0; pSeg->MapAddress = 0; + pSegExtra->iOrgSegNo = pSegExtra - &pModMachO->aSegments[0]; pSegExtra->cSections = 0; pSegExtra->paSections = pSectExtra; pSeg++; pSegExtra++; - fFirstSegment = 0; + pchCurSegName = &pSect->segname[0]; } else { @@ -1409,6 +1437,37 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin pSegExtra[-1].cSections = pSectExtra - pSegExtra[-1].paSections; /* + * Make sure the segments are sorted, or we'll get screwed further down. + */ + c = pSeg - &pModMachO->pMod->aSegments[0]; + pSeg = &pModMachO->pMod->aSegments[0]; + for (i = 0; i < c - 1; i++) + { + KLDRADDR LinkAddress = pSeg[i + 1].LinkAddress; + if (LinkAddress < pSeg[i].LinkAddress) + { + /* Gotta move the next segment, find the correct location. */ + KLDRMODMACHOSEG TmpSegExtra; + KLDRSEG TmpSeg; + KU32 j = i; + KU32 cShift = 1; + + while (j > 0 && LinkAddress < pSeg[j - 1].LinkAddress) + j--, cShift++; + + TmpSegExtra = pModMachO->aSegments[i + 1]; + kHlpMemMove(&pModMachO->aSegments[j + 1], &pModMachO->aSegments[j], + cShift * sizeof(pModMachO->aSegments[0])); + pModMachO->aSegments[j] = TmpSegExtra; + + TmpSeg = pSeg[i + 1]; + kHlpMemMove(&pSeg[j + 1], &pSeg[j], cShift * sizeof(pSeg[0])); + pSeg[j] = TmpSeg; + } + } + pSeg = &pModMachO->pMod->aSegments[c]; + + /* * Make the GOT segment if necessary. */ if (pModMachO->fMakeGot) @@ -1453,6 +1512,7 @@ static int kldrModMachOParseLoadCommands(PKLDRMODMACHO pModMachO, char *pbStrin pSeg->cbMapped = 0; pSeg->MapAddress = 0; + pSegExtra->iOrgSegNo = KU32_MAX; pSegExtra->cSections = 0; pSegExtra->paSections = NULL; } diff --git a/src/libs/liblzf-3.4/Makefile.kmk b/src/libs/liblzf-3.4/Makefile.kmk index a3627fad..c999e6b3 100644 --- a/src/libs/liblzf-3.4/Makefile.kmk +++ b/src/libs/liblzf-3.4/Makefile.kmk @@ -40,5 +40,12 @@ VBox-liblzf-static_DEFS.x86 = $(VBox-liblzf_DEFS.x86) VBox-liblzf-static_DEFS.amd64 = $(VBox-liblzf_DEFS.amd64) VBox-liblzf-static_SOURCES = $(VBox-liblzf_SOURCES) +ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition. + LIBRARIES += VBox-liblzf-x86 + VBox-liblzf-x86_TEMPLATE = VBoxR3Dll-x86 + VBox-liblzf-x86_EXTENDS = VBox-liblzf +endif + + include $(FILE_KBUILD_SUB_FOOTER) diff --git a/src/libs/libxml2-2.6.31/Makefile.kmk b/src/libs/libxml2-2.6.31/Makefile.kmk index 494fc4c3..7aaca6a4 100644 --- a/src/libs/libxml2-2.6.31/Makefile.kmk +++ b/src/libs/libxml2-2.6.31/Makefile.kmk @@ -18,7 +18,9 @@ SUB_DEPTH = ../../.. include $(KBUILD_PATH)/subheader.kmk -LIBRARIES += VBox-libxml2 +ifndef VBOX_ONLY_TESTSUITE + LIBRARIES += VBox-libxml2 +endif VBox-libxml2_TEMPLATE = VBOXR3NP VBox-libxml2_SDKS = VBOX_ZLIB VBox-libxml2_DEFS = _REENTRANT # the latter triggers thread support, see xmlversion-default.h and win32xmlversion.h. @@ -45,8 +47,6 @@ VBox-libxml2_SOURCES = \ HTMLtree.c \ legacy.c \ list.c \ - nanoftp.c \ - nanohttp.c \ parser.c \ parserInternals.c \ pattern.c \ @@ -64,7 +64,6 @@ VBox-libxml2_SOURCES = \ xmlmemory.c \ xmlreader.c \ xmlregexp.c \ - xmlmodule.c \ xmlsave.c \ xmlschemas.c \ xmlschemastypes.c \ @@ -74,9 +73,21 @@ VBox-libxml2_SOURCES = \ xpointer.c \ xmlstring.c + # For linking: # VBox-libxml2_LDFLAGS.win = /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) # VBox-libxml2_SDKS.win += WINPSDK +ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition. + LIBRARIES += VBox-libxml2-x86 + VBox-libxml2-x86_TEMPLATE = VBoxR3DllNonPedantic-x86 + VBox-libxml2-x86_EXTENDS = VBox-libxml2 +endif + +LIBRARIES += VBox-libxml2-static +VBox-libxml2-static_TEMPLATE = VBOXR3STATIC +VBox-libxml2-static_EXTENDS = VBox-libxml2 + + include $(FILE_KBUILD_SUB_FOOTER) diff --git a/src/libs/libxml2-2.6.31/entities.c b/src/libs/libxml2-2.6.31/entities.c index 59a057a2..ed5af7a0 100644 --- a/src/libs/libxml2-2.6.31/entities.c +++ b/src/libs/libxml2-2.6.31/entities.c @@ -472,13 +472,13 @@ xmlGetDocEntity(xmlDocPtr doc, const xmlChar *name) { * Macro used to grow the current buffer. */ #define growBufferReentrant() { \ - buffer_size *= 2; \ - buffer = (xmlChar *) \ - xmlRealloc(buffer, buffer_size * sizeof(xmlChar)); \ - if (buffer == NULL) { \ - xmlEntitiesErrMemory("xmlEncodeEntitiesReentrant: realloc failed");\ - return(NULL); \ - } \ + xmlChar *tmp; \ + size_t new_size = buffer_size * 2; \ + if (new_size < buffer_size) goto mem_error; \ + tmp = (xmlChar *) xmlRealloc(buffer, new_size); \ + if (tmp == NULL) goto mem_error; \ + buffer = tmp; \ + buffer_size = new_size; \ } @@ -499,7 +499,7 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { const xmlChar *cur = input; xmlChar *buffer = NULL; xmlChar *out = NULL; - int buffer_size = 0; + size_t buffer_size = 0; int html = 0; if (input == NULL) return(NULL); @@ -518,8 +518,8 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { out = buffer; while (*cur != '\0') { - if (out - buffer > buffer_size - 100) { - int indx = out - buffer; + size_t indx = out - buffer; + if (indx + 100 > buffer_size) { growBufferReentrant(); out = &buffer[indx]; @@ -636,6 +636,11 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { } *out++ = 0; return(buffer); + +mem_error: + xmlEntitiesErrMemory("xmlEncodeEntitiesReentrant: realloc failed"); + xmlFree(buffer); + return(NULL); } /** @@ -653,7 +658,7 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { const xmlChar *cur = input; xmlChar *buffer = NULL; xmlChar *out = NULL; - int buffer_size = 0; + size_t buffer_size = 0; if (input == NULL) return(NULL); /* @@ -668,8 +673,8 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { out = buffer; while (*cur != '\0') { - if (out - buffer > buffer_size - 10) { - int indx = out - buffer; + size_t indx = out - buffer; + if (indx + 10 > buffer_size) { growBufferReentrant(); out = &buffer[indx]; @@ -718,6 +723,11 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { } *out++ = 0; return(buffer); + +mem_error: + xmlEntitiesErrMemory("xmlEncodeSpecialChars: realloc failed"); + xmlFree(buffer); + return(NULL); } /** diff --git a/src/libs/libxml2-2.6.31/include/libxml/parser.h b/src/libs/libxml2-2.6.31/include/libxml/parser.h index fa700bb7..694ec238 100644 --- a/src/libs/libxml2-2.6.31/include/libxml/parser.h +++ b/src/libs/libxml2-2.6.31/include/libxml/parser.h @@ -299,6 +299,7 @@ struct _xmlParserCtxt { xmlParserMode parseMode; /* the parser mode */ unsigned long nbentities; /* number of entities references */ unsigned long sizeentities; /* size of parsed entities */ + unsigned long sizeentcopy; /* volume of entity copy */ }; /** diff --git a/src/libs/libxml2-2.6.31/include/libxml/parserInternals.h b/src/libs/libxml2-2.6.31/include/libxml/parserInternals.h index 7ac0ce6e..56f3ce81 100644 --- a/src/libs/libxml2-2.6.31/include/libxml/parserInternals.h +++ b/src/libs/libxml2-2.6.31/include/libxml/parserInternals.h @@ -30,6 +30,15 @@ extern "C" { */ XMLPUBVAR unsigned int xmlParserMaxDepth; +/** + * XML_MAX_TEXT_LENGTH: + * + * Maximum size allowed for a single text node when building a tree. + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + */ +#define XML_MAX_TEXT_LENGTH 10000000 + /** * XML_MAX_NAMELEN: * diff --git a/src/libs/libxml2-2.6.31/include/libxml/xmlexports.h b/src/libs/libxml2-2.6.31/include/libxml/xmlexports.h index 0fee408c..7201ff09 100644 --- a/src/libs/libxml2-2.6.31/include/libxml/xmlexports.h +++ b/src/libs/libxml2-2.6.31/include/libxml/xmlexports.h @@ -148,11 +148,12 @@ #endif /* bird/VirtualBox: Visibility attributes - start */ +/* frank: changed to "hidden" */ #if defined(VBOX_HAVE_VISIBILITY_HIDDEN) && !defined(LIBXML_STATIC) && defined(IN_LIBXML) #undef XMLPUBFUN #undef XMLPUBVAR - #define XMLPUBFUN __attribute__((visibility("default"))) - #define XMLPUBVAR __attribute__((visibility("default"))) extern + #define XMLPUBFUN __attribute__((visibility("hidden"))) + #define XMLPUBVAR __attribute__((visibility("hidden"))) extern #endif /* bird/VirtualBox: Visibility attributes - end */ diff --git a/src/libs/libxml2-2.6.31/parser.c b/src/libs/libxml2-2.6.31/parser.c index 29432c91..0c1f8e82 100644 --- a/src/libs/libxml2-2.6.31/parser.c +++ b/src/libs/libxml2-2.6.31/parser.c @@ -40,6 +40,7 @@ #endif #include <stdlib.h> +#include <limits.h> #include <string.h> #include <stdarg.h> #include <libxml/xmlmemory.h> @@ -109,16 +110,33 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info); * boundary feature. */ static int -xmlParserEntityCheck(xmlParserCtxtPtr ctxt, unsigned long size, - xmlEntityPtr ent) +xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, + xmlEntityPtr ent, size_t replacement) { - unsigned long consumed = 0; + size_t consumed = 0; if (ctxt == NULL) return (0); if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP) return (1); - if (size != 0) { + if (replacement != 0) { + if (replacement < XML_MAX_TEXT_LENGTH) + return(0); + + /* + * If the volume of entity copy reaches 10 times the + * amount of parsed data and over the large text threshold + * then that's very likely to be an abuse. + */ + if (ctxt->input != NULL) { + consumed = ctxt->input->consumed + + (ctxt->input->cur - ctxt->input->base); + } + consumed += ctxt->sizeentities; + + if (replacement < XML_PARSER_NON_LINEAR * consumed) + return(0); + } else if (size != 0) { /* * Do the check based on the replacement size of the entity */ @@ -164,7 +182,6 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, unsigned long size, */ return (0); } - xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL); return (1); } @@ -2269,12 +2286,12 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { */ #define growBuffer(buffer, n) { \ xmlChar *tmp; \ - buffer##_size *= 2; \ - buffer##_size += n; \ - tmp = (xmlChar *) \ - xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \ + size_t new_size = buffer##_size * 2 + n; \ + if (new_size < buffer##_size) goto mem_error; \ + tmp = (xmlChar *) xmlRealloc(buffer, new_size); \ if (tmp == NULL) goto mem_error; \ buffer = tmp; \ + buffer##_size = new_size; \ } /** @@ -2300,13 +2317,13 @@ xmlChar * xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int what, xmlChar end, xmlChar end2, xmlChar end3) { xmlChar *buffer = NULL; - int buffer_size = 0; + size_t buffer_size = 0; + size_t nbchars = 0; xmlChar *current = NULL; const xmlChar *last; xmlEntityPtr ent; int c,l; - int nbchars = 0; if ((ctxt == NULL) || (str == NULL) || (len < 0)) return(NULL); @@ -2321,7 +2338,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, * allocate a translation buffer. */ buffer_size = XML_PARSER_BIG_BUFFER_SIZE; - buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar)); + buffer = (xmlChar *) xmlMallocAtomic(buffer_size); if (buffer == NULL) goto mem_error; /* @@ -2341,7 +2358,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, if (val != 0) { COPY_BUF(0,buffer,nbchars,val); } - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } else if ((c == '&') && (what & XML_SUBSTITUTE_REF)) { @@ -2358,7 +2375,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { if (ent->content != NULL) { COPY_BUF(0,buffer,nbchars,ent->content[0]); - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } else { @@ -2376,9 +2393,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, current = rep; while (*current != 0) { /* non input consuming loop */ buffer[nbchars++] = *current++; - if (nbchars > - buffer_size - XML_PARSER_BUFFER_SIZE) { - if (xmlParserEntityCheck(ctxt, nbchars, ent)) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { + if (xmlParserEntityCheck(ctxt, nbchars, ent, 0)) { xmlFree(rep); goto int_error; } @@ -2392,7 +2408,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, const xmlChar *cur = ent->name; buffer[nbchars++] = '&'; - if (nbchars > buffer_size - i - XML_PARSER_BUFFER_SIZE) { + if (nbchars + i + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, i + XML_PARSER_BUFFER_SIZE); } for (;i > 0;i--) @@ -2419,9 +2435,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, current = rep; while (*current != 0) { /* non input consuming loop */ buffer[nbchars++] = *current++; - if (nbchars > - buffer_size - XML_PARSER_BUFFER_SIZE) { - if (xmlParserEntityCheck(ctxt, nbchars, ent)) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { + if (xmlParserEntityCheck(ctxt, nbchars, ent, 0)) { xmlFree(rep); goto int_error; } @@ -2434,8 +2449,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, } else { COPY_BUF(l,buffer,nbchars,c); str += l; - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { - growBuffer(buffer, XML_PARSER_BUFFER_SIZE); + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { + growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } if (str < last) @@ -3194,8 +3209,8 @@ static xmlChar * xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { xmlChar limit = 0; xmlChar *buf = NULL; - int len = 0; - int buf_size = 0; + size_t len = 0; + size_t buf_size = 0; int c, l, in_space = 0; xmlChar *current = NULL; xmlEntityPtr ent; @@ -3217,7 +3232,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * allocate a translation buffer. */ buf_size = XML_PARSER_BUFFER_SIZE; - buf = (xmlChar *) xmlMallocAtomic(buf_size * sizeof(xmlChar)); + buf = (xmlChar *) xmlMallocAtomic(buf_size); if (buf == NULL) goto mem_error; /* @@ -3234,7 +3249,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { if (val == '&') { if (ctxt->replaceEntities) { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } buf[len++] = '&'; @@ -3243,7 +3258,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * The reparsing will be done in xmlStringGetNodeList() * called by the attribute() function in SAX.c */ - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } buf[len++] = '&'; @@ -3253,7 +3268,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { buf[len++] = ';'; } } else { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } len += xmlCopyChar(0, &buf[len], val); @@ -3265,7 +3280,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { ctxt->nbentities += ent->owner; if ((ent != NULL) && (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } if ((ctxt->replaceEntities == 0) && @@ -3290,14 +3305,14 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { current = rep; while (*current != 0) { /* non input consuming */ buf[len++] = *current++; - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } } xmlFree(rep); } } else { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } if (ent->content != NULL) @@ -3324,7 +3339,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * Just output the reference */ buf[len++] = '&'; - while (len > buf_size - i - 10) { + while (len + i + 10 > buf_size) { growBuffer(buf, i + 10); } for (;i > 0;i--) @@ -3337,7 +3352,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { if ((len != 0) || (!normalize)) { if ((!normalize) || (!in_space)) { COPY_BUF(l,buf,len,0x20); - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } } @@ -3346,7 +3361,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } else { in_space = 0; COPY_BUF(l,buf,len,c); - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } } @@ -3356,7 +3371,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { c = CUR_CHAR(l); } if ((in_space) && (normalize)) { - while (buf[len - 1] == 0x20) len--; + while ((len > 0) && (buf[len - 1] == 0x20)) len--; } buf[len] = 0; if (RAW == '<') { @@ -3371,7 +3386,18 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } } else NEXT; - if (attlen != NULL) *attlen = len; + + /* + * There we potentially risk an overflow, don't allow attribute value of + * lenght more than INT_MAX it is a very reasonnable assumption ! + */ + if (len >= INT_MAX) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + goto mem_error; + } + + if (attlen != NULL) *attlen = (int) len; return(buf); mem_error: @@ -6267,7 +6293,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { xmlFreeNodeList(list); return; } - if (xmlParserEntityCheck(ctxt, 0, ent)) { + if (xmlParserEntityCheck(ctxt, 0, ent, 0)) { xmlFreeNodeList(list); return; } @@ -6420,6 +6446,13 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { xmlNodePtr nw = NULL, cur, firstChild = NULL; /* + * We are copying here, make sure there is no abuse + */ + ctxt->sizeentcopy += ent->length; + if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy)) + return; + + /* * when operating on a reader, the entities definitions * are always owning the entities subtree. if (ctxt->parseMode == XML_PARSE_READER) @@ -6459,6 +6492,14 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { } else if (list == NULL) { xmlNodePtr nw = NULL, cur, next, last, firstChild = NULL; + + /* + * We are copying here, make sure there is no abuse + */ + ctxt->sizeentcopy += ent->length; + if (xmlParserEntityCheck(ctxt, 0, ent, ctxt->sizeentcopy)) + return; + /* * Copy the entity child list and make it the new * entity child list. The goal is to make sure any @@ -13297,6 +13338,7 @@ xmlCtxtReset(xmlParserCtxtPtr ctxt) ctxt->catalogs = NULL; ctxt->nbentities = 0; ctxt->sizeentities = 0; + ctxt->sizeentcopy = 0; xmlInitNodeInfoSeq(&ctxt->node_seq); if (ctxt->attsDefault != NULL) { diff --git a/src/libs/libxml2-2.6.31/parserInternals.c b/src/libs/libxml2-2.6.31/parserInternals.c index 758c6b33..8b4711a8 100644 --- a/src/libs/libxml2-2.6.31/parserInternals.c +++ b/src/libs/libxml2-2.6.31/parserInternals.c @@ -1671,6 +1671,8 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt) ctxt->charset = XML_CHAR_ENCODING_UTF8; ctxt->catalogs = NULL; ctxt->nbentities = 0; + ctxt->sizeentities = 0; + ctxt->sizeentcopy = 0; xmlInitNodeInfoSeq(&ctxt->node_seq); return(0); } diff --git a/src/libs/xpcom18a4/Config.kmk b/src/libs/xpcom18a4/Config.kmk index fb9c1afe..71acf9c8 100644 --- a/src/libs/xpcom18a4/Config.kmk +++ b/src/libs/xpcom18a4/Config.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2010 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -25,6 +25,7 @@ endif # VBOX_PATH_XPCOM_SRC := $(PATH_ROOT)/src/libs/xpcom18a4 + # # Template for building the XPCOM libraries (shared). # @@ -46,7 +47,6 @@ TEMPLATE_XPCOM_CXXFLAGS.release = -O TEMPLATE_XPCOM_CXXFLAGS.profile = -O TEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) TEMPLATE_XPCOM_CXXFLAGS.freebsd = -pthread -TEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc TEMPLATE_XPCOM_CXXFLAGS.linux = -pthread TEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway. TEMPLATE_XPCOM_CFLAGS = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \ @@ -56,7 +56,6 @@ TEMPLATE_XPCOM_CFLAGS.amd64 = -m64 TEMPLATE_XPCOM_CFLAGS.release = -O TEMPLATE_XPCOM_CFLAGS.profile = -O TEMPLATE_XPCOM_CFLAGS.freebsd = -pthread -TEMPLATE_XPCOM_CFLAGS.l4 = -nostdinc TEMPLATE_XPCOM_CFLAGS.linux = -pthread -ansi TEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway. TEMPLATE_XPCOM_DEFS = \ @@ -76,7 +75,6 @@ TEMPLATE_XPCOM_DEFS.darwin = OSTYPE=\"Darwin8.8.1\" OSARCH=\"Darwin\" XP TEMPLATE_XPCOM_DEFS.darwin.amd64 = VBOX_MACOSX_FOLLOWS_UNIX_IO TEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1 TEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1 -TEMPLATE_XPCOM_DEFS.l4 = OSTYPE=\"L4ENV\" OSARCH=\"L4\" XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1 # Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP TEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4 TEMPLATE_XPCOM_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT @@ -125,11 +123,6 @@ TEMPLATE_XPCOM_INCS = $(VBOX_PATH_XPCOM_SRC)/xpcom/build \ $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \ . TEMPLATE_XPCOM_INCS.darwin = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon -TEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS) -TEMPLATE_XPCOM_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \ - -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \ - # -Wl,--whole-archive,--no-allow-shlib-undefined -TEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC) TEMPLATE_XPCOM_LIBS.solaris = sendfile TEMPLATE_XPCOM_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET)) \ $(PATH_TARGET)/VBox-xpcom-idl-timestamp @@ -167,14 +160,7 @@ TEMPLATE_XPCOMEXE_LIBS = \ $(TEMPLATE_XPCOM_LIBS) TEMPLATE_XPCOMEXE_LIBS.freebsd = $(LIB_PTHREAD) TEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD) -TEMPLATE_XPCOMEXE_LIBS.l4 = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC) TEMPLATE_XPCOMEXE_LDFLAGS.darwin = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) -TEMPLATE_XPCOMEXE_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \ - -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \ - -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \ - -Wl,--rpath-link,$(L4_LIBDIR) \ - # -Wl,--whole-archive,--no-allow-shlib-undefined -# -Wno-format # @@ -184,6 +170,15 @@ TEMPLATE_XPCOMTSTEXE = XPCOM executable files (testcases) TEMPLATE_XPCOMTSTEXE_EXTENDS = XPCOMEXE TEMPLATE_XPCOMTSTEXE_CXXFLAGS = $(TEMPLATE_XPCOMEXE_CXXFLAGS) -Wno-format TEMPLATE_XPCOMTSTEXE_CFLAGS = $(TEMPLATE_XPCOMEXE_CFLAGS) -Wno-format +TEMPLATE_XPCOMTSTEXE_INST = $(INST_TESTCASE) +ifdef VBOX_WITH_RUNPATH + TEMPLATE_XPCOMTSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_XPCOMEXE_LDFLAGS) +else ifdef VBOX_WITH_RELATIVE_RUNPATH + TEMPLATE_XPCOMTSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_XPCOMEXE_LDFLAGS) +endif +if "$(KBUILD_TARGET)" == "win" && defined(VBOX_SIGNING_MODE) + TEMPLATE_XPCOMTSTEXE_POST_CMDS = +endif # @@ -267,6 +262,28 @@ TEMPLATE_XPCOMOSX107_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_7)/Developer # +# Creates a x86 target for an XPCOM target if so desired. +# The target is specified as the first argument: $(evalcall VBOX_XPCOM_X86,target). +# +ifdef VBOX_WITH_32_ON_64_MAIN_API + define VBOX_XPCOM_X86 + $(1)-x86_TEMPLATE := $(strip $($(1)_TEMPLATE))-x86 + $(1)-x86_EXTENDS := $(1) + endef +else + define VBOX_XPCOM_X86 + endef +endif + +# Corresponding 32-bit template(s). +TEMPLATE_XPCOM-x86 = 32-bit XPCOM libraries (shared) +TEMPLATE_XPCOM-x86_EXTENDS = XPCOM +TEMPLATE_XPCOM-x86_BLD_TRG_ARCH = x86 +TEMPLATE_XPCOM-x86_DEFS = $(TEMPLATE_XPCOM_DEFS) VBOX_IN_32_ON_64_MAIN_API +TEMPLATE_XPCOM-x86_LIBS = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPCOM_LIBS)) + + +# # The list of XPCOM's IDL files. # This is used by the java bindings as well as the XPCOM build. # diff --git a/src/libs/xpcom18a4/Makefile.kmk b/src/libs/xpcom18a4/Makefile.kmk index ce0079fc..6b7d8fb7 100644 --- a/src/libs/xpcom18a4/Makefile.kmk +++ b/src/libs/xpcom18a4/Makefile.kmk @@ -4,7 +4,7 @@ # # -# Copyright (C) 2006-2012 Oracle Corporation +# Copyright (C) 2006-2013 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; @@ -74,7 +74,7 @@ BLDDIRS += \ # ifndef VBOX_ONLY_SDK -LIBRARIES += \ +VBOX_XPCOM_LIBRARIES := \ VBox-xpcom-nspr \ VBox-xpcom-typelib \ VBox-xpcom-string \ @@ -86,26 +86,27 @@ LIBRARIES += \ VBox-xpcom-xptinfo \ VBox-xpcom-xptcall \ VBox-xpcom-proxy \ - VBoxXPCOMGlue_s \ - VBoxXPCOMGlue \ - VBox-xpcom-ipcutils \ VBox-xpcom-ipcshared \ - VBox-xpcom-ipcdlock \ - VBox-xpcom-ipctransmgr \ - VBox-xpcom-ipctmgrcom + VBoxXPCOMGlue_s \ + $(if $(VBOX_WITH_XPCOM_GLUE_WHICH_IS_UNUSED),VBoxXPCOMGlue,) +LIBRARIES += $(VBOX_XPCOM_LIBRARIES) -DLLS += \ - VBoxXPCOM \ +VBOX_XPCOM_DLLS := \ + VBoxXPCOM \ VBoxXPCOMIPCC +DLLS += $(VBOX_XPCOM_DLLS) + + ifdef VBOX_WITH_32_ON_64_MAIN_API +LIBRARIES += $(addsuffix -x86,$(VBOX_XPCOM_LIBRARIES)) +DLLS += $(addsuffix -x86,$(VBOX_XPCOM_DLLS)) + endif + ifdef VBOX_WITH_TESTCASES PROGRAMS += \ - tstnsIFileEnumerator \ tstnsIFileTest \ tstTestArray \ - tstTestAtoms \ tstTestAutoLock \ - tstTestCallTemplates \ tstTestCOMPtr \ tstTestCOMPtrEq \ tstTestCRT \ @@ -114,7 +115,6 @@ PROGRAMS += \ tstTestID \ tstTestObserverService \ tstTestPipes \ - tstTestServMgr \ tstTestThreads \ tstTestXPIDLString \ tstTestDeque \ @@ -122,10 +122,14 @@ PROGRAMS += \ tstTestMinStringAPI \ tstTestStrings \ tstPrimitiveTest \ - tstSimpleTypeLib \ - tstXptDump \ - tstXptLink -# tstTestPermanentAtoms +# tstnsIFileEnumerator +# tstTestAtoms +# tstTestServMgr +# tstTestCallTemplates +# tstTestPermanentAtoms +# tstSimpleTypeLib +# tstXptDump +# tstXptLink endif # VBOX_WITH_TESTCASES PROGRAMS += VBoxXPCOMIPCD @@ -200,7 +204,6 @@ NSPRPUB-MD-HEADERS_SOURCES = \ nsprpub/pr/include/md/_iprt_atomic.h \ nsprpub/pr/include/md/_darwin.h \ nsprpub/pr/include/md/_freebsd.h \ - nsprpub/pr/include/md/_l4v2.h \ nsprpub/pr/include/md/_linux.h \ nsprpub/pr/include/md/_macos.h \ nsprpub/pr/include/md/_netbsd.h \ @@ -222,7 +225,6 @@ NSPRPUB-MD-HEADERS_SOURCES = \ nsprpub/pr/include/md/_os2.cfg \ nsprpub/pr/include/md/_solaris32.cfg \ nsprpub/pr/include/md/_solaris64.cfg \ - nsprpub/pr/include/md/_l4v2.cfg NSPRPUB-OBS-HEADERS_INST = $(INST_SDK)bindings/xpcom/include/nsprpub/obsolete/ NSPRPUB-OBS-HEADERS_IFFLAGS = -m 644 @@ -528,15 +530,6 @@ VBox-xpcom-nspr_DEFS.linux = \ HAVE_CVAR_BUILT_ON_SEM \ _PR_PTHREADS # _BSD_SOURCE is here to keep the Glibc header files happy and make them include the right things -# FIXME: L4 should be defined by _linux.cfg -VBox-xpcom-nspr_DEFS.l4 = \ - L4=1 \ - _REENTRANT=1 \ - _LARGEFILE64_SOURCE=1 \ - _POSIX_SOURCE=1 \ - _BSD_SOURCE=1 \ - HAVE_FCNTL_FILE_LOCKING=1 \ - HAVE_CVAR_BUILT_ON_SEM VBox-xpcom-nspr_DEFS.netbsd = \ _PR_PTHREADS VBox-xpcom-nspr_DEFS.openbsd = \ @@ -630,30 +623,6 @@ VBox-xpcom-nspr_SOURCES.darwin.x86 = nsprpub/pr/src/md/unix/os_Darwin_x86.s VBox-xpcom-nspr_SOURCES.freebsd = nsprpub/pr/src/md/unix/freebsd.c -VBox-xpcom-nspr_SOURCES.l4 = \ - nsprpub/pr/src/io/prfile.c /* why not for Linux? */ \ - nsprpub/pr/src/io/prio.c /* "" "" "" "" */ \ - nsprpub/pr/src/io/prsocket.c \ - nsprpub/pr/src/md/unix/unix.c \ - nsprpub/pr/src/md/unix/unix_errors.c \ - nsprpub/pr/src/md/unix/uxpoll.c \ - nsprpub/pr/src/md/unix/uxproces.c \ - nsprpub/pr/src/md/unix/uxrng.c \ - nsprpub/pr/src/md/unix/uxshm.c \ - nsprpub/pr/src/md/unix/uxwrap.c \ - nsprpub/pr/src/md/unix/l4env.c \ - nsprpub/pr/src/threads/prcthr.c \ - nsprpub/pr/src/threads/prmon.c \ - nsprpub/pr/src/threads/combined/prucpu.c \ - nsprpub/pr/src/threads/combined/prucv.c \ - nsprpub/pr/src/threads/combined/prulock.c \ - nsprpub/pr/src/threads/combined/prustack.c \ - nsprpub/pr/src/threads/combined/pruthr.c -# nsprpub/pr/src/md/l4env/prnetdb.c \ -# nsprpub/pr/src/md/l4env/threads.c -VBox-xpcom-nspr_SOURCES.l4.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s -VBox-xpcom-nspr_SOURCES.l4.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s - VBox-xpcom-nspr_SOURCES.linux = nsprpub/pr/src/md/unix/linux.c VBox-xpcom-nspr_SOURCES.linux.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s VBox-xpcom-nspr_SOURCES.linux.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s @@ -710,6 +679,8 @@ $$(VBox-xpcom-nspr_0_OUTDIR)/_pl_bld.h: | $$(VBox-xpcom-nspr_0_OUTDIR)/ $(call MSG_GENERATE,,$@) $(QUIET)$(APPEND) -t $@ '#define _BUILD_STRING "$(date +%Y-%m-%d %T)"' +$(evalcall2 VBOX_XPCOM_X86,VBox-xpcom-nspr) + VBox-xpcom-typelib_TEMPLATE = XPCOM VBox-xpcom-typelib_INSTTYPE = none @@ -717,6 +688,7 @@ VBox-xpcom-typelib_SOURCES = \ xpcom/typelib/xpt/src/xpt_arena.c \ xpcom/typelib/xpt/src/xpt_struct.c \ xpcom/typelib/xpt/src/xpt_xdr.c +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-typelib) VBox-xpcom-string_TEMPLATE = XPCOM VBox-xpcom-string_INSTTYPE = none @@ -732,6 +704,7 @@ VBox-xpcom-string_SOURCES = \ xpcom/string/src/nsString.cpp \ xpcom/string/src/nsStringComparator.cpp \ xpcom/string/src/nsStringObsolete.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-string) VBox-xpcom-base_TEMPLATE = XPCOM VBox-xpcom-base_INSTTYPE = none @@ -747,6 +720,7 @@ VBox-xpcom-base_SOURCES = \ xpcom/base/nsMemoryImpl.cpp \ xpcom/base/nsTraceRefcntImpl.cpp \ xpcom/base/nsStackFrameUnix.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-base) VBox-xpcom-ds_TEMPLATE = XPCOM VBox-xpcom-ds_INSTTYPE = none @@ -786,11 +760,15 @@ VBox-xpcom-ds_SOURCES = \ xpcom/ds/nsArray.cpp \ xpcom/ds/nsArrayEnumerator.cpp # xpcom/ds/nsHashPropertyBag.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-ds) # @todo what about MOZ_USER_DIR? VBox-xpcom-io_TEMPLATE = XPCOM VBox-xpcom-io_INSTTYPE = none VBox-xpcom-io_DEFS = _IMPL_NS_COM MOZ_USER_DIR=\".mozilla\" +if defined(VBOX_WITH_HARDENING) && defined(VBOX_PATH_APP_PRIVATE_ARCH) + VBox-xpcom-io_DEFS += MOZ_DEFAULT_VBOX_XPCOM_HOME=\"$(VBOX_PATH_APP_PRIVATE_ARCH)\" +endif VBox-xpcom-io_INCS.darwin = \ xpcom/MoreFiles VBox-xpcom-io_SOURCES = \ @@ -818,14 +796,13 @@ VBox-xpcom-io_SOURCES.darwin.x86 = \ xpcom/io/nsLocalFileOSX.cpp \ xpcom/MoreFiles/FSCopyObject.c \ xpcom/MoreFiles/MoreFilesX.c -VBox-xpcom-io_SOURCES.l4 = \ - xpcom/io/nsLocalFileL4.cpp if1of ($(KBUILD_TARGET) $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), freebsd linux netbsd openbsd solaris darwin.amd64) VBox-xpcom-io_SOURCES += \ xpcom/io/nsLocalFileUnix.cpp endif VBox-xpcom-io_SOURCES.os2 = \ xpcom/io/nsLocalFileOS2.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-io) VBox-xpcom-components_TEMPLATE = XPCOM VBox-xpcom-components_INSTTYPE = none @@ -838,6 +815,7 @@ VBox-xpcom-components_SOURCES = \ xpcom/components/nsServiceManagerObsolete.cpp \ xpcom/components/xcDll.cpp \ xpcom/components/nsStaticComponentLoader.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-components) VBox-xpcom-threads_TEMPLATE = XPCOM VBox-xpcom-threads_INSTTYPE = none @@ -852,6 +830,7 @@ VBox-xpcom-threads_SOURCES = \ xpcom/threads/nsTimerImpl.cpp \ xpcom/threads/nsProcessCommon.cpp \ xpcom/threads/TimerThread.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-threads) VBox-xpcom-xptinfo_TEMPLATE = XPCOM VBox-xpcom-xptinfo_INSTTYPE = none @@ -866,13 +845,13 @@ VBox-xpcom-xptinfo_SOURCES = \ xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp \ xpcom/reflect/xptinfo/src/xptiZipItem.cpp \ xpcom/reflect/xptinfo/src/xptiZipLoader.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-xptinfo) VBox-xpcom-xptcall_TEMPLATE = XPCOM VBox-xpcom-xptcall_INSTTYPE = none VBox-xpcom-xptcall_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTC_API VBox-xpcom-xptcall_DEFS.darwin = KEEP_STACK_16_BYTE_ALIGNED -VBox-xpcom-xptcall_DEFS.l4 = L4 VBox-xpcom-xptcall_DEFS.os2 = MOZ_NEED_LEADING_UNDERSCORE VBox-xpcom-xptcall_INCS.os2 = xpcom/reflect/xptcall/src/md/unix VBox-xpcom-xptcall_SOURCES = xpcom/reflect/xptcall/src/xptcall.cpp @@ -901,39 +880,44 @@ else xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \ xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp endif - xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp_CXXFLAGS = -O0 # -O0 works fine, while -O1 doesn't. The gcc man page can't be listing all the -f* # stuff that -O1 enables, because when using the options without -O1, it's -fomit-frame-pointer # that triggers is, while -O1 -fno-omit-frame-pointer does not work. Anyway, it's probably a gcc/mozila # bug and it's not worth investigating as I'm not the maintainger of the solaris gcc port. [bird, 2007-09-17] +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-xptcall) + VBox-xpcom-proxy_TEMPLATE = XPCOM VBox-xpcom-proxy_INSTTYPE = none VBox-xpcom-proxy_DEFS = _IMPL_NS_COM EXPORT_XPTC_API EXPORT_XPTI_API -VBox-xpcom-proxy_SOURCES = xpcom/proxy/src/nsProxyEvent.cpp \ - xpcom/proxy/src/nsProxyEventClass.cpp \ - xpcom/proxy/src/nsProxyEventObject.cpp \ - xpcom/proxy/src/nsProxyObjectManager.cpp \ - xpcom/proxy/src/nsProxyRelease.cpp +VBox-xpcom-proxy_SOURCES = \ + xpcom/proxy/src/nsProxyEvent.cpp \ + xpcom/proxy/src/nsProxyEventClass.cpp \ + xpcom/proxy/src/nsProxyEventObject.cpp \ + xpcom/proxy/src/nsProxyObjectManager.cpp \ + xpcom/proxy/src/nsProxyRelease.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-proxy) # # The VBoxXPCOM Glue static libraries. # -# See http://developer.mozilla.org/en/docs/XPCOM_Glue for details about the -# original XPCOM glue library purpose and usage. -# -# We don't really use the glue library in the described way because we don't -# provide frozen APIs (yet), so all VBox XPCOM client applications are -# dependent on the given version of both the VBox XPCOM runtime (binary -# dependency) and VirtualBox component library (COM interface dependency). For -# this reason, VBox client applications link to the VBox XPCOM shared library -# directly (instead of linking to the standalone XPCOM glue library that would -# dynamically search for and load the installed XPCOM runtime). For the same -# reason, we link all parts of XPCOM into a single shared XPCOM library below -# (as opposed to the original XPCOM where e.g. NSPR lives in a separate DLL). +# This isn't the normal XPCOM glue (see the places in XPCOM where XPCOM_GLUE is +# checked), VirtualBox has its own glue library and this means this isn't used +# much (one reason is that we don't provide frozen APIs yet). All VBox XPCOM +# client applications are dependent on the given version of both the VBox XPCOM +# runtime (binary dependency) and VirtualBox component library (COM interface +# dependency). For this reason, VBox client applications link to the VBox XPCOM +# shared library directly (instead of linking to the standalone XPCOM glue +# library that would dynamically search for and load the installed XPCOM +# runtime). For the same reason, we link all parts of XPCOM into a single +# shared XPCOM library below (as opposed to the original XPCOM where e.g. NSPR +# lives in a separate DLL). Additionally there is VBox specific glue code to +# make both the client and server side code build with both XPCOM and COM, +# which should be made part of the SDK eventually, but this is a higher level +# of abstraction than this XPCOM specific glue code. # VBoxXPCOMGlue_COMMON_SOURCES = \ xpcom/glue/nsCOMPtr.cpp \ @@ -950,18 +934,14 @@ VBoxXPCOMGlue_s_TEMPLATE = XPCOM VBoxXPCOMGlue_s_INSTTYPE = none VBoxXPCOMGlue_s_DEFS = _IMPL_NS_COM VBoxXPCOMGlue_s_SOURCES = $(VBoxXPCOMGlue_COMMON_SOURCES) +$(evalcall VBOX_XPCOM_X86,VBoxXPCOMGlue_s) -# standalone glue library which all third-party client apps (if any) will link with -# (currently not used anywhere (see above) but still built to make sure -# the code inside #ifdef XPCOM_GLUE compiles) +# standalone glue library which all third-party client apps (if any) will +# link with (currently completely unused and nit built, to be part of the SDK) VBoxXPCOMGlue_TEMPLATE = XPCOM -VBoxXPCOMGlue_DEFS = XPCOM_GLUE -VBoxXPCOMGlue_SOURCES = $(VBoxXPCOMGlue_COMMON_SOURCES) \ - xpcom/glue/standalone/nsXPCOMGlue.cpp \ - xpcom/glue/standalone/nsGREDirServiceProvider.cpp -VBoxXPCOMGlue_SOURCES += \ - $(VBox-xpcom-string_1_TARGET) +VBoxXPCOMGlue_SOURCES = $(VBoxXPCOMGlue_COMMON_SOURCES) #VBoxXPCOMGlue_INST = lib/ $(INST_SDK)lib/ +$(evalcall VBOX_XPCOM_X86,VBoxXPCOMGlue) # @@ -1001,7 +981,7 @@ VBoxXPCOM_LIBS = \ VBoxXPCOM_LIBS.linux = \ pthread dl -ifeq ($(filter-out freebsd l4 linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld. +ifeq ($(filter-out freebsd linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld. VBoxXPCOM_LDFLAGS = -Wl,--whole-archive \ $(VBox-xpcom-typelib_1_TARGET) \ $(VBox-xpcom-string_1_TARGET) \ @@ -1033,13 +1013,67 @@ VBoxXPCOM_LDFLAGS.solaris += -Wl,-z,allextract \ $(VBoxXPCOMGlue_s_1_TARGET) \ -Wl,-z,defaultextract -#VBoxXPCOM_LIBS.l4 = $(L4_LIBDIR)/libxpcomstubs.a $(L4_LIBDIR)/../libuc_c++.a \ -# $(VBOX_PATH_L4_GCC3_INSTALL)/libsupc++.a $(VBOX_PATH_L4_GCC3_INSTALL)/libgcc_eh.a # EF heap #VBoxXPCOM_LIBS += $(LIB_RUNTIME_EF) #VBoxXPCOM_LDFLAGS = -Wl,--whole-archive $(VBoxXPCOM_LIBS) -Wl,--no-whole-archive $(LIB_RUNTIME) VBoxXPCOM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOM.dylib +# +# The 32-bit VBoxXPCOM Shared Object, assembling all lib files. +# +VBoxXPCOM-x86_TEMPLATE = XPCOM-x86 +VBoxXPCOM-x86_EXTENDS = VBoxXPCOM +VBoxXPCOM-x86_NAME = VBoxXPCOM-x86 +VBoxXPCOM-x86_LIBS = \ + $(VBox-xpcom-typelib-x86_1_TARGET) \ + $(VBox-xpcom-string-x86_1_TARGET) \ + $(VBox-xpcom-base-x86_1_TARGET) \ + $(VBox-xpcom-ds-x86_1_TARGET) \ + $(VBox-xpcom-io-x86_1_TARGET) \ + $(VBox-xpcom-components-x86_1_TARGET) \ + $(VBox-xpcom-threads-x86_1_TARGET) \ + $(VBox-xpcom-xptinfo-x86_1_TARGET) \ + $(VBox-xpcom-xptcall-x86_1_TARGET) \ + $(VBox-xpcom-proxy-x86_1_TARGET) \ + $(VBox-xpcom-nspr-x86_1_TARGET) \ + $(VBoxXPCOMGlue_s-x86_1_TARGET) + +ifeq ($(filter-out freebsd linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld. +VBoxXPCOM-x86_LDFLAGS = -Wl,--whole-archive \ + $(VBox-xpcom-typelib-x86_1_TARGET) \ + $(VBox-xpcom-string-x86_1_TARGET) \ + $(VBox-xpcom-base-x86_1_TARGET) \ + $(VBox-xpcom-ds-x86_1_TARGET) \ + $(VBox-xpcom-io-x86_1_TARGET) \ + $(VBox-xpcom-components-x86_1_TARGET) \ + $(VBox-xpcom-threads-x86_1_TARGET) \ + $(VBox-xpcom-xptinfo-x86_1_TARGET) \ + $(VBox-xpcom-xptcall-x86_1_TARGET) \ + $(VBox-xpcom-proxy-x86_1_TARGET) \ + $(VBox-xpcom-nspr-x86_1_TARGET) \ + $(VBoxXPCOMGlue_s-x86_1_TARGET) \ + -Wl,--no-whole-archive +endif + +VBoxXPCOM-x86_LDFLAGS.solaris += -Wl,-z,allextract \ + $(VBox-xpcom-typelib-x86_1_TARGET) \ + $(VBox-xpcom-string-x86_1_TARGET) \ + $(VBox-xpcom-base-x86_1_TARGET) \ + $(VBox-xpcom-ds-x86_1_TARGET) \ + $(VBox-xpcom-io-x86_1_TARGET) \ + $(VBox-xpcom-components-x86_1_TARGET) \ + $(VBox-xpcom-threads-x86_1_TARGET) \ + $(VBox-xpcom-xptinfo-x86_1_TARGET) \ + $(VBox-xpcom-xptcall-x86_1_TARGET) \ + $(VBox-xpcom-proxy-x86_1_TARGET) \ + $(VBox-xpcom-nspr-x86_1_TARGET) \ + $(VBoxXPCOMGlue_s-x86_1_TARGET) \ + -Wl,-z,defaultextract + + +# +# IPC templates. +# ifdef VBOX_IPC_RELEASE_LOG IPC_LOGGING = 1 else ifneq ($(KBUILD_TYPE),release) @@ -1054,8 +1088,24 @@ TEMPLATE_XPCOMIPC_DEFS = \ ifdef IPC_LOGGING TEMPLATE_XPCOMIPC_DEFS += IPC_LOGGING endif - TEMPLATE_XPCOMIPC_LIBS = $(VBoxXPCOM_1_TARGET) $(TEMPLATE_XPCOM_LIBS) +ifneq ($(KBUILD_TARGET),win) + ifeq ($(filter-out solaris.x86 %.amd64 %.sparc32 %.sparc64,$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)),) ## TODO: cleanup! + if defined(VBOX_WITH_RELATIVE_RUNPATH) && !defined(VBOX_WITH_HARDENING) + TEMPLATE_XPCOMIPC_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%',$(TEMPLATE_XPCOM_LDFLAGS)) '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' + endif + else ifndef VBOX_WITH_HARDENING + ifdef VBOX_WITH_RELATIVE_RUNPATH + TEMPLATE_XPCOMIPC_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%',$(TEMPLATE_XPCOM_LDFLAGS)) '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' + endif + endif +endif + +TEMPLATE_XPCOMIPC-x86 = 32-bit XPCOM IPC libraries +TEMPLATE_XPCOMIPC-x86_EXTENDS = XPCOMIPC +TEMPLATE_XPCOMIPC-x86_BLD_TRG_ARCH = x86 +TEMPLATE_XPCOMIPC-x86_LIBS = $(VBoxXPCOM-x86_1_TARGET) $(TEMPLATE_XPCOM-x86_LIBS) + TEMPLATE_XPCOMIPCEXE = XPCOM IPC executables TEMPLATE_XPCOMIPCEXE_EXTENDS = XPCOMEXE @@ -1064,12 +1114,9 @@ ifdef IPC_LOGGING TEMPLATE_XPCOMIPCEXE_DEFS += IPC_LOGGING endif -VBox-xpcom-ipcutils_TEMPLATE = XPCOMIPC -VBox-xpcom-ipcutils_INSTTYPE = none -VBox-xpcom-ipcutils_SOURCES = \ - ipc/ipcd/util/src/ipcMessageReader.cpp \ - ipc/ipcd/util/src/ipcMessageWriter.cpp - +# +# Shared IPC code. Used by the IPC component as well as the executables. +# VBox-xpcom-ipcshared_TEMPLATE = XPCOMIPC VBox-xpcom-ipcshared_INSTTYPE = none VBox-xpcom-ipcshared_SOURCES = \ @@ -1080,23 +1127,7 @@ VBox-xpcom-ipcshared_SOURCES = \ ipc/ipcd/shared/src/ipcStringList.cpp \ ipc/ipcd/shared/src/ipcIDList.cpp \ ipc/ipcd/shared/src/ipcm.cpp - -VBox-xpcom-ipcdlock_TEMPLATE = XPCOMIPC -VBox-xpcom-ipcdlock_INSTTYPE = none -VBox-xpcom-ipcdlock_SOURCES = \ - ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \ - ipc/ipcd/extensions/lock/src/ipcLockService.cpp - -VBox-xpcom-ipctransmgr_TEMPLATE = XPCOMIPC -VBox-xpcom-ipctransmgr_INSTTYPE = none -VBox-xpcom-ipctransmgr_SOURCES = \ - ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp - -VBox-xpcom-ipctmgrcom_TEMPLATE = XPCOMIPC -VBox-xpcom-ipctmgrcom_INSTTYPE = none -VBox-xpcom-ipctmgrcom_SOURCES = \ - ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \ - ipc/ipcd/extensions/transmngr/common/tmVector.cpp +$(evalcall VBOX_XPCOM_X86,VBox-xpcom-ipcshared) # @@ -1110,7 +1141,19 @@ VBoxXPCOMIPCC_SOURCES = \ ipc/ipcd/client/src/ipcdclient.cpp \ ipc/ipcd/client/src/ipcService.cpp \ ipc/ipcd/client/src/ipcModuleFactory.cpp \ - ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp + ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp\ + \ + ipc/ipcd/util/src/ipcMessageReader.cpp \ + ipc/ipcd/util/src/ipcMessageWriter.cpp \ + \ + ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \ + ipc/ipcd/extensions/lock/src/ipcLockService.cpp \ + \ + ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp \ + \ + ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \ + ipc/ipcd/extensions/transmngr/common/tmVector.cpp + ifeq ($(KBUILD_TARGET),win) VBoxXPCOMIPCC_SOURCES += \ ipc/ipcd/client/src/ipcConnectionWin.cpp @@ -1120,13 +1163,12 @@ VBoxXPCOMIPCC_SOURCES += \ endif VBoxXPCOMIPCC_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxXPCOMIPCC.dylib VBoxXPCOMIPCC_LIBS = \ - $(VBox-xpcom-ipcutils_1_TARGET) \ - $(VBox-xpcom-ipcshared_1_TARGET) \ - $(VBox-xpcom-ipcdlock_1_TARGET) \ - $(VBox-xpcom-ipctransmgr_1_TARGET) \ - $(VBox-xpcom-ipctmgrcom_1_TARGET) -# EF -#VBoxXPCOMIPCC_LIBS += $(LIB_RUNTIME) + $(VBox-xpcom-ipcshared_1_TARGET) + +# 32-bit version of the component. +$(evalcall VBOX_XPCOM_X86,VBoxXPCOMIPCC) +VBoxXPCOMIPCC-x86_LIBS = \ + $(VBox-xpcom-ipcshared-x86_1_TARGET) # @@ -1393,4 +1435,11 @@ $(PATH_TARGET)/xpcom-namespace-cleanup.map foo.map: $$(VBoxXPCOM_LIBS) $$(VBoxXP -e 's/\<_init$$/&;/p' \ --append $@ $(QUIET)$(APPEND) $@ '};' +ifeq ($(KBUILD_TARGET),solaris) + # Temporary gcc 4.5.2 hack on Solaris which emits unknown mangled symbols for ctors/dtors for certain objects. See @bugref{5838}. + if $(VBOX_GCC_VERSION_CXX) == 40502 + $(QUIET)$(SED) -re '/^_Z.*[C-D]5E/d' $@ > $@-sedtmp + $(QUIET)$(MV) $@-sedtmp $@ + endif +endif diff --git a/src/libs/xpcom18a4/ipc/ipcd/client/Makefile.kup b/src/libs/xpcom18a4/ipc/ipcd/client/Makefile.kup new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/libs/xpcom18a4/ipc/ipcd/client/Makefile.kup diff --git a/src/libs/xpcom18a4/ipc/ipcd/client/src/Makefile.kup b/src/libs/xpcom18a4/ipc/ipcd/client/src/Makefile.kup new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/libs/xpcom18a4/ipc/ipcd/client/src/Makefile.kup diff --git a/src/libs/xpcom18a4/ipc/ipcd/client/src/ipcdclient.cpp b/src/libs/xpcom18a4/ipc/ipcd/client/src/ipcdclient.cpp index 3477949a..9212273b 100644 --- a/src/libs/xpcom18a4/ipc/ipcd/client/src/ipcdclient.cpp +++ b/src/libs/xpcom18a4/ipc/ipcd/client/src/ipcdclient.cpp @@ -58,6 +58,11 @@ #include "prproces.h" #include "pratom.h" +#ifdef VBOX +# include <iprt/critsect.h> +# define VBOX_WITH_IPCCLIENT_RW_CS +#endif + /* ------------------------------------------------------------------------- */ #define IPC_REQUEST_TIMEOUT PR_SecondsToInterval(30) @@ -146,10 +151,15 @@ public: ~ipcClientState() { +#ifndef VBOX_WITH_IPCCLIENT_RW_CS if (monitor) nsAutoMonitor::DestroyMonitor(monitor); +#else + RTCritSectRwDelete(&critSect); +#endif } +#ifndef VBOX_WITH_IPCCLIENT_RW_CS // // the monitor protects the targetMap and the connected and shutdown flags. // @@ -159,6 +169,9 @@ public: // wrapper for PRLock. // PRMonitor *monitor; +#else /* VBOX_WITH_IPCCLIENT_RW_CS */ + RTCRITSECTRW critSect; +#endif /* VBOX_WITH_IPCCLIENT_RW_CS */ ipcTargetMap targetMap; PRBool connected; PRBool shutdown; @@ -171,11 +184,20 @@ public: private: ipcClientState() +#ifndef VBOX_WITH_IPCCLIENT_RW_CS : monitor(nsAutoMonitor::NewMonitor("ipcClientState")) , connected(PR_FALSE) +#else + : connected(PR_FALSE) +#endif , shutdown(PR_FALSE) , selfID(0) - {} + { +#ifdef VBOX_WITH_IPCCLIENT_RW_CS + /* Not employing the lock validator here to keep performance up in debug builds. */ + RTCritSectRwInitEx(&critSect, RTCRITSECT_FLAGS_NO_LOCK_VAL, NIL_RTLOCKVALCLASS, RTLOCKVAL_SUB_CLASS_NONE, NULL); +#endif + } }; ipcClientState * @@ -185,7 +207,11 @@ ipcClientState::Create() if (!cs) return NULL; +#ifndef VBOX_WITH_IPCCLIENT_RW_CS if (!cs->monitor || !cs->targetMap.Init()) +#else + if (!RTCritSectRwIsInitialized(&cs->critSect) || !cs->targetMap.Init()) +#endif { delete cs; return NULL; @@ -201,22 +227,42 @@ static ipcClientState *gClientState; static PRBool GetTarget(const nsID &aTarget, ipcTargetData **td) { +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); return gClientState->targetMap.Get(nsIDHashKey(&aTarget).GetKey(), td); +#else + RTCritSectRwEnterShared(&gClientState->critSect); + PRBool fRc = gClientState->targetMap.Get(nsIDHashKey(&aTarget).GetKey(), td); + RTCritSectRwLeaveShared(&gClientState->critSect); + return fRc; +#endif } static PRBool PutTarget(const nsID &aTarget, ipcTargetData *td) { +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); return gClientState->targetMap.Put(nsIDHashKey(&aTarget).GetKey(), td); +#else + RTCritSectRwEnterExcl(&gClientState->critSect); + PRBool fRc = gClientState->targetMap.Put(nsIDHashKey(&aTarget).GetKey(), td); + RTCritSectRwLeaveExcl(&gClientState->critSect); + return fRc; +#endif } static void DelTarget(const nsID &aTarget) { +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); gClientState->targetMap.Remove(nsIDHashKey(&aTarget).GetKey()); +#else + RTCritSectRwEnterExcl(&gClientState->critSect); + gClientState->targetMap.Remove(nsIDHashKey(&aTarget).GetKey()); + RTCritSectRwLeaveExcl(&gClientState->critSect); +#endif } /* ------------------------------------------------------------------------- */ @@ -804,9 +850,18 @@ IPC_Shutdown() // first, set the shutdown flag and unblock any calls to WaitTarget. // all targets but IPCM will not be able to use WaitTarget any more. +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); +#else + RTCritSectRwEnterExcl(&gClientState->critSect); +#endif + gClientState->shutdown = PR_TRUE; gClientState->targetMap.EnumerateRead(EnumerateTargetMapAndNotify, nsnull); + +#ifdef VBOX_WITH_IPCCLIENT_RW_CS + RTCritSectRwLeaveExcl(&gClientState->critSect); +#endif } // inform all client observers that we're being shutdown to let interested @@ -1289,9 +1344,18 @@ IPC_OnConnectionEnd(nsresult error) // now, go through the target map, and tickle each monitor. that should // unblock any calls to WaitTarget. +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); +#else + RTCritSectRwEnterExcl(&gClientState->critSect); +#endif + gClientState->connected = PR_FALSE; gClientState->targetMap.EnumerateRead(EnumerateTargetMapAndNotify, nsnull); + +#ifdef VBOX_WITH_IPCCLIENT_RW_CS + RTCritSectRwLeaveExcl(&gClientState->critSect); +#endif } /* ------------------------------------------------------------------------- */ @@ -1309,6 +1373,7 @@ PlaceOnPendingQ(const nsID &target, ipcTargetData *td, ipcMessage *msg) td->pendingQ.Append(msg); #ifdef IPC_LOGGING + if (IPC_LOG_ENABLED()) { char *targetStr = target.ToString(); LOG(("placed message on pending queue for target %s and notifying all...\n", targetStr)); @@ -1391,9 +1456,17 @@ IPC_OnMessageAvailable(ipcMessage *msg) // pending event queue. that unblocks all WaitTarget calls (on all // targets) giving them an opportuninty to finish wait cycle because of // the peer client death, when appropriate. +#ifndef VBOX_WITH_IPCCLIENT_RW_CS nsAutoMonitor mon(gClientState->monitor); +#else + RTCritSectRwEnterShared(&gClientState->critSect); +#endif + gClientState->targetMap.EnumerateRead(EnumerateTargetMapAndPlaceMsg, msg); +#ifdef VBOX_WITH_IPCCLIENT_RW_CS + RTCritSectRwLeaveShared(&gClientState->critSect); +#endif delete msg; return; diff --git a/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp b/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp index e9a40271..b20fdd8e 100644 --- a/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp +++ b/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp @@ -1580,7 +1580,7 @@ DConnectStub::AddRefIPC() // DConnectInstance::CreateStub nsrefcnt count = AddRef(); - mRefCntLevels.Push((void *) count); + mRefCntLevels.Push((void *)(uintptr_t) count); return count; } @@ -1981,7 +1981,13 @@ ipcDConnectService::SerializeException(ipcMessageWriter &writer, if (!xcpt) { // write null address +#ifdef VBOX + // see ipcDConnectService::DeserializeException()! + PtrBits bits = 0; + writer.PutBytes(&bits, sizeof(bits)); +#else writer.PutBytes(&xcpt, sizeof(xcpt)); +#endif } else { @@ -2232,10 +2238,13 @@ ipcDConnectService::DeserializeException(ipcMessageReader &reader, DConnectStub::~DConnectStub() { #ifdef IPC_LOGGING - const char *name = NULL; - mIInfo->GetNameShared(&name); - LOG(("{%p} DConnectStub::<dtor>(): peer=%d instance=0x%Lx {%s}\n", - this, mPeerID, mInstance, name)); + if (IPC_LOG_ENABLED()) + { + const char *name = NULL; + mIInfo->GetNameShared(&name); + LOG(("{%p} DConnectStub::<dtor>(): peer=%d instance=0x%Lx {%s}\n", + this, mPeerID, mInstance, name)); + } #endif // release the cached nsISupports instance if it's not the same object @@ -2273,10 +2282,13 @@ DConnectStub::Release() #ifdef IPC_LOGGING - const char *name; - mIInfo->GetNameShared(&name); - LOG(("{%p} DConnectStub::Release(): peer=%d instance=0x%Lx {%s}, new count=%d\n", - this, mPeerID, mInstance, name, count)); + if (IPC_LOG_ENABLED()) + { + const char *name; + mIInfo->GetNameShared(&name); + LOG(("{%p} DConnectStub::Release(): peer=%d instance=0x%Lx {%s}, new count=%d\n", + this, mPeerID, mInstance, name, count)); + } #endif // mRefCntLevels may already be empty here (due to the "stabilize" trick below) @@ -2431,6 +2443,7 @@ DConnectStub::QueryInterface(const nsID &aIID, void **aInstancePtr) // else, we need to query the peer object by making an IPC call #ifdef IPC_LOGGING + if (IPC_LOG_ENABLED()) { const char *name; mIInfo->GetNameShared(&name); @@ -2517,13 +2530,16 @@ DConnectStub::CallMethod(PRUint16 aMethodIndex, PRUint8 i, paramCount = aInfo->GetParamCount(); #ifdef IPC_LOGGING - const char *name; - nsCOMPtr<nsIInterfaceInfo> iinfo; - GetInterfaceInfo(getter_AddRefs(iinfo)); - iinfo->GetNameShared(&name); - LOG((" instance=0x%Lx {%s}\n", mInstance, name)); - LOG((" name=%s\n", aInfo->GetName())); - LOG((" param-count=%u\n", (PRUint32) paramCount)); + if (IPC_LOG_ENABLED()) + { + const char *name; + nsCOMPtr<nsIInterfaceInfo> iinfo; + GetInterfaceInfo(getter_AddRefs(iinfo)); + iinfo->GetNameShared(&name); + LOG((" instance=0x%Lx {%s}\n", mInstance, name)); + LOG((" name=%s\n", aInfo->GetName())); + LOG((" param-count=%u\n", (PRUint32) paramCount)); + } #endif @@ -3006,10 +3022,13 @@ EnumerateInstanceMapAndDelete (const DConnectInstanceKey::Key &aKey, // disregarding the reference counter #ifdef IPC_LOGGING - const char *name; - aData->InterfaceInfo()->GetNameShared(&name); - LOG(("ipcDConnectService: WARNING: deleting unreleased " - "instance=%p iface=%p {%s}\n", aData, aData->RealInstance(), name)); + if (IPC_LOG_ENABLED()) + { + const char *name; + aData->InterfaceInfo()->GetNameShared(&name); + LOG(("ipcDConnectService: WARNING: deleting unreleased " + "instance=%p iface=%p {%s}\n", aData, aData->RealInstance(), name)); + } #endif delete aData; @@ -3251,10 +3270,13 @@ nsresult ipcDConnectService::StoreInstance(DConnectInstance *wrapper) { #ifdef IPC_LOGGING - const char *name; - wrapper->InterfaceInfo()->GetNameShared(&name); - LOG(("ipcDConnectService::StoreInstance(): instance=%p iface=%p {%s}\n", - wrapper, wrapper->RealInstance(), name)); + if (IPC_LOG_ENABLED()) + { + const char *name; + wrapper->InterfaceInfo()->GetNameShared(&name); + LOG(("ipcDConnectService::StoreInstance(): instance=%p iface=%p {%s}\n", + wrapper, wrapper->RealInstance(), name)); + } #endif nsresult rv = mInstanceSet.Put(wrapper); @@ -3276,10 +3298,13 @@ ipcDConnectService::DeleteInstance(DConnectInstance *wrapper, PR_Lock(mLock); #ifdef IPC_LOGGING - const char *name; - wrapper->InterfaceInfo()->GetNameShared(&name); - LOG(("ipcDConnectService::DeleteInstance(): instance=%p iface=%p {%s}\n", - wrapper, wrapper->RealInstance(), name)); + if (IPC_LOG_ENABLED()) + { + const char *name; + wrapper->InterfaceInfo()->GetNameShared(&name); + LOG(("ipcDConnectService::DeleteInstance(): instance=%p iface=%p {%s}\n", + wrapper, wrapper->RealInstance(), name)); + } #endif mInstances.Remove(wrapper->GetKey()); @@ -3318,12 +3343,15 @@ nsresult ipcDConnectService::StoreStub(DConnectStub *stub) { #ifdef IPC_LOGGING - const char *name; - nsCOMPtr<nsIInterfaceInfo> iinfo; - stub->GetInterfaceInfo(getter_AddRefs(iinfo)); - iinfo->GetNameShared(&name); - LOG(("ipcDConnectService::StoreStub(): stub=%p instance=0x%Lx {%s}\n", - stub, stub->Instance(), name)); + if (IPC_LOG_ENABLED()) + { + const char *name; + nsCOMPtr<nsIInterfaceInfo> iinfo; + stub->GetInterfaceInfo(getter_AddRefs(iinfo)); + iinfo->GetNameShared(&name); + LOG(("ipcDConnectService::StoreStub(): stub=%p instance=0x%Lx {%s}\n", + stub, stub->Instance(), name)); + } #endif return mStubs.Put(stub->GetKey(), stub) @@ -3334,12 +3362,15 @@ void ipcDConnectService::DeleteStub(DConnectStub *stub) { #ifdef IPC_LOGGING - const char *name; - nsCOMPtr<nsIInterfaceInfo> iinfo; - stub->GetInterfaceInfo(getter_AddRefs(iinfo)); - iinfo->GetNameShared(&name); - LOG(("ipcDConnectService::DeleteStub(): stub=%p instance=0x%Lx {%s}\n", - stub, stub->Instance(), name)); + if (IPC_LOG_ENABLED()) + { + const char *name; + nsCOMPtr<nsIInterfaceInfo> iinfo; + stub->GetInterfaceInfo(getter_AddRefs(iinfo)); + iinfo->GetNameShared(&name); + LOG(("ipcDConnectService::DeleteStub(): stub=%p instance=0x%Lx {%s}\n", + stub, stub->Instance(), name)); + } #endif // this method is intended to be called only from DConnectStub::Release(). diff --git a/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.cpp b/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.cpp index 00035c8e..340b211c 100644 --- a/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.cpp +++ b/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.cpp @@ -48,10 +48,10 @@ #include "plstr.h" #ifdef VBOX -#if defined(__OS2__) && defined(PAGE_SIZE) -#undef PAGE_SIZE -#endif -#include <iprt/initterm.h> // for RTR3InitDll +# if defined(__OS2__) && defined(PAGE_SIZE) +# undef PAGE_SIZE +# endif +# include <iprt/initterm.h> // for RTR3InitDll #else // !VBOX PRBool ipcLogEnabled = PR_FALSE; #endif // !VBOX @@ -65,21 +65,6 @@ char ipcLogPrefix[10] = {0}; //----------------------------------------------------------------------------- #if defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS) - #if defined(L4ENV) -#include <l4/sys/types.h> -#include <l4/sys/syscalls.h> - -static inline PRUint32 -WritePrefix(char *buf, PRUint32 bufLen) -{ - l4_threadid_t my_id = l4_myself(); - return PR_snprintf(buf, bufLen, "[%u.%u] %s ", - static_cast<unsigned>(my_id.id.task), - static_cast<unsigned>(my_id.id.lthread), - ipcLogPrefix); -} - - #else /* Not L4ENV */ #include <sys/types.h> #include <unistd.h> @@ -91,7 +76,6 @@ WritePrefix(char *buf, PRUint32 bufLen) PR_GetCurrentThread(), ipcLogPrefix); } - #endif /* Not L4ENV */ #endif //----------------------------------------------------------------------------- @@ -121,7 +105,7 @@ IPC_InitLog(const char *prefix) { #ifdef VBOX // initialize VBox Runtime - RTR3InitDll(0); + RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); PL_strncpyz(ipcLogPrefix, prefix, sizeof(ipcLogPrefix)); #else diff --git a/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.h b/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.h index 8d480190..e21f6211 100644 --- a/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.h +++ b/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.h @@ -52,15 +52,15 @@ #ifdef VBOX /* Redefine logging group to IPC */ -#ifdef LOG_GROUP -#undef LOG_GROUP -#endif -#define LOG_GROUP LOG_GROUP_IPC +# ifdef LOG_GROUP +# undef LOG_GROUP +# endif +# define LOG_GROUP LOG_GROUP_IPC /* Ensure log macros are enabled */ -#ifndef LOG_ENABLED -#define LOG_ENABLED -#endif +# ifndef LOG_ENABLED +# define LOG_ENABLED +# endif #include <VBox/log.h> @@ -68,17 +68,18 @@ extern NS_HIDDEN_(void) IPC_InitLog(const char *prefix); extern NS_HIDDEN_(void) IPC_Log(const char *fmt, ...); extern NS_HIDDEN_(void) IPC_LogBinary(const PRUint8 *data, PRUint32 len); -#define IPC_LOG(_args) \ - PR_BEGIN_MACRO \ - IPC_Log _args; \ +# define IPC_LOG(_args) \ + PR_BEGIN_MACRO \ + if (IPC_LOG_ENABLED()) \ + IPC_Log _args; \ PR_END_MACRO /* IPC_Log() internally uses LogFlow() so use LogIsFlowEnabled() below */ -#define IPC_LOG_ENABLED() (LogIsFlowEnabled()) +# define IPC_LOG_ENABLED() (LogIsFlowEnabled()) -#define LOG(args) IPC_LOG(args) +# define LOG(args) IPC_LOG(args) -#else // VBOX +#else /* !VBOX */ extern PRBool ipcLogEnabled; extern NS_HIDDEN_(void) IPC_InitLog(const char *prefix); @@ -95,7 +96,7 @@ extern NS_HIDDEN_(void) IPC_LogBinary(const PRUint8 *data, PRUint32 len); #define LOG(args) IPC_LOG(args) -#endif // VBOX +#endif /* !VBOX */ #else // IPC_LOGGING diff --git a/src/libs/xpcom18a4/java/Makefile.kmk b/src/libs/xpcom18a4/java/Makefile.kmk index 58dfd18a..51053b71 100644 --- a/src/libs/xpcom18a4/java/Makefile.kmk +++ b/src/libs/xpcom18a4/java/Makefile.kmk @@ -173,6 +173,7 @@ $(VBOX_JXPCOM_GEN)/jxpcomglue.list: \ $(call MSG_L1,Generating Java glue files from XIDL) $(QUIET)$(RM) -f $(wildcard $(VBOX_JXPCOM_GEN)/java/glue/*.java) $(QUIET)$(VBOX_XSLTPROC) \ + --stringparam filelistonly "" \ --stringparam G_vboxApiSuffix $(VBOX_API_SUFFIX) \ --stringparam G_vboxGlueStyle xpcom \ --stringparam G_vboxDirPrefix "" \ diff --git a/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp b/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp index 4b3fa5e0..5649c828 100644 --- a/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp +++ b/src/libs/xpcom18a4/java/src/nsJavaInterfaces.cpp @@ -146,7 +146,7 @@ nsresult InitXPCOMVBox_Impl(JNIEnv* env, jobject aVBoxBinDirectory) { #if defined(VBOX_PATH_APP_PRIVATE_ARCH) && defined(VBOX_PATH_SHARED_LIBS) - rv = RTR3InitDll(0); + rv = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); #else const char *pszHome = nsnull; const char *jhome = nsnull; @@ -174,9 +174,9 @@ InitXPCOMVBox_Impl(JNIEnv* env, jobject aVBoxBinDirectory) char *pszExePath = (char *)alloca(cchHome + 32); memcpy(pszExePath, pszHome, cchHome); memcpy(pszExePath + cchHome, "/javafake", sizeof("/javafake")); - rv = RTR3InitEx(RTR3INIT_VER_CUR, RTR3INIT_FLAGS_DLL, 0, NULL, pszExePath); + rv = RTR3InitEx(RTR3INIT_VER_CUR, RTR3INIT_FLAGS_DLL | RTR3INIT_FLAGS_UNOBTRUSIVE, 0, NULL, pszExePath); } else { - rv = RTR3InitDll(0); + rv = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); } if (jhome) @@ -354,13 +354,13 @@ XPCOM_NATIVE(getComponentRegistrar) (JNIEnv *env, jobject) } #ifdef VBOX -# include <VBox/com/EventQueue.h> +# include <VBox/com/NativeEventQueue.h> # include <iprt/err.h> extern "C" NS_EXPORT jint JNICALL XPCOM_NATIVE2(waitForEvents) (JNIEnv *env, jobject, jlong aTimeout) { - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) return -1; @@ -379,7 +379,11 @@ XPCOM_NATIVE2(waitForEvents) (JNIEnv *env, jobject, jlong aTimeout) #endif extern "C" NS_EXPORT jobject JNICALL +#ifdef VBOX +XPCOM_NATIVE2(getServiceManager) (JNIEnv *env, jobject) +#else XPCOM_NATIVE(getServiceManager) (JNIEnv *env, jobject) +#endif { // Call XPCOM method nsCOMPtr<nsIServiceManager> sm; diff --git a/src/libs/xpcom18a4/java/src/nsJavaWrapper.cpp b/src/libs/xpcom18a4/java/src/nsJavaWrapper.cpp index 35b59b6d..19436f14 100644 --- a/src/libs/xpcom18a4/java/src/nsJavaWrapper.cpp +++ b/src/libs/xpcom18a4/java/src/nsJavaWrapper.cpp @@ -1006,7 +1006,7 @@ FinalizeParams(JNIEnv *env, const nsXPTParamInfo &aParamInfo, PRUint8 aType, aVariant.val.u8; if (aParamInfo.IsRetval() && !aIsArrayElement) { *aParam = env->NewObject(shortClass, shortInitMID, value); - } else if ((aParamInfo.IsOut() || aIsArrayElement) && aParam) { + } else if ((aParamInfo.IsOut() || aIsArrayElement) && *aParam) { env->SetShortArrayRegion((jshortArray) *aParam, aIndex, 1, &value); } } @@ -1495,7 +1495,7 @@ static void makeErrorMessage(nsresult r, char* msg, size_t msgSize) if (NS_SUCCEEDED (rc)) { nsCOMPtr <nsIException> ex; - rc = em->GetExceptionFromProvider(r, NULL, getter_AddRefs (ex)); + rc = em->GetCurrentException(getter_AddRefs (ex)); if (NS_SUCCEEDED (rc) && ex) { nsXPIDLCString emsg; @@ -1753,8 +1753,9 @@ JAVAPROXY_NATIVE(callXPCOMMethod) (JNIEnv *env, jclass that, jobject aJavaProxy, } jobject* javaElement; + jobject element = nsnull; if (!paramInfo.IsRetval()) { - jobject element = env->GetObjectArrayElement(aParams, i); + element = env->GetObjectArrayElement(aParams, i); javaElement = &element; } else { javaElement = &result; diff --git a/src/libs/xpcom18a4/java/src/nsThreadUtils.h b/src/libs/xpcom18a4/java/src/nsThreadUtils.h index 9c6a0efd..53f3dbdb 100644 --- a/src/libs/xpcom18a4/java/src/nsThreadUtils.h +++ b/src/libs/xpcom18a4/java/src/nsThreadUtils.h @@ -50,11 +50,11 @@ do_GetMainThread() { return already_AddRefed<nsIThread>(thread); } -#include "VBox/com/EventQueue.h" +#include "VBox/com/NativeEventQueue.h" inline already_AddRefed<nsIEventQueue> do_GetMainThreadQueue() { - com::EventQueue* eq = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* eq = com::NativeEventQueue::getMainEventQueue(); NS_ASSERTION(eq != nsnull, "Must be valid"); return eq->getIEventQueue(); } diff --git a/src/libs/xpcom18a4/java/src/org/mozilla/xpcom/XPCOMException.java b/src/libs/xpcom18a4/java/src/org/mozilla/xpcom/XPCOMException.java index 44636d54..9eca58f6 100644 --- a/src/libs/xpcom18a4/java/src/org/mozilla/xpcom/XPCOMException.java +++ b/src/libs/xpcom18a4/java/src/org/mozilla/xpcom/XPCOMException.java @@ -87,7 +87,7 @@ public class XPCOMException extends RuntimeException { * @param message detailed message of exception */ public XPCOMException(long code, String message) { - super(message + " (0x" + Long.toHexString(code) + ")"); + super(message + " (0x" + Long.toHexString(code) + ")"); this.errorcode = code; } diff --git a/src/libs/xpcom18a4/java/tools/genjifaces.xsl b/src/libs/xpcom18a4/java/tools/genjifaces.xsl index 9dc7901b..3910de73 100644 --- a/src/libs/xpcom18a4/java/tools/genjifaces.xsl +++ b/src/libs/xpcom18a4/java/tools/genjifaces.xsl @@ -7,9 +7,9 @@ <!-- genjifaces.xsl: - XSLT stylesheet that generates Java XPCOM bridge intreface code from VirtualBox.xidl. + XSLT stylesheet that generates Java XPCOM bridge interface code from VirtualBox.xidl. - Copyright (C) 2010 Oracle Corporation + Copyright (C) 2010-2013 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; @@ -67,7 +67,7 @@ <xsl:template name="fileheader"> <xsl:param name="name" /> <xsl:text>/** - * Copyright (C) 2010 Oracle Corporation + * Copyright (C) 2010-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -119,16 +119,14 @@ public interface nsISupports "{00000000-0000-0000-c000-000000000046}"; public nsISupports queryInterface(String arg1); - } - ]]></xsl:text> <xsl:call-template name="endFile"> <xsl:with-param name="file" select="'nsISupports.java'" /> </xsl:call-template> -<xsl:call-template name="startFile"> + <xsl:call-template name="startFile"> <xsl:with-param name="file" select="'nsIComponentManager.java'" /> </xsl:call-template> @@ -146,14 +144,13 @@ public interface nsIComponentManager extends nsISupports public nsISupports createInstanceByContractID(String arg1, nsISupports arg2, String arg3); } - ]]></xsl:text> <xsl:call-template name="endFile"> <xsl:with-param name="file" select="'nsIComponentManager.java'" /> </xsl:call-template> -<xsl:call-template name="startFile"> + <xsl:call-template name="startFile"> <xsl:with-param name="file" select="'nsIServiceManager.java'" /> </xsl:call-template> @@ -171,14 +168,67 @@ public interface nsIServiceManager extends nsISupports public boolean isServiceInstantiatedByContractID(String arg1, String arg2); } - ]]></xsl:text> <xsl:call-template name="endFile"> <xsl:with-param name="file" select="'nsIServiceManager.java'" /> </xsl:call-template> -<xsl:call-template name="startFile"> + <xsl:call-template name="startFile"> + <xsl:with-param name="file" select="'nsIExceptionManager.java'" /> + </xsl:call-template> + + <xsl:text><![CDATA[ +public interface nsIExceptionManager extends nsISupports +{ + public static final String NS_IEXCEPTIONMANAGER_IID = + "{efc9d00b-231c-4feb-852c-ac017266a415}"; + + public nsIException getCurrentException(); +} +]]></xsl:text> + + <xsl:call-template name="endFile"> + <xsl:with-param name="file" select="'nsISupports.java'" /> + </xsl:call-template> + + <xsl:call-template name="startFile"> + <xsl:with-param name="file" select="'nsIExceptionService.java'" /> + </xsl:call-template> + + <xsl:text><![CDATA[ +public interface nsIExceptionService extends nsIExceptionManager +{ + public static final String NS_IEXCEPTIONSERVICE_IID = + "{35a88f54-f267-4414-92a7-191f6454ab52}"; + + public nsIExceptionManager getCurrentExceptionManager(); +} +]]></xsl:text> + + <xsl:call-template name="endFile"> + <xsl:with-param name="file" select="'nsISupports.java'" /> + </xsl:call-template> + + <xsl:call-template name="startFile"> + <xsl:with-param name="file" select="'nsIException.java'" /> + </xsl:call-template> + + <xsl:text><![CDATA[ +public interface nsIException extends nsISupports +{ + public static final String NS_IEXCEPTION_IID = + "{f3a8d3b4-c424-4edc-8bf6-8974c983ba78}"; + + // No methods - placeholder +} +]]></xsl:text> + + <xsl:call-template name="endFile"> + <xsl:with-param name="file" select="'nsISupports.java'" /> + </xsl:call-template> + + <xsl:call-template name="startFile"> <xsl:with-param name="file" select="'nsIComponentRegistrar.java'" /> </xsl:call-template> @@ -190,7 +240,6 @@ public interface nsIComponentRegistrar extends nsISupports // No methods - placeholder } - ]]></xsl:text> <xsl:call-template name="endFile"> @@ -198,7 +247,7 @@ public interface nsIComponentRegistrar extends nsISupports </xsl:call-template> -<xsl:call-template name="startFile"> + <xsl:call-template name="startFile"> <xsl:with-param name="file" select="'nsIFile.java'" /> </xsl:call-template> @@ -210,14 +259,13 @@ public interface nsIFile extends nsISupports // No methods - placeholder } - ]]></xsl:text> <xsl:call-template name="endFile"> <xsl:with-param name="file" select="'nsIFile.java'" /> </xsl:call-template> -<xsl:call-template name="startFile"> + <xsl:call-template name="startFile"> <xsl:with-param name="file" select="'nsILocalFile.java'" /> </xsl:call-template> @@ -229,7 +277,6 @@ public interface nsILocalFile extends nsIFile // No methods - placeholder } - ]]></xsl:text> <xsl:call-template name="endFile"> diff --git a/src/libs/xpcom18a4/nsprpub/pr/include/md/_iprt_atomic.h b/src/libs/xpcom18a4/nsprpub/pr/include/md/_iprt_atomic.h index 94960497..fd5ce610 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/include/md/_iprt_atomic.h +++ b/src/libs/xpcom18a4/nsprpub/pr/include/md/_iprt_atomic.h @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Oracle Corporation + * Copyright (C) 2009-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.cfg b/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.cfg deleted file mode 100644 index 2557161d..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.cfg +++ /dev/null @@ -1,661 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef nspr_cpucfg___ -#define nspr_cpucfg___ - -#ifndef XP_UNIX -#define XP_UNIX -#endif - -#ifndef L4ENV -#define L4ENV -#endif - -#define PR_AF_INET6 10 /* same as AF_INET6 */ - -#ifdef __powerpc__ - -#undef IS_LITTLE_ENDIAN -#define IS_BIG_ENDIAN 1 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__alpha) - -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN -#define IS_64 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 8 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 8 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 64 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 64 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 6 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 6 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 8 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 8 -#define PR_ALIGN_OF_WORD 8 - -#define PR_BYTES_PER_WORD_LOG2 3 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__ia64__) - -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN -#define IS_64 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 8 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 8 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 64 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 64 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 6 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 6 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 8 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 8 -#define PR_ALIGN_OF_WORD 8 - -#define PR_BYTES_PER_WORD_LOG2 3 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__x86_64__) - -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN -#define IS_64 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 8 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 8 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 64 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 64 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 6 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 6 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 8 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 8 -#define PR_ALIGN_OF_WORD 8 - -#define PR_BYTES_PER_WORD_LOG2 3 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__mc68000__) - -#undef IS_LITTLE_ENDIAN -#define IS_BIG_ENDIAN 1 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 2 -#define PR_ALIGN_OF_LONG 2 -#define PR_ALIGN_OF_INT64 2 -#define PR_ALIGN_OF_FLOAT 2 -#define PR_ALIGN_OF_DOUBLE 2 -#define PR_ALIGN_OF_POINTER 2 -#define PR_ALIGN_OF_WORD 2 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__sparc__) - -#undef IS_LITTLE_ENDIAN -#define IS_BIG_ENDIAN 1 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__i386__) - -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 4 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 4 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__mips__) - -#ifdef __MIPSEB__ -#define IS_BIG_ENDIAN 1 -#undef IS_LITTLE_ENDIAN -#elif defined(__MIPSEL__) -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN -#else -#error "Unknown MIPS endianness." -#endif - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__arm__) - -#define IS_LITTLE_ENDIAN 1 -#undef IS_BIG_ENDIAN - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 4 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 4 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__hppa__) - -#undef IS_LITTLE_ENDIAN -#define IS_BIG_ENDIAN 1 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__s390__) - -#define IS_BIG_ENDIAN 1 -#undef IS_LITTLE_ENDIAN - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 4 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 4 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 32 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 32 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 5 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 5 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 4 -#define PR_ALIGN_OF_INT64 4 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 4 -#define PR_ALIGN_OF_POINTER 4 -#define PR_ALIGN_OF_WORD 4 - -#define PR_BYTES_PER_WORD_LOG2 2 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#elif defined(__s390x__) - -#define IS_BIG_ENDIAN 1 -#undef IS_LITTLE_ENDIAN -#define IS_64 - -#define PR_BYTES_PER_BYTE 1 -#define PR_BYTES_PER_SHORT 2 -#define PR_BYTES_PER_INT 4 -#define PR_BYTES_PER_INT64 8 -#define PR_BYTES_PER_LONG 8 -#define PR_BYTES_PER_FLOAT 4 -#define PR_BYTES_PER_DOUBLE 8 -#define PR_BYTES_PER_WORD 8 -#define PR_BYTES_PER_DWORD 8 - -#define PR_BITS_PER_BYTE 8 -#define PR_BITS_PER_SHORT 16 -#define PR_BITS_PER_INT 32 -#define PR_BITS_PER_INT64 64 -#define PR_BITS_PER_LONG 64 -#define PR_BITS_PER_FLOAT 32 -#define PR_BITS_PER_DOUBLE 64 -#define PR_BITS_PER_WORD 64 - -#define PR_BITS_PER_BYTE_LOG2 3 -#define PR_BITS_PER_SHORT_LOG2 4 -#define PR_BITS_PER_INT_LOG2 5 -#define PR_BITS_PER_INT64_LOG2 6 -#define PR_BITS_PER_LONG_LOG2 6 -#define PR_BITS_PER_FLOAT_LOG2 5 -#define PR_BITS_PER_DOUBLE_LOG2 6 -#define PR_BITS_PER_WORD_LOG2 6 - -#define PR_ALIGN_OF_SHORT 2 -#define PR_ALIGN_OF_INT 4 -#define PR_ALIGN_OF_LONG 8 -#define PR_ALIGN_OF_INT64 8 -#define PR_ALIGN_OF_FLOAT 4 -#define PR_ALIGN_OF_DOUBLE 8 -#define PR_ALIGN_OF_POINTER 8 -#define PR_ALIGN_OF_WORD 8 - -#define PR_BYTES_PER_WORD_LOG2 3 -#define PR_BYTES_PER_DWORD_LOG2 3 - -#else - -#error "Unknown CPU architecture" - -#endif - -#define HAVE_LONG_LONG -#if PR_ALIGN_OF_DOUBLE == 8 -#define HAVE_ALIGNED_DOUBLES -#endif -#if PR_ALIGN_OF_INT64 == 8 -#define HAVE_ALIGNED_LONGLONGS -#endif - -#ifndef NO_NSPR_10_SUPPORT - -#define BYTES_PER_BYTE PR_BYTES_PER_BYTE -#define BYTES_PER_SHORT PR_BYTES_PER_SHORT -#define BYTES_PER_INT PR_BYTES_PER_INT -#define BYTES_PER_INT64 PR_BYTES_PER_INT64 -#define BYTES_PER_LONG PR_BYTES_PER_LONG -#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT -#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE -#define BYTES_PER_WORD PR_BYTES_PER_WORD -#define BYTES_PER_DWORD PR_BYTES_PER_DWORD - -#define BITS_PER_BYTE PR_BITS_PER_BYTE -#define BITS_PER_SHORT PR_BITS_PER_SHORT -#define BITS_PER_INT PR_BITS_PER_INT -#define BITS_PER_INT64 PR_BITS_PER_INT64 -#define BITS_PER_LONG PR_BITS_PER_LONG -#define BITS_PER_FLOAT PR_BITS_PER_FLOAT -#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE -#define BITS_PER_WORD PR_BITS_PER_WORD - -#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2 -#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2 -#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2 -#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2 -#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2 -#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2 -#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2 -#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2 - -#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT -#define ALIGN_OF_INT PR_ALIGN_OF_INT -#define ALIGN_OF_LONG PR_ALIGN_OF_LONG -#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64 -#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT -#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE -#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER -#define ALIGN_OF_WORD PR_ALIGN_OF_WORD - -#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2 -#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2 -#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2 - -#endif /* NO_NSPR_10_SUPPORT */ - -#endif /* nspr_cpucfg___ */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.h b/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.h deleted file mode 100644 index b05a844d..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/include/md/_l4v2.h +++ /dev/null @@ -1,838 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef nspr_l4v2_defs_h___ -#define nspr_l4v2_defs_h___ - -/** - * I have "#if 0"ed a lot of this out, and plan to add most of it manually as the - * compiler complains about it in order to get a better idea of what is here and - * what it does. Not to mention which bits are needed by the runtime itself, and - * which only by the unix port. - */ - -#include "prthread.h" - -/* - * Internal configuration macros - */ - -#define PR_LINKER_ARCH "l4v2" -#define _PR_SI_SYSNAME "L4ENV" -#define _PR_SI_ARCHITECTURE "x86" -#define PR_DLL_SUFFIX ".s.so" - -#define _PR_VMBASE 0x30000000 /* not used */ -#define _PR_STACK_VMBASE 0x50000000 /* only used in an unused fn */ -#define _MD_DEFAULT_STACK_SIZE 65536L -#define _MD_MMAP_FLAGS MAP_PRIVATE - -#undef HAVE_STACK_GROWING_UP - -/* - * L4env supports dl* functions - */ -#define HAVE_DLL -#define USE_DLFCN - -#define USE_SETJMP -#undef _PR_USE_POLL -#define _PR_STAT_HAS_ONLY_ST_ATIME -#define _PR_HAVE_OFF64_T - -#include <setjmp.h> - -#define PR_CONTEXT_TYPE jmp_buf - -#define CONTEXT(_th) ((_th)->md.context) - -/* Now come the things specifically added for the l4v2 target */ - -/* Don't know quite what this means yet, except that we don't have "it" */ -/* #define TCP_NODELAY _PR_NO_SUCH_SOCKOPT */ - -/* And what is this? Something to do with memory... Used in - xpcom18a4/nsprpub/pr/src/memory/prseg.c */ -/** - * definitions and macros for l4env/memory.c - */ - -struct _MDSegment { - PRInt8 notused; -}; - - -extern void -_MD_InitSegs(void); -#define _MD_INIT_SEGS _MD_InitSegs - -extern PRStatus -_MD_AllocSegment(PRSegment *seg, PRUint32 size, void *vaddr); -#define _MD_ALLOC_SEGMENT _MD_AllocSegment - -extern void -_MD_FreeSegment(PRSegment *seg); -#define _MD_FREE_SEGMENT _MD_FreeSegment - -/** - * definitions and macros for l4env/clock.c - */ -extern void -_MD_IntervalInit(void); -#define _MD_INTERVAL_INIT() - -/** - * definitions and macros for l4env/l4env.c - */ - -/* See xpcom18a4/nsprpub/pr/src/misc/prinit.c regarding the following function */ -extern void -_MD_EarlyInit(void); -#define _MD_EARLY_INIT() _MD_EarlyInit() - -extern void -_MD_StartInterrupts(void); - -extern void -_MD_StopInterrupts(void); - -extern void -_MD_DisableClockInterrupts(void); - -extern void -_MD_EnableClockInterrupts(void); - -extern void -_MD_BlockClockInterrupts(void); - -extern void -_MD_UnblockClockInterrupts(void); - -#define __USE_SVID /* for now, to get putenv */ -#include <stdlib.h> - -/** - * definitions and macros for l4env/atomic.c - */ -#if defined(__i386__) -#define _PR_HAVE_ATOMIC_OPS -#define _MD_INIT_ATOMIC() - -extern PRInt32 -_PR_x86_AtomicIncrement(PRInt32 *val); -#define _MD_ATOMIC_INCREMENT _PR_x86_AtomicIncrement - -extern PRInt32 -_PR_x86_AtomicDecrement(PRInt32 *val); -#define _MD_ATOMIC_DECREMENT _PR_x86_AtomicDecrement - -extern PRInt32 -_PR_x86_AtomicAdd(PRInt32 *ptr, PRInt32 val); - -#define _MD_ATOMIC_ADD _PR_x86_AtomicAdd -extern PRInt32 -_PR_x86_AtomicSet(PRInt32 *val, PRInt32 newval); -#define _MD_ATOMIC_SET _PR_x86_AtomicSet -#endif - -/** - * definitions and macros for l4env/threads.c - */ -#define _PR_LOCAL_THREADS_ONLY -#if 0 -struct _MDThread { - PRInt8 notused; -}; - -struct _MDThreadStack { - PRInt8 notused; -}; -#endif /* 0 */ - -#ifndef _PR_LOCAL_THREADS_ONLY -extern PR_IMPLEMENT(PRThread*) -PR_GetCurrentThread(void); -#define _MD_CURRENT_THREAD() PR_GetCurrentThread() -#endif /* _PR_LOCAL_THREADS_ONLY */ - -#define _MD_EXIT_THREAD(thread) - -#ifndef _PR_LOCAL_THREADS_ONLY -extern PR_IMPLEMENT(struct _PRCPU *) -PR_GetCurrentCPU(void); -#define _MD_CURRENT_CPU() PR_GetCurrentCPU() -#endif /* _PR_LOCAL_THREADS_ONLY */ - -#if 0 -#define _L4_GET_NUMBER_OF_CPUS() 1 -#define _MD_SET_INTSOFF(_val) -#define _MD_GET_INTSOFF() 1 -#endif /* 0 */ - -#if 0 /* these are the Win32 versions of the above macros - all other versions are defined - as here. */ -#define _MD_GET_INTSOFF() \ - (_pr_use_static_tls ? _pr_ints_off \ - : (PRUintn) TlsGetValue(_pr_intsOffIndex)) - -#define _MD_SET_INTSOFF(_val) \ - PR_BEGIN_MACRO \ - if (_pr_use_static_tls) { \ - _pr_ints_off = (_val); \ - } else { \ - TlsSetValue(_pr_intsOffIndex, (LPVOID) (_val)); \ - } \ - PR_END_MACRO -#endif /* 0 */ - -/** - * definitions and macros for file l4env/mmap.c - */ - -/* Memory-mapped files */ - -extern PRStatus -_MD_CreateFileMap(struct PRFileMap *fmap, PRInt64 size); -#define _MD_CREATE_FILE_MAP _MD_CreateFileMap - -extern PRStatus -_MD_CloseFileMap(struct PRFileMap *fmap); -#define _MD_CLOSE_FILE_MAP _MD_CloseFileMap - -#define _MD_GET_MEM_MAP_ALIGNMENT() PR_GetPageSize() - -extern void * -_MD_MemMap(struct PRFileMap *fmap, PRInt64 offset, - PRUint32 len); -#define _MD_MEM_MAP _MD_MemMap - -extern PRStatus -_MD_MemUnmap(void *addr, PRUint32 size); -#define _MD_MEM_UNMAP _MD_MemUnmap - -/** - * definitions and macros for file l4env/fileio.c - */ -#define PR_DIRECTORY_SEPARATOR '/' -#define PR_DIRECTORY_SEPARATOR_STR "/" -#define PR_PATH_SEPARATOR ':' -#define PR_PATH_SEPARATOR_STR ":" -#define GCPTR - -#if 0 -typedef int (*FARPROC)(); /* Where is this used? */ -#endif - -extern PRInt32 -_MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); -#define _MD_WRITE(fd,buf,amount) _MD_write(fd,buf,amount) - -extern void -_MD_query_fd_inheritable(PRFileDesc *fd); -#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable - -/** - * definitions and macros for file l4env/sockets.c - */ -extern PRStatus -_MD_getsockopt(PRFileDesc *fd, PRInt32 level, - PRInt32 optname, char* optval, PRInt32* optlen); -#define _MD_GETSOCKOPT _MD_getsockopt -extern PRStatus -_MD_setsockopt(PRFileDesc *fd, PRInt32 level, - PRInt32 optname, const char* optval, PRInt32 optlen); -#define _MD_SETSOCKOPT _MD_setsockopt - -extern PRStatus -_MD_gethostname(char *name, PRUint32 namelen); -#define _MD_GETHOSTNAME _MD_gethostname - -/** - * definitions and macros for file l4env/locks.c - */ -struct _MDSemaphore { - PRInt8 notused; -}; - -struct _MDCVar { - PRInt8 notused; -}; - -struct _MDLock { - int unused; -}; - - -/* Intel based Linux, err sorry, L4 */ -#define _MD_GET_SP(_t) CONTEXT(_t)[0].__jmpbuf[JB_SP] -#define _MD_SET_FP(_t, val) (CONTEXT(_t)[0].__jmpbuf[JB_BP] = val) -#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t)) -#define _MD_GET_FP_PTR(_t) &(CONTEXT(_t)[0].__jmpbuf[JB_BP]) -#define _MD_SP_TYPE __ptr_t -#define PR_NUM_GCREGS 6 - -/* -** Initialize a thread context to run "_main()" when started -*/ -#define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \ -{ \ - *status = PR_TRUE; \ - if (sigsetjmp(CONTEXT(_thread), 1)) { \ - _main(); \ - } \ - _MD_GET_SP(_thread) = (_MD_SP_TYPE) ((_sp) - 64); \ - _thread->md.sp = _MD_GET_SP_PTR(_thread); \ - _thread->md.fp = _MD_GET_FP_PTR(_thread); \ - _MD_SET_FP(_thread, 0); \ -} - -#define _MD_SWITCH_CONTEXT(_thread) \ - if (!sigsetjmp(CONTEXT(_thread), 1)) { \ - (_thread)->md.errcode = errno; \ - _PR_Schedule(); \ - } - -/* -** Restore a thread context, saved by _MD_SWITCH_CONTEXT -*/ -#define _MD_RESTORE_CONTEXT(_thread) \ -{ \ - errno = (_thread)->md.errcode; \ - _MD_SET_CURRENT_THREAD(_thread); \ - siglongjmp(CONTEXT(_thread), 1); \ -} - -/* Machine-dependent (MD) data structures */ - -struct _MDThread { - PR_CONTEXT_TYPE context; -/* The next two are purely for debugging purposes */ - int sp; - int fp; - int id; - int errcode; -}; - -struct _MDThreadStack { - PRInt8 notused; -}; - - -/* - * md-specific cpu structure field - */ - -#include <sys/time.h> /* for FD_SETSIZE */ -#define _PR_MD_MAX_OSFD FD_SETSIZE - -struct _MDCPU_Unix { - PRCList ioQ; - PRUint32 ioq_timeout; - PRInt32 ioq_max_osfd; - PRInt32 ioq_osfd_cnt; -#ifndef _PR_USE_POLL - fd_set fd_read_set, fd_write_set, fd_exception_set; - PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD], - fd_exception_cnt[_PR_MD_MAX_OSFD]; -#else - struct pollfd *ioq_pollfds; - int ioq_pollfds_size; -#endif /* _PR_USE_POLL */ -}; - -#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ) -#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu)) -#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set) -#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt) -#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set) -#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt) -#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set) -#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt) -#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout) -#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd) -#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt) -#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds) -#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size) - -#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32 - -struct _MDCPU { - struct _MDCPU_Unix md_unix; -}; - -#define _MD_INIT_LOCKS() -#define _MD_NEW_LOCK(lock) PR_SUCCESS -#define _MD_FREE_LOCK(lock) -#define _MD_LOCK(lock) -#define _MD_UNLOCK(lock) -#define _MD_INIT_IO() -#define _MD_IOQ_LOCK() -#define _MD_IOQ_UNLOCK() - -#if 0 -extern PRStatus _MD_InitializeThread(PRThread *thread); -#endif /* 0 */ - -#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu) - -#define _MD_INIT_THREAD _MD_InitializeThread - -#if 0 -#define _MD_EXIT_THREAD(thread) -#define _MD_SUSPEND_THREAD(thread) _MD_suspend_thread -#define _MD_RESUME_THREAD(thread) _MD_resume_thread -#endif /* 0 */ - -#define _MD_CLEAN_THREAD(_thread) - -#if 0 -extern PRStatus _MD_CREATE_THREAD( - PRThread *thread, - void (*start) (void *), - PRThreadPriority priority, - PRThreadScope scope, - PRThreadState state, - PRUint32 stackSize); -extern void _MD_SET_PRIORITY(struct _MDThread *thread, PRUintn newPri); -#endif /* 0 */ - -extern PRStatus _MD_WAIT(PRThread *, PRIntervalTime timeout); -extern PRStatus _MD_WAKEUP_WAITER(PRThread *); - -#if 0 -extern void _MD_YIELD(void); - -extern void _MD_EarlyInit(void); -#endif /* 0 */ - -extern PRIntervalTime _PR_UNIX_GetInterval(void); -extern PRIntervalTime _PR_UNIX_TicksPerSecond(void); - -#if 0 -#define _MD_EARLY_INIT _MD_EarlyInit -#endif /* 0 */ -#define _MD_FINAL_INIT _PR_UnixInit -#define _MD_GET_INTERVAL _PR_UNIX_GetInterval -#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond - -/* - * We wrapped the select() call. _MD_SELECT refers to the built-in, - * unwrapped version. - */ -#if 0 -#define _MD_SELECT __select -#else -#define _MD_SELECT select -#endif - -#ifdef _PR_POLL_AVAILABLE -#include <sys/poll.h> -extern int __syscall_poll(struct pollfd *ufds, unsigned long int nfds, - int timeout); -#define _MD_POLL __syscall_poll -#endif - -#if 0 -/* For writev() */ -#include <sys/uio.h> - -extern void _MD_l4_map_sendfile_error(int err); - -#include <sys/types.h> -#include <dirent.h> - -#include "prio.h" -#include "prmem.h" -#include "prclist.h" -#endif /* 0 */ - -#if 0 -/* - * intervals at which GLOBAL threads wakeup to check for pending interrupt - */ -#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -extern PRIntervalTime intr_timeout_ticks; - -#define _PR_POLLQUEUE_PTR(_qp) \ - ((PRPollQueue*) ((char*) (_qp) - offsetof(PRPollQueue,links))) - -extern void _PR_Unblock_IO_Wait(struct PRThread *thr); - -#endif /* 0 */ - -#if 0 - -struct _MDDir { - DIR *d; -}; - -struct _PRCPU; -#endif /* 0 */ - -/* -** Make a redzone at both ends of the stack segment. Disallow access -** to those pages of memory. It's ok if the mprotect call's don't -** work - it just means that we don't really have a functional -** redzone. -*/ -#if 0 -#include <sys/mman.h> -#ifndef PROT_NONE -#define PROT_NONE 0x0 -#endif - -#define _MD_INIT_STACK(ts,REDZONE) -#define _MD_CLEAR_STACK(ts) - -#define PR_SET_INTSOFF(newval) -#endif - -#if 0 - -struct PRProcess; -struct PRProcessAttr; - -/* Create a new process (fork() + exec()) */ -#define _MD_CREATE_PROCESS _MD_l4CreateProcess - /* When the compiler complains about this, we will do something about it. */ - -#define _MD_DETACH_PROCESS _MD_l4DetachProcess - -/* Wait for a child process to terminate */ -#define _MD_WAIT_PROCESS _MD_l4WaitProcess - -#define _MD_KILL_PROCESS _MD_l4KillProcess -#endif - -/************************************************************************/ - -#if 0 -extern void _MD_EnableClockInterrupts(void); -extern void _MD_DisableClockInterrupts(void); - -#define _MD_START_INTERRUPTS _MD_StartInterrupts -#define _MD_STOP_INTERRUPTS _MD_StopInterrupts -#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_DisableClockInterrupts -#define _MD_ENABLE_CLOCK_INTERRUPTS _MD_EnableClockInterrupts -#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_BlockClockInterrupts -#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_UnblockClockInterrupts -#endif - -/************************************************************************/ - -#if 0 -extern void _MD_InitCPUS(void); -#define _MD_INIT_CPUS _MD_InitCPUS - -extern void _MD_Wakeup_CPUs(void); -#define _MD_WAKEUP_CPUS _MD_Wakeup_CPUs - -#define _MD_PAUSE_CPU _MD_PauseCPU - -#if defined(_PR_LOCAL_THREADS_ONLY) || defined(_PR_GLOBAL_THREADS_ONLY) -#define _MD_CLEANUP_BEFORE_EXIT() -#endif - -#define _MD_EXIT(status) _exit(status) -#endif - -/************************************************************************/ - -#if 0 -#define _MD_GET_ENV getenv -#define _MD_PUT_ENV putenv -#endif /* 0 */ - -/************************************************************************/ - -#if 0 -#define _MD_INIT_FILEDESC(fd) - -extern void _MD_MakeNonblock(PRFileDesc *fd); -#define _MD_MAKE_NONBLOCK _MD_MakeNonblock -#endif - -/************************************************************************/ - -#if 0 -#if !defined(_PR_PTHREADS) - -extern void _MD_InitSegs(void); -extern PRStatus _MD_AllocSegment(PRSegment *seg, PRUint32 size, - void *vaddr); -extern void _MD_FreeSegment(PRSegment *seg); - -#define _MD_INIT_SEGS _MD_InitSegs -#define _MD_ALLOC_SEGMENT _MD_AllocSegment -#define _MD_FREE_SEGMENT _MD_FreeSegment - -#endif /* !defined(_PR_PTHREADS) */ -#endif /* 0 */ - -/************************************************************************/ - -#if 0 -#define _MD_INTERVAL_INIT() -#define _MD_INTERVAL_PER_MILLISEC() (_PR_MD_INTERVAL_PER_SEC() / 1000) -#define _MD_INTERVAL_PER_MICROSEC() (_PR_MD_INTERVAL_PER_SEC() / 1000000) -#endif - -/************************************************************************/ - -#if 0 -#define _MD_ERRNO() (errno) -#define _MD_GET_SOCKET_ERROR() (errno) -#endif - -/************************************************************************/ - -#if 0 -extern PRInt32 _MD_AvailableSocket(PRInt32 osfd); - -extern void _MD_StartInterrupts(void); -extern void _MD_StopInterrupts(void); -extern void _MD_DisableClockInterrupts(void); -extern void _MD_BlockClockInterrupts(void); -extern void _MD_UnblockClockInterrupts(void); -extern void _MD_PauseCPU(PRIntervalTime timeout); -#endif /* 0 */ - -#if 0 -extern PRStatus _MD_open_dir(struct _MDDir *, const char *); -extern PRInt32 _MD_close_dir(struct _MDDir *); -extern char * _MD_read_dir(struct _MDDir *, PRIntn); -extern PRInt32 _MD_open(const char *name, PRIntn osflags, PRIntn mode); -extern PRInt32 _MD_delete(const char *name); -extern PRInt32 _MD_getfileinfo(const char *fn, PRFileInfo *info); -extern PRInt32 _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); -extern PRInt32 _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); -extern PRInt32 _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); -extern PRInt32 _MD_rename(const char *from, const char *to); -extern PRInt32 _MD_access(const char *name, PRAccessHow how); -extern PRInt32 _MD_mkdir(const char *name, PRIntn mode); -extern PRInt32 _MD_rmdir(const char *name); -extern PRInt32 _MD_accept_read(PRInt32 sock, PRInt32 *newSock, - PRNetAddr **raddr, void *buf, PRInt32 amount); -extern PRInt32 _PR_UnixSendFile(PRFileDesc *sd, PRSendFileData *sfd, - PRTransmitFileFlags flags, PRIntervalTime timeout); - -extern PRStatus _MD_LockFile(PRInt32 osfd); -extern PRStatus _MD_TLockFile(PRInt32 osfd); -extern PRStatus _MD_UnlockFile(PRInt32 osfd); - -#define _MD_OPEN_DIR(dir, name) _MD_open_dir(dir, name) -#define _MD_CLOSE_DIR(dir) _MD_close_dir(dir) -#define _MD_READ_DIR(dir, flags) _MD_read_dir(dir, flags) -#define _MD_OPEN(name, osflags, mode) _MD_open(name, osflags, mode) -#define _MD_OPEN_FILE(name, osflags, mode) _MD_open(name, osflags, mode) -extern PRInt32 _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); -#define _MD_READ(fd,buf,amount) _MD_read(fd,buf,amount) -extern PRInt32 _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); -#define _MD_WRITE(fd,buf,amount) _MD_write(fd,buf,amount) -#define _MD_DELETE(name) _MD_delete(name) -#define _MD_GETFILEINFO(fn, info) _MD_getfileinfo(fn, info) -#define _MD_GETFILEINFO64(fn, info) _MD_getfileinfo64(fn, info) -#define _MD_GETOPENFILEINFO(fd, info) _MD_getopenfileinfo(fd, info) -#define _MD_GETOPENFILEINFO64(fd, info) _MD_getopenfileinfo64(fd, info) -#define _MD_RENAME(from, to) _MD_rename(from, to) -#define _MD_ACCESS(name, how) _MD_access(name, how) -#define _MD_MKDIR(name, mode) _MD_mkdir(name, mode) -#define _MD_MAKE_DIR(name, mode) _MD_mkdir(name, mode) -#define _MD_RMDIR(name) _MD_rmdir(name) -#define _MD_ACCEPT_READ(sock, newSock, raddr, buf, amount) _MD_accept_read(sock, newSock, raddr, buf, amount) - -#define _MD_LOCKFILE _MD_LockFile -#define _MD_TLOCKFILE _MD_TLockFile -#define _MD_UNLOCKFILE _MD_UnlockFile -#endif /* 0 */ - -#if 0 -extern PRInt32 _MD_socket(int af, int type, int flags); -#define _MD_SOCKET _MD_socket -extern PRInt32 _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, - PRUint32 addrlen, PRIntervalTime timeout); -#define _MD_CONNECT _MD_connect -extern PRInt32 _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, - PRIntervalTime timeout); -#define _MD_ACCEPT _MD_accept -extern PRInt32 _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); -#define _MD_BIND _MD_bind -extern PRInt32 _MD_listen(PRFileDesc *fd, PRIntn backlog); -#define _MD_LISTEN _MD_listen -extern PRInt32 _MD_shutdown(PRFileDesc *fd, PRIntn how); -#define _MD_SHUTDOWN _MD_shutdown - -extern PRInt32 _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, - PRIntn flags, PRIntervalTime timeout); -#define _MD_RECV _MD_recv -extern PRInt32 _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, - PRIntn flags, PRIntervalTime timeout); -#define _MD_SEND _MD_send -extern PRInt32 _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, - PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, - PRIntervalTime timeout); -#define _MD_RECVFROM _MD_recvfrom -extern PRInt32 _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, - PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, - PRIntervalTime timeout); -#define _MD_SENDTO _MD_sendto -extern PRInt32 _MD_writev(PRFileDesc *fd, const struct PRIOVec *iov, - PRInt32 iov_size, PRIntervalTime timeout); -#define _MD_WRITEV _MD_writev - -extern PRInt32 _MD_socketavailable(PRFileDesc *fd); -#define _MD_SOCKETAVAILABLE _MD_socketavailable -extern PRInt64 _MD_socketavailable64(PRFileDesc *fd); -#define _MD_SOCKETAVAILABLE64 _MD_socketavailable64 - -#define _MD_PIPEAVAILABLE _MD_socketavailable - -extern PRInt32 _MD_pr_poll(PRPollDesc *pds, PRIntn npds, - PRIntervalTime timeout); -#define _MD_PR_POLL _MD_pr_poll -#endif /* 0 */ - -#if 0 -extern PRInt32 _MD_close(PRInt32 osfd); -#define _MD_CLOSE_FILE _MD_close -extern PRInt32 _MD_lseek(PRFileDesc*, PRInt32, PRSeekWhence); -#define _MD_LSEEK _MD_lseek -extern PRInt64 _MD_lseek64(PRFileDesc*, PRInt64, PRSeekWhence); -#define _MD_LSEEK64 _MD_lseek64 -extern PRInt32 _MD_fsync(PRFileDesc *fd); -#define _MD_FSYNC _MD_fsync -#endif /* 0 */ - -#if 0 -extern PRInt32 _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); -#define _MD_SOCKETPAIR _MD_socketpair - -#define _MD_CLOSE_SOCKET _MD_close - -#ifndef NO_NSPR_10_SUPPORT -#define _MD_STAT stat -#endif - -extern PRStatus _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, - PRUint32 *addrlen); -#define _MD_GETPEERNAME _MD_getpeername -extern PRStatus _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, - PRUint32 *addrlen); -#define _MD_GETSOCKNAME _MD_getsockname - -extern PRStatus _MD_getsockopt(PRFileDesc *fd, PRInt32 level, - PRInt32 optname, char* optval, PRInt32* optlen); -#define _MD_GETSOCKOPT _MD_getsockopt -extern PRStatus _MD_setsockopt(PRFileDesc *fd, PRInt32 level, - PRInt32 optname, const char* optval, PRInt32 optlen); -#define _MD_SETSOCKOPT _MD_setsockopt - -extern PRStatus _MD_set_fd_inheritable(PRFileDesc *fd, PRBool inheritable); -#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable - -extern void _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); -#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable - -extern void _MD_query_fd_inheritable(PRFileDesc *fd); -#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable - -extern PRStatus _MD_gethostname(char *name, PRUint32 namelen); -#define _MD_GETHOSTNAME _MD_gethostname - -extern PRStatus _MD_getsysinfo(PRSysInfo cmd, char *name, PRUint32 namelen); -#define _MD_GETSYSINFO _MD_getsysinfo -#endif /* 0 */ - -#if 0 -struct _MDFileMap { - PRIntn prot; - PRIntn flags; - PRBool isAnonFM; /* when true, PR_CloseFileMap() must close the related fd */ -}; - -extern PRStatus _MD_CreateFileMap(struct PRFileMap *fmap, PRInt64 size); -#define _MD_CREATE_FILE_MAP _MD_CreateFileMap - -#define _MD_GET_MEM_MAP_ALIGNMENT() PR_GetPageSize() - -extern void * _MD_MemMap(struct PRFileMap *fmap, PRInt64 offset, - PRUint32 len); -#define _MD_MEM_MAP _MD_MemMap - -extern PRStatus _MD_MemUnmap(void *addr, PRUint32 size); -#define _MD_MEM_UNMAP _MD_MemUnmap - -extern PRStatus _MD_CloseFileMap(struct PRFileMap *fmap); -#define _MD_CLOSE_FILE_MAP _MD_CloseFileMap -#endif /* 0 */ - -#if 0 -#define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - -#if defined(_PR_PTHREADS) && !defined(_PR_POLL_AVAILABLE) -#define _PR_NEED_FAKE_POLL -#endif - -/* -** A vector of the UNIX I/O calls we use. These are here to smooth over -** the rough edges needed for large files. All of NSPR's implmentaions -** go through this vector using syntax of the form -** result = _md_iovector.xxx64(args); -*/ - -typedef struct stat _MDStat64; -typedef off_t _MDOff64_t; - -typedef PRIntn (*_MD_Fstat64)(PRIntn osfd, _MDStat64 *buf); -typedef PRIntn (*_MD_Open64)(const char *path, int oflag, ...); -typedef PRIntn (*_MD_Stat64)(const char *path, _MDStat64 *buf); -typedef _MDOff64_t (*_MD_Lseek64)(PRIntn osfd, _MDOff64_t, PRIntn whence); -typedef void* (*_MD_Mmap64)( - void *addr, PRSize len, PRIntn prot, PRIntn flags, - PRIntn fildes, _MDOff64_t offset); -struct _MD_IOVector -{ - _MD_Open64 _open64; - _MD_Mmap64 _mmap64; - _MD_Stat64 _stat64; - _MD_Fstat64 _fstat64; - _MD_Lseek64 _lseek64; -}; -extern struct _MD_IOVector _md_iovector; -#endif /* 0 */ - -#endif /* nspr_l4v2_defs_h___ */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h b/src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h index 1f30e884..60793de1 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h +++ b/src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h @@ -46,7 +46,7 @@ * Linux: FD_SETSIZE is defined in /usr/include/sys/select.h and should * not be redefined. */ -#if !defined(LINUX) && !defined(DARWIN) && !defined(NEXTSTEP) && !defined(L4ENV) +#if !defined(LINUX) && !defined(DARWIN) && !defined(NEXTSTEP) #ifndef FD_SETSIZE #define FD_SETSIZE 4096 #endif diff --git a/src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h b/src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h index b747edb3..93496520 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h +++ b/src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h @@ -138,9 +138,6 @@ PR_BEGIN_EXTERN_C #elif defined(NTO) #include "md/_nto.h" -#elif defined(L4ENV) -#include "md/_l4v2.h" - #else #error unknown Unix flavor diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/io/prlog.c b/src/libs/xpcom18a4/nsprpub/pr/src/io/prlog.c index 1c9142c2..7eb4ef69 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/src/io/prlog.c +++ b/src/libs/xpcom18a4/nsprpub/pr/src/io/prlog.c @@ -423,7 +423,7 @@ PR_IMPLEMENT(PRBool) PR_SetLogFile(const char *file) #if defined(VBOX) && defined(DEBUG) if (strcmp(file, "IPRT") == 0) { /* initialize VBox Runtime */ - RTR3InitDll(0); + RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); newLogFile = IPRT_DEBUG_FILE; } else @@ -464,7 +464,7 @@ PR_IMPLEMENT(PRBool) PR_SetLogFile(const char *file) #if defined(VBOX) && defined(DEBUG) if (strcmp(file, "IPRT") == 0) { /* initialize VBox Runtime */ - RTR3InitDll(0); + RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); logFile = IPRT_DEBUG_FILE; return PR_TRUE; } diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/locks.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/locks.c deleted file mode 100644 index 281e34e7..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/locks.c +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* -** File: l4env/locks.c -** Descritpion: Implemenation for locks using l4env -** Exports: none, that I am aware of -*/ - -/** - * @note The Windows implementation uses critical sections to implement locks. - * Solaris uses mutexes. - */ - -#include "prlog.h" -#include "primpl.h" - -PR_IMPLEMENT(void) -_MD_init_locks(void) { } /* PR_InitLocks */ - -PR_IMPLEMENT(PRStatus) -_MD_new_lock( - struct _MDLock *md_lock) -{ - PR_ASSERT("_MD_new_lock called!"); - return 0; -} /* _MD_new_lock */ - -PR_IMPLEMENT(void) -_MD_free_lock( - struct _MDLock *md_lock) -{ - PR_ASSERT("_MD_free_lock called!"); -} /* _MD_free_lock */ - -PR_IMPLEMENT(void) -_MD_lock( - struct _MDLock *md_lock) -{ - PR_ASSERT("_MD_lock called!"); -} /* _MD_lock */ - -PR_IMPLEMENT(void) -_MD_unlock( - struct _MDLock *md_lock) -{ - PR_ASSERT("_MD_unlock called!"); -} /* _MD_unlock */ - -/* locks.c */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/prnetdb.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/prnetdb.c deleted file mode 100644 index cab79a51..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/prnetdb.c +++ /dev/null @@ -1,217 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "primpl.h" - -#include <string.h> - -void _PR_InitNet(void) -{ - PR_ASSERT("_PR_InitNet called!"); -} /* _PR_InitNet */ - -void _PR_CleanupNet(void) -{ - PR_ASSERT("_PR_CleanupNet called!"); -} /* _PR_CleanupNet */ - -PR_IMPLEMENT(PRStatus) PR_GetHostByName( - const char *name, char *buf, PRIntn bufsize, PRHostEnt *hp) -{ - PR_ASSERT("PR_GetHostByName called!"); - return 0; -} /* PR_GetHostByName */ - -PR_IMPLEMENT(PRStatus) PR_GetIPNodeByName( - const char *name, PRUint16 af, PRIntn flags, - char *buf, PRIntn bufsize, PRHostEnt *hp) -{ - PR_ASSERT("PR_GetIPNodeByName called!"); - return 0; -} /* PR_GetIPNodeByName */ - -PR_IMPLEMENT(PRStatus) PR_GetHostByAddr( - const PRNetAddr *hostaddr, char *buf, PRIntn bufsize, PRHostEnt *hostentry) -{ - PR_ASSERT("PR_GetHostByAddr called!"); - return 0; -} /* PR_GetHostByAddr */ - -PR_IMPLEMENT(PRStatus) PR_GetProtoByName( - const char* name, char* buffer, PRInt32 buflen, PRProtoEnt* result) -{ - PR_ASSERT("PR_GetProtoByName called!"); - return 0; -} /* PR_GetProtoByName */ - -PR_IMPLEMENT(PRStatus) PR_GetProtoByNumber( - PRInt32 number, char* buffer, PRInt32 buflen, PRProtoEnt* result) -{ - PR_ASSERT("PR_GetProtoByNumber called!"); - return 0; -} /* PR_GetProtoByNumber */ - -PRUintn _PR_NetAddrSize(const PRNetAddr* addr) -{ - PR_ASSERT("_PR_NetAddrSize called!"); - return 0; -} /* _PR_NetAddrSize */ - -PR_IMPLEMENT(PRIntn) PR_EnumerateHostEnt( - PRIntn enumIndex, const PRHostEnt *hostEnt, PRUint16 port, PRNetAddr *address) -{ - PR_ASSERT("PR_EnumerateHostEnt called!"); - return 0; -} /* PR_EnumerateHostEnt */ - -PR_IMPLEMENT(PRStatus) PR_InitializeNetAddr( - PRNetAddrValue val, PRUint16 port, PRNetAddr *addr) -{ - PR_ASSERT("PR_InitializeNetAddr called!"); - return 0; -} /* PR_InitializeNetAddr */ - -PR_IMPLEMENT(PRStatus) PR_SetNetAddr( - PRNetAddrValue val, PRUint16 af, PRUint16 port, PRNetAddr *addr) -{ - PR_ASSERT("PR_SetNetAddr called!"); - return 0; -} /* PR_SetNetAddr */ - -PR_IMPLEMENT(PRBool) -PR_IsNetAddrType(const PRNetAddr *addr, PRNetAddrValue val) -{ - PR_ASSERT("PR_IsNetAddrType called!"); - return PR_FALSE; -} /* PR_IsNetAddrType */ - -PR_IMPLEMENT(PRStatus) PR_StringToNetAddr(const char *string, PRNetAddr *addr) -{ - PR_ASSERT("PR_StringToNetAddr called!"); - return 0; -} /* PR_StringToNetAddr */ - -PR_IMPLEMENT(PRStatus) PR_NetAddrToString( - const PRNetAddr *addr, char *string, PRUint32 size) -{ - PR_ASSERT("PR_NetAddrToString called!"); - return 0; -} /* PR_NetAddrToString */ - -/* - * Convert an IPv4 addr to an (IPv4-mapped) IPv6 addr - */ -PR_IMPLEMENT(void) PR_ConvertIPv4AddrToIPv6(PRUint32 v4addr, PRIPv6Addr *v6addr) -{ - PRUint8 *dstp; - dstp = v6addr->pr_s6_addr; - memset(dstp, 0, 10); - memset(dstp + 10, 0xff, 2); - memcpy(dstp + 12,(char *) &v4addr, 4); -} - -PR_IMPLEMENT(PRUint16) PR_ntohs(PRUint16 n) { return ntohs(n); } -PR_IMPLEMENT(PRUint32) PR_ntohl(PRUint32 n) { return ntohl(n); } -PR_IMPLEMENT(PRUint16) PR_htons(PRUint16 n) { return htons(n); } -PR_IMPLEMENT(PRUint32) PR_htonl(PRUint32 n) { return htonl(n); } -PR_IMPLEMENT(PRUint64) PR_ntohll(PRUint64 n) -{ -#ifdef IS_BIG_ENDIAN - return n; -#else - PRUint64 tmp; - PRUint32 hi, lo; - LL_L2UI(lo, n); - LL_SHR(tmp, n, 32); - LL_L2UI(hi, tmp); - hi = PR_ntohl(hi); - lo = PR_ntohl(lo); - LL_UI2L(n, lo); - LL_SHL(n, n, 32); - LL_UI2L(tmp, hi); - LL_ADD(n, n, tmp); - return n; -#endif -} /* ntohll */ - -PR_IMPLEMENT(PRUint64) PR_htonll(PRUint64 n) -{ -#ifdef IS_BIG_ENDIAN - return n; -#else - PRUint64 tmp; - PRUint32 hi, lo; - LL_L2UI(lo, n); - LL_SHR(tmp, n, 32); - LL_L2UI(hi, tmp); - hi = htonl(hi); - lo = htonl(lo); - LL_UI2L(n, lo); - LL_SHL(n, n, 32); - LL_UI2L(tmp, hi); - LL_ADD(n, n, tmp); - return n; -#endif -} /* htonll */ - -PR_IMPLEMENT(PRAddrInfo *) PR_GetAddrInfoByName(const char *hostname, - PRUint16 af, - PRIntn flags) -{ - PR_ASSERT("PR_AddrInfoByName called!"); - return NULL; -} /* PR_AddrInfoByName */ - -PR_IMPLEMENT(void) PR_FreeAddrInfo(PRAddrInfo *ai) -{ - PR_ASSERT("PR_FreeAddrInfo called!"); -} /* PR_FreeAddrInfo */ - -PR_IMPLEMENT(void *) PR_EnumerateAddrInfo(void *iterPtr, - const PRAddrInfo *base, - PRUint16 port, - PRNetAddr *result) -{ - PR_ASSERT("PR_EnumerateAddrInfo called!"); - return NULL; -} /* PR_EnumerateAddrInfo */ - -PR_IMPLEMENT(const char *) PR_GetCanonNameFromAddrInfo(const PRAddrInfo *ai) -{ - PR_ASSERT("PR_GetCanonNameFromAddrInfo called!"); - return NULL; -} /* PR_GetCanonNameFromAddrInfo */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/threads.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/threads.c deleted file mode 100644 index b23f1a57..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/l4env/threads.c +++ /dev/null @@ -1,267 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* -** File: l4env/threads.c -** Descritpion: Implemenation for L4 threads using l4env -** Exports: ptthread.h -*/ - -#include "prlog.h" -#include "primpl.h" -#include "prpdce.h" - -PR_IMPLEMENT(PRThread*) PR_CreateThread( - PRThreadType type, void (*start)(void *arg), void *arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) -{ - PR_ASSERT("PR_CreateThread called!"); - return NULL; -} /* PR_CreateThread */ - -PR_IMPLEMENT(PRThread*) PR_CreateThreadGCAble( - PRThreadType type, void (*start)(void *arg), void *arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) -{ - PR_ASSERT("PR_CreateThreadGCAble called!"); - return NULL; -} /* PR_CreateThreadGCAble */ - -PR_IMPLEMENT(void*) GetExecutionEnvironment(PRThread *thred) -{ - PR_ASSERT("GetExecutionEnvironment called!"); - return NULL; -} /* GetExecutionEnvironment */ - -PR_IMPLEMENT(void) SetExecutionEnvironment(PRThread *thred, void *env) -{ - PR_ASSERT("SetExecutionEnvironment called!"); -} /* SetExecutionEnvironment */ - -PR_IMPLEMENT(PRThread*) PR_AttachThread( - PRThreadType type, PRThreadPriority priority, PRThreadStack *stack) -{ - PR_ASSERT("PR_AttachThread called!"); - return NULL; -} /* PR_AttachThread */ - - -PR_IMPLEMENT(PRStatus) PR_JoinThread(PRThread *thred) -{ - PR_ASSERT("PR_JoinThread called!"); - return 0; -} /* PR_JoinThread */ - -PR_IMPLEMENT(void) PR_DetachThread(void) -{ - PR_ASSERT("PR_DetachThread called!"); -} /* PR_DetachThread */ - -PR_IMPLEMENT(PRThread*) PR_GetCurrentThread(void) -{ - PR_ASSERT("PR_GetCurrentThread called!"); - return NULL; -} /* PR_GetCurrentThread */ - -PR_IMPLEMENT(PRThreadScope) PR_GetThreadScope(const PRThread *thred) -{ - PR_ASSERT("PR_GetThreadScope called!"); - return 0; -} /* PR_GetThreadScope() */ - -PR_IMPLEMENT(PRThreadType) PR_GetThreadType(const PRThread *thred) -{ - PR_ASSERT("PR_GetThreadType called!"); - return 0; -} - -PR_IMPLEMENT(PRThreadState) PR_GetThreadState(const PRThread *thred) -{ - PR_ASSERT("PR_GetThreadState called!"); - return 0; -} /* PR_GetThreadState */ - -PR_IMPLEMENT(PRThreadPriority) PR_GetThreadPriority(const PRThread *thred) -{ - PR_ASSERT("PR_GetThreadPriority called!"); - return 0; -} /* PR_GetThreadPriority */ - -PR_IMPLEMENT(void) PR_SetThreadPriority(PRThread *thred, PRThreadPriority newPri) -{ - PR_ASSERT("PR_SetThreadPriority called!"); -} /* PR_SetThreadPriority */ - -PR_IMPLEMENT(PRStatus) PR_Interrupt(PRThread *thred) -{ - PR_ASSERT("PR_Interrupt called!"); - return 0; -} /* PR_Interrupt */ - -PR_IMPLEMENT(void) PR_ClearInterrupt(void) -{ - PR_ASSERT("PR_ClearInterrupt called!"); -} /* PR_ClearInterrupt */ - -PR_IMPLEMENT(void) PR_BlockInterrupt(void) -{ - PR_ASSERT("PR_BlockInterrupt called!"); -} /* PR_BlockInterrupt */ - -PR_IMPLEMENT(void) PR_UnblockInterrupt(void) -{ - PR_ASSERT("PR_UnblockInterrupt called!"); -} /* PR_UnblockInterrupt */ - -PR_IMPLEMENT(PRStatus) PR_Yield(void) -{ - PR_ASSERT("PR_Yield called!"); - return 0; -} - -PR_IMPLEMENT(PRStatus) PR_Sleep(PRIntervalTime ticks) -{ - PR_ASSERT("PR_Sleep called!"); - return 0; -} /* PR_Sleep */ - -/* The next two functions are defined in the pthreads code, but also in prinit.c if - _PR_PTHREADS and _PR_BTHREADS are not defined */ -#if 0 -PR_IMPLEMENT(PRStatus) PR_Cleanup(void) -{ - PR_ASSERT("PR_Cleanup called!"); - return 0; -} /* PR_Cleanup */ -#endif /* 0 */ - -#if 0 -PR_IMPLEMENT(void) PR_ProcessExit(PRIntn status) -{ - exit(status); -} -#endif - -PR_IMPLEMENT(PRUint32) PR_GetThreadID(PRThread *thred) -{ - PR_ASSERT("PR_GetThreadID called!"); - return 0; -} - -/* - * $$$ - * The following two thread-to-processor affinity functions are not - * yet implemented for pthreads. By the way, these functions should return - * PRStatus rather than PRInt32 to indicate the success/failure status. - * $$$ - */ - -PR_IMPLEMENT(PRInt32) PR_GetThreadAffinityMask(PRThread *thread, PRUint32 *mask) -{ - return 0; /* not implemented */ -} - -PR_IMPLEMENT(PRInt32) PR_SetThreadAffinityMask(PRThread *thread, PRUint32 mask ) -{ - return 0; /* not implemented */ -} - -PR_IMPLEMENT(struct _PRCPU *) -PR_GetCurrentCPU(void) -{ - PR_ASSERT("PR_GetCurrentCPU called!"); - return NULL; -} /* PR_GetCurrentCPU */ - -PR_IMPLEMENT(void) -PR_SetThreadDumpProc(PRThread* thread, PRThreadDumpProc dump, void *arg) -{ - PR_ASSERT("PR_SetThreadDumpProc called!"); -} - -/* - * Garbage collection support follows. - */ - -PR_IMPLEMENT(void) PR_SetThreadGCAble(void) -{ - PR_ASSERT("PR_SetThreadGCAble called!"); -} /* PR_SetThreadGCAble */ - -PR_IMPLEMENT(void) PR_ClearThreadGCAble(void) -{ - PR_ASSERT("PR_ClearThreadGCAble called!"); -} /* PR_ClearThreadGCAble */ - -PR_IMPLEMENT(PRStatus) PR_EnumerateThreads(PREnumerator func, void *arg) -{ - PR_ASSERT("PR_SetThreadGCAble called!"); - return 0; -} /* PR_EnumerateThreads */ - -/* - * PR_SuspendAll and PR_ResumeAll are called during garbage collection. The strategy - * we use is to send a SIGUSR2 signal to every gc able thread that we intend to suspend. - * The signal handler will record the stack pointer and will block until resumed by - * the resume call. Since the signal handler is the last routine called for the - * suspended thread, the stack pointer will also serve as a place where all the - * registers have been saved on the stack for the previously executing routines. - * - * Through global variables, we also make sure that PR_Suspend and PR_Resume does not - * proceed until the thread is suspended or resumed. - */ - -PR_IMPLEMENT(void) PR_SuspendAll(void) -{ - PR_ASSERT("PR_SuspendAll called!"); -} /* PR_SuspendAll */ - -PR_IMPLEMENT(void) PR_ResumeAll(void) -{ - PR_ASSERT("PR_ResumeAll called!"); -} /* PR_ResumeAll */ - -/* Return the stack pointer for the given thread- used by the GC */ -PR_IMPLEMENT(void *)PR_GetSP(PRThread *thred) -{ - PR_ASSERT("PR_SetSP called!"); - return NULL; -} /* PR_GetSP */ - -/* ptthread.c */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/l4env.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/l4env.c deleted file mode 100644 index b9cf5e20..00000000 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/l4env.c +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "primpl.h" - -void _MD_EarlyInit(void) -{ -} - -PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np) -{ -#ifndef _PR_PTHREADS - if (isCurrent) { - (void) setjmp(CONTEXT(t)); - } - *np = sizeof(CONTEXT(t)) / sizeof(PRWord); - return (PRWord *) CONTEXT(t); -#else - *np = 0; - return NULL; -#endif -} - -#ifdef _PR_PTHREADS - -extern void _MD_unix_terminate_waitpid_daemon(void); - -void _MD_CleanupBeforeExit(void) -{ - _MD_unix_terminate_waitpid_daemon(); -} - -#else /* ! _PR_PTHREADS */ - -void -_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri) -{ - return; -} - -PRStatus -_MD_InitializeThread(PRThread *thread) -{ - /* - * set the pointers to the stack-pointer and frame-pointer words in the - * context structure; this is for debugging use. - */ - thread->md.sp = _MD_GET_SP_PTR(thread); - thread->md.fp = _MD_GET_FP_PTR(thread); - return PR_SUCCESS; -} - -PRStatus -_MD_WAIT(PRThread *thread, PRIntervalTime ticks) -{ - PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE)); - _PR_MD_SWITCH_CONTEXT(thread); - return PR_SUCCESS; -} - -PRStatus -_MD_WAKEUP_WAITER(PRThread *thread) -{ - if (thread) { - PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE)); - } - return PR_SUCCESS; -} - -/* These functions should not be called for Linux */ -void -_MD_YIELD(void) -{ - PR_NOT_REACHED("_MD_YIELD has not yet been implemented on L4."); -} - -PRStatus -_MD_CREATE_THREAD( - PRThread *thread, - void (*start) (void *), - PRThreadPriority priority, - PRThreadScope scope, - PRThreadState state, - PRUint32 stackSize) -{ - PR_NOT_REACHED("_MD_CREATE_THREAD has not yet been implemented on L4."); - return PR_FAILURE; -} -#endif /* ! _PR_PTHREADS */ diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c index 12834a70..c69a233a 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c +++ b/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c @@ -65,8 +65,7 @@ * PRInt32* pointer to a _PRSockLen_t* pointer. */ #if defined(HAVE_SOCKLEN_T) \ - || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) \ - || defined(L4ENV) + || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) #define _PRSockLen_t socklen_t #elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \ || defined(AIX4_1) || defined(LINUX) || defined(SONY) \ diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c b/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c index b5f30781..9099c5ff 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c +++ b/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c @@ -298,7 +298,7 @@ GetHighResClock(void *buf, size_t maxbytes) return 0; } #elif defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(NTO) \ - || defined(QNX) || defined(DARWIN) || defined(L4ENV) + || defined(QNX) || defined(DARWIN) #include <sys/times.h> static size_t diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c b/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c index 6dea7ddc..eef45968 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c +++ b/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c @@ -176,7 +176,7 @@ static void _PR_InitStuff(void) if (_pr_initialized) return; _pr_initialized = PR_TRUE; #ifdef VBOX_USE_IPRT_IN_NSPR - RTR3InitDll(0); + RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); #endif #ifdef _PR_ZONE_ALLOCATOR _PR_InitZones(); diff --git a/src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c b/src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c index f3ed2857..c3b7cdd5 100644 --- a/src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c +++ b/src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c @@ -108,7 +108,7 @@ PRLock *_pr_dnsLock = NULL; #define _PR_HAVE_GETPROTO_R_INT #endif -#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) || defined(L4ENV) +#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) #define _PR_HAVE_GETPROTO_R #define _PR_HAVE_5_ARG_GETPROTO_R #endif diff --git a/src/libs/xpcom18a4/python/Makefile.kmk b/src/libs/xpcom18a4/python/Makefile.kmk index ea62ae26..50cc5e2d 100644 --- a/src/libs/xpcom18a4/python/Makefile.kmk +++ b/src/libs/xpcom18a4/python/Makefile.kmk @@ -26,24 +26,27 @@ endif # # List of supported Python versions, defining a number of -# VBOX_PYTHON[25|26|27|28|DEF]_[INC|LIB] variables which get picked up below. +# VBOX_PYTHON[25|26|27|DEF]_[INC|LIB] variables which get picked up below. # ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script. ifeq ($(KBUILD_TARGET_ARCH),x86) VBOX_PYTHON25_INC = $(VBOX_PATH_MACOSX_SDK)/usr/include/python2.5 VBOX_PYTHON25_LIB = $(VBOX_PATH_MACOSX_SDK)/usr/lib/libpython2.5.dylib + VBOX_PYTHON25_LIB_X86 = $(VBOX_PYTHON25_LIB) endif if !defined(VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6) \ && ( !defined(VBOX_OSE) \ || "$(wildcard $(VBOX_PATH_MACOSX_SDK_10_6)/usr/lib/libpython2.6.dylib)" != "") VBOX_PYTHON26_INC = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/include/python2.6 VBOX_PYTHON26_LIB = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/lib/libpython2.6.dylib + VBOX_PYTHON26_LIB_X86 = $(VBOX_PYTHON26_LIB) endif if !defined(VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7) \ && ( defined(VBOX_NOT_OSE_LATER_SOMETIME) \ || "$(wildcard $(VBOX_PATH_MACOSX_SDK_10_7)/usr/lib/libpython2.7.dylib)" != "") VBOX_PYTHON27_INC = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/include/python2.7 VBOX_PYTHON27_LIB = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/lib/libpython2.7.dylib + VBOX_PYTHON27_LIB_X86 = $(VBOX_PYTHON27_LIB) endif else @@ -102,6 +105,14 @@ VBoxPythonBase_LIBS = \ $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \ $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL) +# 32-bit base. +VBoxPythonBase_x86_TEMPLATE = XPCOM-x86 +VBoxPythonBase_x86_EXTENDS = VBoxPythonBase +VBoxPythonBase_x86_DEFS = MODULE_NAME_SUFFIX=_x86 $(VBoxPythonBase_DEFS) +VBoxPythonBase_x86_LIBS = \ + $(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB) \ + $(PATH_STAGE_BIN)/VBoxXPCOM-x86$(VBOX_SUFF_DLL) + ifdef VBOX_PYTHON23_INC # @@ -113,6 +124,15 @@ VBoxPython2_3_EXTENDS_BY = appending VBoxPython2_3_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX104,) VBoxPython2_3_INCS = $(VBOX_PYTHON23_INC) VBoxPython2_3_LIBS = $(VBOX_PYTHON23_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API +DLLS += VBoxPython2_3_x86 +VBoxPython2_3_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython2_3_x86_EXTENDS_BY = appending +VBoxPython2_3_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX104,-x86) +VBoxPython2_3_x86_INCS = $(VBOX_PYTHON23_INC) +VBoxPython2_3_x86_LIBS = $(VBOX_PYTHON23_LIB_X86) + endif endif ifdef VBOX_PYTHON24_INC @@ -124,6 +144,14 @@ VBoxPython2_4_EXTENDS = VBoxPythonBase VBoxPython2_4_EXTENDS_BY = appending VBoxPython2_4_INCS = $(VBOX_PYTHON24_INC) VBoxPython2_4_LIBS = $(VBOX_PYTHON24_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API +DLLS += VBoxPython2_4_x86 +VBoxPython2_4_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython2_4_x86_EXTENDS_BY = appending +VBoxPython2_4_x86_INCS = $(VBOX_PYTHON24_INC) +VBoxPython2_4_x86_LIBS = $(VBOX_PYTHON24_LIB_X86) + endif endif ifdef VBOX_PYTHON25_INC @@ -133,9 +161,16 @@ ifdef VBOX_PYTHON25_INC DLLS += VBoxPython2_5 VBoxPython2_5_EXTENDS = VBoxPythonBase VBoxPython2_5_EXTENDS_BY = appending -VBoxPython2_5_TEMPLATE = XPCOM VBoxPython2_5_INCS = $(VBOX_PYTHON25_INC) VBoxPython2_5_LIBS = $(VBOX_PYTHON25_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API +DLLS += VBoxPython2_5_x86 +VBoxPython2_5_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython2_5_x86_EXTENDS_BY = appending +VBoxPython2_5_x86_INCS = $(VBOX_PYTHON25_INC) +VBoxPython2_5_x86_LIBS = $(VBOX_PYTHON25_LIB_X86) + endif endif ifdef VBOX_PYTHON26_INC @@ -148,6 +183,15 @@ VBoxPython2_6_EXTENDS_BY = appending VBoxPython2_6_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX106,) VBoxPython2_6_INCS = $(VBOX_PYTHON26_INC) VBoxPython2_6_LIBS = $(VBOX_PYTHON26_LIB) + + ifdef VBOX_WITH_32_ON_64_MAIN_API +DLLS += VBoxPython2_6_x86 +VBoxPython2_6_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython2_6_x86_EXTENDS_BY = appending +VBoxPython2_6_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX106,-x86) +VBoxPython2_6_x86_INCS = $(VBOX_PYTHON26_INC) +VBoxPython2_6_x86_LIBS = $(VBOX_PYTHON26_LIB_X86) + endif endif ifdef VBOX_PYTHON27_INC @@ -160,17 +204,15 @@ VBoxPython2_7_EXTENDS_BY = appending VBoxPython2_7_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX107,) VBoxPython2_7_INCS = $(VBOX_PYTHON27_INC) VBoxPython2_7_LIBS = $(VBOX_PYTHON27_LIB) -endif -ifdef VBOX_PYTHON28_INC -# -# Python 2.8 version -# -DLLS += VBoxPython2_8 -VBoxPython2_8_EXTENDS = VBoxPythonBase -VBoxPython2_8_EXTENDS_BY = appending -VBoxPython2_8_INCS = $(VBOX_PYTHON28_INC) -VBoxPython2_8_LIBS = $(VBOX_PYTHON28_LIB) + ifdef VBOX_WITH_32_ON_64_MAIN_API +DLLS += VBoxPython2_7_x86 +VBoxPython2_7_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython2_7_x86_EXTENDS_BY = appending +VBoxPython2_7_x86_TEMPLATE = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX107,-x86) +VBoxPython2_7_x86_INCS = $(VBOX_PYTHON27_INC) +VBoxPython2_7_x86_LIBS = $(VBOX_PYTHON27_LIB_X86) + endif endif ifdef VBOX_PYTHONDEF_INC @@ -186,6 +228,17 @@ if "$(KBUILD_TARGET)" == "linux" else VBoxPython_LIBS = $(VBoxPythonBase_LIBS) $(VBOX_PYTHONDEF_LIB) endif + + ifdef VBOX_WITH_32_ON_64_MAIN_API +VBoxPython_x86_EXTENDS = VBoxPythonBase_x86 +VBoxPython_x86_DEFS = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_x86_DEFS)) +VBoxPython_x86_INCS = $(VBoxPythonBase_x86_INCS) $(VBOX_PYTHONDEF_INC) +if "$(KBUILD_TARGET)" == "linux" + VBoxPython_x86_LIBS = $(VBoxPythonBase_x86_LIBS) +else + VBoxPython_x86_LIBS = $(VBoxPythonBase_x86_LIBS) $(VBOX_PYTHONDEF_LIB_X86) +endif + endif endif endif # VBOX_ONLY_SDK diff --git a/src/libs/xpcom18a4/python/gen_python_deps.py b/src/libs/xpcom18a4/python/gen_python_deps.py index bcca1da0..1cf39b3b 100755 --- a/src/libs/xpcom18a4/python/gen_python_deps.py +++ b/src/libs/xpcom18a4/python/gen_python_deps.py @@ -1,7 +1,7 @@ #!/usr/bin/python """ -Copyright (C) 2009-2012 Oracle Corporation +Copyright (C) 2009-2013 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; @@ -14,7 +14,7 @@ hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. import os,sys -versions = ["2.3", "2.4", "2.5", "2.6", "2.7", "2.8"] +versions = ["2.3", "2.4", "2.5", "2.6", "2.7",] prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"] known = {} @@ -23,26 +23,29 @@ def checkPair(p, v,dllpre,dllsuff, bitness_magic): if not os.path.isfile(file): return None - lib = os.path.join(p, "lib", dllpre+"python"+v+dllsuff) + lib = os.path.join(p, "lib/i386-linux-gnu", dllpre+"python"+v+dllsuff) + if not os.path.isfile(lib): + lib = os.path.join(p, "lib", dllpre+"python"+v+dllsuff) if bitness_magic == 1: lib64 = os.path.join(p, "lib", "64", dllpre+"python"+v+dllsuff) elif bitness_magic == 2: - lib64 = os.path.join(p, "lib64", dllpre+"python"+v+dllsuff) + lib64 = os.path.join(p, "lib/x86_64-linux-gnu", dllpre+"python"+v+dllsuff) if not os.path.isfile(lib64): - lib64 = lib + lib64 = os.path.join(p, "lib64", dllpre+"python"+v+dllsuff) + if not os.path.isfile(lib64): + lib64 = lib else: lib64 = None - return [os.path.join(p, "include", "python"+v), - lib, - lib64] + return [os.path.join(p, "include", "python"+v), lib, lib64] def print_vars(vers, known, sep, bitness_magic): print "VBOX_PYTHON%s_INC=%s%s" %(vers, known[0], sep) if bitness_magic > 0: - print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep) + print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep) + print "VBOX_PYTHON%s_LIB_X86=%s%s" %(vers, known[1], sep) else: - print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep) + print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep) def main(argv): diff --git a/src/libs/xpcom18a4/python/server/loader.py b/src/libs/xpcom18a4/python/server/loader.py index b5875546..e59155a5 100644 --- a/src/libs/xpcom18a4/python/server/loader.py +++ b/src/libs/xpcom18a4/python/server/loader.py @@ -57,11 +57,15 @@ def FindCOMComponents(py_module): # For now, just run over all classes looking for likely candidates. comps = [] for name, object in py_module.__dict__.items(): - if type(object)==types.ClassType and \ - _has_good_attr(object, "_com_interfaces_") and \ - _has_good_attr(object, "_reg_clsid_") and \ - _has_good_attr(object, "_reg_contractid_"): - comps.append(object) + try: + if (type(object) == types.ClassType or issubclass(object, object)) and \ + _has_good_attr(object, "_com_interfaces_") and \ + _has_good_attr(object, "_reg_clsid_") and \ + _has_good_attr(object, "_reg_contractid_"): + comps.append(object) + except TypeError: + # The issubclass call raises TypeError when the obj is not a class. + pass; return comps def register_self(klass, compMgr, location, registryLocation, componentType): diff --git a/src/libs/xpcom18a4/python/src/PyGBase.cpp b/src/libs/xpcom18a4/python/src/PyGBase.cpp index 93fe03f9..0a935017 100644 --- a/src/libs/xpcom18a4/python/src/PyGBase.cpp +++ b/src/libs/xpcom18a4/python/src/PyGBase.cpp @@ -195,7 +195,8 @@ void *PyG_Base::ThisAsIID( const nsIID &iid ) PyG_Base::AutoWrapPythonInstance(PyObject *ob, const nsIID &iid, nsISupports **ppret) { NS_PRECONDITION(ppret!=NULL, "null pointer when wrapping a Python instance!"); - NS_PRECONDITION(ob && PyInstance_Check(ob), "AutoWrapPythonInstance is expecting an non-NULL instance!"); + NS_PRECONDITION(ob && PyObject_HasAttrString(ob, "__class__"), + "AutoWrapPythonInstance is expecting an non-NULL instance!"); PRBool ok = PR_FALSE; // XXX - todo - this static object leaks! (but Python on Windows leaks 2000+ objects as it is ;-) static PyObject *func = NULL; // fetch this once and remember! diff --git a/src/libs/xpcom18a4/python/src/PyIID.cpp b/src/libs/xpcom18a4/python/src/PyIID.cpp index 2cdcf5c0..783c9c61 100644 --- a/src/libs/xpcom18a4/python/src/PyIID.cpp +++ b/src/libs/xpcom18a4/python/src/PyIID.cpp @@ -114,7 +114,7 @@ Py_nsIID::IIDFromPyObject(PyObject *ob, nsIID *pRet) { } } else if (ob->ob_type == &type) { iid = ((Py_nsIID *)ob)->m_iid; - } else if (PyInstance_Check(ob)) { + } else if (PyObject_HasAttrString(ob, "__class__")) { // Get the _iidobj_ attribute PyObject *use_ob = PyObject_GetAttrString(ob, "_iidobj_"); if (use_ob==NULL) { diff --git a/src/libs/xpcom18a4/python/src/PyISupports.cpp b/src/libs/xpcom18a4/python/src/PyISupports.cpp index 508eeeae..0802eeed 100644 --- a/src/libs/xpcom18a4/python/src/PyISupports.cpp +++ b/src/libs/xpcom18a4/python/src/PyISupports.cpp @@ -321,7 +321,7 @@ Py_nsISupports::InterfaceFromPyObject(PyObject *ob, // support nsIVariant if (iid.Equals(NS_GET_IID(nsIVariant)) || iid.Equals(NS_GET_IID(nsIWritableVariant))) { // Check it is not already nsIVariant - if (PyInstance_Check(ob)) { + if (PyObject_HasAttrString(ob, "__class__")) { PyObject *sub_ob = PyObject_GetAttrString(ob, "_comobj_"); if (sub_ob==NULL) { PyErr_Clear(); @@ -344,7 +344,7 @@ Py_nsISupports::InterfaceFromPyObject(PyObject *ob, } // end of variant support. - if (PyInstance_Check(ob)) { + if (PyObject_HasAttrString(ob, "__class__")) { // Get the _comobj_ attribute PyObject *use_ob = PyObject_GetAttrString(ob, "_comobj_"); if (use_ob==NULL) { diff --git a/src/libs/xpcom18a4/python/src/VariantUtils.cpp b/src/libs/xpcom18a4/python/src/VariantUtils.cpp index 0c864ec4..cc050b5f 100644 --- a/src/libs/xpcom18a4/python/src/VariantUtils.cpp +++ b/src/libs/xpcom18a4/python/src/VariantUtils.cpp @@ -1116,7 +1116,7 @@ PRBool PyXPCOM_InterfaceVariantHelper::Init(PyObject *obParams) if (PySequence_Length(m_pyparams) != total_params_needed) { #ifdef VBOX PyErr_Format(PyExc_ValueError, "The type descriptions indicate %d args are needed, but %ld were provided", - total_params_needed, PySequence_Length(m_pyparams)); + total_params_needed, (long)PySequence_Length(m_pyparams)); #else PyErr_Format(PyExc_ValueError, "The type descriptions indicate %d args are needed, but %d were provided", total_params_needed, PySequence_Length(m_pyparams)); diff --git a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp index f5465131..be6b1888 100644 --- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp +++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp @@ -74,24 +74,44 @@ extern PYXPCOM_EXPORT void PyXPCOM_InterpreterState_Ensure(); #endif #ifdef VBOX_PYXPCOM +# include <iprt/cdefs.h> +# ifndef MODULE_NAME_SUFFIX +# define MANGLE_MODULE_NAME(a_szName) a_szName +# define MANGLE_MODULE_INIT(a_Name) a_Name +# else +# define MANGLE_MODULE_NAME(a_szName) a_szName RT_XSTR(MODULE_NAME_SUFFIX) +# define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX) +# endif # ifdef VBOX_PYXPCOM_VERSIONED # if PY_VERSION_HEX >= 0x02080000 -# define MODULE_NAME "VBoxPython2_8" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_8") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_8) + # elif PY_VERSION_HEX >= 0x02070000 -# define MODULE_NAME "VBoxPython2_7" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_7") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_7) + # elif PY_VERSION_HEX >= 0x02060000 -# define MODULE_NAME "VBoxPython2_6" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_6") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_6) + # elif PY_VERSION_HEX >= 0x02050000 -# define MODULE_NAME "VBoxPython2_5" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_5") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_5) + # elif PY_VERSION_HEX >= 0x02040000 -# define MODULE_NAME "VBoxPython2_4" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_4") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_4) + # elif PY_VERSION_HEX >= 0x02030000 -# define MODULE_NAME "VBoxPython2_3" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython2_3") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_3) # else # error "Fix module versioning." # endif # else -# define MODULE_NAME "VBoxPython" +# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython") +# define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython) # endif #else #define MODULE_NAME "_xpcom" @@ -510,7 +530,7 @@ PyObject *LogConsoleMessage(PyObject *self, PyObject *args) #ifdef VBOX -# include <VBox/com/EventQueue.h> +# include <VBox/com/NativeEventQueue.h> # include <iprt/err.h> static PyObject * @@ -521,7 +541,7 @@ PyXPCOMMethod_WaitForEvents(PyObject *self, PyObject *args) return NULL; int rc; - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) { @@ -556,7 +576,7 @@ PyXPCOMMethod_WaitForEvents(PyObject *self, PyObject *args) static PyObject* PyXPCOMMethod_InterruptWait(PyObject *self, PyObject *args) { - com::EventQueue* aEventQ = com::EventQueue::getMainEventQueue(); + com::NativeEventQueue* aEventQ = com::NativeEventQueue::getMainEventQueue(); NS_WARN_IF_FALSE(aEventQ != nsnull, "Null main event queue"); if (!aEventQ) return NULL; @@ -776,31 +796,13 @@ using namespace com; extern "C" NS_EXPORT void -# ifdef VBOX_PYXPCOM_VERSIONED -# if PY_VERSION_HEX >= 0x02080000 -initVBoxPython2_8() { -# elif PY_VERSION_HEX >= 0x02070000 -initVBoxPython2_7() { -# elif PY_VERSION_HEX >= 0x02060000 -initVBoxPython2_6() { -# elif PY_VERSION_HEX >= 0x02050000 -initVBoxPython2_5() { -# elif PY_VERSION_HEX >= 0x02040000 -initVBoxPython2_4() { -# elif PY_VERSION_HEX >= 0x02030000 -initVBoxPython2_3() { -# else -# error "Fix module versioning." -# endif -# else -initVBoxPython() { -# endif +initVBoxPython() { /* NOTE! This name is redefined at the top of the file! */ static bool s_vboxInited = false; if (!s_vboxInited) { int rc = 0; #if defined(VBOX_PATH_APP_PRIVATE_ARCH) && defined(VBOX_PATH_SHARED_LIBS) - rc = RTR3InitDll(0); + rc = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); #else const char *home = getenv("VBOX_PROGRAM_PATH"); if (home) { @@ -808,9 +810,9 @@ initVBoxPython() { char *exepath = (char *)alloca(len + 32); memcpy(exepath, home, len); memcpy(exepath + len, "/pythonfake", sizeof("/pythonfake")); - rc = RTR3InitEx(RTR3INIT_VER_CUR, RTR3INIT_FLAGS_DLL, 0, NULL, exepath); + rc = RTR3InitEx(RTR3INIT_VER_CUR, RTR3INIT_FLAGS_DLL | RTR3INIT_FLAGS_UNOBTRUSIVE, 0, NULL, exepath); } else { - rc = RTR3InitDll(0); + rc = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); } #endif diff --git a/src/libs/xpcom18a4/python/vboxxpcom.py b/src/libs/xpcom18a4/python/vboxxpcom.py index 47b11d0f..fa1f597a 100755 --- a/src/libs/xpcom18a4/python/vboxxpcom.py +++ b/src/libs/xpcom18a4/python/vboxxpcom.py @@ -1,5 +1,5 @@ """ -Copyright (C) 2008 Oracle Corporation +Copyright (C) 2008-2012 Oracle Corporation This file is part of VirtualBox Open Source Edition (OSE), as available from http://www.virtualbox.org. This file is free software; @@ -14,38 +14,49 @@ import xpcom import sys import platform -# this code overcomes somewhat unlucky feature of Python, where it searches +# +# This code overcomes somewhat unlucky feature of Python, where it searches # for binaries in the same place as platfom independent modules, while # rest of Python bindings expect _xpcom to be inside xpcom module - -candidates = ['VBoxPython' + str(sys.version_info[0]) + '_' + str(sys.version_info[1]), - 'VBoxPython' + str(sys.version_info[0]), - 'VBoxPython'] +# + +_asVBoxPythons = [ + 'VBoxPython' + str(sys.version_info[0]) + '_' + str(sys.version_info[1]), + 'VBoxPython' + str(sys.version_info[0]), + 'VBoxPython' +]; + +# On platforms where we ship both 32-bit and 64-bit API bindings, we have to +# look for the right set if we're a 32-bit process. +if platform.system() in [ 'SunOS', ] and sys.maxsize <= 2**32: + _asNew = [ sCandidate + '_x86' for sCandidate in _asVBoxPythons ]; + _asNew.extend(_asVBoxPythons); + _asVBoxPythons = _asNew; + del _asNew; + +# On Darwin (aka Mac OS X) we know exactly where things are in a normal +# VirtualBox installation. +## @todo Edit this at build time to the actual VBox location set in the make files. +## @todo We know the location for most hardened builds, not just darwin! if platform.system() == 'Darwin': - # On Darwin (aka Mac OS X) we know exactly where things are in a normal - # VirtualBox installation. Also, there are two versions of python there - # (2.3.x and 2.5.x) depending on whether the os is striped or spotty, so - # we have to choose the right module to load. - # - # XXX: This needs to be adjusted for OSE builds. A more general solution would - # be to to sed the file during install and inject the VBOX_PATH_APP_PRIVATE_ARCH - # and VBOX_PATH_SHARED_LIBS when these are set. sys.path.append('/Applications/VirtualBox.app/Contents/MacOS') -cglue = None -for m in candidates: - try: - cglue = __import__(m) - break - except: - pass +_oVBoxPythonMod = None +for m in _asVBoxPythons: + try: + _oVBoxPythonMod = __import__(m) + break + except Exception, x: + print 'm=%s x=%s' % (m, x); + #except: + # pass if platform.system() == 'Darwin': sys.path.remove('/Applications/VirtualBox.app/Contents/MacOS') -if cglue == None: - raise Exception, "Cannot find VBoxPython module" +if _oVBoxPythonMod == None: + raise Exception('Cannot find VBoxPython module (tried: %s)' % (', '.join(_asVBoxPythons),)); -sys.modules['xpcom._xpcom'] = cglue -xpcom._xpcom = cglue +sys.modules['xpcom._xpcom'] = _oVBoxPythonMod; +xpcom._xpcom = _oVBoxPythonMod; diff --git a/src/libs/xpcom18a4/xpcom-namespace-cleanup.map b/src/libs/xpcom18a4/xpcom-namespace-cleanup.map index 3ad053fc..40867352 100644 --- a/src/libs/xpcom18a4/xpcom-namespace-cleanup.map +++ b/src/libs/xpcom18a4/xpcom-namespace-cleanup.map @@ -4,7 +4,7 @@ # the Mozilla project. VirtualBox shouldn't pollute the namespace. # -# Copyright (C) 2008 Oracle Corporation +# Copyright (C) 2008-2010 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; diff --git a/src/libs/xpcom18a4/xpcom-private.h b/src/libs/xpcom18a4/xpcom-private.h index f30e7ce4..e0721fae 100644 --- a/src/libs/xpcom18a4/xpcom-private.h +++ b/src/libs/xpcom18a4/xpcom-private.h @@ -11,17 +11,13 @@ #define HAVE_GETPAGESIZE 1 /* Define if iconv() is available */ -#ifndef L4ENV #define HAVE_ICONV 1 -#endif /* Define if iconv() supports const input */ /* #undef HAVE_ICONV_WITH_CONST_INPUT */ /* Define if mbrtowc() is available */ -#ifndef L4ENV #define HAVE_MBRTOWC 1 -#endif /* Define if <sys/mount.h> is present */ #define HAVE_SYS_MOUNT_H 1 @@ -30,9 +26,7 @@ #define HAVE_SYS_VFS_H 1 /* Define if wcrtomb() is available */ -#ifndef L4ENV #define HAVE_WCRTOMB 1 -#endif #endif /* _XPCOM_PRIVATE_H_ */ diff --git a/src/libs/xpcom18a4/xpcom/components/nsComponentManager.cpp b/src/libs/xpcom18a4/xpcom/components/nsComponentManager.cpp index 681030a0..ec3cb3f5 100644 --- a/src/libs/xpcom18a4/xpcom/components/nsComponentManager.cpp +++ b/src/libs/xpcom18a4/xpcom/components/nsComponentManager.cpp @@ -2375,7 +2375,7 @@ nsComponentManagerImpl::GetServiceByContractID(const char* aContractID, mon.Enter(); -#ifdef XPCOM_CHECK_PENDING_CIDS +#ifdef XPCOM_CHECK_PENDING_CIDS if (entry) RemovePendingCID(entry->mCid); #endif @@ -3722,8 +3722,21 @@ NS_GetServiceManager(nsIServiceManager* *result) if (nsComponentManagerImpl::gComponentManager == nsnull) { +#ifdef VBOX + // While XPCOM might need initialization, we're not in a position + // to pass the right values to this call. This is actually triggered + // on object destruction, so there is no point in re-initializing, + // and actually the attempt would lead to nested calls to + // xptiInterfaceInfoManager::BuildFileSearchPath, which it detects + // as unsafe in debug builds. Just fail, no real problem. +#ifdef DEBUG + printf("NS_GetServiceManager: no current instance, suppressed XPCOM initialization!\n"); +#endif + rv = NS_ERROR_SERVICE_NOT_AVAILABLE; +#else /* !VBOX */ // XPCOM needs initialization. rv = NS_InitXPCOM2(nsnull, nsnull, nsnull); +#endif /* !VBOX */ } if (NS_FAILED(rv)) diff --git a/src/libs/xpcom18a4/xpcom/components/nsNativeComponentLoader.cpp b/src/libs/xpcom18a4/xpcom/components/nsNativeComponentLoader.cpp index 1ccd862c..a3fd5df8 100644 --- a/src/libs/xpcom18a4/xpcom/components/nsNativeComponentLoader.cpp +++ b/src/libs/xpcom18a4/xpcom/components/nsNativeComponentLoader.cpp @@ -674,6 +674,7 @@ nsNativeComponentLoader::AutoRegisterComponent(PRInt32 when, *registered = PR_FALSE; +#ifndef VBOX /* this should be a pref or registry entry, or something */ static const char *ValidDllExtensions[] = { ".dll", /* Windows */ @@ -749,6 +750,53 @@ nsNativeComponentLoader::AutoRegisterComponent(PRInt32 when, // Skip invalid extensions return NS_OK; +#else /* VBOX */ + /* VBox: Only one valid suffix exist, so dispense with the the list. */ +# ifdef RT_OS_DARWIN +# ifdef VBOX_IN_32_ON_64_MAIN_API + static const char s_szSuff[] = "-x86.dylib"; +# else + static const char s_szSuff[] = ".dylib"; + static const char s_szSuffInvalid[] = "-x86.dylib"; +# endif +# elif defined(RT_OS_OS2) || defined(RT_OS_WINDOWS) +# ifdef VBOX_IN_32_ON_64_MAIN_API + static const char s_szSuff[] = "-x86.dll"; +#else + static const char s_szSuff[] = ".dll"; + static const char s_szSuffInvalid[] = "-x86.dll"; +# endif +# else +# ifdef VBOX_IN_32_ON_64_MAIN_API + static const char s_szSuff[] = "-x86.so"; +#else + static const char s_szSuff[] = ".so"; + static const char s_szSuffInvalid[] = "-x86.so"; +# endif +# endif + + nsCAutoString strLeafName; + rv = component->GetNativeLeafName(strLeafName); + if (NS_FAILED(rv)) + return rv; + size_t cchLeafName = strLeafName.Length(); + if ( cchLeafName <= sizeof(s_szSuff) + || PL_strcasecmp(strLeafName.get() + cchLeafName - sizeof(s_szSuff) + 1, s_szSuff)) + { + PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("Skipping '%s'...", strLeafName.get())); + return NS_OK; /* skip */ + } +# ifndef VBOX_IN_32_ON_64_MAIN_API + if ( cchLeafName >= sizeof(s_szSuffInvalid) + && !PL_strcasecmp(strLeafName.get() + cchLeafName - sizeof(s_szSuffInvalid) + 1, s_szSuffInvalid)) + { + PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("Skipping '%s' (#2)...", strLeafName.get())); + return NS_OK; /* skip */ + } +# endif + PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("... '%s'", strLeafName.get())); +#endif /* VBOX */ + nsXPIDLCString persistentDescriptor; // what I want to do here is QI for a Component Registration Manager. Since this // has not been invented yet, QI to the obsolete manager. Kids, don't do this at home. diff --git a/src/libs/xpcom18a4/xpcom/io/nsAppFileLocationProvider.cpp b/src/libs/xpcom18a4/xpcom/io/nsAppFileLocationProvider.cpp index c67b182f..eb144c55 100644 --- a/src/libs/xpcom18a4/xpcom/io/nsAppFileLocationProvider.cpp +++ b/src/libs/xpcom18a4/xpcom/io/nsAppFileLocationProvider.cpp @@ -378,10 +378,6 @@ NS_METHOD nsAppFileLocationProvider::GetProductDirectory(nsILocalFile **aLocalFi rv = directoryService->Get(NS_WIN_WINDOWS_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir)); } if (NS_FAILED(rv)) return rv; -#elif defined(L4ENV) - /* Major hack attack, should sort out the environment stuff!!! */ - rv = NS_NewNativeLocalFile(nsDependentCString("."), PR_TRUE, getter_AddRefs(localDir)); - if (NS_FAILED(rv)) return rv; #elif defined(XP_UNIX) rv = NS_NewNativeLocalFile(nsDependentCString(PR_GetEnv("HOME")), PR_TRUE, getter_AddRefs(localDir)); if (NS_FAILED(rv)) return rv; diff --git a/src/libs/xpcom18a4/xpcom/io/nsDirectoryService.cpp b/src/libs/xpcom18a4/xpcom/io/nsDirectoryService.cpp index e5cc844c..4e650721 100644 --- a/src/libs/xpcom18a4/xpcom/io/nsDirectoryService.cpp +++ b/src/libs/xpcom18a4/xpcom/io/nsDirectoryService.cpp @@ -92,7 +92,7 @@ #else #define COMPONENT_REGISTRY_NAME NS_LITERAL_CSTRING("compreg.dat") #define COMPONENT_DIRECTORY NS_LITERAL_CSTRING("components") -#endif +#endif #define XPTI_REGISTRY_NAME NS_LITERAL_CSTRING("xpti.dat") @@ -111,22 +111,22 @@ #endif //---------------------------------------------------------------------------------------- -nsresult +nsresult nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) //---------------------------------------------------------------------------------------- { NS_ENSURE_ARG_POINTER(aFile); *aFile = nsnull; - + // Set the component registry location: if (!mService) return NS_ERROR_FAILURE; - nsresult rv; - + nsresult rv; + nsCOMPtr<nsIProperties> dirService; - rv = nsDirectoryService::Create(nsnull, - NS_GET_IID(nsIProperties), + rv = nsDirectoryService::Create(nsnull, + NS_GET_IID(nsIProperties), getter_AddRefs(dirService)); // needs to be around for life of product if (dirService) @@ -156,7 +156,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) char* lastSlash = PL_strrchr(buf, '\\'); if (lastSlash) *(lastSlash + 1) = '\0'; - + localFile->InitWithNativePath(nsDependentCString(buf)); *aFile = localFile; return NS_OK; @@ -182,9 +182,9 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) // create an FSSpec from the volume and dirid of the app. FSSpec appFSSpec; ::FSMakeFSSpec(pInfo.processAppSpec->vRefNum, pInfo.processAppSpec->parID, 0, &appFSSpec); - + nsCOMPtr<nsILocalFileMac> localFileMac = do_QueryInterface((nsIFile*)localFile); - if (localFileMac) + if (localFileMac) { localFileMac->InitWithFSSpec(&appFSSpec); *aFile = localFile; @@ -192,6 +192,11 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) } } #elif defined(XP_MACOSX) +# ifdef MOZ_DEFAULT_VBOX_XPCOM_HOME + rv = localFile->InitWithNativePath(nsDependentCString(MOZ_DEFAULT_VBOX_XPCOM_HOME)); + if (NS_SUCCEEDED(rv)) + *aFile = localFile; +# else // Works even if we're not bundled. CFBundleRef appBundle = CFBundleGetMainBundle(); if (appBundle != nsnull) @@ -220,8 +225,9 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) CFRelease(bundleURL); } } - - NS_ASSERTION(*aFile, "nsDirectoryService - Could not determine CurrentProcessDir.\n"); +#endif + + NS_ASSERTION(*aFile, "nsDirectoryService - Could not determine CurrentProcessDir.\n"); if (*aFile) return NS_OK; @@ -242,7 +248,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) char buf2[MAXPATHLEN + 3]; buf2[0] = '\0'; - /* + /* * Env.var. VBOX_XPCOM_HOME first. */ char *psz = PR_GetEnv("VBOX_XPCOM_HOME"); @@ -250,7 +256,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) { if (strlen(psz) < MAXPATHLEN) { - if (!realpath(psz, buf2)) + if (!realpath(psz, buf2)) strcpy(buf2, psz); strcat(buf2, "/x"); /* for the filename stripping */ } @@ -277,7 +283,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) { char buf[MAXPATHLEN]; int cchLink = readlink("/proc/self/exe", buf, sizeof(buf) - 1); - if (cchLink > 0 || cchLink != sizeof(buf) - 1) + if (cchLink > 0 || cchLink != sizeof(buf) - 1) { buf[cchLink] = '\0'; if (!realpath(buf, buf2)) @@ -296,7 +302,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) p[p == buf2] = '\0'; #ifdef DEBUG printf("debug: (1) VBOX_XPCOM_HOME=%s\n", buf2); - #endif + #endif strcpy(szPath, buf2); fPathSet = true; } @@ -312,12 +318,12 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) #endif - // The MOZ_DEFAULT_VBOX_XPCOMHOME variable can be set at configure time with + // The MOZ_DEFAULT_VBOX_XPCOM_HOME variable can be set at configure time with // a --with-default-mozilla-five-home=foo autoconf flag. - // + // // The idea here is to allow for builds that have a default VBOX_XPCOM_HOME // regardless of the environment. This makes it easier to write apps that - // embed mozilla without having to worry about setting up the environment + // embed mozilla without having to worry about setting up the environment // // We do this py putenv()ing the default value into the environment. Note that // we only do this if it is not already set. @@ -398,7 +404,7 @@ nsDirectoryService::GetCurrentProcessDirectory(nsILocalFile** aFile) } #endif - + NS_RELEASE(localFile); NS_ERROR("unable to get current process directory"); @@ -448,7 +454,7 @@ nsIAtom* nsDirectoryService::sPictureDocumentsDirectory = nsnull; nsIAtom* nsDirectoryService::sMovieDocumentsDirectory = nsnull; nsIAtom* nsDirectoryService::sMusicDocumentsDirectory = nsnull; nsIAtom* nsDirectoryService::sInternetSitesDirectory = nsnull; -#elif defined (XP_WIN) +#elif defined (XP_WIN) nsIAtom* nsDirectoryService::sSystemDirectory = nsnull; nsIAtom* nsDirectoryService::sWindowsDirectory = nsnull; nsIAtom* nsDirectoryService::sHomeDirectory = nsnull; @@ -557,7 +563,7 @@ static const nsStaticAtom directory_atoms[] = { { NS_OSX_MOVIE_DOCUMENTS_DIR, &nsDirectoryService::sMovieDocumentsDirectory }, { NS_OSX_MUSIC_DOCUMENTS_DIR, &nsDirectoryService::sMusicDocumentsDirectory }, { NS_OSX_INTERNET_SITES_DIR, &nsDirectoryService::sInternetSitesDirectory }, -#elif defined (XP_WIN) +#elif defined (XP_WIN) { NS_OS_SYSTEM_DIR, &nsDirectoryService::sSystemDirectory }, { NS_WIN_WINDOWS_DIR, &nsDirectoryService::sWindowsDirectory }, { NS_WIN_HOME_DIR, &nsDirectoryService::sHomeDirectory }, @@ -600,18 +606,18 @@ static const nsStaticAtom directory_atoms[] = { { NS_BEOS_HOME_DIR, &nsDirectoryService::sHomeDirectory }, { NS_BEOS_DESKTOP_DIR, &nsDirectoryService::sDesktopDirectory }, #endif -}; +}; nsresult nsDirectoryService::Init() { nsresult rv; - + rv = NS_NewISupportsArray(getter_AddRefs(mProviders)); if (NS_FAILED(rv)) return rv; NS_RegisterStaticAtoms(directory_atoms, NS_ARRAY_LENGTH(directory_atoms)); - + // Let the list hold the only reference to the provider. nsAppFileLocationProvider *defaultProvider = new nsAppFileLocationProvider; if (!defaultProvider) @@ -665,7 +671,7 @@ struct FileData data(nsnull), persistent(PR_TRUE), uuid(aUUID) {} - + const char* property; nsISupports* data; PRBool persistent; @@ -706,9 +712,9 @@ NS_IMETHODIMP nsDirectoryService::Get(const char* prop, const nsIID & uuid, void* *result) { nsCStringKey key(prop); - + nsCOMPtr<nsISupports> value = dont_AddRef(mHashtable.Get(&key)); - + if (value) { nsCOMPtr<nsIFile> cloneFile; @@ -767,7 +773,7 @@ nsDirectoryService::Set(const char* prop, nsISupports* value) return NS_OK; } - return NS_ERROR_FAILURE; + return NS_ERROR_FAILURE; } NS_IMETHODIMP @@ -776,14 +782,14 @@ nsDirectoryService::Has(const char *prop, PRBool *_retval) *_retval = PR_FALSE; nsCOMPtr<nsIFile> value; nsresult rv = Get(prop, NS_GET_IID(nsIFile), getter_AddRefs(value)); - if (NS_FAILED(rv)) + if (NS_FAILED(rv)) return rv; - + if (value) { *_retval = PR_TRUE; } - + return rv; } @@ -822,7 +828,7 @@ nsDirectoryService::UnregisterProvider(nsIDirectoryServiceProvider *prov) // DO NOT ADD ANY LOCATIONS TO THIS FUNCTION UNTIL YOU TALK TO: dougt@netscape.com. // This is meant to be a place of xpcom or system specific file locations, not // application specific locations. If you need the later, register a callback for -// your application. +// your application. NS_IMETHODIMP nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_retval) @@ -836,8 +842,8 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret nsIAtom* inAtom = NS_NewAtom(prop); // check to see if it is one of our defaults - - if (inAtom == nsDirectoryService::sCurrentProcess || + + if (inAtom == nsDirectoryService::sCurrentProcess || inAtom == nsDirectoryService::sOS_CurrentProcessDirectory ) { rv = GetCurrentProcessDirectory(getter_AddRefs(localFile)); @@ -848,8 +854,8 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret if (!localFile) return NS_ERROR_FAILURE; - localFile->AppendNative(COMPONENT_DIRECTORY); - localFile->AppendNative(COMPONENT_REGISTRY_NAME); + localFile->AppendNative(COMPONENT_DIRECTORY); + localFile->AppendNative(COMPONENT_REGISTRY_NAME); } else if (inAtom == nsDirectoryService::sXPTIRegistry) { @@ -857,10 +863,10 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret if (!localFile) return NS_ERROR_FAILURE; - localFile->AppendNative(COMPONENT_DIRECTORY); - localFile->AppendNative(XPTI_REGISTRY_NAME); + localFile->AppendNative(COMPONENT_DIRECTORY); + localFile->AppendNative(XPTI_REGISTRY_NAME); } - + // Unless otherwise set, the core pieces of the GRE exist // in the current process directory. else if (inAtom == nsDirectoryService::sGRE_Directory) @@ -880,7 +886,7 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret { rv = GetCurrentProcessDirectory(getter_AddRefs(localFile)); if (localFile) - localFile->AppendNative(COMPONENT_DIRECTORY); + localFile->AppendNative(COMPONENT_DIRECTORY); } else if (inAtom == nsDirectoryService::sOS_DriveDirectory) { @@ -892,13 +898,13 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sOS_CurrentProcessDirectory) { - rv = GetSpecialSystemDirectory(OS_CurrentProcessDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS_CurrentProcessDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sOS_CurrentWorkingDirectory) { - rv = GetSpecialSystemDirectory(OS_CurrentWorkingDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS_CurrentWorkingDirectory, getter_AddRefs(localFile)); } - + #if defined(XP_MACOSX) else if (inAtom == nsDirectoryService::sDirectory) { @@ -947,7 +953,7 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret else if (inAtom == nsDirectoryService::sInternetSearchDirectory) { rv = GetOSXFolderType(kClassicDomain, kInternetSearchSitesFolderType, getter_AddRefs(localFile)); - } + } else if (inAtom == nsDirectoryService::sUserLibDirectory) { rv = GetOSXFolderType(kUserDomain, kDomainLibraryFolderType, getter_AddRefs(localFile)); @@ -979,14 +985,14 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } ::ICStop(icInstance); } - + if NS_FAILED(rv) - { + { // We got an error getting the DL folder from IC so try finding the user's Desktop folder rv = GetOSXFolderType(kUserDomain, kDesktopFolderType, getter_AddRefs(localFile)); } } - + // Don't cache the DL directory as the user may change it while we're running. // Negligible perf hit as this directory is only requested for downloads *persistent = PR_FALSE; @@ -1058,39 +1064,39 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret #elif defined (XP_WIN) else if (inAtom == nsDirectoryService::sSystemDirectory) { - rv = GetSpecialSystemDirectory(Win_SystemDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_SystemDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sWindowsDirectory) { - rv = GetSpecialSystemDirectory(Win_WindowsDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_WindowsDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sHomeDirectory) { - rv = GetSpecialSystemDirectory(Win_HomeDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_HomeDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sDesktop) { - rv = GetSpecialSystemDirectory(Win_Desktop, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Desktop, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sPrograms) { - rv = GetSpecialSystemDirectory(Win_Programs, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Programs, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sControls) { - rv = GetSpecialSystemDirectory(Win_Controls, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Controls, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sPrinters) { - rv = GetSpecialSystemDirectory(Win_Printers, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Printers, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sPersonal) { - rv = GetSpecialSystemDirectory(Win_Personal, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Personal, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sFavorites) { - rv = GetSpecialSystemDirectory(Win_Favorites, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Favorites, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sStartup) { @@ -1098,23 +1104,23 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sRecent) { - rv = GetSpecialSystemDirectory(Win_Recent, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Recent, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sSendto) { - rv = GetSpecialSystemDirectory(Win_Sendto, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Sendto, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sBitbucket) { - rv = GetSpecialSystemDirectory(Win_Bitbucket, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Bitbucket, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sStartmenu) { - rv = GetSpecialSystemDirectory(Win_Startmenu, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Startmenu, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sDesktopdirectory) { - rv = GetSpecialSystemDirectory(Win_Desktopdirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Desktopdirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sDrives) { @@ -1122,11 +1128,11 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sNetwork) { - rv = GetSpecialSystemDirectory(Win_Network, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Network, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sNethood) { - rv = GetSpecialSystemDirectory(Win_Nethood, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Nethood, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sFonts) { @@ -1134,41 +1140,41 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sTemplates) { - rv = GetSpecialSystemDirectory(Win_Templates, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Templates, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sCommon_Startmenu) { - rv = GetSpecialSystemDirectory(Win_Common_Startmenu, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Common_Startmenu, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sCommon_Programs) { - rv = GetSpecialSystemDirectory(Win_Common_Programs, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Common_Programs, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sCommon_Startup) { - rv = GetSpecialSystemDirectory(Win_Common_Startup, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Common_Startup, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sCommon_Desktopdirectory) { - rv = GetSpecialSystemDirectory(Win_Common_Desktopdirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Common_Desktopdirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sAppdata) { - rv = GetSpecialSystemDirectory(Win_Appdata, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Appdata, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sPrinthood) { - rv = GetSpecialSystemDirectory(Win_Printhood, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Printhood, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sWinCookiesDirectory) { - rv = GetSpecialSystemDirectory(Win_Cookies, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Win_Cookies, getter_AddRefs(localFile)); } #elif defined (XP_UNIX) else if (inAtom == nsDirectoryService::sLocalDirectory) { - rv = GetSpecialSystemDirectory(Unix_LocalDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Unix_LocalDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sLibDirectory) { @@ -1176,29 +1182,29 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sHomeDirectory) { - rv = GetSpecialSystemDirectory(Unix_HomeDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(Unix_HomeDirectory, getter_AddRefs(localFile)); } #elif defined (XP_OS2) else if (inAtom == nsDirectoryService::sSystemDirectory) { - rv = GetSpecialSystemDirectory(OS2_SystemDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS2_SystemDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sOS2Directory) { - rv = GetSpecialSystemDirectory(OS2_OS2Directory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS2_OS2Directory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sHomeDirectory) { - rv = GetSpecialSystemDirectory(OS2_HomeDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS2_HomeDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sDesktopDirectory) { - rv = GetSpecialSystemDirectory(OS2_DesktopDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(OS2_DesktopDirectory, getter_AddRefs(localFile)); } #elif defined (XP_BEOS) else if (inAtom == nsDirectoryService::sSettingsDirectory) { - rv = GetSpecialSystemDirectory(BeOS_SettingsDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(BeOS_SettingsDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sHomeDirectory) { @@ -1206,11 +1212,11 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret } else if (inAtom == nsDirectoryService::sDesktopDirectory) { - rv = GetSpecialSystemDirectory(BeOS_DesktopDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(BeOS_DesktopDirectory, getter_AddRefs(localFile)); } else if (inAtom == nsDirectoryService::sSystemDirectory) { - rv = GetSpecialSystemDirectory(BeOS_SystemDirectory, getter_AddRefs(localFile)); + rv = GetSpecialSystemDirectory(BeOS_SystemDirectory, getter_AddRefs(localFile)); } #endif @@ -1230,6 +1236,6 @@ nsDirectoryService::GetFiles(const char *prop, nsISimpleEnumerator **_retval) { NS_ENSURE_ARG_POINTER(_retval); *_retval = nsnull; - + return NS_ERROR_FAILURE; } diff --git a/src/libs/xpcom18a4/xpcom/io/nsLocalFile.h b/src/libs/xpcom18a4/xpcom/io/nsLocalFile.h index 4ab859aa..8201affb 100644 --- a/src/libs/xpcom18a4/xpcom/io/nsLocalFile.h +++ b/src/libs/xpcom18a4/xpcom/io/nsLocalFile.h @@ -74,9 +74,6 @@ #include "nsLocalFileOSX.h" #elif defined(XP_MAC) #include "nsLocalFileMac.h" -#elif defined(L4ENV) - /* Major hack attack!!! */ -#include "nsLocalFileL4.h" #elif defined(XP_UNIX) || defined(XP_BEOS) #include "nsLocalFileUnix.h" #elif defined(XP_OS2) diff --git a/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.cpp b/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.cpp deleted file mode 100644 index 1a3c974f..00000000 --- a/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.cpp +++ /dev/null @@ -1,549 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-1999 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Mike Shaver <shaver@mozilla.org> - * Christopher Blizzard <blizzard@mozilla.org> - * Jason Eager <jce2@po.cwru.edu> - * Stuart Parmenter <pavlov@netscape.com> - * Brendan Eich <brendan@mozilla.org> - * Pete Collins <petejc@mozdev.org> - * Paul Ashford <arougthopher@lizardland.net> - * - * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/** - * Implementation of nsIFile for L4 systems. - * - * Notes to all those who have something to do with this file again: I have told almost - * all functions to return NS_ERROR_FAILURE. A good starting point if you need to - * implement any of it would be to search/replace those with standard assertions. - */ - -#include "nsDirectoryServiceDefs.h" -#include "nsCRT.h" -#include "nsCOMPtr.h" -#include "nsMemory.h" -#include "nsIFile.h" -#include "nsString.h" -#include "nsReadableUtils.h" -#include "nsLocalFile.h" -#include "nsIComponentManager.h" -#include "nsXPIDLString.h" -#include "prproces.h" -#include "nsISimpleEnumerator.h" -#include "nsITimelineService.h" - -#include "nsNativeCharsetUtils.h" - -#if 0 -/* directory enumerator */ -class NS_COM -nsDirEnumeratorL4 : public nsISimpleEnumerator -{ - public: - nsDirEnumeratorL4(); - - // nsISupports interface - NS_DECL_ISUPPORTS - - // nsISimpleEnumerator interface - NS_DECL_NSISIMPLEENUMERATOR - - NS_IMETHOD Init(nsLocalFile *parent, PRBool ignored); - - private: - ~nsDirEnumeratorL4(); - - protected: - NS_IMETHOD GetNextEntry(); - -}; - -nsDirEnumeratorL4::nsDirEnumeratorL4() : - mDir(nsnull), - mEntry(nsnull) -{ - NS_ASSERTION(0, "nsDirEnumeratorL4 created!"); -} - -nsDirEnumeratorL4::~nsDirEnumeratorL4() -{ -} - -NS_IMPL_ISUPPORTS1(nsDirEnumeratorL4, nsISimpleEnumerator) - -NS_IMETHODIMP -nsDirEnumeratorL4::Init(nsLocalFile *parent, PRBool resolveSymlinks /*ignored*/) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsDirEnumeratorL4::HasMoreElements(PRBool *result) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsDirEnumeratorL4::GetNext(nsISupports **_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsDirEnumeratorL4::GetNextEntry() -{ - return NS_ERROR_FAILURE; -} -#endif /* 0 */ - -nsLocalFile::nsLocalFile() -{ - NS_ASSERTION(0, "nsLocalFile created!"); -} - -nsLocalFile::nsLocalFile(const nsLocalFile& other) -{ - NS_ASSERTION(0, "nsLocalFile created!"); -} - -NS_IMPL_THREADSAFE_ISUPPORTS2(nsLocalFile, - nsIFile, - nsILocalFile) - -nsresult -nsLocalFile::nsLocalFileConstructor(nsISupports *outer, - const nsIID &aIID, - void **aInstancePtr) -{ - NS_ASSERTION(0, "nsLocalFile::nsLocalFileConstructor called!"); - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Clone(nsIFile **file) -{ - // Just copy-construct ourselves - *file = new nsLocalFile(*this); - if (!*file) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(*file); - - return NS_OK; -} - -NS_IMETHODIMP -nsLocalFile::InitWithNativePath(const nsACString &filePath) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::OpenNSPRFileDesc(PRInt32 flags, PRInt32 mode, PRFileDesc **_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::OpenANSIFileDesc(const char *mode, FILE **_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Create(PRUint32 type, PRUint32 permissions) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::AppendNative(const nsACString &fragment) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::AppendRelativeNativePath(const nsACString &fragment) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Normalize() -{ - return NS_ERROR_FAILURE; -} - -void -nsLocalFile::LocateNativeLeafName(nsACString::const_iterator &begin, - nsACString::const_iterator &end) -{ -} - -NS_IMETHODIMP -nsLocalFile::GetNativeLeafName(nsACString &aLeafName) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetNativeLeafName(const nsACString &aLeafName) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetNativePath(nsACString &_retval) -{ - return NS_ERROR_FAILURE; -} - -nsresult -nsLocalFile::GetNativeTargetPathName(nsIFile *newParent, - const nsACString &newName, - nsACString &_retval) -{ - return NS_ERROR_FAILURE; -} - -nsresult -nsLocalFile::CopyDirectoryTo(nsIFile *newParent) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::CopyToNative(nsIFile *newParent, const nsACString &newName) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::CopyToFollowingLinksNative(nsIFile *newParent, const nsACString &newName) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::MoveToNative(nsIFile *newParent, const nsACString &newName) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Remove(PRBool recursive) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetLastModifiedTime(PRInt64 *aLastModTime) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetLastModifiedTime(PRInt64 aLastModTime) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetLastModifiedTimeOfLink(PRInt64 *aLastModTimeOfLink) -{ - return NS_ERROR_FAILURE; -} - -/* - * utime(2) may or may not dereference symlinks, joy. - */ -NS_IMETHODIMP -nsLocalFile::SetLastModifiedTimeOfLink(PRInt64 aLastModTimeOfLink) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetPermissions(PRUint32 *aPermissions) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetPermissions(PRUint32 aPermissions) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetPermissionsOfLink(PRUint32 aPermissions) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetFileSize(PRInt64 *aFileSize) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetFileSize(PRInt64 aFileSize) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetFileSizeOfLink(PRInt64 *aFileSize) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetParent(nsIFile **aParent) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Exists(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsWritable(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsReadable(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsExecutable(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsDirectory(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsFile(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsHidden(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsSymlink(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::IsSpecial(PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Equals(nsIFile *inFile, PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetNativeTarget(nsACString &_retval) -{ - return NS_ERROR_FAILURE; -} - -/* attribute PRBool followLinks; */ -NS_IMETHODIMP -nsLocalFile::GetFollowLinks(PRBool *aFollowLinks) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetFollowLinks(PRBool aFollowLinks) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetDirectoryEntries(nsISimpleEnumerator **entries) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Load(PRLibrary **_retval) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::GetPersistentDescriptor(nsACString &aPersistentDescriptor) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::SetPersistentDescriptor(const nsACString &aPersistentDescriptor) -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Reveal() -{ - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP -nsLocalFile::Launch() -{ - return NS_ERROR_FAILURE; -} - -nsresult -NS_NewNativeLocalFile(const nsACString &path, PRBool followSymlinks, nsILocalFile **result) -{ - return NS_ERROR_FAILURE; -} - -// Unicode interface Wrapper -nsresult -nsLocalFile::InitWithPath(const nsAString &filePath) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::Append(const nsAString &node) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::AppendRelativePath(const nsAString &node) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::GetLeafName(nsAString &aLeafName) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::SetLeafName(const nsAString &aLeafName) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::GetPath(nsAString &_retval) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::CopyTo(nsIFile *newParentDir, const nsAString &newName) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString &newName) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::MoveTo(nsIFile *newParentDir, const nsAString &newName) -{ - return NS_ERROR_FAILURE; -} -nsresult -nsLocalFile::GetTarget(nsAString &_retval) -{ - return NS_ERROR_FAILURE; -} -nsresult -NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) -{ - return NS_ERROR_FAILURE; -} - -//----------------------------------------------------------------------------- -// global init/shutdown -//----------------------------------------------------------------------------- - -void -nsLocalFile::GlobalInit() -{ -} - -void -nsLocalFile::GlobalShutdown() -{ -} diff --git a/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.h b/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.h deleted file mode 100644 index 80af548c..00000000 --- a/src/libs/xpcom18a4/xpcom/io/nsLocalFileL4.h +++ /dev/null @@ -1,94 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-1999 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Mike Shaver <shaver@mozilla.org> - * - * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Implementation of nsIFile for L4 systems. - */ - -#ifndef _nsLocalFileL4_H_ -#define _nsLocalFileL4_H_ - -#include "nscore.h" -#include "nsString.h" -#include "nsReadableUtils.h" - -class NS_COM nsLocalFile : public nsILocalFile -{ -public: - NS_DEFINE_STATIC_CID_ACCESSOR(NS_LOCAL_FILE_CID) - - nsLocalFile(); - - static NS_METHOD nsLocalFileConstructor(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr); - - // nsISupports - NS_DECL_ISUPPORTS - - // nsIFile - NS_DECL_NSIFILE - - // nsILocalFile - NS_DECL_NSILOCALFILE - -public: - static void GlobalInit(); - static void GlobalShutdown(); - -private: - nsLocalFile(const nsLocalFile& other); - ~nsLocalFile() {} - -protected: - void LocateNativeLeafName(nsACString::const_iterator &, - nsACString::const_iterator &); - - nsresult CopyDirectoryTo(nsIFile *newParent); - nsresult CreateAllAncestors(PRUint32 permissions); - nsresult GetNativeTargetPathName(nsIFile *newParent, - const nsACString &newName, - nsACString &_retval); - - void InvalidateCache() { } - nsresult FillStatCache(); - - nsresult CreateAndKeepOpen(PRUint32 type, PRIntn flags, - PRUint32 permissions, PRFileDesc **_retval); -}; - -#endif /* _nsLocalFileL4_H_ */ diff --git a/src/libs/xpcom18a4/xpcom/io/nsNativeCharsetUtils.cpp b/src/libs/xpcom18a4/xpcom/io/nsNativeCharsetUtils.cpp index a9cc2101..55b5c63c 100644 --- a/src/libs/xpcom18a4/xpcom/io/nsNativeCharsetUtils.cpp +++ b/src/libs/xpcom18a4/xpcom/io/nsNativeCharsetUtils.cpp @@ -642,13 +642,9 @@ nsNativeCharsetConverter::GlobalInit() char a = 'a'; unsigned int w = 0; -#ifndef L4ENV int res = mbtowc((wchar_t *) &w, &a, 1); gWCharIsUnicode = (res != -1 && w == 'a'); -#else - gWCharIsUnicode = 0; -#endif #ifdef DEBUG if (!gWCharIsUnicode) @@ -663,8 +659,6 @@ nsNativeCharsetConverter::NativeToUnicode(const char **input, PRUint32 *outputLeft) { if (gWCharIsUnicode) { -#ifndef L4ENV - /* We don't have any wchar support built into uclibc just now */ int incr; // cannot use wchar_t here since it may have been redefined (e.g., @@ -689,7 +683,6 @@ nsNativeCharsetConverter::NativeToUnicode(const char **input, (*output)++; (*outputLeft)--; } -#endif /* not defined L4ENV */ } else { // wchar_t isn't unicode, so the best we can do is treat the @@ -707,8 +700,6 @@ nsNativeCharsetConverter::UnicodeToNative(const PRUnichar **input, PRUint32 *outputLeft) { if (gWCharIsUnicode) { -#ifndef L4ENV - /* We don't have any wchar support built into uclibc just now */ int incr; while (*inputLeft && *outputLeft >= MB_CUR_MAX) { @@ -730,7 +721,6 @@ nsNativeCharsetConverter::UnicodeToNative(const PRUnichar **input, (*input)++; (*inputLeft)--; } -#endif /* not defined L4ENV */ } else { // wchar_t isn't unicode, so the best we can do is treat the diff --git a/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h b/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h index 688533de..23eb23ee 100644 --- a/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h +++ b/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h @@ -67,8 +67,7 @@ * */ -#if defined(LINUX) || defined(L4) -/* I am assuming that since we are using the Linux compiler for L4, the same will hold true... */ +#if defined(LINUX) #if (__GNUC__ == 2) && (__GNUC_MINOR__ <= 7) /* Old gcc 2.7.x.x. What does gcc 2.8.x do?? */ diff --git a/src/libs/zlib-1.2.6/Makefile.kmk b/src/libs/zlib-1.2.6/Makefile.kmk index 5f86f2fb..ac1278ad 100644 --- a/src/libs/zlib-1.2.6/Makefile.kmk +++ b/src/libs/zlib-1.2.6/Makefile.kmk @@ -46,5 +46,11 @@ VBox-zlib-static_TEMPLATE = VBOXR3STATIC VBox-zlib-static_DEFS = $(VBox-zlib_DEFS) VBox-zlib-static_SOURCES = $(VBox-zlib_SOURCES) +ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition. + LIBRARIES += VBox-zlib-x86 + VBox-zlib-x86_TEMPLATE = VBoxR3Dll-x86 + VBox-zlib-x86_EXTENDS = VBox-zlib +endif + include $(FILE_KBUILD_SUB_FOOTER) diff --git a/src/libs/zlib-1.2.6/gzguts.h b/src/libs/zlib-1.2.6/gzguts.h index 3107c363..1c41c5a1 100644 --- a/src/libs/zlib-1.2.6/gzguts.h +++ b/src/libs/zlib-1.2.6/gzguts.h @@ -31,6 +31,12 @@ # include <io.h> #endif +#ifdef VBOX /* Solves missing seek, read, open, close, write functions. */ +# ifdef _MSC_VER +# include <io.h> +# endif +#endif + #ifdef NO_DEFLATE /* for compatibility with old definition */ # define NO_GZCOMPRESS #endif |