Page MenuHomeFreeBSD

Bump Linux version to 3.2.0
ClosedPublic

Authored by trasz on Jun 25 2019, 2:42 PM.

Details

Summary

Bump Linux version to 3.2.0. Without it, binaries linked against glibc 2.24 and up (eg Ubuntu 19.04) fail with "FATAL: kernel too old".

This alone is not enough to make newer binaries actually work, fix/hack/workaround is pending review at https://reviews.freebsd.org/D20687.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

emaste added a subscriber: emaste.

Do we have a list of syscalls/interfaces by kernel version anywhere?

But either way I think this is fine, we certainly have some functionality from kernels after 2.6.32 and many binaries which require that functionality do work.

This revision is now accepted and ready to land.Jun 25 2019, 2:53 PM

LGTM once dependencies are resolved, of course.

Do we have a list of syscalls/interfaces by kernel version anywhere?

http://man7.org/linux/man-pages/man2/syscalls.2.html.

But either way I think this is fine, we certainly have some functionality from kernels after 2.6.32 and many binaries which require that functionality do work.

Yup. I've only tested with the basesystem for now, though. On the other hand, some programs (like strace) "probe" syscalls instead of trying to guess whether they are supported based on kernel version.

I see the following after 2.6.32 and up to and including 3.2, with uninteresting ports (e.g. m68k) excluded:

       recvmmsg(2)                2.6.33
       prlimit64(2)               2.6.36
       fanotify_init(2)           2.6.37
       fanotify_mark(2)           2.6.37
       clock_adjtime(2)           2.6.39
       name_to_handle_at(2)       2.6.39
       open_by_handle_at(2)       2.6.39
       syncfs(2)                  2.6.39

3.0+

       sendmmsg(2)                3.0
       setns(2)                   3.0
       process_vm_readv(2)        3.2
       process_vm_writev(2)       3.2

I see the following after 2.6.32 and up to and including 3.2, with uninteresting ports (e.g. m68k) excluded:

recvmmsg(2)                2.6.33
prlimit64(2)               2.6.36

We have those.

fanotify_init(2)           2.6.37
fanotify_mark(2)           2.6.37
clock_adjtime(2)           2.6.39
name_to_handle_at(2)       2.6.39
open_by_handle_at(2)       2.6.39
syncfs(2)                  2.6.39

We have neither of those. Not sure about the impact, though. The fanotify stuff looks like some kind of audit API. Clock adjustment from inside the VM doesn't look like something that useful.

3.0+

sendmmsg(2)                3.0

Implemented.

setns(2)                   3.0
process_vm_readv(2)        3.2
process_vm_writev(2)       3.2

Not there. I'd expect the impact to be none - we lack namespaces altogether.

prlimit64(2)               2.6.36

We have those.

What do you think about bumping this to 2.6.36 for now?

And, FWIW, glibc doesn't seem to have any kind of fanotify fallback.

fanotify_init(2)           2.6.37
fanotify_mark(2)           2.6.37

http://man7.org/linux/man-pages/man7/fanotify.7.html
Another interface similar to inotify, and in the broad theme of interfaces we need to add to FreeBSD.

clock_adjtime(2)           2.6.39

Clock adjustment from inside the VM doesn't look like something that useful.

Ideally we'd be able to support it to e.g. run Linux management tools if the user so desired, but agreed it's a low priority.

name_to_handle_at(2)       2.6.39
open_by_handle_at(2)       2.6.39

https://lwn.net/Articles/375888/
https://codesearch.debian.net/search?q=open_by_handle_at

I think we can do without these.

syncfs(2)                  2.6.39

Sync filesystem containing given fd, but probably just map to sync(2).

3.0+

sendmmsg(2)                3.0

Implemented.

setns(2)                   3.0

Not there. I'd expect the impact to be none - we lack namespaces altogether.

Yep, part of a much larger/future project.

process_vm_readv(2)        3.2
process_vm_writev(2)       3.2

http://man7.org/linux/man-pages/man2/process_vm_readv.2.html
Interesting.

This revision now requires review to proceed.Sep 2 2019, 6:06 PM
This revision was not accepted when it landed; it landed in state Needs Review.Sep 2 2019, 6:10 PM
This revision was automatically updated to reflect the committed changes.