[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