diff --git a/srcpkgs/valgrind/patches/glibc-2.13-strcasecmp.patch b/srcpkgs/valgrind/patches/glibc-2.13-strcasecmp.patch new file mode 100644 index 0000000000..b6b781d655 --- /dev/null +++ b/srcpkgs/valgrind/patches/glibc-2.13-strcasecmp.patch @@ -0,0 +1,151 @@ +Index: memcheck/mc_replace_strmem.c +=================================================================== +--- memcheck/mc_replace_strmem.c (revision 11477) ++++ memcheck/mc_replace_strmem.c (revision 11478) +@@ -35,10 +35,13 @@ + #include "pub_tool_redir.h" + #include "pub_tool_tooliface.h" + #include "valgrind.h" ++#include "config.h" + + #include "mc_include.h" + #include "memcheck.h" + ++#include ++ + /* --------------------------------------------------------------------- + We have our own versions of these functions for two reasons: + (a) it allows us to do overlap checking +@@ -403,6 +406,120 @@ + #endif + + ++#define STRCASECMP(soname, fnname) \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2 ); \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2 ) \ ++ { \ ++ register unsigned char c1; \ ++ register unsigned char c2; \ ++ while (True) { \ ++ c1 = tolower(*(unsigned char *)s1); \ ++ c2 = tolower(*(unsigned char *)s2); \ ++ if (c1 != c2) break; \ ++ if (c1 == 0) break; \ ++ s1++; s2++; \ ++ } \ ++ if ((unsigned char)c1 < (unsigned char)c2) return -1; \ ++ if ((unsigned char)c1 > (unsigned char)c2) return 1; \ ++ return 0; \ ++ } ++ ++STRCASECMP(VG_Z_LIBC_SONAME, strcasecmp) ++#if defined(VGO_linux) ++STRCASECMP(VG_Z_LIBC_SONAME, __GI_strcasecmp) ++#endif ++ ++ ++#define STRNCASECMP(soname, fnname) \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, SizeT nmax ); \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, SizeT nmax ) \ ++ { \ ++ SizeT n = 0; \ ++ while (True) { \ ++ if (n >= nmax) return 0; \ ++ if (*s1 == 0 && *s2 == 0) return 0; \ ++ if (*s1 == 0) return -1; \ ++ if (*s2 == 0) return 1; \ ++ \ ++ if (tolower(*(unsigned char*)s1) < tolower(*(unsigned char*)s2)) return -1; \ ++ if (tolower(*(unsigned char*)s1) > tolower(*(unsigned char*)s2)) return 1; \ ++ \ ++ s1++; s2++; n++; \ ++ } \ ++ } ++ ++STRNCASECMP(VG_Z_LIBC_SONAME, strncasecmp) ++#if defined(VGO_linux) ++STRNCASECMP(VG_Z_LIBC_SONAME, __GI_strncasecmp) ++#elif defined(VGO_darwin) ++STRNCASECMP(VG_Z_DYLD, strncasecmp) ++#endif ++ ++ ++#ifdef HAVE_TOLOWER_L ++ ++ ++#define STRCASECMP_L(soname, fnname) \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, locale_t locale ); \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, locale_t locale ) \ ++ { \ ++ register unsigned char c1; \ ++ register unsigned char c2; \ ++ while (True) { \ ++ c1 = tolower_l(*(unsigned char *)s1, locale); \ ++ c2 = tolower_l(*(unsigned char *)s2, locale); \ ++ if (c1 != c2) break; \ ++ if (c1 == 0) break; \ ++ s1++; s2++; \ ++ } \ ++ if ((unsigned char)c1 < (unsigned char)c2) return -1; \ ++ if ((unsigned char)c1 > (unsigned char)c2) return 1; \ ++ return 0; \ ++ } ++ ++STRCASECMP_L(VG_Z_LIBC_SONAME, strcasecmp_l) ++#if defined(VGO_linux) ++STRCASECMP_L(VG_Z_LIBC_SONAME, __GI_strcasecmp_l) ++#endif ++ ++ ++#define STRNCASECMP_L(soname, fnname) \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, SizeT nmax, locale_t locale ); \ ++ int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ ++ ( const char* s1, const char* s2, SizeT nmax, locale_t locale ) \ ++ { \ ++ SizeT n = 0; \ ++ while (True) { \ ++ if (n >= nmax) return 0; \ ++ if (*s1 == 0 && *s2 == 0) return 0; \ ++ if (*s1 == 0) return -1; \ ++ if (*s2 == 0) return 1; \ ++ \ ++ if (tolower_l(*(unsigned char*)s1, locale) < tolower_l(*(unsigned char*)s2, locale)) return -1; \ ++ if (tolower_l(*(unsigned char*)s1, locale) > tolower_l(*(unsigned char*)s2, locale)) return 1; \ ++ \ ++ s1++; s2++; n++; \ ++ } \ ++ } ++ ++STRNCASECMP_L(VG_Z_LIBC_SONAME, strncasecmp_l) ++#if defined(VGO_linux) ++STRNCASECMP_L(VG_Z_LIBC_SONAME, __GI_strncasecmp_l) ++#elif defined(VGO_darwin) ++STRNCASECMP_L(VG_Z_DYLD, strncasecmp_l) ++#endif ++ ++ ++#endif ++ ++ + #define STRCMP(soname, fnname) \ + int VG_REPLACE_FUNCTION_ZU(soname,fnname) \ + ( const char* s1, const char* s2 ); \ +Index: configure.in +=================================================================== +--- configure.in (revision 11477) ++++ configure.in (revision 11478) +@@ -1549,6 +1549,7 @@ + strstr \ + syscall \ + timerfd \ ++ tolower_l \ + utimensat \ + ]) + diff --git a/srcpkgs/valgrind/patches/glibc-2.13.patch b/srcpkgs/valgrind/patches/glibc-2.13.patch new file mode 100644 index 0000000000..efb77ca21c --- /dev/null +++ b/srcpkgs/valgrind/patches/glibc-2.13.patch @@ -0,0 +1,31 @@ +--- config.h.in.orig 2010-10-21 06:20:49.000000000 +1000 ++++ config.h.in 2011-01-19 10:31:18.476673930 +1000 +@@ -33,6 +33,9 @@ + /* Define to 1 if you're using glibc 2.12.x */ + #undef GLIBC_2_12 + ++/* Define to 1 if you're using glibc 2.13.x */ ++#undef GLIBC_2_13 ++ + /* Define to 1 if you're using glibc 2.2.x */ + #undef GLIBC_2_2 + +--- configure.orig 2010-10-21 11:16:18.000000000 +1000 ++++ configure 2011-01-19 10:32:20.346673926 +1000 +@@ -6367,6 +6367,16 @@ + DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" + ;; ++ 2.13) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.13 family" >&5 ++$as_echo "2.13 family" >&6; } ++ ++$as_echo "#define GLIBC_2_13 1" >>confdefs.h ++ ++ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ ;; + aix5) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX 5.1 or 5.2 or 5.3" >&5 + $as_echo "AIX 5.1 or 5.2 or 5.3" >&6; } diff --git a/srcpkgs/valgrind/template b/srcpkgs/valgrind/template index dc254fb74b..b5634148df 100644 --- a/srcpkgs/valgrind/template +++ b/srcpkgs/valgrind/template @@ -1,7 +1,7 @@ # Template file for 'valgrind' pkgname=valgrind version=3.6.0 -revision=1 +revision=2 distfiles="http://www.valgrind.org/downloads/$pkgname-$version.tar.bz2" build_style=gnu_configure configure_args="--enable-tls" @@ -16,7 +16,7 @@ long_desc=" detect a lot of problems that are otherwise very hard to find/diagnose." subpackages="$pkgname-devel" -Add_dependency run glibc ">=2.12<2.13" +Add_dependency run glibc ">=2.13<2.14" Add_dependency run openmpi Add_dependency full perl ">=0" Add_dependency build pkg-config