From 836340c236fbfb735002fdf10cb3aa0f71d4d6f4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Apr 16 2008 15:03:58 +0000 Subject: 3.3.0-3 --- diff --git a/valgrind-3.3.0-glibc28.patch b/valgrind-3.3.0-glibc28.patch new file mode 100644 index 0000000..c68ebc1 --- /dev/null +++ b/valgrind-3.3.0-glibc28.patch @@ -0,0 +1,236 @@ +--- valgrind-3.3.0/configure.in.jj 2008-04-16 05:48:10.000000000 -0400 ++++ valgrind-3.3.0/configure.in 2008-04-16 05:54:04.000000000 -0400 +@@ -471,6 +471,16 @@ AC_EGREP_CPP([GLIBC_27], [ + ], + libc="2.7") + ++AC_EGREP_CPP([GLIBC_28], [ ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 8) ++ GLIBC_28 ++ #endif ++#endif ++], ++libc="2.8") ++ + AC_EGREP_CPP([AIX5_LIBC], [ + #include + #if defined(_AIXVERSION_510) || defined(_AIXVERSION_520) || defined(_AIXVERSION_530) +@@ -521,6 +531,12 @@ case "${libc}" in + DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" + ;; ++ 2.8) ++ AC_MSG_RESULT(2.8 family) ++ AC_DEFINE([GLIBC_2_8], 1, [Define to 1 if you're using glibc 2.8.x]) ++ DEFAULT_SUPP="glibc-2.8.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ ;; + aix5) + AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3) + AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3]) +@@ -529,7 +545,7 @@ case "${libc}" in + + *) + AC_MSG_RESULT(unsupported version) +- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.7]) ++ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.8]) + AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 libc]) + ;; + esac +--- valgrind-3.3.0/glibc-2.8.supp.jj 2008-04-16 05:50:23.000000000 -0400 ++++ valgrind-3.3.0/glibc-2.8.supp 2008-04-16 05:50:35.000000000 -0400 +@@ -0,0 +1,37 @@ ++ ++# Errors to suppress by default with glibc 2.8.x ++ ++# Format of this file is: ++# { ++# name_of_suppression ++# tool_name:supp_kind ++# (optional extra info for some suppression types) ++# caller0 name, or /name/of/so/file.so ++# caller1 name, or ditto ++# (optionally: caller2 name) ++# (optionally: caller3 name) ++# } ++# ++# For Memcheck, the supp_kinds are: ++# ++# Param Value1 Value2 Value4 Value8 Value16 Jump ++# Free Addr1 Addr2 Addr4 Addr8 Addr16 ++# Cond (previously known as Value0) ++# ++# and the optional extra info is: ++# if Param: name of system call param ++ ++{ ++ dl-hack1 ++ Memcheck:Cond ++ fun:_dl_start ++ fun:_start ++} ++ ++{ ++ dl-hack3-1 ++ Memcheck:Cond ++ obj:/lib*/ld-2.8*.so* ++ obj:/lib*/ld-2.8*.so* ++ obj:/lib*/ld-2.8*.so* ++} +--- valgrind-3.3.0/glibc-2.34567-NPTL-helgrind.supp.jj 2008-04-16 05:48:10.000000000 -0400 ++++ valgrind-3.3.0/glibc-2.34567-NPTL-helgrind.supp 2008-04-16 05:51:59.000000000 -0400 +@@ -1,12 +1,12 @@ + + ##----------------------------------------------------------------------## + # Suppressions for the Helgrind tool when using +-# a glibc-2.{2,3,4,5,6} system ++# a glibc-2.{2,3,4,5,6,7,8} system + + ######------------ glibc-2.5 specific ------------###### + # + ## NB. This is the "reference set". Derived sets for +-## glibc 2.7, 2.6, 2.4 and 2.3 follow below. ++## glibc 2.8, 2.7, 2.6, 2.4 and 2.3 follow below. + { + helgrind-glibc25-001 + Helgrind:Race +@@ -145,6 +145,65 @@ + fun:start_thread + } + ++######------------ glibc-2.8 specific ---------###### ++# ++{ ++ helgrind-glibc28-001 ++ Helgrind:Race ++ obj:/lib*/ld-2.8.*so ++ obj:/lib*/ld-2.8.*so ++} ++{ ++ helgrind-glibc28-003 ++ Helgrind:Race ++ obj:/lib*/ld-2.8.*so ++ obj:/lib*/libc-2.8.*so ++ obj:/lib*/libc-2.8.*so ++} ++{ ++ helgrind-glibc28-004 ++ Helgrind:Race ++ obj:/lib*/libc-2.8.*so ++ obj:/lib*/libc-2.8.*so ++} ++{ ++ helgrind-glibc28-005 ++ Helgrind:Race ++ obj:/lib*/libpthread-2.8.*so ++ obj:/lib*/libpthread-2.8.*so ++ obj:/lib*/libpthread-2.8.*so ++} ++{ ++ helgrind-glibc28-011 ++ Helgrind:Race ++ obj:/lib*/libc-2.8.*so ++ obj:/lib*/libpthread-2.8.*so ++} ++ ++{ ++ helgrind-glibc28-101 ++ Helgrind:Race ++ obj:/lib*/libpthread-2.8.*so ++ fun:pthread_* ++} ++{ ++ helgrind-glibc28-102 ++ Helgrind:Race ++ fun:mythread_wrapper ++ obj:/lib*/libpthread-2.8.*so ++} ++{ ++ helgrind-glibc28-107 ++ Helgrind:Race ++ obj:/lib*/libpthread-2.8.*so ++ fun:sem_* ++} ++{ ++ helgrind-glibc28-199 ++ Helgrind:Race ++ fun:pthread_barrier_wait ++} ++ + ######------------ glibc-2.7 specific ---------###### + # + { +@@ -198,11 +257,6 @@ + obj:/lib*/libpthread-2.7.*so + fun:sem_* + } +-{ +- helgrind-glibc27-199 +- Helgrind:Race +- fun:pthread_barrier_wait +-} + + ######------------ glibc-2.6 specific ---------###### + # +--- valgrind-3.3.0/configure.jj 2008-04-16 05:48:10.000000000 -0400 ++++ valgrind-3.3.0/configure 2008-04-16 05:54:08.000000000 -0400 +@@ -4624,6 +4624,28 @@ cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 8) ++ GLIBC_28 ++ #endif ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "GLIBC_28" >/dev/null 2>&1; then ++ libc="2.8" ++fi ++rm -f conftest* ++ ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ + #include + #if defined(_AIXVERSION_510) || defined(_AIXVERSION_520) || defined(_AIXVERSION_530) + AIX5_LIBC +@@ -4710,6 +4732,17 @@ _ACEOF + DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}" + DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" + ;; ++ 2.8) ++ echo "$as_me:$LINENO: result: 2.8 family" >&5 ++echo "${ECHO_T}2.8 family" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define GLIBC_2_8 1 ++_ACEOF ++ ++ DEFAULT_SUPP="glibc-2.8.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ ;; + aix5) + echo "$as_me:$LINENO: result: AIX 5.1 or 5.2 or 5.3" >&5 + echo "${ECHO_T}AIX 5.1 or 5.2 or 5.3" >&6 +@@ -4724,8 +4757,8 @@ _ACEOF + *) + echo "$as_me:$LINENO: result: unsupported version" >&5 + echo "${ECHO_T}unsupported version" >&6 +- { { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.7" >&5 +-echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.7" >&2;} ++ { { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.8" >&5 ++echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.8" >&2;} + { (exit 1); exit 1; }; } + { { echo "$as_me:$LINENO: error: or AIX 5.1 or 5.2 or 5.3 libc" >&5 + echo "$as_me: error: or AIX 5.1 or 5.2 or 5.3 libc" >&2;} diff --git a/valgrind-3.3.0-syscalls1.patch b/valgrind-3.3.0-syscalls1.patch new file mode 100644 index 0000000..8717054 --- /dev/null +++ b/valgrind-3.3.0-syscalls1.patch @@ -0,0 +1,163 @@ +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc64-linux.c (revision 7260) ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc64-linux.c (revision 7880) +@@ -1269,7 +1270,7 @@ const SyscallTableEntry ML_(syscall_tabl + GENXY(__NR_wait4, sys_wait4), // 114 + + // _____(__NR_swapoff, sys_swapoff), // 115 +-// _____(__NR_sysinfo, sys_sysinfo), // 116 ++ LINXY(__NR_sysinfo, sys_sysinfo), // 116 + PLAXY(__NR_ipc, sys_ipc), // 117 + GENX_(__NR_fsync, sys_fsync), // 118 + // _____(__NR_sigreturn, sys_sigreturn), // 119 +@@ -1328,13 +1329,13 @@ const SyscallTableEntry ML_(syscall_tabl + GENX_(__NR_mremap, sys_mremap), // 163 + // _____(__NR_setresuid, sys_setresuid), // 164 + +-// _____(__NR_getresuid, sys_getresuid), // 165 ++ LINXY(__NR_getresuid, sys_getresuid), // 165 + // _____(__NR_query_module, sys_query_module), // 166 + GENXY(__NR_poll, sys_poll), // 167 + // _____(__NR_nfsservctl, sys_nfsservctl), // 168 + // _____(__NR_setresgid, sys_setresgid), // 169 + +-// _____(__NR_getresgid, sys_getresgid), // 170 ++ LINXY(__NR_getresgid, sys_getresgid), // 170 + // _____(__NR_prctl, sys_prctl), // 171 + PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 172 + LINXY(__NR_rt_sigaction, sys_rt_sigaction), // 173 +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c (revision 7260) ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c (revision 7880) +@@ -2115,6 +2118,17 @@ POST(sys_waitid) + POST_MEM_WRITE( ARG5, sizeof(struct vki_rusage) ); + } + ++PRE(sys_sync_file_range) ++{ ++ PRINT("sys_sync_file_range ( %d, %lld, %lld, %d )", ++ ARG1,ARG2,ARG3,ARG4); ++ PRE_REG_READ4(long, "sync_file_range", ++ int, fd, vki_loff_t, offset, vki_loff_t, nbytes, ++ unsigned int, flags); ++ if (!ML_(fd_allowed)(ARG1, "sync_file_range", tid, False)) ++ SET_STATUS_Failure( VKI_EBADF ); ++} ++ + /* --------------------------------------------------------------------- + utime wrapper + ------------------------------------------------------------------ */ +--- valgrind-3.3.0/coregrind/m_syswrap/priv_syswrap-linux.h (revision 7260) ++++ valgrind-3.3.0/coregrind/m_syswrap/priv_syswrap-linux.h (revision 7880) +@@ -220,6 +220,9 @@ DECL_TEMPLATE(linux, sys_rt_sigtimedwait + DECL_TEMPLATE(linux, sys_rt_sigqueueinfo); + DECL_TEMPLATE(linux, sys_rt_sigsuspend); + ++// Linux-specific? ++DECL_TEMPLATE(linux, sys_sync_file_range); ++ + /* --------------------------------------------------------------------- + Wrappers for sockets and ipc-ery. These are split into standalone + procedures because x86-linux hides them inside multiplexors +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-amd64-linux.c (revision 7260) ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-amd64-linux.c (revision 7880) +@@ -1371,6 +1374,12 @@ const SyscallTableEntry ML_(syscall_tabl + // LINX_(__NR_unshare, sys_unshare), // 272 + LINX_(__NR_set_robust_list, sys_set_robust_list), // 273 + LINXY(__NR_get_robust_list, sys_get_robust_list), // 274 ++ ++// LINX_(__NR_splice, sys_ni_syscall), // 275 ++// LINX_(__NR_tee, sys_ni_syscall), // 276 ++ LINX_(__NR_sync_file_range, sys_sync_file_range), // 277 ++// LINX_(__NR_vmsplice, sys_ni_syscall), // 278 ++// LINX_(__NR_move_pages, sys_ni_syscall), // 279 + }; + + const UInt ML_(syscall_table_size) = +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-x86-linux.c (revision 7260) ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-x86-linux.c (revision 7880) +@@ -2216,6 +2217,14 @@ const SyscallTableEntry ML_(syscall_tabl + // LINX_(__NR_unshare, sys_unshare), // 310 + LINX_(__NR_set_robust_list, sys_set_robust_list), // 311 + LINXY(__NR_get_robust_list, sys_get_robust_list), // 312 ++// LINX_(__NR_splice, sys_ni_syscall), // 313 ++ LINX_(__NR_sync_file_range, sys_sync_file_range), // 314 ++ ++// LINX_(__NR_tee, sys_ni_syscall), // 315 ++// LINX_(__NR_vmsplice, sys_ni_syscall), // 316 ++// LINX_(__NR_move_pages, sys_ni_syscall), // 317 ++// LINX_(__NR_getcpu, sys_ni_syscall), // 318 ++// LINX_(__NR_epoll_pwait, sys_ni_syscall), // 319 + + LINX_(__NR_utimensat, sys_utimensat), // 320 + }; +--- valgrind-3.3.0/include/vki/vki-scnums-amd64-linux.h 2007-12-11 00:18:25.000000000 +0100 ++++ valgrind-3.3.0/include/vki/vki-scnums-amd64-linux.h 2008-04-16 11:48:19.000000000 +0200 +@@ -360,6 +360,13 @@ + #define __NR_tee 276 + #define __NR_sync_file_range 277 + #define __NR_vmsplice 278 ++#define __NR_move_pages 279 ++#define __NR_utimensat 280 ++#define __NR_epoll_pwait 281 ++#define __NR_signalfd 282 ++#define __NR_timerfd 283 ++#define __NR_eventfd 284 ++#define __NR_fallocate 285 + + #endif /* __VKI_SCNUMS_AMD64_LINUX_H */ + +--- valgrind-3.3.0/include/vki/vki-scnums-ppc32-linux.h 2007-12-11 00:18:25.000000000 +0100 ++++ valgrind-3.3.0/include/vki/vki-scnums-ppc32-linux.h 2008-04-16 11:48:19.000000000 +0200 +@@ -343,8 +343,17 @@ + #define __NR_faccessat 298 + #define __NR_get_robust_list 299 + #define __NR_set_robust_list 300 ++#define __NR_move_pages 301 ++#define __NR_getcpu 302 ++#define __NR_epoll_pwait 303 ++#define __NR_utimensat 304 ++#define __NR_signalfd 305 ++#define __NR_timerfd 306 ++#define __NR_eventfd 307 ++#define __NR_sync_file_range2 308 ++#define __NR_fallocate 309 + +-#define __NR_syscalls 301 ++#define __NR_syscalls 310 + + #endif /* __VKI_SCNUMS_PPC32_LINUX_H */ + +--- valgrind-3.3.0/include/vki/vki-scnums-ppc64-linux.h 2007-12-11 00:18:25.000000000 +0100 ++++ valgrind-3.3.0/include/vki/vki-scnums-ppc64-linux.h 2008-04-16 11:48:19.000000000 +0200 +@@ -335,6 +335,15 @@ + #define __NR_faccessat 298 + #define __NR_get_robust_list 299 + #define __NR_set_robust_list 300 ++#define __NR_move_pages 301 ++#define __NR_getcpu 302 ++#define __NR_epoll_pwait 303 ++#define __NR_utimensat 304 ++#define __NR_signalfd 305 ++#define __NR_timerfd 306 ++#define __NR_eventfd 307 ++#define __NR_sync_file_range2 308 ++#define __NR_fallocate 309 + + #endif /* __VKI_SCNUMS_PPC64_LINUX_H */ + +--- valgrind-3.3.0/include/vki/vki-scnums-x86-linux.h 2007-12-11 00:18:25.000000000 +0100 ++++ valgrind-3.3.0/include/vki/vki-scnums-x86-linux.h 2008-04-16 11:48:19.000000000 +0200 +@@ -351,7 +351,14 @@ + #define __NR_sync_file_range 314 + #define __NR_tee 315 + #define __NR_vmsplice 316 ++#define __NR_move_pages 317 ++#define __NR_getcpu 318 ++#define __NR_epoll_pwait 319 + #define __NR_utimensat 320 ++#define __NR_signalfd 321 ++#define __NR_timerfd 322 ++#define __NR_eventfd 323 ++#define __NR_fallocate 324 + + #endif /* __VKI_SCNUMS_X86_LINUX_H */ + diff --git a/valgrind-3.3.0-syscalls2.patch b/valgrind-3.3.0-syscalls2.patch new file mode 100644 index 0000000..7943d28 --- /dev/null +++ b/valgrind-3.3.0-syscalls2.patch @@ -0,0 +1,258 @@ +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c 2008-04-16 14:45:32.000000000 +0200 +@@ -985,7 +985,7 @@ PRE(sys_ppoll) + UInt i; + struct vki_pollfd* ufds = (struct vki_pollfd *)ARG1; + *flags |= SfMayBlock; +- PRINT("sys_ppoll ( %p, %d, %p, %p, %llu )\n", ARG1,ARG2,ARG3,ARG4,ARG5); ++ PRINT("sys_ppoll ( %p, %d, %p, %p, %llu )\n", ARG1,ARG2,ARG3,ARG4,(ULong)ARG5); + PRE_REG_READ5(long, "ppoll", + struct vki_pollfd *, ufds, unsigned int, nfds, + struct vki_timespec *, tsp, vki_sigset_t *, sigmask, +@@ -1069,6 +1069,41 @@ POST(sys_epoll_wait) + POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ; + } + ++PRE(sys_epoll_pwait) ++{ ++ *flags |= SfMayBlock; ++ PRINT("sys_epoll_pwait ( %d, %p, %d, %d, %p, %llu )", ARG1,ARG2,ARG3,ARG4,ARG5,(ULong)ARG6); ++ PRE_REG_READ6(long, "epoll_pwait", ++ int, epfd, struct vki_epoll_event *, events, ++ int, maxevents, int, timeout, vki_sigset_t *, sigmask, ++ vki_size_t, sigsetsize); ++ PRE_MEM_WRITE( "epoll_pwait(events)", ARG2, sizeof(struct vki_epoll_event)*ARG3); ++ if (ARG4) ++ PRE_MEM_READ( "epoll_pwait(sigmask)", ARG5, sizeof(vki_sigset_t) ); ++} ++POST(sys_epoll_pwait) ++{ ++ vg_assert(SUCCESS); ++ if (RES > 0) ++ POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ; ++} ++ ++PRE(sys_eventfd) ++{ ++ PRINT("sys_eventfd ( %u )", ARG1); ++ PRE_REG_READ1(long, "sys_eventfd", unsigned int, count); ++} ++POST(sys_eventfd) ++{ ++ if (!ML_(fd_allowed)(RES, "eventfd", tid, True)) { ++ VG_(close)(RES); ++ SET_STATUS_Failure( VKI_EMFILE ); ++ } else { ++ if (VG_(clo_track_fds)) ++ ML_(record_fd_open_nameless) (tid, RES); ++ } ++} ++ + /* --------------------------------------------------------------------- + tid-related wrappers + ------------------------------------------------------------------ */ +@@ -1669,6 +1704,27 @@ PRE(sys_timer_delete) + PRE_REG_READ1(long, "timer_delete", vki_timer_t, timerid); + } + ++PRE(sys_timerfd) ++{ ++ PRINT("sys_timerfd ( %d, %d, %p )", ARG1, ARG2, ARG3); ++ PRE_REG_READ3(long, "sys_timerfd", ++ int, fd, int, clockid, const struct itimerspec *, tmr); ++ PRE_MEM_READ( "timerfd(tmr)", ARG3, ++ sizeof(struct vki_itimerspec) ); ++ if (ARG1 != -1 && !ML_(fd_allowed)(ARG1, "timerfd", tid, False)) ++ SET_STATUS_Failure( VKI_EBADF ); ++} ++POST(sys_timerfd) ++{ ++ if (!ML_(fd_allowed)(RES, "timerfd", tid, True)) { ++ VG_(close)(RES); ++ SET_STATUS_Failure( VKI_EMFILE ); ++ } else { ++ if (VG_(clo_track_fds)) ++ ML_(record_fd_open_nameless) (tid, RES); ++ } ++} ++ + /* --------------------------------------------------------------------- + capabilities wrappers + ------------------------------------------------------------------ */ +@@ -2217,6 +2273,27 @@ POST(sys_sigprocmask) + } + #endif + ++PRE(sys_signalfd) ++{ ++ PRINT("sys_signalfd ( %d, %p, %llu )", ARG1, ARG2, (ULong) ARG3); ++ PRE_REG_READ3(long, "sys_signalfd", ++ int, fd, vki_sigset_t *, sigmask, vki_size_t, sigsetsize); ++ PRE_MEM_READ( "signalfd(sigmask)", ARG2, sizeof(vki_sigset_t) ); ++ if (ARG1 != -1 && !ML_(fd_allowed)(ARG1, "signalfd", tid, False)) ++ SET_STATUS_Failure( VKI_EBADF ); ++} ++POST(sys_signalfd) ++{ ++ if (!ML_(fd_allowed)(RES, "signalfd", tid, True)) { ++ VG_(close)(RES); ++ SET_STATUS_Failure( VKI_EMFILE ); ++ } else { ++ if (VG_(clo_track_fds)) ++ ML_(record_fd_open_nameless) (tid, RES); ++ } ++} ++ ++ + /* --------------------------------------------------------------------- + rt_sig* wrappers + ------------------------------------------------------------------ */ +@@ -2544,7 +2621,17 @@ PRE(sys_futimesat) + int, dfd, char *, filename, struct timeval *, tvp); + PRE_MEM_RASCIIZ( "futimesat(filename)", ARG2 ); + if (ARG3 != 0) +- PRE_MEM_READ( "futimesat(tvp)", ARG3, sizeof(struct vki_timeval) ); ++ PRE_MEM_READ( "futimesat(tvp)", ARG3, 2 * sizeof(struct vki_timeval) ); ++} ++ ++PRE(sys_utimensat) ++{ ++ PRINT("sys_utimensat ( %d, %p(%s), %p, 0x%x )", ARG1,ARG2,ARG2,ARG3,ARG4); ++ PRE_REG_READ4(long, "utimensat", ++ int, dfd, char *, filename, struct timespec *, utimes, int, flags); ++ PRE_MEM_RASCIIZ( "utimensat(filename)", ARG2 ); ++ if (ARG3 != 0) ++ PRE_MEM_READ( "utimensat(tvp)", ARG3, 2 * sizeof(struct vki_timespec) ); + } + + PRE(sys_newfstatat) +@@ -2825,19 +2912,6 @@ PRE(sys_ioprio_set) + PRE_REG_READ3(int, "ioprio_set", int, which, int, who, int, ioprio); + } + +- +-/* XXX I don't think this is really the right place for this. +- Move it elsewhere in this file? */ +-PRE(sys_utimensat) +-{ +- PRINT("sys_utimensat ( %d, %p(%s), %p )", ARG1,ARG2,ARG2,ARG3); +- PRE_REG_READ3(long, "utimensat", +- int, dfd, char *, filename, struct timespec *, tvp); +- PRE_MEM_RASCIIZ( "utimensat(filename)", ARG2 ); +- if (ARG3 != 0) +- PRE_MEM_READ( "utimensat(tvp)", ARG3, sizeof(struct vki_timespec) ); +-} +- + #undef PRE + #undef POST + +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-generic.c.jj 2007-12-11 00:18:43.000000000 +0100 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-generic.c 2008-04-16 16:52:43.000000000 +0200 +@@ -5638,7 +5638,7 @@ PRE(sys_utimes) + PRE_REG_READ2(long, "utimes", char *, filename, struct timeval *, tvp); + PRE_MEM_RASCIIZ( "utimes(filename)", ARG1 ); + if (ARG2 != 0) +- PRE_MEM_READ( "utimes(tvp)", ARG2, sizeof(struct vki_timeval) ); ++ PRE_MEM_READ( "utimes(tvp)", ARG2, 2 * sizeof(struct vki_timeval) ); + } + + PRE(sys_acct) +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc64-linux.c.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc64-linux.c 2008-04-16 15:55:19.000000000 +0200 +@@ -1478,7 +1478,15 @@ const SyscallTableEntry ML_(syscall_tabl + LINX_(__NR_faccessat, sys_faccessat), // 298 + LINX_(__NR_set_robust_list, sys_set_robust_list), // 299 + LINXY(__NR_get_robust_list, sys_get_robust_list), // 300 +- ++// LINX_(__NR_move_pages, sys_ni_syscall), // 301 ++// LINX_(__NR_getcpu, sys_ni_syscall), // 302 ++ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 303 ++ LINX_(__NR_utimensat, sys_utimensat), // 304 ++ LINXY(__NR_signalfd, sys_signalfd), // 305 ++ LINXY(__NR_timerfd, sys_timerfd), // 306 ++ LINX_(__NR_eventfd, sys_eventfd), // 307 ++// LINX_(__NR_sync_file_range2, sys_ni_syscall), // 308 ++// LINX_(__NR_fallocate, sys_ni_syscall), // 309 + }; + + const UInt ML_(syscall_table_size) = +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-x86-linux.c.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-x86-linux.c 2008-04-16 14:51:31.000000000 +0200 +@@ -2224,9 +2224,13 @@ const SyscallTableEntry ML_(syscall_tabl + // LINX_(__NR_vmsplice, sys_ni_syscall), // 316 + // LINX_(__NR_move_pages, sys_ni_syscall), // 317 + // LINX_(__NR_getcpu, sys_ni_syscall), // 318 +-// LINX_(__NR_epoll_pwait, sys_ni_syscall), // 319 ++ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 319 + + LINX_(__NR_utimensat, sys_utimensat), // 320 ++ LINXY(__NR_signalfd, sys_signalfd), // 321 ++ LINXY(__NR_timerfd, sys_timerfd), // 322 ++ LINX_(__NR_eventfd, sys_eventfd), // 323 ++// LINX_(__NR_fallocate, sys_ni_syscall), // 324 + }; + + const UInt ML_(syscall_table_size) = +--- valgrind-3.3.0/coregrind/m_syswrap/priv_syswrap-linux.h.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/priv_syswrap-linux.h 2008-04-16 14:49:09.000000000 +0200 +@@ -82,6 +82,8 @@ DECL_TEMPLATE(linux, sys_ppoll); + DECL_TEMPLATE(linux, sys_epoll_create); + DECL_TEMPLATE(linux, sys_epoll_ctl); + DECL_TEMPLATE(linux, sys_epoll_wait); ++DECL_TEMPLATE(linux, sys_epoll_pwait); ++DECL_TEMPLATE(linux, sys_eventfd); + + DECL_TEMPLATE(linux, sys_gettid); + DECL_TEMPLATE(linux, sys_set_tid_address); +@@ -124,6 +126,9 @@ DECL_TEMPLATE(linux, sys_timer_settime); + DECL_TEMPLATE(linux, sys_timer_gettime); + DECL_TEMPLATE(linux, sys_timer_getoverrun); + DECL_TEMPLATE(linux, sys_timer_delete); ++DECL_TEMPLATE(linux, sys_timerfd); ++ ++DECL_TEMPLATE(linux, sys_signalfd); + + DECL_TEMPLATE(linux, sys_capget); + DECL_TEMPLATE(linux, sys_capset); +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc32-linux.c.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-ppc32-linux.c 2008-04-16 15:49:43.000000000 +0200 +@@ -1823,6 +1823,15 @@ const SyscallTableEntry ML_(syscall_tabl + LINX_(__NR_faccessat, sys_faccessat), // 298 + LINX_(__NR_set_robust_list, sys_set_robust_list), // 299 + LINXY(__NR_get_robust_list, sys_get_robust_list), // 300 ++// LINX_(__NR_move_pages, sys_ni_syscall), // 301 ++// LINX_(__NR_getcpu, sys_ni_syscall), // 302 ++ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 303 ++ LINX_(__NR_utimensat, sys_utimensat), // 304 ++ LINXY(__NR_signalfd, sys_signalfd), // 305 ++ LINXY(__NR_timerfd, sys_timerfd), // 306 ++ LINX_(__NR_eventfd, sys_eventfd), // 307 ++// LINX_(__NR_sync_file_range2, sys_ni_syscall), // 308 ++// LINX_(__NR_fallocate, sys_ni_syscall), // 309 + }; + + const UInt ML_(syscall_table_size) = +--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-amd64-linux.c.jj 2008-04-16 11:48:14.000000000 +0200 ++++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-amd64-linux.c 2008-04-16 14:45:43.000000000 +0200 +@@ -1370,7 +1370,7 @@ const SyscallTableEntry ML_(syscall_tabl + LINX_(__NR_faccessat, sys_faccessat), // 269 + + LINX_(__NR_pselect6, sys_pselect6), // 270 +-// LINXY(__NR_ppoll, sys_ni_syscall), // 271 ++ LINXY(__NR_ppoll, sys_ppoll), // 271 + // LINX_(__NR_unshare, sys_unshare), // 272 + LINX_(__NR_set_robust_list, sys_set_robust_list), // 273 + LINXY(__NR_get_robust_list, sys_get_robust_list), // 274 +@@ -1380,6 +1380,12 @@ const SyscallTableEntry ML_(syscall_tabl + LINX_(__NR_sync_file_range, sys_sync_file_range), // 277 + // LINX_(__NR_vmsplice, sys_ni_syscall), // 278 + // LINX_(__NR_move_pages, sys_ni_syscall), // 279 ++ LINX_(__NR_utimensat, sys_utimensat), // 280 ++ LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 281 ++ LINXY(__NR_signalfd, sys_signalfd), // 282 ++ LINXY(__NR_timerfd, sys_timerfd), // 283 ++ LINX_(__NR_eventfd, sys_eventfd), // 284 ++// LINX_(__NR_fallocate, sys_ni_syscall), // 285 + }; + + const UInt ML_(syscall_table_size) = diff --git a/valgrind.spec b/valgrind.spec index e3af7e2..4e50aff 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -1,7 +1,7 @@ Summary: Tool for finding memory management bugs in programs Name: valgrind Version: 3.3.0 -Release: 2 +Release: 3 Epoch: 1 Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 Patch1: valgrind-3.3.0-cachegrind-improvements.patch @@ -10,6 +10,9 @@ Patch3: valgrind-3.3.0-power5+-6.patch Patch4: valgrind-3.3.0-openat.patch Patch5: valgrind-3.3.0-helgrind-p_b_w.patch Patch6: valgrind-3.3.0-glibc27-dlhack.patch +Patch7: valgrind-3.3.0-glibc28.patch +Patch8: valgrind-3.3.0-syscalls1.patch +Patch9: valgrind-3.3.0-syscalls2.patch License: GPLv2 URL: http://www.valgrind.org/ Group: Development/Debuggers @@ -19,7 +22,7 @@ Obsoletes: valgrind-callgrind # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif -BuildRequires: glibc-devel >= 2.7 +BuildRequires: glibc-devel >= 2.8 ExclusiveArch: %{ix86} x86_64 ppc ppc64 %ifarch %{ix86} %define valarch x86 @@ -69,6 +72,9 @@ or valgrind plugins. %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 %build %ifarch x86_64 ppc64 @@ -83,7 +89,7 @@ touch libgcc/libgcc_s_32.a # Force a specific set of default suppressions echo -n > default.supp -for file in xfree-4.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.7.supp; do +for file in xfree-4.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.8.supp; do cat $file >> default.supp done @@ -164,6 +170,10 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/* %changelog +* Wed Apr 16 2008 Jakub Jelinek 3.3.0-3 +- add suppressions for glibc 2.8 +- add a bunch of syscall wrappers (#441709) + * Mon Mar 3 2008 Jakub Jelinek 3.3.0-2 - add _dl_start suppression for ppc/ppc64