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.

_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to