--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hana-dce.patch Wed Jul 04 17:06:26 2012 +0900
@@ -0,0 +1,83 @@
+diff -r 42feac0c6693 model/dce-string.cc
+--- a/model/dce-string.cc Fri Jun 29 18:26:32 2012 +0900
++++ b/model/dce-string.cc Tue Jul 03 12:09:55 2012 +0900
+@@ -32,3 +32,11 @@
+ return strrchr (s, c);
+ }
+
++char *dce___memcpy_chk (char *__restrict __dest,
++ const char *__restrict __src,
++ size_t __len,
++ size_t __destlen)
++{
++ /// \todo Do actual checking
++ memcpy (__dest, __src, __len);
++}
+diff -r 42feac0c6693 model/dce-string.h
+--- a/model/dce-string.h Fri Jun 29 18:26:32 2012 +0900
++++ b/model/dce-string.h Tue Jul 03 12:09:55 2012 +0900
+@@ -13,6 +13,10 @@
+ const char *__restrict __src,
+ size_t __destlen);
+ char *dce_strrchr(char *s, int c);
++char *dce___memcpy_chk (char *__restrict __dest,
++ const char *__restrict __src,
++ size_t __len,
++ size_t __destlen);
+
+ #ifdef __cplusplus
+ }
+diff -r 42feac0c6693 model/libc-dce.cc
+--- a/model/libc-dce.cc Fri Jun 29 18:26:32 2012 +0900
++++ b/model/libc-dce.cc Tue Jul 03 12:09:55 2012 +0900
+@@ -107,6 +107,9 @@
+ extern char *__strcpy_chk (char *__restrict __dest,
+ const char *__restrict __src,
+ size_t __destlen);
++extern void *__memcpy_chk (void *__restrict __dest,
++ const void *__restrict __src, size_t __len,
++ size_t __destlen);
+ // from glibc's stdio.h
+ extern int __sprintf_chk (char *, int, size_t, const char *, ...) __THROW;
+ extern int __snprintf_chk (char *, size_t, int, size_t, const char *, ...)
+diff -r 42feac0c6693 model/libc-ns3.h
+--- a/model/libc-ns3.h Fri Jun 29 18:26:32 2012 +0900
++++ b/model/libc-ns3.h Tue Jul 03 12:09:55 2012 +0900
+@@ -109,6 +109,7 @@
+ NATIVE (strcoll)
+ NATIVE (memset)
+ NATIVE (memcpy)
++DCE (__memcpy_chk)
+ NATIVE (bcopy)
+ NATIVE (memcmp)
+ NATIVE (memmove)
+diff -r 42feac0c6693 model/linux-socket-fd.cc
+--- a/model/linux-socket-fd.cc Fri Jun 29 18:26:32 2012 +0900
++++ b/model/linux-socket-fd.cc Tue Jul 03 12:09:55 2012 +0900
+@@ -178,8 +178,9 @@
+ break;
+ default:
+ //XXX commands missing
+- NS_FATAL_ERROR ("fcntl not implemented on socket");
+- return -1;
++ // NS_FATAL_ERROR ("fcntl not implemented on socket");
++ // return -1;
++ return 0;
+ }
+ }
+ int
+diff -r 42feac0c6693 model/local-socket-fd.cc
+--- a/model/local-socket-fd.cc Fri Jun 29 18:26:32 2012 +0900
++++ b/model/local-socket-fd.cc Tue Jul 03 12:09:55 2012 +0900
+@@ -202,8 +202,9 @@
+ break;
+ default:
+ //XXX commands missing
+- NS_FATAL_ERROR ("fcntl not implemented on socket");
+- return -1;
++ // NS_FATAL_ERROR ("fcntl not implemented on socket");
++ // return -1;
++ return 0;
+ }
+ }
+ int