Commit Graph

72 Commits

Author SHA1 Message Date
Mark Wielaard
c33888cd76 aarch64: enable kcmp syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16245
2017-02-18 21:16:02 +00:00
Mark Wielaard
83530aa5cb aarch64: enable clock_adjtime syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16244
2017-02-18 21:16:01 +00:00
Mark Wielaard
cb5c2db67d aarch64: enable fanotify_mark syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16243
2017-02-18 21:16:00 +00:00
Mark Wielaard
a0c40043fd aarch64: enable fanotify_init syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16242
2017-02-18 21:16:00 +00:00
Mark Wielaard
cbc35e55e3 aarch64: enable rt_tgsigqueueinfo syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16241
2017-02-18 21:15:59 +00:00
Mark Wielaard
2bb11a32ac aarch64: enable move_pages syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16240
2017-02-18 21:15:58 +00:00
Mark Wielaard
67c85b2cc8 aarch64: enable request_key syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16239
2017-02-18 21:15:57 +00:00
Mark Wielaard
c4ce4f8099 aarch64: enable tkill syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16238
2017-02-18 21:15:56 +00:00
Mark Wielaard
b49d8c0666 aarch64: enable sched_rr_get_interval syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16237
2017-02-18 21:15:55 +00:00
Mark Wielaard
3729c265d0 aarch64: enable delete_module syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16236
2017-02-18 21:15:54 +00:00
Mark Wielaard
2d6a711e16 aarch64: enable get_robust_list syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16235
2017-02-18 21:15:53 +00:00
Mark Wielaard
ce78c07359 aarch64: enable unshare syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16234
2017-02-18 21:15:53 +00:00
Mark Wielaard
c97d53db3a aarch64: enable sync_file_range syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16233
2017-02-18 21:15:52 +00:00
Mark Wielaard
1dbcb195da aarch64: enable pivot_root syscall (generic wrapper)
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16232
2017-02-18 21:15:51 +00:00
Mark Wielaard
dc1e28e958 aarch64: remove bogus syscall part
Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16231
2017-02-18 21:15:50 +00:00
Mark Wielaard
58b58f73e4 aarch64: add missing syscalls into table
All entries are added disabled - enabling them will be done later.

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16230
2017-02-18 21:15:49 +00:00
Mark Wielaard
83a0887f9a fix order of timer_* syscalls on aarch64 - bug #371225
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16229
2017-02-18 21:15:48 +00:00
Mark Wielaard
8a63a637d8 Bug 376611 - ppc64 and arm64 don't know about prlimit64 syscall.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16228
2017-02-18 13:20:16 +00:00
Philippe Waroquiers
489cfd5156 Fix 342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones to a different stack
Fix 373192 Calling posix_spawn in glibc 2.24 completely broken

Functionally, this patch just does the following 2 changes to the
fork clone handling:
* It does not mask anymore CLONE_VFORK :
  The only effect of this flag is to suspend the parent, waiting for
  the child to either exit or execve.
  If some applications depends on this synchronisation, better keep it,
  as it will not harm to suspend the parent valgrind waiting for the
  child valgrind to exit or execve.
* In case the guest calls the clone syscall providing a non zero client stack,
  set the child guest SP after the syscall, before executing guest instructions.
  Not setting the guest stack ptr was the source of the problem reported
  in the bugs.

This also adds a test case  none/tests/linux/clonev.
Before this patch, test gives a SEGV, which is fixed by the patch.

The patch is however a lot bigger : this fix was touching some (mostly
identical/duplicated) code in all the linux platforms.
So, the clone/fork code has been factorised as much as possible.
This removes about 1700 lines of code.

This has been tested on:
* amd64
* x86
* ppc64 be and le
* ppc32
* arm64

This has been compiled on but *not really tested* on:
* mips64 (not too clear how to properly build and run valgrind on gcc22)

