Re: [OE-core] [PATCH] module.bbclass: allow to override location of Module.symvers
On Mon, Nov 21, 2016 at 09:37:13AM +, André Draszik wrote: > From: André Draszik > > Requiring all build systems for external kernel modules to > place Module.symvers directly into ${B}/. is quite an > artificial assumption/requirement. It doesn't have to end > up there, but could easily end up somewhere below ${B}. > > Allow to override the location below ${B} > > Note that we still don't make use of multiple > Module.symvers in case there are any generated by one > single kernel module build, but this is no change in > behaviour from before and could be added if there really > is a demand for that. > > Reported-by: Denys Dmytriyenko > Signed-off-by: André Draszik Looks good to me, thanks. Acked-by: Denys Dmytriyenko > --- > meta/classes/module.bbclass | 16 > 1 file changed, 12 insertions(+), 4 deletions(-) [...] > - install -d -m0755 ${D}${includedir}/${BPN} > - cp -a --no-preserve=ownership ${B}/Module.symvers > ${D}${includedir}/${BPN} > - # it doesn't actually seem to matter which path is specified here > - sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers > + if [ ! -e "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; > then > + bbwarn "Module.symvers not found in > ${B}/${MODULES_MODULE_SYMVERS_LOCATION}" > + bbwarn "Please consider setting MODULES_MODULE_SYMVERS_LOCATION > to a" > + bbwarn "directory below B to get correct inter-module > dependencies" > + else > + install -Dm0644 > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers > ${D}${includedir}/${BPN}/Module.symvers BTW, is "-Dm0644" portable? > + # Module.symvers contains absolute path to the build directory. > + # While it doesn't actually seem to matter which path is > specified, > + # clear them out to avoid confusion > + sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers > + fi -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] module.bbclass: allow to override location of Module.symvers
On Tue, 2016-11-22 at 17:33 -0500, Denys Dmytriyenko wrote: > On Mon, Nov 21, 2016 at 09:37:13AM +, André Draszik wrote: > > + install -Dm0644 > > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers > > ${D}${includedir}/${BPN}/Module.symvers > > BTW, is "-Dm0644" portable? Not sure, I would expect busybox' install to support it. OTOH, FreeBSD install seems to have completely different parameters, in particular -D has different semantics. Cheers, Andre' -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] module.bbclass: allow to override location of Module.symvers
ping On Mon, 2016-11-21 at 09:37 +, André Draszik wrote: > From: André Draszik > > Requiring all build systems for external kernel modules to > place Module.symvers directly into ${B}/. is quite an > artificial assumption/requirement. It doesn't have to end > up there, but could easily end up somewhere below ${B}. > > Allow to override the location below ${B} > > Note that we still don't make use of multiple > Module.symvers in case there are any generated by one > single kernel module build, but this is no change in > behaviour from before and could be added if there really > is a demand for that. > > Reported-by: Denys Dmytriyenko > Signed-off-by: André Draszik > --- > meta/classes/module.bbclass | 16 > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass > index 68e3d34..037ca4f 100644 > --- a/meta/classes/module.bbclass > +++ b/meta/classes/module.bbclass > @@ -7,6 +7,7 @@ do_make_scripts[depends] += > "virtual/kernel:do_shared_workdir" > EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}" > > MODULES_INSTALL_TARGET ?= "modules_install" > +MODULES_MODULE_SYMVERS_LOCATION ?= "" > > python __anonymous () { > depends = d.getVar('DEPENDS', True) > @@ -35,10 +36,17 @@ module_do_install() { > O=${STAGING_KERNEL_BUILDDIR} \ > ${MODULES_INSTALL_TARGET} > > - install -d -m0755 ${D}${includedir}/${BPN} > - cp -a --no-preserve=ownership ${B}/Module.symvers > ${D}${includedir}/${BPN} > - # it doesn't actually seem to matter which path is specified here > - sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers > + if [ ! -e > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; then > + bbwarn "Module.symvers not found in > ${B}/${MODULES_MODULE_SYMVERS_LOCATION}" > + bbwarn "Please consider setting > MODULES_MODULE_SYMVERS_LOCATION to a" > + bbwarn "directory below B to get correct inter-module > dependencies" > + else > + install -Dm0644 > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers > ${D}${includedir}/${BPN}/Module.symvers > + # Module.symvers contains absolute path to the build > directory. > + # While it doesn't actually seem to matter which path is > specified, > + # clear them out to avoid confusion > + sed -e 's:${B}/::g' -i > ${D}${includedir}/${BPN}/Module.symvers > + fi > } > > EXPORT_FUNCTIONS do_compile do_install -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] module.bbclass: allow to override location of Module.symvers
ping On Mon, 2016-11-21 at 09:37 +, André Draszik wrote: > From: André Draszik > > Requiring all build systems for external kernel modules to > place Module.symvers directly into ${B}/. is quite an > artificial assumption/requirement. It doesn't have to end > up there, but could easily end up somewhere below ${B}. > > Allow to override the location below ${B} > > Note that we still don't make use of multiple > Module.symvers in case there are any generated by one > single kernel module build, but this is no change in > behaviour from before and could be added if there really > is a demand for that. > > Reported-by: Denys Dmytriyenko > Signed-off-by: André Draszik > --- > meta/classes/module.bbclass | 16 > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass > index 68e3d34..037ca4f 100644 > --- a/meta/classes/module.bbclass > +++ b/meta/classes/module.bbclass > @@ -7,6 +7,7 @@ do_make_scripts[depends] += > "virtual/kernel:do_shared_workdir" > EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}" > > MODULES_INSTALL_TARGET ?= "modules_install" > +MODULES_MODULE_SYMVERS_LOCATION ?= "" > > python __anonymous () { > depends = d.getVar('DEPENDS', True) > @@ -35,10 +36,17 @@ module_do_install() { > O=${STAGING_KERNEL_BUILDDIR} \ > ${MODULES_INSTALL_TARGET} > > - install -d -m0755 ${D}${includedir}/${BPN} > - cp -a --no-preserve=ownership ${B}/Module.symvers > ${D}${includedir}/${BPN} > - # it doesn't actually seem to matter which path is specified here > - sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers > + if [ ! -e > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; then > + bbwarn "Module.symvers not found in > ${B}/${MODULES_MODULE_SYMVERS_LOCATION}" > + bbwarn "Please consider setting > MODULES_MODULE_SYMVERS_LOCATION to a" > + bbwarn "directory below B to get correct inter-module > dependencies" > + else > + install -Dm0644 > "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers > ${D}${includedir}/${BPN}/Module.symvers > + # Module.symvers contains absolute path to the build > directory. > + # While it doesn't actually seem to matter which path is > specified, > + # clear them out to avoid confusion > + sed -e 's:${B}/::g' -i > ${D}${includedir}/${BPN}/Module.symvers > + fi > } > > EXPORT_FUNCTIONS do_compile do_install -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core