Browse Source

Merge pull request #4379 from Diapolo/cleanup_compat

small cleanup in src/compat .h and .cpp
0.10
Jeff Garzik 11 years ago
parent
commit
b4ccf0a5c7
  1. 17
      src/compat/glibc_compat.cpp
  2. 8
      src/compat/glibc_sanity.cpp
  3. 50
      src/compat/glibcxx_compat.cpp
  4. 6
      src/compat/glibcxx_sanity.cpp
  5. 6
      src/compat/sanity.h

17
src/compat/glibc_compat.cpp

@ -1,19 +1,28 @@
// Copyright (c) 2009-2014 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#if defined(HAVE_CONFIG_H)
#include "bitcoin-config.h" #include "bitcoin-config.h"
#endif
#include <cstddef> #include <cstddef>
#if defined(HAVE_SYS_SELECT_H)
#include <sys/select.h> #include <sys/select.h>
#endif
// Prior to GLIBC_2.14, memcpy was aliased to memmove. // Prior to GLIBC_2.14, memcpy was aliased to memmove.
extern "C" void* memmove(void* a, const void* b, size_t c); extern "C" void* memmove(void* a, const void* b, size_t c);
extern "C" void* memcpy(void* a, const void* b, size_t c) extern "C" void* memcpy(void* a, const void* b, size_t c)
{ {
return memmove(a, b, c); return memmove(a, b, c);
} }
extern "C" void __chk_fail (void) __attribute__((__noreturn__)); extern "C" void __chk_fail (void) __attribute__((__noreturn__));
extern "C" FDELT_TYPE __fdelt_warn(FDELT_TYPE a) extern "C" FDELT_TYPE __fdelt_warn(FDELT_TYPE a)
{ {
if (a >= FD_SETSIZE) if (a >= FD_SETSIZE)
__chk_fail (); __chk_fail ();
return a / __NFDBITS; return a / __NFDBITS;
} }
extern "C" FDELT_TYPE __fdelt_chk(FDELT_TYPE) __attribute__((weak, alias("__fdelt_warn"))); extern "C" FDELT_TYPE __fdelt_chk(FDELT_TYPE) __attribute__((weak, alias("__fdelt_warn")));

8
src/compat/glibc_sanity.cpp

@ -1,4 +1,10 @@
// Copyright (c) 2009-2014 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#if defined(HAVE_CONFIG_H)
#include "bitcoin-config.h" #include "bitcoin-config.h"
#endif
#include <cstddef> #include <cstddef>
#if defined(HAVE_SYS_SELECT_H) #if defined(HAVE_SYS_SELECT_H)
@ -8,7 +14,7 @@
extern "C" void* memcpy(void* a, const void* b, size_t c); extern "C" void* memcpy(void* a, const void* b, size_t c);
void* memcpy_int(void* a, const void* b, size_t c) void* memcpy_int(void* a, const void* b, size_t c)
{ {
return memcpy(a,b,c); return memcpy(a,b,c);
} }
namespace { namespace {

50
src/compat/glibcxx_compat.cpp

@ -1,49 +1,55 @@
// Copyright (c) 2009-2014 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <cstddef> #include <cstddef>
#include <istream> #include <istream>
#include <stdexcept> #include <stdexcept>
#include <typeinfo> #include <typeinfo>
#ifndef _GLIBCXX_USE_NOEXCEPT #ifndef _GLIBCXX_USE_NOEXCEPT
#define _GLIBCXX_USE_NOEXCEPT throw() #define _GLIBCXX_USE_NOEXCEPT throw()
#endif #endif
namespace std { namespace std {
const char* bad_exception::what() const throw() const char* bad_exception::what() const throw()
{ {
return "std::bad_exception"; return "std::bad_exception";
} }
const char* bad_cast::what() const throw() const char* bad_cast::what() const throw()
{ {
return "std::bad_cast"; return "std::bad_cast";
} }
const char* bad_alloc::what() const throw() const char* bad_alloc::what() const throw()
{ {
return "std::bad_alloc"; return "std::bad_alloc";
} }
namespace __detail namespace __detail
{ {
struct _List_node_base struct _List_node_base
{ {
void _M_hook(std::__detail::_List_node_base* const __position) throw () __attribute__((used)) void _M_hook(std::__detail::_List_node_base* const __position) throw () __attribute__((used))
{ {
_M_next = __position; _M_next = __position;
_M_prev = __position->_M_prev; _M_prev = __position->_M_prev;
__position->_M_prev->_M_next = this; __position->_M_prev->_M_next = this;
__position->_M_prev = this; __position->_M_prev = this;
} }
void _M_unhook() __attribute__((used))
{ void _M_unhook() __attribute__((used))
_List_node_base* const __next_node = _M_next; {
_List_node_base* const __prev_node = _M_prev; _List_node_base* const __next_node = _M_next;
__prev_node->_M_next = __next_node; _List_node_base* const __prev_node = _M_prev;
__next_node->_M_prev = __prev_node; __prev_node->_M_next = __next_node;
} __next_node->_M_prev = __prev_node;
_List_node_base* _M_next; }
_List_node_base* _M_prev;
_List_node_base* _M_next;
_List_node_base* _M_prev;
}; };
} // namespace detail } // namespace detail
@ -61,8 +67,8 @@ out_of_range::~out_of_range() _GLIBCXX_USE_NOEXCEPT { }
// Used with permission. // Used with permission.
// See: https://github.com/madlib/madlib/commit/c3db418c0d34d6813608f2137fef1012ce03043d // See: https://github.com/madlib/madlib/commit/c3db418c0d34d6813608f2137fef1012ce03043d
void void ctype<char>::_M_widen_init() const
ctype<char>::_M_widen_init() const { {
char __tmp[sizeof(_M_widen)]; char __tmp[sizeof(_M_widen)];
for (unsigned __i = 0; __i < sizeof(_M_widen); ++__i) for (unsigned __i = 0; __i < sizeof(_M_widen); ++__i)
__tmp[__i] = __i; __tmp[__i] = __i;

6
src/compat/glibcxx_sanity.cpp

@ -1,5 +1,9 @@
#include <locale> // Copyright (c) 2009-2014 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <list> #include <list>
#include <locale>
#include <stdexcept> #include <stdexcept>
namespace{ namespace{

6
src/compat/sanity.h

@ -1,7 +1,11 @@
// Copyright (c) 2009-2014 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCON_COMPAT_SANITY_H #ifndef BITCON_COMPAT_SANITY_H
#define BITCON_COMPAT_SANITY_H #define BITCON_COMPAT_SANITY_H
bool glibc_sanity_test(); bool glibc_sanity_test();
bool glibcxx_sanity_test(); bool glibcxx_sanity_test();
#endif #endif // BITCON_COMPAT_SANITY_H

Loading…
Cancel
Save