It has *not* been compiled and *not* tested on:
* arm
* mips32
* tilegx
* darwin   (normally, no impact)
* solaris  (normally, no impact)

The changes are relatively mechanical, so it is not impossible that
it will compile and work out of the box on these platforms.
Otherwise, questions welcome.

A few points of interest:
* Some platforms did have a typedef void vki_modify_ldt_t,
  and some platforms had no definition for this type at all.
  To make it easier to factorise, for such platforms, the following has
  been used:
     typedef char vki_modify_ldt_t;
    When the sizeof vki_modify_ldt_t is > 1, then the arg syscall is checked.
  This is somewhat a hack, but was simplifying the factorisation.

* for mips32/mips64 and tilegx, there is a strange unconditional assignment
  of 0 to a register (guest_r2 on mips, guest_r0 on tilegx).
  Unclear what this is, in particular because this is assigned whatever
  the result of the syscall (success or not).
  



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16186
2016-12-11 21:39:23 +00:00
Philippe Waroquiers
54a1e7856d 371412 Rename wrap_sys_shmat to sys_shmat like other wrappers
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16109
2016-11-01 15:00:45 +00:00
Mark Wielaard
219f3152bc Bug #359503 continued. adjtimex syscall missing on arm64.
Enable adjtimex syscall on arm64 and fix bug if argument is a bad pointer.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15953
2016-09-14 11:47:26 +00:00
Mark Wielaard
6b8c5dfb75 Bug 363680 add renameat2() support
Patch written by Jann Horn <jannhorn@googlemail.com>.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15889
2016-05-31 12:16:15 +00:00
Mark Wielaard
958ea4cb5b Bug #363705 arm64 missing syscall name_to_handle_at and open_by_handle_at
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15887
2016-05-30 14:17:25 +00:00
Mark Wielaard
d4ec6d9870 Bug 359503 - Add missing syscalls for aarch64 (arm64)
Enable more arm64 syscalls. ioprio_set, ioprio_get, preadv, pwritev,
vmsplice, splice, tee, waitid, clock_nanosleep and perf_event_open.
Reported and patch (mostly) by Marcin Juszkiewicz.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15826
2016-03-09 16:18:37 +00:00
Mark Wielaard
a848da57ad Add arm64 scalar test. Enable tested syscalls.
The new memcheck/tests/arm64-linux/scalar test is based on the
memcheck/tests/x86-linux/scalar test and contains all syscalls
that are also available on arm64. To make comparison of exp results
easier the order of the tested syscalls is the same as on x86.
This enables a couple extra arm64 syscalls. Part of the fix for
bug #359503 - Add missing syscalls for aarch64 (arm64).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15825
2016-03-09 16:18:36 +00:00
Ivo Raisr
912bede3dd Sanitize signal mask in ppoll and pselect syscalls
Reported and Linux patch contributed by Steven Smith <sos22@archy.org.uk>
Fixes BZ#359871



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15823
2016-03-08 09:04:48 +00:00
Mark Wielaard
3d7da7a718 Bug 353084 arm64 doesn't support sigpending system call.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15676
2015-09-23 12:15:36 +00:00
Mark Wielaard
3d33343cb7 Bug 353083 arm64 doesn't implement various xattr system calls.
This enables setxattr, lsetxattr, fsetxattr, fgetxattr, removexattr,
lremovexattr, fremovexattr, listxattr, llistxattr and flistxattr on
arm64-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15675
2015-09-23 11:51:47 +00:00
Julian Seward
adc2dafee9 Update copyright dates, to include 2015. No functional change.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577
2015-08-21 11:32:26 +00:00
Julian Seward
bbb480bad2 Fix format string confusion that was somehow related to r15510.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15556
2015-08-16 11:54:38 +00:00
Mark Wielaard
a398bfb863 Bug #351140 arm64 syscalls setuid (146) and setresgid (149) not implemented.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15517
2015-08-09 22:37:52 +00:00
Florian Krohm
9a3883bf3d Fix printf format inconsistencies as pointed out by gcc -Wformat-signedness.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15510
2015-08-08 21:45:33 +00:00
Florian Krohm
7a474c9455 Fix typos in source code. Patch by Dmitriy (olshevskiy87@bk.ru).
Fixes BZ #349874


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15394
2015-07-05 21:53:33 +00:00
Tom Hughes
2799d8f88a Add support for the syncfs system call.
Based on patch from j@eckel.me on BZ#347389.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15191
2015-05-07 18:54:31 +00:00
Florian Krohm
8d5672dbd6 Remove a few unneeded header files.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15111
2015-04-18 17:45:34 +00:00
Mark Wielaard
795a4f2d37 Bug #344307 2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40)
Reporter: Branislav Blaskovic, bblaskov@redhat.com
Patch: Robin Hack, rhack@redhat.com
Test: Miloš Prchlík, mprchlik@redhat.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14944
2015-02-18 14:23:17 +00:00
Mark Wielaard
06a9351cd8 Bug #344295 syscall recvmmsg on arm64 (243) and ppc32/64 (343) unhandled
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14940
2015-02-17 19:50:45 +00:00
Mark Wielaard
6951c3aba9 Bug #344279 syscall sendmmsg on arm64 (269) and ppc32/64 (349) unhandled.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14939
2015-02-17 16:04:09 +00:00
Mark Wielaard
0279de2d80 Bug #344007 accept4 syscall unhandled on arm64 (242) and ppc64 (344)
ppc64 might fall back to socketcall in some cases, but arm64 always uses
accept4 syscall directly. Some (confusing) background on when/how glibc
(wrongly) decides to use a direct accept4 or the socketcall system call:
https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14926
2015-02-10 13:39:04 +00:00
Mark Wielaard
1c42cad510 Bug 343733 Unhandled syscall 187 (msgctl and related) on aarch64
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14917
2015-02-07 22:58:51 +00:00
Mark Wielaard
997880f80c Bug 343732 - Unhandled syscall 144 (setgid) on aarch64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14916
2015-02-07 22:36:48 +00:00
Julian Seward
8f2dab4d99 Enable sys_mbind, sys_get_mempolicy, sys_set_mempolicy on arm64-linux.
Patch from Hideaki Kimura (hideaki.kimura@gmail.com).  Fixes #342038.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14907
2015-02-05 15:28:28 +00:00
Tom Hughes
6504fa50c3 Handle the memfd_create system call.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14875
2015-01-19 21:52:44 +00:00
Florian Krohm
a9aa079113 Change most remaining use of Addr64 in coregrind and the tools to Addr.
Tracking VEX r3056.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14846
2015-01-04 17:20:45 +00:00
Florian Krohm
f1fde81e7d Fix a few VG_(message) invocations. The function does not add a
newline character under the covers.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14796
2014-11-29 17:50:10 +00:00
Julian Seward
065a14f0ab Enable sys_flock on arm64-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14777
2014-11-24 16:19:48 +00:00
Mark Wielaard
560e558b88 Bug 340922 arm64: unhandled getgroups/setgroups syscalls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14716
2014-11-13 13:03:25 +00:00
Tom Hughes
b8308dd756 Add support for the getrandom system call. BZ#340788.
Requires r14705 for updated system call lists.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14709
2014-11-10 09:55:59 +00:00
Mark Wielaard
a83732ca72 Bug 340630 arm64: fchmod (52) and fchown (55) syscalls not recognized.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14686
2014-11-04 13:43:21 +00:00
Julian Seward
2bf85a3929 Bug 340236 - 4 unhandled syscalls on aarch64/arm64:
mknodat (33), fchdir (50), chroot (51), fchownat (54)
Patch from Miroslav Franc (mfranc@redhat.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14677
2014-10-30 14:28:14 +00:00