[PATCH] Revert "linux: Implement mremap in C" (bug 31968)
H.J. Lu
hjl.tools@gmail.com
Tue Jul 9 22:14:19 GMT 2024
On Tue, Jul 9, 2024, 11:01 PM Florian Weimer <fweimer@redhat.com> wrote:
> This reverts commit 5b3e31e3124bf89710e5c25176c70fdf66c2a212.
>
> The C implementation processes the optional argument based on
> flags. Linux 5.7 added MREMAP_DONTUNMAP, which needs the optional
>
Missing a test for MREMAP_DONTUNMAP.
argument just like MREMAP_FIXED. Rather than creating a continuous
> maintenance task, revert back to the assembler implementation.
> There does not seem to be a need for the C implementation
> (unlike what we saw with prctl on x86-64 x32):
>
> <
> https://inbox.sourceware.org/libc-alpha/177225da-682e-4f57-9cde-5ff8f366266a@linaro.org/
> >
>
> Tested on x86_64-linux-gnu.
>
> ---
> sysdeps/unix/sysv/linux/Makefile | 1 -
> sysdeps/unix/sysv/linux/mremap.c | 41
> -----------------------------------
> sysdeps/unix/sysv/linux/syscalls.list | 1 +
> 3 files changed, 1 insertion(+), 42 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/Makefile
> b/sysdeps/unix/sysv/linux/Makefile
> index 097b5a26fc..e8dd4518d9 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -82,7 +82,6 @@ sysdep_routines += \
> lxstat \
> lxstat64 \
> mlock2 \
> - mremap \
> open_by_handle_at \
> personality \
> pkey_get \
> diff --git a/sysdeps/unix/sysv/linux/mremap.c
> b/sysdeps/unix/sysv/linux/mremap.c
> deleted file mode 100644
> index 4f770799c4..0000000000
> --- a/sysdeps/unix/sysv/linux/mremap.c
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -/* Remap a virtual memory address. Linux specific syscall.
> - Copyright (C) 2021-2024 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
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <sys/mman.h>
> -#include <sysdep.h>
> -#include <stdarg.h>
> -#include <stddef.h>
> -
> -void *
> -__mremap (void *addr, size_t old_len, size_t new_len, int flags, ...)
> -{
> - va_list va;
> - void *new_addr = NULL;
> -
> - if (flags & MREMAP_FIXED)
> - {
> - va_start (va, flags);
> - new_addr = va_arg (va, void *);
> - va_end (va);
> - }
> -
> - return (void *) INLINE_SYSCALL_CALL (mremap, addr, old_len, new_len,
> flags,
> - new_addr);
> -}
> -libc_hidden_def (__mremap)
> -weak_alias (__mremap, mremap)
> diff --git a/sysdeps/unix/sysv/linux/syscalls.list
> b/sysdeps/unix/sysv/linux/syscalls.list
> index 9ac42c3436..2fff680964 100644
> --- a/sysdeps/unix/sysv/linux/syscalls.list
> +++ b/sysdeps/unix/sysv/linux/syscalls.list
> @@ -39,6 +39,7 @@ mlockall - mlockall i:i mlockall
> mount EXTRA mount i:sssUp __mount mount
> mount_setattr EXTRA mount_setattr i:isUpU mount_setattr
> move_mount EXTRA move_mount i:isisU move_mount
> +mremap EXTRA mremap b:aUUip __mremap mremap
> munlock - munlock i:aU munlock
> munlockall - munlockall i: munlockall
> nfsservctl EXTRA nfsservctl i:ipp __compat_nfsservctl
> nfsservctl@GLIBC_2.0:GLIBC_2.28
>
> base-commit: 9fc639f654dc004736836613be703e6bed0c36a8
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20240710/06d1bba0/attachment.htm>
More information about the Libc-alpha
mailing list