Hi Martin

Martin Jansa <martin.ja...@gmail.com> escreveu no dia quinta, 26/10/2023
à(s) 09:47:

> But something like this inside of the external kernel module should work,
> right? If yes, then it could be moved to module.bbclass or something.
>
> At least as long as the RPATH is set correctly, that worked for me with
> some old 4.9 kernels in:
>
> https://github.com/shr-distribution/linux/commit/409f7adf4a862e439b5bec04739b67713e08b8ba
>

If the RPATH was not pointing to the native sysroot of the make-mod-script
it should work
otherwise I think it can fail the same way when the rm_work class is in
place.
Looks like your patch is to choose between the host machine and the oe
native sysroot
and this rm_work is a different issue but I may be misunderstanding the
problem.

Jose


>
>
> On Thu, Oct 26, 2023 at 10:35 AM Jose Quaresma <quaresma.j...@gmail.com>
> wrote:
>
>>
>>
>> Khem Raj <raj.k...@gmail.com> escreveu no dia quarta, 25/10/2023 à(s)
>> 18:18:
>>
>>> I wonder if something like below would help
>>>
>>> diff --git a/meta/recipes-kernel/make-mod-scripts/
>>> make-mod-scripts_1.0.bb
>>> b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
>>> index 2cff48c39c3..6133721334c 100644
>>> --- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
>>> +++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
>>> @@ -12,7 +12,7 @@ S = "${WORKDIR}"
>>>
>>>  do_configure[depends] += "virtual/kernel:do_shared_workdir
>>> openssl-native:do_populate_sysroot"
>>>  do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
>>> -
>>> +do_populate_sysroot[depends] += "openssl-native:do_populate_sysroot"
>>>
>>
>> This doesn't solve the problem because at compile time the openssl is
>> already there on native sysroot
>> and this is the reason for the sign-file to be linked with openssl.
>> The make-mod-script doesn't install anything and only calls make on the
>> shared staging kernel dir
>> and the consequence is creating some binaries on the shared staging
>> kernel builddir.
>> One of the tools it builds is the sign-file linked dynamically with the
>> openssl in the native sysroot of
>> make-mod-script. At the end of make-mod-script the rm_work deletes the
>> native sysroot
>> and this will remove the openssl libcrypto.so.3.
>> Next time the sign-file in the shared staging kernel builddir will run
>> the libcrypto.so.3 will not be found.
>> Without using the rm_work class everything works as expected.
>>
>> Jose
>>
>>
>>>  DEPENDS += "bc-native bison-native"
>>>  DEPENDS += "gmp-native"
>>>
>>> On Wed, Oct 25, 2023 at 7:45 AM Bruce Ashfield <bruce.ashfi...@gmail.com>
>>> wrote:
>>> >
>>> > On Wed, Oct 25, 2023 at 7:40 AM Jose Quaresma <quaresma.j...@gmail.com>
>>> wrote:
>>> > >
>>> > > Hi Joerg,
>>> > >
>>> > > This topic has already been discussed previously in
>>> > > https://lists.openembedded.org/g/openembedded-core/topic/98296212
>>> > >
>>> > > Bruce even sent a patch but it was never integrated, probably
>>> because it was a very invasive change.
>>> > > https://lists.openembedded.org/g/openembedded-core/message/182024
>>> >
>>> > Heh. No, that wasn't the reason. The change wasn't invasive, it is
>>> > isolated to just the single recipe.
>>> >
>>> > I just didn't have the cycles to chase down host specific issues and
>>> > uninative updates.
>>> >
>>> > Clobbering rm_work isn't the right solution IMHO, but it can do the
>>> job.
>>> >
>>> > Bruce
>>> >
>>> > >
>>> > > Anyway you can solve this problem with:
>>> > > RM_WORK_EXCLUDE += "make-mod-scripts"
>>> > >
>>> > > Jose
>>> > >
>>> > > Jörg Sommer via lists.openembedded.org <joerg.sommer=
>>> navimatix...@lists.openembedded.org> escreveu no dia quarta, 25/10/2023
>>> à(s) 09:57:
>>> > >>
>>> > >> Hi,
>>> > >>
>>> > >> I'm having an odd problem building the external kernel module
>>> > >> kernel-module-imx-gpu-viv [1]. I'm using kirkstone and have rm_work
>>> > >> enabled.
>>> > >>
>>> > >> [1]  https://layers.openembedded.org/layerindex/recipe/40267/
>>> > >>
>>> > >> The module builds fine, but the install step contains the module
>>> signing
>>> > >> which **silently** fails with *libcrypto.so.3* not found:
>>> > >>
>>> > >> ```
>>> > >> | make -C /build/tmp/work-shared/ziborium/kernel-source
>>> > >>
>>> M=/build/tmp/work/machine-pyxis-linux/kernel-module-imx-gpu-viv/6.4.3.p4.2-r0/git/src
>>> > >> modules_install
>>> > >> | make[1]: Entering directory
>>> '/build/tmp/work-shared/machine/kernel-source'
>>> > >> | make -C /build/tmp/work-shared/machine/kernel-build-artifacts -f
>>> > >> /build/tmp/work-shared/machine/kernel-source/Makefile
>>> modules_install
>>> > >> | make[2]: Entering directory
>>> > >> '/build/tmp/work-shared/machine/kernel-build-artifacts'
>>> > >> | test -e include/generated/autoconf.h -a -e
>>> include/config/auto.conf ||
>>> > >> (               \
>>> > >> | echo >&2;                                                     \
>>> > >> | echo >&2 "  ERROR: Kernel configuration is invalid.";         \
>>> > >> | echo >&2 "         include/generated/autoconf.h or
>>> > >> include/config/auto.conf are missing.";\
>>> > >> | echo >&2 "         Run 'make oldconfig && make prepare' on kernel
>>> src
>>> > >> to fix it.";    \
>>> > >> | echo >&2 ;                                                    \
>>> > >> | /bin/false)
>>> > >> | make -f
>>> > >>
>>> /build/tmp/work-shared/machine/kernel-source/scripts/Makefile.modinst
>>> > >> |   mkdir -p
>>> > >>
>>> /build/tmp/work/machine-dist-linux/kernel-module-imx-gpu-viv/6.4.3.p4.2-r0/image/usr/lib/modules/5.15.60-imx8mm+g343e81c0e39e/extra/;
>>> > >> cp
>>> > >>
>>> /build/tmp/work/machine-dist-linux/kernel-module-imx-gpu-viv/6.4.3.p4.2-r0/git/src/galcore.ko
>>> > >>
>>> /build/tmp/work/machine-dist-linux/kernel-module-imx-gpu-viv/6.4.3.p4.2-r0/image/usr/lib/modules/5.15.60-imx8mm+g343e81c0e39e/extra/galcore.ko
>>> > >> |   :
>>> > >> |   scripts/sign-file "sha1" "certs/signing_key.pem"
>>> > >> certs/signing_key.x509
>>> > >>
>>> /build/tmp/work/machine-dist-linux/kernel-module-imx-gpu-viv/6.4.3.p4.2-r0/image/usr/lib/modules/5.15.60-imx8mm+g343e81c0e39e/extra/galcore.ko
>>> > >> || true
>>> > >> | scripts/sign-file: error while loading shared libraries:
>>> > >> libcrypto.so.3: cannot open shared object file: No such file or
>>> directory
>>> > >> |   sh
>>> /build/tmp/work-shared/machine/kernel-source/scripts/depmod.sh
>>> > >> echo 5.15.60-imx8mm+g343e81c0e39e
>>> > >> | Warning: modules_install: missing 'System.map' file. Skipping
>>> depmod.
>>> > >> | make[2]: Leaving directory
>>> > >> '/build/tmp/work-shared/machine/kernel-build-artifacts'
>>> > >> | make[1]: Leaving directory
>>> '/build/tmp/work-shared/machine/kernel-source'
>>> > >> ```
>>> > >>
>>> > >> I noticed that there are special dependency definitions in
>>> make-mod-scripts
>>> > >>
>>> > >> ```
>>> > >> do_configure[depends] += "virtual/kernel:do_shared_workdir
>>> > >> openssl-native:do_populate_sysroot"
>>> > >> do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
>>> > >> ```
>>> > >>
>>> > >> and module-base.bbclass (inherited by module.bbclass)
>>> > >>
>>> > >> ```
>>> > >> # We do the dependency this way because the output is not preserved
>>> > >> # in sstate, so we must force do_compile to run (once).
>>> > >> do_configure[depends] += "make-mod-scripts:do_compile"
>>> > >> ```
>>> > >>
>>> > >> Is there an additional dependency needed to address rm_work?
>>> > >>
>>> > >> Kind regards
>>> > >>
>>> > >> Jörg Sommer
>>> > >> --
>>> > >> Navimatix GmbH
>>> > >> Tatzendpromenade 2
>>> > >> D-07745 Jena
>>> > >> Geschäftsführer: Steffen Späthe, Jan Rommeley
>>> > >> Registergericht: Amtsgericht Jena, HRB 501480
>>> > >>
>>> > >>
>>> > >>
>>> > >
>>> > >
>>> > > --
>>> > > Best regards,
>>> > >
>>> > > José Quaresma
>>> >
>>> >
>>> >
>>> > --
>>> > - Thou shalt not follow the NULL pointer, for chaos and madness await
>>> > thee at its end
>>> > - "Use the force Harry" - Gandalf, Star Trek II
>>> >
>>> >
>>> >
>>>
>>
>>
>> --
>> Best regards,
>>
>> José Quaresma
>>
>> 
>>
>>

-- 
Best regards,

José Quaresma
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#105736): 
https://lists.openembedded.org/g/openembedded-devel/message/105736
Mute This Topic: https://lists.openembedded.org/mt/102174355/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to