aboutsummaryrefslogtreecommitdiff
path: root/src/compat/glibc_compat.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-04-22 16:24:35 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-04-22 16:24:43 +0200
commitbbe53f61db73237b8334207d696d99a4cf16a760 (patch)
treea6be54d8bcf25498be3db50aa2985508c7910c50 /src/compat/glibc_compat.cpp
parent91c601c54a097e467204285a728006a2b3c78eec (diff)
parent05c20a553a12d03b1512a75973674c6d25534259 (diff)
Merge pull request #4042
05c20a5 build: add symbol for upcoming gcc 4.9's libstdc++ (Cory Fields) 49a3352 gitian-linux: --enable-glibc-back-compat (Warren Togami) d5aab70 build: add an option for enabling glibc back-compat (Cory Fields) ffc6b67 build: add glibc/libstdc++ back-compat stubs (Cory Fields)
Diffstat (limited to 'src/compat/glibc_compat.cpp')
-rw-r--r--src/compat/glibc_compat.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/compat/glibc_compat.cpp b/src/compat/glibc_compat.cpp
new file mode 100644
index 0000000000..5b73e6051a
--- /dev/null
+++ b/src/compat/glibc_compat.cpp
@@ -0,0 +1,19 @@
+#include "bitcoin-config.h"
+#include <cstddef>
+#include <sys/select.h>
+
+// 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* memcpy(void* a, const void* b, size_t c)
+{
+ return memmove(a, b, c);
+}
+
+extern "C" void __chk_fail (void) __attribute__((__noreturn__));
+extern "C" FDELT_TYPE __fdelt_warn(FDELT_TYPE a)
+{
+ if (a >= FD_SETSIZE)
+ __chk_fail ();
+ return a / __NFDBITS;
+}
+extern "C" FDELT_TYPE __fdelt_chk(FDELT_TYPE) __attribute__((weak, alias("__fdelt_warn")));