V4: Based on Martin's feedback, I reworked this and split the commit into two pieces.
V3: (not previously sent to the list) renamed 'dri_' to 'driver_' as we already had some confusion that these were 'direct rendering interface' drivers and how were they in networking.. :P --Mark On 11/20/15 11:32 AM, Mark Hatle wrote: > From: Jackie Huang <[email protected]> > > The driver builds are optional, but for deterministic builds, > we should should be able to explicitly enable/disable the > builds for them in a proper place (maybe in BSP). > > We use PACKAGECONFIG for listing enabled drivers but can't use > it's arguments since there is no option for each driver, and > the options for drivers are: > --no-drivers do not compile any driver > --no-drivers= do not compile the given drivers (comma sep.) > --drivers= only compile the given drivers (comma sep.) > > So add additional logic to add proper configs to EXTRA_OECONF > > Signed-off-by: Jackie Huang <[email protected]> > Signed-off-by: Mark Hatle <[email protected]> > --- > .../recipes-kernel/netmap/netmap-modules_git.bb | 48 > +++++++++++++++++++++- > 1 file changed, 47 insertions(+), 1 deletion(-) > > diff --git a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb > b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb > index 7405d51..c4f54e9 100644 > --- a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb > +++ b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb > @@ -20,7 +20,53 @@ EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \ > --driver-suffix="-netmap" \ > " > > -EXTRA_OECONF += "--no-drivers=ixgbe,virtio_net.c" > +# The driver builds are optional, but for deterministic builds, > +# we should be able to explicitly enable/disable the builds > +# for them in a proper place (maybe in BSP). > +# We use PACKAGECONFIG for listing enabled drivers but can't use > +# it's arguments since there is no option for each driver, and > +# the options for drivers are: > +# --no-drivers do not compile any driver > +# --no-drivers= do not compile the given drivers (comma sep.) > +# --drivers= only compile the given drivers (comma sep.) > +# > +# So use the following python code to add proper configs to > +# EXTRA_OECONF and skip arch test for kernel modules. > +# > +# The default is no-drivers, and all supported drivers are listed > +# as PACKAGECONFIG flags. > +PACKAGECONFIG ??= "" > + > +# List all supported drivers, get from "./configure --show-drivers", > +# Add "driver_" prefix for easy distinguishing from other configure > +# options. > +PACKAGECONFIG[driver_ixgbe] = ",,," > +PACKAGECONFIG[driver_igb] = ",,," > +PACKAGECONFIG[driver_e1000e] = ",,," > +PACKAGECONFIG[driver_e1000] = ",,," > +PACKAGECONFIG[driver_veth.c] = ",,," > +PACKAGECONFIG[driver_forcedeth.c] = ",,," > +PACKAGECONFIG[driver_virtio_net.c] = ",,," > +PACKAGECONFIG[driver_r8169.c] = ",,," > + > +python __anonymous () { > + pkgconfigs = d.getVar("PACKAGECONFIG", True).split() > + pkgconfigflags = d.getVarFlags("PACKAGECONFIG").keys() > + > + # This is needed since there may be non-driver flags in PACKAGECONFIG > + all_drivers_list = [] > + for f in pkgconfigflags: > + if f.startswith('driver_'): > + all_drivers_list.append(f) > + drivers_list = [] > + for i in pkgconfigs: > + if i in all_drivers_list: > + drivers_list.append(i[len('driver_'):]) > + > + config_drivers = "--drivers=" + ",".join(drivers_list) > + extra_oeconf_drivers = bb.utils.contains_any('PACKAGECONFIG', > all_drivers_list, config_drivers, '--no-drivers', d) > + d.appendVar("EXTRA_OECONF", extra_oeconf_drivers) > +} > > LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}" > LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}" > -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
