Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Feb 2019 01:39:51 +0000
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        "Rick Macklem" <rmacklem@uoguelph.ca>
Cc:        "FreeBSD Net" <freebsd-net@freebsd.org>, rgrimes@freebsd.org
Subject:   Re: use of #ifdef INET and #ifdef INET6 in the kernel sources
Message-ID:  <8EDE90B3-0C33-47B5-88D8-964B131AEE2E@FreeBSD.org>
In-Reply-To: <QB1PR01MB353721C2A0CA0E38C7A8571EDD750@QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM>
References:  <QB1PR01MB353721C2A0CA0E38C7A8571EDD750@QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28 Feb 2019, at 1:11, Rick Macklem wrote:

> I thought (can't remember when/how I was told) that it was no longer
> recommended to add
> #ifdef INET
> or
> #ifdef INET6
> to the kernel sources.

Not sure who said this.

> I'll admit I think #ifdef'ng code when it isn't necessary to get it to 
> build makes the
> code less readable and, as such, I prefer not to do this.

We all agree on this.


> So, is this still recommended for blocks of code that only execute for 
> the version
> of IP, but will build for kernels that do not have the particular 
> "options INET{6}"
> in the kernel config?

Yes.


> If it is still recommended, I will do it, but I'll admit I don't 
> understand why it should
> be done? (All it does is reduce the size of the executable by a small 
> amount and
> that doesn't seem significant to me.)

That small amount is still relevant on some devices where people go to 
great lengths to fit our constantly growing base into a tiny small 
thingy.

And it allows you to lose code from your kernel that you don’t 
need/want, such as if you’d want to rip out all INET sources from a 
tree.

I know both of these groups still do exist.

Also every code not compiled in is not an attack surface, where you 
think it’s executed or not.

/bz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8EDE90B3-0C33-47B5-88D8-964B131AEE2E>