Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Jun 2009 20:33:10 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        FreeBSD current mailing list <freebsd-current@freebsd.org>
Cc:        FreeBSD net mailing list <freebsd-net@freebsd.org>, src-committers@freebsd.org
Subject:   HEADS UP: INET dependencies in the kernel
Message-ID:  <20090611180438.G22887@maildrop.int.zabbadoz.net>

next in thread | raw e-mail | index | archive | help
Hi,

over the last days I fixed a few places missing #ifdef INET  as well
changed the kernel build file in sys/conf/files and added depencies
for those parts that really require INET to compile / work at the
moment.

WARNING:
--------------------------------
This means for example if you build a kernel without INET you will no
longer get gre, ipfw, libablias, ipsec, if_enc, if_bridge, nfsserver, ..
Those will _silently_ be disabled whether or not they are in your
kernel configuration.

WARNING:
--------------------------------
You will also not get any of the 12 interfaces I found that had a
compile time dependency on INET (if you remove INET from your kernel
config):  if_age, if_alc, if_ale, if_em, if_igb, if_fxp, if_ixgbe,
if_jme, if_msk, if_mxge, if_sk, if_txp.  I will send out an extra mail
with more information on each interface and how to fix later in a
second.  (The same may apply to some other code).

See r193824, r193949-193950, 193954, 193956-193957, 193960, 193983,
193986-193988, 193990-193991, 193993-193994, 193996-193997 of
sys/conf/files for what was changed and if you are looking for a
network project to cleanup a bit of our stack.

For now I didn't see much of a problem here, as virtually noone so far
would have built a kernel without INET support and still wanted
networking as it just hadn't (easily) been possible.

Obviously people may be concerned that those things will rot and
warn others with #error anymore and that other people will one day
trip over this.  Unless hit by a bus I do not intend to drop this
ball but will work (together with you!) to clean things up, resolve
them, etc.

For now the goal was to actually see how much of impure code we have
and clean things basically up before 8.0.
Now do not expect that I caught all and everything. We are far away
from that.  The long term goal is to separate INET6 off INET.

So in addition to a kernel config like:

----------------------------------------
include         LINT
ident           LINT-NOINET6

nooptions       INET6
----------------------------------------

FreeBSD 8 LINT currently also builds a kernel with:

----------------------------------------
include         LINT
ident           LINT-NOINET

makeoptions     NO_MODULES=yes

nooptions       INET
nooptions       INET6
----------------------------------------

Note: LINT will not boot!

In case of arm I include AVILA, in case of mips I used ADM5120
instead of LINT (as arm and mips do not have LINT).


HINT FOR DEVELOPERS:
--------------------------------
For developers this means that if you add new code you really should
make sure that INET in addition to INET6 will be properly #ifdefed.

KIND OF HEADS UP FOR DEVLEOPERS:
--------------------------------
This is kind of a heads up that from the time 8 will be branched off
and HEAD will be 9 all new code should
1) have feature parity for INET and INET6 where applicable
2) new/changed code that only has #ifdef INET6 but no #ifdef INET
    (where applicable) should no longer be done.
3) No it's not April 1st today;-)


Regards,
Bjoern

-- 
Bjoern A. Zeeb                      The greatest risk is not taking one.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090611180438.G22887>