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', '')}" -- 1.9.3 -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
