summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--sysdeps/unix/sysv/linux/fchownat.c41
-rw-r--r--sysdeps/unix/sysv/linux/linkat.c39
-rw-r--r--sysdeps/unix/sysv/linux/mkdirat.c38
-rw-r--r--sysdeps/unix/sysv/linux/readlinkat.c41
-rw-r--r--sysdeps/unix/sysv/linux/renameat.c36
-rw-r--r--sysdeps/unix/sysv/linux/symlinkat.c38
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list8
-rw-r--r--sysdeps/unix/sysv/linux/unlinkat.c39
9 files changed, 26 insertions, 272 deletions
diff --git a/ChangeLog b/ChangeLog
index d7580c1489..6ea4751067 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2014-09-30  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #14138]
+	* sysdeps/unix/sysv/linux/syscalls.list (fchownat): New syscall.
+	(linkat): Likewise.
+	(mkdirat): Likewise.
+	(readlinkat): Likewise.
+	(renameat): Likewise.
+	(symlinkat): Likewise.
+	(unlinkat): Likewise.
+	* sysdeps/unix/sysv/linux/fchownat.c: Remove file.
+	* sysdeps/unix/sysv/linux/linkat.c: Likewise.
+	* sysdeps/unix/sysv/linux/mkdirat.c: Likewise.
+	* sysdeps/unix/sysv/linux/readlinkat.c: Likewise.
+	* sysdeps/unix/sysv/linux/renameat.c: Likewise.
+	* sysdeps/unix/sysv/linux/symlinkat.c: Likewise.
+	* sysdeps/unix/sysv/linux/unlinkat.c: Likewise.
+
 2014-09-30  Will Newton  <will.newton@linaro.org>
 
 	* math/math.h: Define long double math functions if
diff --git a/sysdeps/unix/sysv/linux/fchownat.c b/sysdeps/unix/sysv/linux/fchownat.c
deleted file mode 100644
index fae1256af7..0000000000
--- a/sysdeps/unix/sysv/linux/fchownat.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <alloca.h>
-#include <sysdep.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Change the owner and group of FILE.  */
-int
-fchownat (fd, file, owner, group, flag)
-     int fd;
-     const char *file;
-     uid_t owner;
-     gid_t group;
-     int flag;
-{
-  return INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
-}
diff --git a/sysdeps/unix/sysv/linux/linkat.c b/sysdeps/unix/sysv/linux/linkat.c
deleted file mode 100644
index e150486a30..0000000000
--- a/sysdeps/unix/sysv/linux/linkat.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdio.h>
-#include <sysdep.h>
-#include <unistd.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Make a link to FROM named TO but relative paths in TO and FROM are
-   interpreted relative to FROMFD and TOFD respectively.  */
-int
-linkat (fromfd, from, tofd, to, flags)
-     int fromfd;
-     const char *from;
-     int tofd;
-     const char *to;
-     int flags;
-{
-  return INLINE_SYSCALL (linkat, 5, fromfd, from, tofd, to, flags);
-}
diff --git a/sysdeps/unix/sysv/linux/mkdirat.c b/sysdeps/unix/sysv/linux/mkdirat.c
deleted file mode 100644
index 9de1058b3f..0000000000
--- a/sysdeps/unix/sysv/linux/mkdirat.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sysdep-cancel.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Create a new directory with permission bits MODE.  But interpret
-   relative PATH names relative to the directory associated with FD.  */
-int
-mkdirat (fd, file, mode)
-     int fd;
-     const char *file;
-     mode_t mode;
-{
-  return INLINE_SYSCALL (mkdirat, 3, fd, file, mode);
-}
diff --git a/sysdeps/unix/sysv/linux/readlinkat.c b/sysdeps/unix/sysv/linux/readlinkat.c
deleted file mode 100644
index 8755fc8fe0..0000000000
--- a/sysdeps/unix/sysv/linux/readlinkat.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <unistd.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Read the contents of the symbolic link PATH relative to FD into no
-   more than LEN bytes of BUF.  */
-ssize_t
-readlinkat (fd, path, buf, len)
-     int fd;
-     const char *path;
-     char *buf;
-     size_t len;
-{
-  return INLINE_SYSCALL (readlinkat, 4, fd, path, buf, len);
-}
-libc_hidden_def (readlinkat)
diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
deleted file mode 100644
index 6f2e148fa4..0000000000
--- a/sysdeps/unix/sysv/linux/renameat.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <sysdep.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
-int
-renameat (oldfd, old, newfd, new)
-     int oldfd;
-     const char *old;
-     int newfd;
-     const char *new;
-{
-  return INLINE_SYSCALL (renameat, 4, oldfd, old, newfd, new);
-}
diff --git a/sysdeps/unix/sysv/linux/symlinkat.c b/sysdeps/unix/sysv/linux/symlinkat.c
deleted file mode 100644
index 1166525cba..0000000000
--- a/sysdeps/unix/sysv/linux/symlinkat.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <unistd.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Make a symbolic link to FROM named TO relative to TOFD.  */
-int
-symlinkat (from, tofd, to)
-     const char *from;
-     int tofd;
-     const char *to;
-{
-  return INLINE_SYSCALL (symlinkat, 3, from, tofd, to);
-}
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index d639d63cf9..5e3968a28b 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -84,6 +84,14 @@ wait4		-	wait4		i:iWiP	__wait4		wait4
 
 chown		-	chown		i:sii	__libc_chown	__chown chown
 
+fchownat	-	fchownat	i:isiii	fchownat
+linkat		-	linkat		i:isisi	linkat
+mkdirat		-	mkdirat		i:isi	mkdirat
+readlinkat	-	readlinkat	i:issi	readlinkat
+renameat	-	renameat	i:isis	renameat
+symlinkat	-	symlinkat	i:sis	symlinkat
+unlinkat	-	unlinkat	i:isi	unlinkat
+
 setxattr	-	setxattr	i:sspii	setxattr
 lsetxattr	-	lsetxattr	i:sspii	lsetxattr
 fsetxattr	-	fsetxattr	i:ispii	fsetxattr
diff --git a/sysdeps/unix/sysv/linux/unlinkat.c b/sysdeps/unix/sysv/linux/unlinkat.c
deleted file mode 100644
index 2d5bd74170..0000000000
--- a/sysdeps/unix/sysv/linux/unlinkat.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* unlinkat -- Remove a link by relative name.
-   Copyright (C) 2005-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <unistd.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-/* Remove the link named NAME.  */
-int
-unlinkat (fd, file, flag)
-     int fd;
-     const char *file;
-     int flag;
-{
-  return INLINE_SYSCALL (unlinkat, 3, fd, file, flag);
-}