Re: [OE-core] [PATCH] module.bbclass: allow to override location of Module.symvers

2016-11-22 Thread Denys Dmytriyenko
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

2016-11-23 Thread André Draszik
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

2016-12-12 Thread André Draszik
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

2016-12-21 Thread André Draszik
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