linux: Make tst-mount-consts unsupported for kernels headers older than 5.0
Checks
Commit Message
The linux/mount.h is only provided by Linux 5.0.
Checked on x86_64-linux-gnu.
---
sysdeps/unix/sysv/linux/tst-mount-consts.py | 3 +++
1 file changed, 3 insertions(+)
Comments
* Adhemerval Zanella:
> The linux/mount.h is only provided by Linux 5.0.
>
> Checked on x86_64-linux-gnu.
> ---
> sysdeps/unix/sysv/linux/tst-mount-consts.py | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
> index 4fb356310b..0f5b982430 100755
> --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
> @@ -34,6 +34,9 @@ def main():
> args = parser.parse_args()
>
> linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
> + # Linux started to provide mount.h with 5.0.
> + if linux_version_headers < (5, 0):
> + sys.exit (77)
> # Constants in glibc were updated to match Linux v5.19. When glibc
> # constants are updated this value should be updated to match the
> # released kernel version from which the constants were taken.
Should this use compile_c_snippet from the other patch?
Thanks,
Florian
On 10/08/22 06:18, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>> The linux/mount.h is only provided by Linux 5.0.
>>
>> Checked on x86_64-linux-gnu.
>> ---
>> sysdeps/unix/sysv/linux/tst-mount-consts.py | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
>> index 4fb356310b..0f5b982430 100755
>> --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
>> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
>> @@ -34,6 +34,9 @@ def main():
>> args = parser.parse_args()
>>
>> linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
>> + # Linux started to provide mount.h with 5.0.
>> + if linux_version_headers < (5, 0):
>> + sys.exit (77)
>> # Constants in glibc were updated to match Linux v5.19. When glibc
>> # constants are updated this value should be updated to match the
>> # released kernel version from which the constants were taken.
>
> Should this use compile_c_snippet from the other patch?
It is strategy already used on tst-pidfd-consts.py. Not sure if syscalls
backport to old releases is that common (it seems that we recently had to
handle it for memfd_secret), but we do not usually take this in consideration
on the __ASSUME macros and optimizations.
* Adhemerval Zanella Netto:
> On 10/08/22 06:18, Florian Weimer wrote:
>> * Adhemerval Zanella:
>>
>>> The linux/mount.h is only provided by Linux 5.0.
>>>
>>> Checked on x86_64-linux-gnu.
>>> ---
>>> sysdeps/unix/sysv/linux/tst-mount-consts.py | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
>>> index 4fb356310b..0f5b982430 100755
>>> --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
>>> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
>>> @@ -34,6 +34,9 @@ def main():
>>> args = parser.parse_args()
>>>
>>> linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
>>> + # Linux started to provide mount.h with 5.0.
>>> + if linux_version_headers < (5, 0):
>>> + sys.exit (77)
>>> # Constants in glibc were updated to match Linux v5.19. When glibc
>>> # constants are updated this value should be updated to match the
>>> # released kernel version from which the constants were taken.
>>
>> Should this use compile_c_snippet from the other patch?
>
> It is strategy already used on tst-pidfd-consts.py. Not sure if syscalls
> backport to old releases is that common (it seems that we recently had to
> handle it for memfd_secret), but we do not usually take this in consideration
> on the __ASSUME macros and optimizations.
I think <linux/mount.h> has been backported fairly widely because it's
needed by userspace file servers.
On older kernels, you could perhaps use <linux/fs.h> instead.
Thanks,
Florian
@@ -34,6 +34,9 @@ def main():
args = parser.parse_args()
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
+ # Linux started to provide mount.h with 5.0.
+ if linux_version_headers < (5, 0):
+ sys.exit (77)
# Constants in glibc were updated to match Linux v5.19. When glibc
# constants are updated this value should be updated to match the
# released kernel version from which the constants were taken.