From: Petar Jovanovic Date: Fri, 15 Feb 2013 03:12:17 +0000 (+0000) Subject: Add Valgrind's implementation of memmove to avoid link issue X-Git-Tag: svn/VALGRIND_3_9_0~393 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23923e4d3dff072ac8f4af74da89f890ca0725f2;p=thirdparty%2Fvalgrind.git 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(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13288 --- diff --git a/coregrind/m_main.c b/coregrind/m_main.c index ad028c8597..e0df961c16 100644 --- a/coregrind/m_main.c +++ b/coregrind/m_main.c @@ -2636,8 +2636,8 @@ static void final_tidyup(ThreadId tid) 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); 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);