From c848b9af57da305109c32788a0d98d5305d74048 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 10 Feb 2011 13:51:09 +0100 Subject: move mysql 5.5 stuff to new dir --- mysql-strmov.patch | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mysql-strmov.patch (limited to 'mysql-strmov.patch') diff --git a/mysql-strmov.patch b/mysql-strmov.patch new file mode 100644 index 0000000..3d8ccec --- /dev/null +++ b/mysql-strmov.patch @@ -0,0 +1,34 @@ +Remove overly optimistic definition of strmov() as stpcpy(). + +mysql uses this macro with overlapping source and destination strings, +which is verboten per spec, and fails on some Red Hat platforms. +Deleting the definition is sufficient to make it fall back to a +byte-at-a-time copy loop, which should consistently give the +expected behavior. + +Note: the particular case that prompted this patch is reported and fixed +at http://bugs.mysql.com/bug.php?id=48864. However, my faith in upstream's +ability to detect this type of error is low, and I also see little evidence +of any real performance gain from optimizing these calls. So I'm keeping +this patch. + + +diff -Naur mysql-5.5.8.orig/include/m_string.h mysql-5.5.8/include/m_string.h +--- mysql-5.5.8.orig/include/m_string.h 2010-12-03 12:58:24.000000000 -0500 ++++ mysql-5.5.8/include/m_string.h 2010-12-20 21:39:13.905186372 -0500 +@@ -74,15 +74,6 @@ + extern void *(*my_str_malloc)(size_t); + extern void (*my_str_free)(void *); + +-#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER) +-#define strmov(A,B) __builtin_stpcpy((A),(B)) +-#elif defined(HAVE_STPCPY) +-#define strmov(A,B) stpcpy((A),(B)) +-#ifndef stpcpy +-extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 */ +-#endif +-#endif +- + /* Declared in int2str() */ + extern char _dig_vec_upper[]; + extern char _dig_vec_lower[]; -- cgit