All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Ashfield <bruce.ashfield@windriver.com>
To: Timo Korthals <tkorthals@cit-ec.uni-bielefeld.de>,
	<yocto@yoctoproject.org>
Subject: Re: fido: out-of-tree module build fails due to wrong Module.symvers reference
Date: Tue, 5 May 2015 00:36:30 -0400	[thread overview]
Message-ID: <554848CE.8000108@windriver.com> (raw)
In-Reply-To: <554649D3.8050004@cit-ec.uni-bielefeld.de>

On 2015-05-03 12:16 PM, Timo Korthals wrote:
> Dear yocto developers,
>
> the following "more generic" workaround worked also, which let's me
> assume that the "Module.symvers" in ${S} is somehow broken?
>
> Content of "linux-yocto_3.19.bbappend":
> do_install_append() {
>      cp -f ${KBUILD_OUTPUT}/Module.symvers ${STAGING_KERNEL_BUILDDIR}
> }

We have a race condition in the build artifacts copy routine in fido.
The fix missed the release, but we are working through the change now
(the latest variant was posted today).

So yes, what is being copied during the build may not be the proper
.symvers file at the moment, but once do_shared_workdir() is called
directly from the kernel do_install() routine, we'll have the proper
copy in place before your out of tree module builds.

Bruce

