[ofa-general] ofed autoconf.h
Steve Wise
swise at opengridcomputing.com
Tue Apr 7 14:24:56 PDT 2009
I've been charged to resolve OFED bugs 1538 and 1578 dealing with
autoconf.h. I seek input from the OFA lists.
There are two issues:
Bug 1538) the ofed kernel configure script creates an autoconf.h file
that is intended to be included _after_ the backing kernel autoconf.h.
The ofed autoconf.h undefines the CONFIG defines for all the ofed
supplied modules, and then redefines the ones that are "turned on" by
the config options (setup via install.pl). This forces
non-ofed/non-kernel.org kernel modules that are trying to build their
rdma modules on top of ofed to include the backing kernel autoconf.h and
then the ofed autoconf.h. Bug 1538 requests that this be resolved
somehow so all the kernel module has to do is simply include
<linux/autoconf.h> and the ofed backport/includes will do the right
thing. Currently, this results in only the inclusion of the ofed
autoconf.h. It was suggested that we could add a "#include_next
<linux/autoconf.h>" to the ofed file and thus include both, but that
doesn't work because we need the backing kernel autoconf.h included
first, and then the ofed one.
Bug 1578) for ofed modules that are not configured in, the ofed
autoconf.h will #undef the CONFIG* defines for these modules. So, for
example, if you do not build in NFSRDMA with your ofed-1.4.1
installation, then all the CONFIG_ defines for NFS will be #undefed in
the ofed autoconf.h. If a kernel module then builds against this
autoconf.h, it will not have the NFS CONFIG defines set, even though the
backing kernel _does_ have these set. I think the idea originally was
that the backing kernel didn't have any of these ofed modules. But now
almost all of them are indeed in the upstream kernel. So should the
ofed install really be #undefining these?
A couple of questions:
1) do we think these should be resolved in ofed-1.4.1? Maybe we should
defer these to 1.5?
2) if we do want to fix them. any ideas on how best to handle this?
Here are my proposed solutions (dunno if they break anything)
1538: change the ofed configure script to create a fully-populated
autoconf.h that basically is a cat of the back kernel tree autoconf.h
and the current ofed autoconf.h. That way, modules will get everything
when they include the ofed autoconf.h.
1578: I propose we don't #undef any modules that are not configured into
the ofed build. Thus if you don't build in NFSRDMA for ofed, the status
of the NFS CONFIG* defines will be based on the backing kernel tree
autoconf.h instead of always being turned off.
Comments?
Thanks,
Steve.
More information about the general
mailing list