Who says the only thing written out there that's old and would want a
list of interfaces and interface configs via some legacy old ioctl API
is ifconfig?



-adrian

On 5 November 2013 11:29, Gleb Smirnoff <gleb...@freebsd.org> wrote:
> On Tue, Nov 05, 2013 at 11:56:09AM -0500, John Baldwin wrote:
> J> On Tuesday, November 05, 2013 5:29:48 am Gleb Smirnoff wrote:
> J> > Author: glebius
> J> > Date: Tue Nov  5 10:29:47 2013
> J> > New Revision: 257696
> J> > URL: http://svnweb.freebsd.org/changeset/base/257696
> J> >
> J> > Log:
> J> >   Drop support for historic ioctls and also undefine them, so that code
> J> >   that checks their presence via ifdef, won't use them.
> J>
> J> Most of these are COMPAT_43, but one appears to be a 9.x ioctl?  If that's 
> the
> J> case it's implementation should probably stick around under appropriate
> J> COMPAT_FREEBSD<x> macros.  It looks like it goes all the way back to 
> 4.4BSD,
> J> so at least COMPAT_FREEBSD4 and later should define the implementation to
> J> preserve ABI compat for old binaries.
>
> Why should we support such broken configurations as running new kernel and
> ancient core base system utilities? The efforts to keep this are much more
> expensive, then yields.
>
> The only reason I see is to keep compat for the previous major version, since
> we guarantee only consequtive upgrades to a next major. If something goes
> wrong during upgrade a sysadmin can use old tools with new kernel. I agree on
> that, and when changing SIOCAIFADDR two years ago, I provided compatibility.
>
> But why the hell should we support an insane who will try to run ifconfig(8)
> from FreeBSD 4 on FreeBSD 11? Not speaking about this tool from 4.4BSD, LOL :)
> This is not what COMPAT_FREEBSD4 meant to be.
>
> If we claim to support that, then we must have an extensive set of unit tests,
> and every time we produce a release, we must ensure that the kernel is still
> compatible with ancient ifconfig(8), mount(8) and a dozen of oether tools.
> We don't do this, and I'm pretty sure that if we try, the unit tests will fail
> here and there. And to fix them, an enourmous efforts need to be made. And
> for what sake? For a very strange idea to run ancient *config or *ctl on
> modern kernel.
>
>
> I vote with both hands on keeping compatibility at generic syscalls layer, so
> that closed source, 3rd party, binary applications could run on newer systems.
> But not for the core system utilities, that configure our kernel and are 
> shipped
> in the base system.
>
>
> Leaving all this compat cruft bloats the code, makes it difficult to 
> understand.
> It weakens constraints on the input from userland. For example in 9.x ifconfig
> didn't fill in sockaddr structure correctly. Compat code even can bring 
> security
> issues. If I was agressive enough 2 years ago to wipe SIOCSIFADDR entirely, 
> then
> SA-13:12.ifioctl would not be applicable to 10.x and 11.x.
>
> --
> Totus tuus, Glebius.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to