Move some *at definitions to syscalls.list (bug 14138)
Commit Message
Continuing the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch moves definitions of various *at functions in
sysdeps/unix/sysv/linux/.
These particular moves are straightforward: there are no #includes of
these source files, no special architecture-specific versions, no
special symbol version handling and no aliases. Each source file can
be replaced by a single line in sysdeps/unix/sysv/linux/syscalls.list.
Tested for x86_64.
(This patch is independent of my other pending patches for such moves,
<https://sourceware.org/ml/libc-alpha/2014-09/msg00546.html> and
<https://sourceware.org/ml/libc-alpha/2014-09/msg00559.html>.)
2014-09-29 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.
Comments
On 30 September 2014 00:16, Joseph S. Myers <joseph@codesourcery.com> wrote:
> Continuing the move of syscall definitions to syscalls.list, where the
> removal of support for old kernel versions has made this possible,
> this patch moves definitions of various *at functions in
> sysdeps/unix/sysv/linux/.
>
> These particular moves are straightforward: there are no #includes of
> these source files, no special architecture-specific versions, no
> special symbol version handling and no aliases. Each source file can
> be replaced by a single line in sysdeps/unix/sysv/linux/syscalls.list.
>
> Tested for x86_64.
>
> (This patch is independent of my other pending patches for such moves,
> <https://sourceware.org/ml/libc-alpha/2014-09/msg00546.html> and
> <https://sourceware.org/ml/libc-alpha/2014-09/msg00559.html>.)
>
> 2014-09-29 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.
This looks ok to me.
> diff --git a/sysdeps/unix/sysv/linux/fchownat.c b/sysdeps/unix/sysv/linux/fchownat.c
> deleted file mode 100644
> index fae1256..0000000
> --- 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 e150486..0000000
> --- 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 9de1058..0000000
> --- 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 8755fc8..0000000
> --- 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 6f2e148..0000000
> --- 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 1166525..0000000
> --- 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 d639d63..5e3968a 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 2d5bd74..0000000
> --- 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);
> -}
>
> --
> Joseph S. Myers
> joseph@codesourcery.com
On Mon, Sep 29, 2014 at 11:16:32PM +0000, Joseph S. Myers wrote:
> Continuing the move of syscall definitions to syscalls.list, where the
> removal of support for old kernel versions has made this possible,
> this patch moves definitions of various *at functions in
> sysdeps/unix/sysv/linux/.
I think this is premature. Some of these functions, especially
fchmodat, have serious bug reports open against them which cannot be
fixed if they're pure syscall wrappers. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=14578
Rich
On Tue, 30 Sep 2014, Rich Felker wrote:
> On Mon, Sep 29, 2014 at 11:16:32PM +0000, Joseph S. Myers wrote:
> > Continuing the move of syscall definitions to syscalls.list, where the
> > removal of support for old kernel versions has made this possible,
> > this patch moves definitions of various *at functions in
> > sysdeps/unix/sysv/linux/.
>
> I think this is premature. Some of these functions, especially
> fchmodat, have serious bug reports open against them which cannot be
> fixed if they're pure syscall wrappers. See:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=14578
My patch did not change fchmodat because the implementation isn't simply a
syscall wrapper (the C function has an extra argument). For anything
that's currently a syscall wrapper in glibc, there is no point in it being
a C wrapper rather than a syscalls.list entry simply because some future
change might require such a wrapper; it can be converted to C at the point
where a C implementation is needed.
On Tue, Sep 30, 2014 at 05:24:10PM +0000, Joseph S. Myers wrote:
> On Tue, 30 Sep 2014, Rich Felker wrote:
>
> > On Mon, Sep 29, 2014 at 11:16:32PM +0000, Joseph S. Myers wrote:
> > > Continuing the move of syscall definitions to syscalls.list, where the
> > > removal of support for old kernel versions has made this possible,
> > > this patch moves definitions of various *at functions in
> > > sysdeps/unix/sysv/linux/.
> >
> > I think this is premature. Some of these functions, especially
> > fchmodat, have serious bug reports open against them which cannot be
> > fixed if they're pure syscall wrappers. See:
> >
> > https://sourceware.org/bugzilla/show_bug.cgi?id=14578
>
> My patch did not change fchmodat because the implementation isn't simply a
> syscall wrapper (the C function has an extra argument). For anything
> that's currently a syscall wrapper in glibc, there is no point in it being
> a C wrapper rather than a syscalls.list entry simply because some future
> change might require such a wrapper; it can be converted to C at the point
> where a C implementation is needed.
Sounds ok then.
Rich
deleted file mode 100644
@@ -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);
-}
deleted file mode 100644
@@ -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);
-}
deleted file mode 100644
@@ -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);
-}
deleted file mode 100644
@@ -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)
deleted file mode 100644
@@ -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);
-}
deleted file mode 100644
@@ -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);
-}
@@ -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
deleted file mode 100644
@@ -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);
-}