|
From: <sv...@va...> - 2013-02-15 03:12:47
|
petarj 2013-02-15 03:12:17 +0000 (Fri, 15 Feb 2013)
New Revision: 13288
Log:
Add Valgrind's implementation of memmove to avoid link issue
One of the recent changes, r2682 (Make HReg a struct), caused a build
break on several x86_64 and MIPS build bots/platforms that used older
gcc versions. The issue was that compilers generated calls to memmove,
and since it was built with -nodefaultlibs, the entry could not be
resolved. The fix wraps VG_(memmove) in memmove().
Modified files:
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_main.c (+6 -2)
===================================================================
--- trunk/coregrind/m_main.c 2013-02-14 17:10:01 +00:00 (rev 13287)
+++ trunk/coregrind/m_main.c 2013-02-15 03:12:17 +00:00 (rev 13288)
@@ -2636,8 +2636,8 @@
From this derive two requirements:
- 1. gcc may emit calls to memcpy and memset to deal with structure
- assignments etc. Since we have chosen to ignore all the
+ 1. gcc may emit calls to memcpy, memmove and memset to deal with
+ structure assignments etc. Since we have chosen to ignore all the
"normal" supporting libraries, we have to provide our own
implementations of them. No problem.
@@ -2651,6 +2651,10 @@
void* memcpy(void *dest, const void *src, SizeT n) {
return VG_(memcpy)(dest,src,n);
}
+void* memmove(void *dest, const void *src, SizeT n);
+void* memmove(void *dest, const void *src, SizeT n) {
+ return VG_(memmove)(dest,src,n);
+}
void* memset(void *s, int c, SizeT n);
void* memset(void *s, int c, SizeT n) {
return VG_(memset)(s,c,n);
|