Re: Disabling COMPAT_FREEBSD4/5/6/7/9 in default kernel configurations

From: Alexander Leidinger <Alexander_at_Leidinger.net>
Date: Sat, 11 May 2024 08:39:22 UTC
Am 2024-05-11 07:17, schrieb Milan Obuch:
> On Sat, 11 May 2024 01:38:38 +0200 (CEST)
> henrichhartzer@tuta.io wrote:
> 
>> Hi everyone,
>> 
>> Warner suggested that I run this by the list. In 2018, a bug report
>> was made for disabling COMPAT_FREEBSD4/5/6/7/9 (there's no 8). 6
>> years later, I imagine this would be as good of a time as any to do
>> this if there's no obvious problems doing so.
>> 
>> Here's the bug report:
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231768
>> 
>> And a pull request in the spirit of the original patch:
>> https://github.com/freebsd/freebsd-src/pull/1228
>> 
>> I imagine if this sounds like a good idea, it would land in 15.0.
>> Users could always recompile kernels with the old ABI functionality
>> as needed. I feel like we're all a little curious if anything still
>> uses this, and making this kind of change is probably the best way to
>> find out.
>> 
>> In my opinion, if all goes well, it may be wise to remove the old
>> code in the next major version. Could do the full list, or just
>> FreeBSD 4 and 5 compatibility, for instance. Barring notable negative
>> feedback, of course.
>> 
>> There were some concerns about Rust, but it sounds like it uses (or
>> used?) FreeBSD 10.X features, which this patch does not remove. On
>> that topic: https://github.com/rust-lang/rust/issues/89058
>> 
> 
> In general I think it is good move. In my kernel builds I am trying to
> use minimal set of features (options, devices) and use loadable modules
> whenever possible.
> 
> I used to remove all COMPAT_FREEBSDn options, now I am keeping 11 and
> up - in my notes rust is being listed, but I think some jdk (or needed
> bootstrap) required some compatibility, too.
> 
> Idea of COMPAT_FREEBSDn being converted into loadable module mentioned
> in some reply is nice, I don't know much in this area to have anything
> more competent to say.

We're proud of our backwards compatibility. I remember that a committer 
reported proudly that they are able to run FreeBSD 1.0 in a jail (even 
if it was just for fun and not for productive stuff), and the generic 
feedback was in favour of this.

Simply removing this compatibility seems a step backwards in this regard 
IMO. If COMPAT* is loadable, I would directly agree to remove the 
support from the GENERIC kernel, but without being able to load this 
kind of support, people are not able to simply update a system and maybe 
have some old unmaintained legacy software in an old jail.

Note, all my custom kernels only have those COMPAT options which are 
needed (rust, ...), so I'm in favour of having generic without them, but 
I do not depend on using the binary kernel which we ship, others might 
(for whatever non-technical reason).

Bye,
Alexander.

-- 
http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org    netchild@FreeBSD.org  : PGP 0x8F31830F9F2772BF