>
> Greetings,
> Timo
>
>
> On 03.05.2015 17:26, Timo Korthals wrote:
>> Dear yocto developers,
>>
>> with the yocto projects < 1.8 we were able to build our out-of-tree
>> module without any linking failures, but since the upgrade to 1.8
>> there seems to be something wrong with the "Module.symvers".
>> For our external module we use exactly the same Makefile as you
>> proposed in hello-mod (but of course with another obj-m argument).
>> If we then build the module, the do_compile stage prints, what you can
>> find under [1].
>> I think the problem refers to a wrong "Module.symvers" which is used
>> by the MODPOST stage.
>>
>> I just searched for all "Module.symvers" files in my fido work folder,
>> after a full build:
>> -rw-r--r-- 1 myName staff 528483 Apr 29 17:59
>> /home/myName/fido/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19.2+gitAUTOINC+9e70b482d3_31b35da6a5-r0/linux-amiro-standard-build/Module.symvers
>> -rw-r--r-- 1 myName staff      0 May  3 16:22
>> /home/myName/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/Module.symvers
>> -rw-r--r-- 1 myName staff 386012 Apr 29 17:58
>> /home/myName/fido/tmp/work-shared/amiro/kernel-build-artifacts/Module.symvers
>>
>> In my old (projects < 1.8) workfolder, the "Module.symvers" files,
>> where distributed as follows:
>> -rw-r--r-- 4 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/sysroots/amiro/usr/src/kernel/Module.symvers
>> -rw-r--r-- 4 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19+gitAUTOINC+8897ef68b3_bfa76d4957-r0/image/usr/src/kernel/Module.symvers
>> -rw-r--r-- 4 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19+gitAUTOINC+8897ef68b3_bfa76d4957-r0/linux-amiro-standard-build/Module.symvers
>> -rw-r--r-- 2 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19+gitAUTOINC+8897ef68b3_bfa76d4957-r0/packages-split/kernel-dev/usr/src/kernel/Module.symvers
>> -rw-r--r-- 2 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19+gitAUTOINC+8897ef68b3_bfa76d4957-r0/package/usr/src/kernel/Module.symvers
>> -rw-r--r-- 4 myName staff 528483 Mar 11 13:48
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19+gitAUTOINC+8897ef68b3_bfa76d4957-r0/sysroot-destdir/usr/src/kernel/Module.symvers
>> -rw-r--r-- 1 myName staff 0 Mar  3 10:08
>> /home/tkorthals/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647/Module.symvers
>> -rw-r--r-- 1 myName staff      0 Mar  3 10:08
>> /home/myName/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647/Module.symvers
>>
>> A small hotfix to solve my problem is just a copy of the
>> "Module.symvers" from the kernel build into my source folder of the
>> module, by the following extension in my "ov5647.bb":
>> # Copy the fiel containing all kernel modules
>> do_patchappend() {
>>     cp -f
>> /home/myName/fido/tmp/work/amiro-poky-linux-gnueabi/linux-yocto/3.19.2+gitAUTOINC+9e70b482d3_31b35da6a5-r0/linux-amiro-standard-build/Module.symvers
>> ${S}
>> }
>> addtask patchappend after do_configure before do_compile
>>
>> If I take the "Module.symvers" from
>> "kernel-build-artifacts/Module.symvers", the linkage fails because all
>> the symbols are missing which are important for the module.
>> Do you have any Idea, if this is a bug in the new 1.8 build
>> environment, or if I am doing something wrong?
>>
>> Greetings,
>> Timo
>>
>>
>>
>> [1]
>>
>> + module_do_compile
>> + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
>> + oe_runmake
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard 'CC=arm-poky-linux-gnueabi-gcc  '
>> 'LD=arm-poky-linux-gnueabi-ld.bfd  ' 'AR=arm-poky-linux-gnueabi-ar '
>> O=/mnt$
>> + oe_runmake_call
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard 'CC=arm-poky-linux-gnueabi-gcc  '
>> 'LD=arm-poky-linux-gnueabi-ld.bfd  ' 'AR=arm-poky-linux-gnueabi-ar ' O$
>> + bbnote make -j 8 -e MAKEFLAGS=
>> KERNEL_SRC=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard 'CC=arm-poky-$
>> + echo 'NOTE: make -j 8 -e MAKEFLAGS=
>> KERNEL_SRC=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard CC=arm-p$
>> NOTE: make -j 8 -e MAKEFLAGS=
>> KERNEL_SRC=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard CC=arm-poky-linu$
>> + make -j 8 -e MAKEFLAGS=
>> KERNEL_SRC=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_PATH=/home/myHome/fido/tmp/work-shared/amiro/kernel-source
>> KERNEL_VERSION=3.19.2-yocto-standard 'CC=arm-poky-linux-g$
>>
>> make[1]: Entering directory
>> `/home/myHome/fido/tmp/work-shared/amiro/kernel-source'
>>
>> make[2]: Entering directory
>> `/home/myHome/fido/tmp/work-shared/amiro/kernel-build-artifacts'
>>
>>   LD
>> /home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/built-in.o
>>
>>   CC [M]
>> /home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.o
>>
>>   Building modules, stage 2.
>>
>>   MODPOST 1 modules
>>
>> WARNING: "v4l2_ctrl_handler_setup"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "__v4l2_ctrl_s_ctrl_int64"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_ctrl_handler_free"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "media_entity_init"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_i2c_subdev_init"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_ctrl_new_std_menu_items"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_ctrl_new_std_menu"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_ctrl_new_std"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_ctrl_handler_init_class"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "media_entity_cleanup"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>> WARNING: "v4l2_device_unregister_subdev"
>> [/home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko]
>> undefined!
>>
>>   CC
>> /home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.mod.o
>>
>>   LD [M]
>> /home/myHome/fido/tmp/work/amiro-poky-linux-gnueabi/ov5647/0.0-r0/ov5647.ko
>>
>> make[2]: Leaving directory
>> `/home/myHome/fido/tmp/work-shared/amiro/kernel-build-artifacts'
>>
>> make[1]: Leaving directory
>> `/home/myHome/fido/tmp/work-shared/amiro/kernel-source'
>>
>> + ret=0
>> + trap '' 0
>> + exit 0
>>
>> --
>>
>> Timo Korthals, M.Sc.
>> Universität Bielefeld
>> AG Kognitronik & Sensorik
>> Exzellenzcluster Cognitive Interaction Technology (CITEC)
>> Inspiration 1 (Zehlendorfer Damm 199)
>> 33619 Bielefeld - Germany
>>
>> Office  : 3.037
>> Phone   : +49 521 106-67368
>> eMail   : myHome@cit-ec.uni-bielefeld.de
>> Internet: http://www.ks.cit-ec.uni-bielefeld.de/
>>
>>
>>
>
> --
>
> Timo Korthals, M.Sc.
> Universität Bielefeld
> AG Kognitronik & Sensorik
> Exzellenzcluster Cognitive Interaction Technology (CITEC)
> Inspiration 1 (Zehlendorfer Damm 199)
> 33619 Bielefeld - Germany
>
> Office  : 3.037
> Phone   : +49 521 106-67368
> eMail   :tkorthals@cit-ec.uni-bielefeld.de
> Internet:http://www.ks.cit-ec.uni-bielefeld.de/
>
>
>



      reply	other threads:[~2015-05-05  4:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-03 15:26 fido: out-of-tree module build fails due to wrong Module.symvers reference Timo Korthals
2015-05-03 16:16 ` Timo Korthals
2015-05-05  4:36   ` Bruce Ashfield [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=554848CE.8000108@windriver.com \
    --to=bruce.ashfield@windriver.com \
    --cc=tkorthals@cit-ec.uni-bielefeld.de \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.