OBS User unknown 2008-11-07 14:52:12 +00:00 committed by Git OBS Bridge
parent 62186c01e4
commit 9eb0aa979e
3 changed files with 203 additions and 10 deletions

182
r8730.diff Normal file
View File

@ -0,0 +1,182 @@
------------------------------------------------------------------------
r8730 | sewardj | 2008-11-05 12:20:59 +0100 (Mi, 05 Nov 2008) | 3 lines
Support sys_pipe2 on {amd64,x86}-linux. Also, update syscall numbers
for all supported Linuxes to those in linux-2.6.28-rc3.
------------------------------------------------------------------------
Index: include/vki/vki-scnums-amd64-linux.h
===================================================================
--- include/vki/vki-scnums-amd64-linux.h (revision 8729)
+++ include/vki/vki-scnums-amd64-linux.h (revision 8730)
@@ -369,6 +369,13 @@
#define __NR_fallocate 285
#define __NR_timerfd_settime 286
#define __NR_timerfd_gettime 287
+#define __NR_paccept 288
+#define __NR_signalfd4 289
+#define __NR_eventfd2 290
+#define __NR_epoll_create1 291
+#define __NR_dup3 292
+#define __NR_pipe2 293
+#define __NR_inotify_init1 294
#endif /* __VKI_SCNUMS_AMD64_LINUX_H */
Index: include/vki/vki-scnums-x86-linux.h
===================================================================
--- include/vki/vki-scnums-x86-linux.h (revision 8729)
+++ include/vki/vki-scnums-x86-linux.h (revision 8730)
@@ -361,6 +361,12 @@
#define __NR_fallocate 324
#define __NR_timerfd_settime 325
#define __NR_timerfd_gettime 326
+#define __NR_signalfd4 327
+#define __NR_eventfd2 328
+#define __NR_epoll_create1 329
+#define __NR_dup3 330
+#define __NR_pipe2 331
+#define __NR_inotify_init1 332
#endif /* __VKI_SCNUMS_X86_LINUX_H */
Index: include/vki/vki-scnums-ppc32-linux.h
===================================================================
--- include/vki/vki-scnums-ppc32-linux.h (revision 8729)
+++ include/vki/vki-scnums-ppc32-linux.h (revision 8730)
@@ -355,6 +355,12 @@
#define __NR_subpage_prot 310
#define __NR_timerfd_settime 311
#define __NR_timerfd_gettime 312
+#define __NR_signalfd4 313
+#define __NR_eventfd2 314
+#define __NR_epoll_create1 315
+#define __NR_dup3 316
+#define __NR_pipe2 317
+#define __NR_inotify_init1 318
#endif /* __VKI_SCNUMS_PPC32_LINUX_H */
Index: include/vki/vki-scnums-ppc64-linux.h
===================================================================
--- include/vki/vki-scnums-ppc64-linux.h (revision 8729)
+++ include/vki/vki-scnums-ppc64-linux.h (revision 8730)
@@ -347,6 +347,12 @@
#define __NR_subpage_prot 310
#define __NR_timerfd_settime 311
#define __NR_timerfd_gettime 312
+#define __NR_signalfd4 313
+#define __NR_eventfd2 314
+#define __NR_epoll_create1 315
+#define __NR_dup3 316
+#define __NR_pipe2 317
+#define __NR_inotify_init1 318
#endif /* __VKI_SCNUMS_PPC64_LINUX_H */
Index: coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- coregrind/m_syswrap/syswrap-linux.c (revision 8729)
+++ coregrind/m_syswrap/syswrap-linux.c (revision 8730)
@@ -2235,12 +2235,38 @@ PRE(sys_pipe)
POST(sys_pipe)
{
Int *p = (Int *)ARG1;
-
if (!ML_(fd_allowed)(p[0], "pipe", tid, True) ||
!ML_(fd_allowed)(p[1], "pipe", tid, True)) {
VG_(close)(p[0]);
VG_(close)(p[1]);
SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ POST_MEM_WRITE( ARG1, 2*sizeof(int) );
+ if (VG_(clo_track_fds)) {
+ ML_(record_fd_open_nameless)(tid, p[0]);
+ ML_(record_fd_open_nameless)(tid, p[1]);
+ }
+ }
+}
+
+/* pipe2 (a kernel 2.6.twentysomething invention) is like pipe, except
+ there's a second arg containing flags to be applied to the new file
+ descriptors. It hardly seems worth the effort to factor out the
+ duplicated code, hence: */
+PRE(sys_pipe2)
+{
+ PRINT("sys_pipe2 ( %#lx, %#lx )", ARG1, ARG2);
+ PRE_REG_READ2(int, "pipe", int *, filedes, long, flags);
+ PRE_MEM_WRITE( "pipe2(filedes)", ARG1, 2*sizeof(int) );
+}
+POST(sys_pipe2)
+{
+ Int *p = (Int *)ARG1;
+ if (!ML_(fd_allowed)(p[0], "pipe2", tid, True) ||
+ !ML_(fd_allowed)(p[1], "pipe2", tid, True)) {
+ VG_(close)(p[0]);
+ VG_(close)(p[1]);
+ SET_STATUS_Failure( VKI_EMFILE );
} else {
POST_MEM_WRITE( ARG1, 2*sizeof(int) );
if (VG_(clo_track_fds)) {
Index: coregrind/m_syswrap/priv_syswrap-linux.h
===================================================================
--- coregrind/m_syswrap/priv_syswrap-linux.h (revision 8729)
+++ coregrind/m_syswrap/priv_syswrap-linux.h (revision 8730)
@@ -206,6 +206,7 @@ DECL_TEMPLATE(linux, sys_sched_getaffini
// Also, some archs on Linux do not match the generic wrapper for sys_pipe.
DECL_TEMPLATE(linux, sys_munlockall);
DECL_TEMPLATE(linux, sys_pipe);
+DECL_TEMPLATE(linux, sys_pipe2);
DECL_TEMPLATE(linux, sys_quotactl);
DECL_TEMPLATE(linux, sys_waitid);
Index: coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- coregrind/m_syswrap/syswrap-amd64-linux.c (revision 8729)
+++ coregrind/m_syswrap/syswrap-amd64-linux.c (revision 8730)
@@ -1350,14 +1350,24 @@ 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_create, sys_timerfd_create), // 283
LINX_(__NR_eventfd, sys_eventfd), // 284
+
// LINX_(__NR_fallocate, sys_ni_syscall), // 285
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 286
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 287
+ // (__NR_paccept, sys_ni_syscall) // 288
+ // (__NR_signalfd4, sys_ni_syscall) // 289
+
+ // (__NR_eventfd2, sys_ni_syscall) // 290
+ // (__NR_epoll_create1, sys_ni_syscall) // 291
+ // (__NR_dup3, sys_ni_syscall) // 292
+ LINXY(__NR_pipe2, sys_pipe2) // 293
+ // (__NR_inotify_init1, sys_ni_syscall) // 294
};
const UInt ML_(syscall_table_size) =
Index: coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- coregrind/m_syswrap/syswrap-x86-linux.c (revision 8729)
+++ coregrind/m_syswrap/syswrap-x86-linux.c (revision 8730)
@@ -2231,8 +2231,16 @@ const SyscallTableEntry ML_(syscall_tabl
LINXY(__NR_timerfd_create, sys_timerfd_create), // 322
LINX_(__NR_eventfd, sys_eventfd), // 323
// LINX_(__NR_fallocate, sys_ni_syscall), // 324
+
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 325
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 326
+ // (__NR_signalfd4, sys_ni_syscall) // 327
+ // (__NR_eventfd2, sys_ni_syscall) // 328
+ // (__NR_epoll_create1, sys_ni_syscall) // 329
+
+ // (__NR_dup3, sys_ni_syscall) // 330
+ LINXY(__NR_pipe2, sys_pipe2) // 331
+ // (__NR_inotify_init1, sys_ni_syscall) // 332
};
const UInt ML_(syscall_table_size) =

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Nov 5 13:58:49 CET 2008 - dmueller@suse.de
- add syscall wrappers for pipe2
-------------------------------------------------------------------
Tue Jun 24 20:42:50 CEST 2008 - schwab@suse.de

View File

@ -2,9 +2,16 @@
# spec file for package valgrind (Version 3.3.1)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@ -13,20 +20,15 @@
Name: valgrind
BuildRequires: gcc-c++ glibc-devel-32bit xorg-x11-devel
%ifarch x86_64 ppc64
%if %suse_version > 1010
BuildRequires: gcc-32bit
%endif
%if %suse_version < 1010
BuildRequires: gcc-32bit glibc-32bit
%endif
%endif
Url: http://valgrind.org/
License: GPL v2 only
Group: Development/Tools/Debuggers
Summary: Valgrind Suite of Tools for Debugging and Profiling
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Version: 3.3.1
Release: 2
Release: 31
Source0: %{name}-%{version}.tar.bz2
# svn di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_2_1 svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH > 3_2_BRANCH.diff
# svn di svn://svn.valgrind.org/vex/tags/VEX_3_2_1 svn://svn.valgrind.org/vex/branches/VEX_3_2_BRANCH > VEX_3_2_BRANCH.diff
@ -35,6 +37,7 @@ Patch9: deprecated.diff
Patch10: update-suppressions.diff
Patch12: xcb-update.diff
Patch13: fadvice64.diff
Patch14: r8730.diff
Provides: callgrind = %version
Obsoletes: callgrind < %version
ExclusiveArch: %ix86 x86_64 ppc ppc64
@ -122,6 +125,7 @@ cd ..
%patch10
%patch12
%patch13
%patch14
%build
export CFLAGS="$RPM_OPT_FLAGS"
@ -151,6 +155,8 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages
%_libdir/valgrind/*/*.a
%changelog
* Wed Nov 05 2008 dmueller@suse.de
- add syscall wrappers for pipe2
* Tue Jun 24 2008 schwab@suse.de
- Add fadvice64 wrapper.
* Sun Jun 22 2008 dmueller@suse.de
@ -194,7 +200,7 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages
162386 ms_print typo in milliseconds time unit for massif
161036 exp-drd: client allocated memory was never freed
162663 signalfd_wrapper fails on 64bit linux
* Mon Apr 28 2008 dmueller@suse.de
* Sun Apr 27 2008 dmueller@suse.de
- update glibc 2.8 support
* Sun Dec 16 2007 dmueller@suse.de
- readd deprecated #define's (#348337)
@ -221,7 +227,7 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages
- update suppressions
* Fri Aug 24 2007 dmueller@suse.de
- fix valgrind on x86_64 (#296803)
* Wed Aug 22 2007 dmueller@suse.de
* Tue Aug 21 2007 dmueller@suse.de
- suppression update
* Tue Jul 24 2007 dmueller@suse.de
- update suppression file