Bug 353083 - arm64 doesn't implement various xattr system calls
Summary: arm64 doesn't implement various xattr system calls
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-23 11:39 UTC by Mark Wielaard
Modified: 2015-09-23 11:52 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Wielaard 2015-09-23 11:39:29 UTC
--15436-- WARNING: unhandled syscall: 5
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
setxattr: Function not implemented
--15436-- WARNING: unhandled syscall: 6
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
lsetxattr: Function not implemented
--15436-- WARNING: unhandled syscall: 7
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
fsetxattr: Function not implemented
getxattr: No such file or directory
lgetxattr: No such file or directory
--15436-- WARNING: unhandled syscall: 10
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
fgetxattr: Function not implemented
--15436-- WARNING: unhandled syscall: 14
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
removexattr: Function not implemented
--15436-- WARNING: unhandled syscall: 15
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
lremovexattr: Function not implemented
--15436-- WARNING: unhandled syscall: 16
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
fremovexattr: Function not implemented
--15436-- WARNING: unhandled syscall: 11
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
listxattr: Function not implemented
--15436-- WARNING: unhandled syscall: 12
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
llistxattr: Function not implemented
--15436-- WARNING: unhandled syscall: 13
--15436-- You may be able to write your own handler.
--15436-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--15436-- Nevertheless we consider this a bug.  Please report
--15436-- it at http://valgrind.org/support/bug_reports.html.
flistxattr: Function not implemented


Reproducible: Always




All these are generic linux system calls already implemented for other arches, the patch is simply to enable them for arm64 too:

diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index 6661d1d..6cf3ba5 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -855,8 +855,18 @@ PRE(sys_rt_sigreturn)
 // (unknown).
 
 static SyscallTableEntry syscall_main_table[] = {
+   LINX_(__NR_setxattr,          sys_setxattr),          // 5
+   LINX_(__NR_lsetxattr,         sys_lsetxattr),         // 6
+   LINX_(__NR_fsetxattr,         sys_fsetxattr),         // 7
    LINXY(__NR_getxattr,          sys_getxattr),          // 8
    LINXY(__NR_lgetxattr,         sys_lgetxattr),         // 9
+   LINXY(__NR_fgetxattr,         sys_fgetxattr),         // 10
+   LINXY(__NR_listxattr,         sys_listxattr),         // 11
+   LINXY(__NR_llistxattr,        sys_llistxattr),        // 12
+   LINXY(__NR_flistxattr,        sys_flistxattr),        // 13
+   LINX_(__NR_removexattr,       sys_removexattr),       // 14
+   LINX_(__NR_lremovexattr,      sys_lremovexattr),      // 15
+   LINX_(__NR_fremovexattr,      sys_fremovexattr),      // 16
    GENXY(__NR_getcwd,            sys_getcwd),            // 17
    LINXY(__NR_eventfd2,          sys_eventfd2),          // 19
    LINXY(__NR_epoll_create1,     sys_epoll_create1),     // 20
@@ -1267,18 +1277,6 @@ static SyscallTableEntry syscall_main_table[] = {
 //ZZ //   GENX_(222,                    sys_ni_syscall),     // 222
 //ZZ //   PLAXY(223,                    sys_syscall223),     // 223 // sys_bproc?
 //ZZ 
-//ZZ    LINX_(__NR_setxattr,          sys_setxattr),       // 226
-//ZZ    LINX_(__NR_lsetxattr,         sys_lsetxattr),      // 227
-//ZZ    LINX_(__NR_fsetxattr,         sys_fsetxattr),      // 228
-//ZZ 
-//ZZ    LINXY(__NR_fgetxattr,         sys_fgetxattr),      // 231
-//ZZ    LINXY(__NR_listxattr,         sys_listxattr),      // 232
-//ZZ    LINXY(__NR_llistxattr,        sys_llistxattr),     // 233
-//ZZ    LINXY(__NR_flistxattr,        sys_flistxattr),     // 234
-//ZZ 
-//ZZ    LINX_(__NR_removexattr,       sys_removexattr),    // 235
-//ZZ    LINX_(__NR_lremovexattr,      sys_lremovexattr),   // 236
-//ZZ    LINX_(__NR_fremovexattr,      sys_fremovexattr),   // 237
 //ZZ    LINXY(__NR_tkill,             sys_tkill),          // 238 */Linux
 //ZZ    LINXY(__NR_sendfile64,        sys_sendfile64),     // 239
 //ZZ
Comment 1 Mark Wielaard 2015-09-23 11:52:06 UTC
valgrind svn r15675