From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 43EE53858292 for ; Wed, 22 Jun 2022 12:30:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 43EE53858292 Received: by mail-ot1-x336.google.com with SMTP id 111-20020a9d0378000000b0060c2db66d44so12935696otv.6 for ; Wed, 22 Jun 2022 05:30:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=t12tQuqW7VejivTzA3DOCkoorTCvyLPbY3ciL0YicN8=; b=LZIbzcOTU5C/7w+5Yx5U1xD5F2t1BwJ5pFVQFLo0h1YPkXiz8p+s61RXjC00MtKiIj nWpBhtk+l9ksWI2d2OQqrmU0a9sywCVqAd1OMM/Z+rQYNfsYpRnK/J23K1ttbsWq/M+z nlTYdrrVzCvndbtM+b9YvC4LcwJWHtwHD74Jort+RkUUDzF8wFKYncLo8r7qKhwmhYYO De84Dr2xuo4DlvCtX8tko4AbDvK8Wx5LQ6Z4Z+DJUaYVGghEHPwXGUVJHBy1d/F5tany 2FLe2tt/1tZZUKbNtTwRyQ/MeIDv1be7P9c4js/l/jlobW7/yAQ+wdHZcIIXKS1qm0NK MVBA== X-Gm-Message-State: AJIora/cDKI8Oc3/P/Wn0iGhge8qkmGvi7SjekSZihIAnSKCMDCnW4cf FnQXoScD88Q0J3qeFWHA8b7J6lPLEG/rPQlS X-Google-Smtp-Source: AGRyM1uc1TCZaUCTPxJNuoTMz24bQJ6QxlFKv2+UWwUbs/W9BMQSqkNb4yBqZmpscFJIO0ocCcgxhQ== X-Received: by 2002:a05:6830:a92:b0:614:b84c:4db7 with SMTP id n18-20020a0568300a9200b00614b84c4db7mr1395398otu.190.1655901024274; Wed, 22 Jun 2022 05:30:24 -0700 (PDT) Received: from smtpclient.apple ([2804:431:c7ca:6d95:c8b8:d3db:a84b:32db]) by smtp.gmail.com with ESMTPSA id c7-20020a056871034700b000f33804cea9sm10651669oag.36.2022.06.22.05.30.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Jun 2022 05:30:24 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.100.31\)) Subject: Re: [PATCH v5 1/8] linux: Add fsopen From: Adhemerval Zanella In-Reply-To: <37b848c8-0d78-948d-0fa7-1cee99665a31@redhat.com> Date: Wed, 22 Jun 2022 09:30:21 -0300 Cc: libc-alpha@sourceware.org Content-Transfer-Encoding: quoted-printable Message-Id: <32762E3B-9404-467B-8BBC-7AC3AB060898@linaro.org> References: <20220606134432.1944534-1-adhemerval.zanella@linaro.org> <20220606134432.1944534-2-adhemerval.zanella@linaro.org> <37b848c8-0d78-948d-0fa7-1cee99665a31@redhat.com> To: Carlos O'Donell X-Mailer: Apple Mail (2.3696.100.31) X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Jun 2022 12:30:29 -0000 > On 17 Jun 2022, at 18:28, Carlos O'Donell wrote: >=20 > On 6/6/22 09:44, Adhemerval Zanella wrote: >> It was added on Linux 5.2 (24dcb3d90a1f67fe08c68a004af37df059d74005) >> to start the process of preparing to create a superblock that will >> then be mountable, using an fd as a context handle. >=20 > Looking forward to v6. See comments below. >=20 >> --- >> NEWS | 4 ++ >> sysdeps/unix/sysv/linux/Makefile | 8 +++ >> sysdeps/unix/sysv/linux/Versions | 1 + >> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/arc/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/csky/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + >> .../sysv/linux/m68k/coldfire/libc.abilist | 1 + >> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + >> .../sysv/linux/microblaze/be/libc.abilist | 1 + >> .../sysv/linux/microblaze/le/libc.abilist | 1 + >> .../sysv/linux/mips/mips32/fpu/libc.abilist | 1 + >> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + >> .../sysv/linux/mips/mips64/n32/libc.abilist | 1 + >> .../sysv/linux/mips/mips64/n64/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/or1k/libc.abilist | 1 + >> .../linux/powerpc/powerpc32/fpu/libc.abilist | 1 + >> .../powerpc/powerpc32/nofpu/libc.abilist | 1 + >> .../linux/powerpc/powerpc64/be/libc.abilist | 1 + >> .../linux/powerpc/powerpc64/le/libc.abilist | 1 + >> .../unix/sysv/linux/riscv/rv32/libc.abilist | 1 + >> .../unix/sysv/linux/riscv/rv64/libc.abilist | 1 + >> .../unix/sysv/linux/s390/s390-32/libc.abilist | 1 + >> .../unix/sysv/linux/s390/s390-64/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 + >> .../sysv/linux/sparc/sparc32/libc.abilist | 1 + >> .../sysv/linux/sparc/sparc64/libc.abilist | 1 + >> sysdeps/unix/sysv/linux/sys/mount.h | 8 +++ >> sysdeps/unix/sysv/linux/syscalls.list | 1 + >> sysdeps/unix/sysv/linux/tst-mount-consts.py | 53 +++++++++++++++++++ >> .../unix/sysv/linux/x86_64/64/libc.abilist | 1 + >> .../unix/sysv/linux/x86_64/x32/libc.abilist | 1 + >> 39 files changed, 108 insertions(+) >> create mode 100755 sysdeps/unix/sysv/linux/tst-mount-consts.py >>=20 >> diff --git a/NEWS b/NEWS >> index 6a213775e6..a94e8c0124 100644 >> --- a/NEWS >> +++ b/NEWS >> @@ -29,6 +29,10 @@ Major new features: >> memory is carried out in the context of the caller, using the = caller's >> CPU affinity, and priority with CPU usage accounted to the caller. >>=20 >> +* On Linux, the fsopen has been added. It is a new mount API to = allow >> + more flexibility on mount operations, specially when used along >> + namespaces. >=20 > Suggest: >=20 > * On Linux, the fsopen function has been added. It is part of the new = Linux kernel > mount APIs that allow applications to more flexibly configure and = operate on > filesystem mounts. The new mount APIs are specifically designed to = work with > namespaces. Ack. >=20 >> + >> Deprecated and removed features, and other changes affecting = compatibility: >>=20 >> * Support for prelink will be removed in the next release; this = includes >> diff --git a/sysdeps/unix/sysv/linux/Makefile = b/sysdeps/unix/sysv/linux/Makefile >> index 9e691fa103..7ffcf7ed83 100644 >> --- a/sysdeps/unix/sysv/linux/Makefile >> +++ b/sysdeps/unix/sysv/linux/Makefile >> @@ -256,6 +256,14 @@ $(objpfx)tst-pidfd-consts.out: = ../sysdeps/unix/sysv/linux/tst-pidfd-consts.py >> < /dev/null > $@ 2>&1; $(evaluate-test) >> $(objpfx)tst-pidfd-consts.out: $(sysdeps-linux-python-deps) >>=20 >> +tests-special +=3D $(objpfx)tst-mount-consts.out >> +$(objpfx)tst-mount-consts.out: = ../sysdeps/unix/sysv/linux/tst-mount-consts.py >> + $(sysdeps-linux-python) \ >> + ../sysdeps/unix/sysv/linux/tst-mount-consts.py \ >> + $(sysdeps-linux-python-cc) \ >> + < /dev/null > $@ 2>&1; $(evaluate-test) >> +$(objpfx)tst-mount-consts.out: $(sysdeps-linux-python-deps) >=20 > OK. >=20 >> + >> tst-rseq-disable-ENV =3D GLIBC_TUNABLES=3Dglibc.pthread.rseq=3D0 >>=20 >> endif # $(subdir) =3D=3D misc >> diff --git a/sysdeps/unix/sysv/linux/Versions = b/sysdeps/unix/sysv/linux/Versions >> index 66a995d3dc..9ff750ac09 100644 >> --- a/sysdeps/unix/sysv/linux/Versions >> +++ b/sysdeps/unix/sysv/linux/Versions >> @@ -300,6 +300,7 @@ libc { >> epoll_pwait2; >> } >> GLIBC_2.36 { >> + fsopen; >=20 > OK. >=20 >> pidfd_open; >> pidfd_getfd; >> pidfd_send_signal; >> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist = b/sysdeps/unix/sysv/linux/aarch64/libc.abilist >> index 027a1cf531..dedb69abda 100644 >> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist >> @@ -2616,6 +2616,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist = b/sysdeps/unix/sysv/linux/alpha/libc.abilist >> index 703fcf5deb..67c7c43190 100644 >> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist >> @@ -2713,6 +2713,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist = b/sysdeps/unix/sysv/linux/arc/libc.abilist >> index 28c52dcbac..6b478b9461 100644 >> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist >> @@ -2377,6 +2377,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist = b/sysdeps/unix/sysv/linux/arm/be/libc.abilist >> index c3adade814..45af999b89 100644 >> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist >> @@ -496,6 +496,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist = b/sysdeps/unix/sysv/linux/arm/le/libc.abilist >> index 33a90a248e..5abdfbd677 100644 >> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist >> @@ -493,6 +493,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist = b/sysdeps/unix/sysv/linux/csky/libc.abilist >> index 23a00cfc0b..1b560da21f 100644 >> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist >> @@ -2652,6 +2652,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist = b/sysdeps/unix/sysv/linux/hppa/libc.abilist >> index 93e1068208..09397be929 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist >> @@ -2601,6 +2601,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist = b/sysdeps/unix/sysv/linux/i386/libc.abilist >> index 356b05cae4..a3b95efa36 100644 >> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist >> @@ -2785,6 +2785,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist = b/sysdeps/unix/sysv/linux/ia64/libc.abilist >> index 58e51aae4b..840aa669e5 100644 >> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist >> @@ -2551,6 +2551,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist = b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist >> index ea4a19cbc2..8901429800 100644 >> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist >> @@ -497,6 +497,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist = b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist >> index 217717859c..5d3ccb254f 100644 >> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist >> @@ -2728,6 +2728,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist = b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist >> index 0e373d5c89..651d7e65f8 100644 >> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist >> @@ -2701,6 +2701,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist = b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist >> index 569d3e5556..c507fbd83b 100644 >> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist >> @@ -2698,6 +2698,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist >> index 7ccc7f93eb..eef92ef698 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist >> @@ -2693,6 +2693,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist >> index d197f0bd5d..92634e2910 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist >> @@ -2691,6 +2691,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist >> index 4a8e857e53..5a6a1b8bcd 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist >> @@ -2699,6 +2699,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist >> index e0a170c030..0fdf5ff93b 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist >> @@ -2602,6 +2602,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist = b/sysdeps/unix/sysv/linux/nios2/libc.abilist >> index 6f809245c9..e219863360 100644 >> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist >> @@ -2740,6 +2740,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist = b/sysdeps/unix/sysv/linux/or1k/libc.abilist >> index 1fc9e27c27..8fef5e2ab8 100644 >> --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist >> @@ -2123,6 +2123,7 @@ GLIBC_2.35 wprintf F >> GLIBC_2.35 write F >> GLIBC_2.35 writev F >> GLIBC_2.35 wscanf F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist >> index 01ba1dd9ec..d8a5c77db1 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist >> @@ -2755,6 +2755,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist >> index 263231a396..18cb35378d 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist >> @@ -2788,6 +2788,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist >> index 2c3c3af8fb..e144bb4167 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist >> @@ -2510,6 +2510,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist >> index 4138874b38..1f283236cd 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist >> @@ -2812,6 +2812,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist = b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist >> index 5feae3245f..f76f47d017 100644 >> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist >> @@ -2379,6 +2379,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist = b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist >> index 3e6a4ae5ec..93517ae3d6 100644 >> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist >> @@ -2579,6 +2579,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist = b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist >> index 93c7b79b51..4d2c9ed035 100644 >> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist >> @@ -2753,6 +2753,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist = b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist >> index b663fabeba..71bb7af685 100644 >> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist >> @@ -2547,6 +2547,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist = b/sysdeps/unix/sysv/linux/sh/be/libc.abilist >> index abebf77944..a040860010 100644 >> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist >> @@ -2608,6 +2608,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist = b/sysdeps/unix/sysv/linux/sh/le/libc.abilist >> index afd8a42895..10b7fa3560 100644 >> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist >> @@ -2605,6 +2605,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist = b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist >> index 56feda817d..e859089b64 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist >> @@ -2748,6 +2748,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist = b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist >> index 00cc5b24d1..4347e399d6 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist >> @@ -2574,6 +2574,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/sys/mount.h = b/sysdeps/unix/sysv/linux/sys/mount.h >> index 174b5c7763..56da283d3f 100644 >> --- a/sysdeps/unix/sysv/linux/sys/mount.h >> +++ b/sysdeps/unix/sysv/linux/sys/mount.h >> @@ -134,6 +134,10 @@ enum >> }; >>=20 >>=20 >> +/* fsopen flags. */ >> +#define FSOPEN_CLOEXEC 0x00000001 >=20 > OK. Expecting FSOPEN_CLOEXEC and it is present. The flag does what we = expect because something > has to close the fd that is attached to the mount context. Verified = FSOPEN_CLOEXEC is the only > flag bit we current have for fsopen(). Value matches kernel. >=20 >> + >> + >> __BEGIN_DECLS >>=20 >> /* Mount a filesystem. */ >> @@ -147,6 +151,10 @@ extern int umount (const char *__special_file) = __THROW; >> /* Unmount a filesystem. Force unmounting if FLAGS is set to = MNT_FORCE. */ >> extern int umount2 (const char *__special_file, int __flags) __THROW; >>=20 >> +/* Open the filesystem referenced by FS_NAME so it can be configured = for >> + mouting. */ >> +extern int fsopen (const char *__fs_name, unsigned int __flags) = __THROW; >=20 > OK const char *, and unsigned int, agrees with the kernel, and = SYSCALL_DEFINE2 macro. >=20 >> + >> __END_DECLS >>=20 >> #endif /* _SYS_MOUNT_H */ >> diff --git a/sysdeps/unix/sysv/linux/syscalls.list = b/sysdeps/unix/sysv/linux/syscalls.list >> index b12a0d56fa..a2919f433d 100644 >> --- a/sysdeps/unix/sysv/linux/syscalls.list >> +++ b/sysdeps/unix/sysv/linux/syscalls.list >> @@ -12,6 +12,7 @@ epoll_ctl EXTRA epoll_ctl i:iiip = epoll_ctl >> eventfd EXTRA eventfd2 i:ii eventfd >> execve - execve i:spp __execve = execve >> flock - flock i:ii __flock = flock >> +fsopen EXTRA fsopen i:sU fsopen >=20 > OK. Add wrapper. Returns int. Takes non-NULL string e.g. first arg to = open. Unsigned long int [OK]. >=20 >> get_kernel_syms EXTRA get_kernel_syms i:p = __compat_get_kernel_syms get_kernel_syms@GLIBC_2.0:GLIBC_2.23 >> getpid - getpid Ei: __getpid getpid >> getegid - getegid Ei: __getegid = getegid >> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py = b/sysdeps/unix/sysv/linux/tst-mount-consts.py >> new file mode 100755 >> index 0000000000..162b01147d >> --- /dev/null >> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py >> @@ -0,0 +1,53 @@ >> +#!/usr/bin/python3 >> +# Test that glibc's sys/mount.h constants match the kernel's. >> +# Copyright (C) 2022 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 >> +# . >> + >> +import argparse >> +import sys >> + >> +import glibcextract >> +import glibcsyscalls >> + >> + >> +def main(): >> + """The main entry point.""" >> + parser =3D argparse.ArgumentParser( >> + description=3D"Test that glibc's sys/mount.h constants " >> + "match the kernel's.") >> + parser.add_argument('--cc', metavar=3D'CC', >> + help=3D'C compiler (including options) to use') >> + args =3D parser.parse_args() >> + >> + linux_version_headers =3D = glibcsyscalls.linux_kernel_version(args.cc) >=20 > I think this needs a comment: >=20 > # Constants in glibc were updated to match Linux v5.16 > # When glibc constants are updated this value should be updated to > # match the released kernel version from which the constants were = taken. Ack. >=20 >> + linux_version_glibc =3D (5, 16) >=20 > Then this allows you to drive the allow_extra_[12] boiler-plate = checking below. >=20 >> + def check(cte, exclude=3DNone): >> + return glibcextract.compare_macro_consts( >> + '#include \n', >> + '#include \n' >> + '#include \n', >> + args.cc, >> + cte, >> + exclude, >> + linux_version_glibc > linux_version_headers, >> + linux_version_headers > linux_version_glibc) >> + >> + status =3D check('FSOPEN_.*') >> + sys.exit(status) >> + >> +if __name__ =3D=3D '__main__': >> + main() >> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist = b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist >> index 4e729bdf56..65e5d2150d 100644 >> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist >> @@ -2525,6 +2525,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist = b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist >> index b5d7b9f1ed..4c6371b3c4 100644 >> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist >> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist >> @@ -2631,6 +2631,7 @@ GLIBC_2.35 __memcmpeq F >> GLIBC_2.35 _dl_find_object F >> GLIBC_2.35 epoll_pwait2 F >> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F >> +GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> GLIBC_2.36 pidfd_send_signal F >=20 >=20 > --=20 > Cheers, > Carlos.