On Tue, Sep 8, 2020 at 8:23 AM Bruce Ashfield via
lists.yoctoproject.org
<[email protected]> wrote:
>
> On Tue, Sep 8, 2020 at 5:15 AM Xu, Yanfei <[email protected]> wrote:
> >
> >
> >
> > On 9/8/20 10:26 AM, Xu, Yanfei wrote:
> > >
> > >
> > > On 9/8/20 10:01 AM, Bruce Ashfield wrote:
> > >> On Mon, Sep 7, 2020 at 11:43 AM Xu, Yanfei <[email protected]>
> > >> wrote:
> > >>>
> > >>>
> > >>>
> > >>> On 9/7/20 7:53 PM, Bruce Ashfield wrote:
> > >>>> On Mon, Sep 7, 2020 at 5:56 AM Xu, Yanfei <[email protected]>
> > >>>> wrote:
> > >>>>>
> > >>>>> Hi Bruce,
> > >>>>>
> > >>>>>
> > >>>>> When I excuted "make -C /usr/src/kernel scripts prepare" on target
> > >>>>> mechine, I will be asked for choicing if to enable "GCC_PLUGINS" and
> > >>>>> other configurations depend on "GCC_PLUGINS" (The .config file didn,t
> > >>>>> contain 'GCC_PLUGINS is not set')
> > >>>>> But there were never be asked for these before yocto add the
> > >>>>> configuration which is "EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX}
> > >>>>> ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}""
> > >>>>>
> > >>>>
> > >>>> Which machine and configuration are you seeing that in ? I've modified
> > >>>> devsrc several times to remove the triggers that cause that behaviour,
> > >>>> and would like to see how it crept back in.
> > >>>>
> > >>> Firstly, the commit:'kernel.bbclass: Configuration for environment
> > >>> with
> > >>> HOSTCXX' expose this problem. After revert it, everything will be
> > >>> normal.
> > >>>
> > >>> Secondly, the mechine is qemuarm64. Which configuration you mean? The
> > >>
> > >> yes, which machine and image type.
> > >>
> > >>> project's configuration is normal and only with ""IMAGE_INSTALL +=
> > >>> "packagegroup-core-buildessential".  The configurations of Kconfig for
> > >>> choosing is as the blow log messages.
> > >>
> > >> I assume you are also installing kernel-devsrc on the target ?
> > >> Yes.
> > >
> > >>>
> > >>>>> With these, I met a failure during compiling an external module on
> > >>>>> target mechine after I enabled the GCC_PLUGINS and
> > >>>>> CONFIG_GCC_PLUGIN_RANDSTRUCT by above methond. Failure messages as
> > >>>>> below. There might be some other unexpected situations with GCC_PLUGIN
> > >>>>> enabled.
> > >>>>>
> > >>>>> In my oppinion, GCC_PLUGINS is rarely used, and It can be enable by
> > >>>>> who
> > >>>>> want to use it. So how about disable it by defualt in
> > >>>>> ktypes/base/base.cfg file? Do you think it is appropriate?
> > >>>>
> > >>>> I don't disagree, but also, the configuration phase shouldn't be
> > >>>> triggered on target, so I'll fix that behaviour first.
> > >>>
> > >>> That's great!
> > >>
> > >> I was just able to build master, with kernel 5.8 and run the scripts
> > >> prepare target without triggering this:
> > >>
> > >> scripts/Makefile.build:415: warning: overriding recipe for target
> > >> 'modules.order'
> > >> Makefile:1371: warning: ignoring old recipe for target 'modules.order'
> > >>    CC      arch/arm64/kernel/vdso/vgettimeofday.o
> > >>    AS      arch/arm64/kernel/vdso/note.o
> > >>    AS      arch/arm64/kernel/vdso/sigreturn.o
> > >>    LD      arch/arm64/kernel/vdso/vdso.so.dbg
> > >>    VDSOSYM include/generated/vdso-offsets.h
> > >> make: Leaving directory '/lib/modules/5.8.5-yocto-standard/build'
> > >> root@qemuarm64:/usr/src/kernel#
> > >>
> > >> Which is what I expected, since this is an effort I made when
> > >> introducing the 5.8 kernel. I'll retest with
> > >> 5.4 now.
> > > I'm sorry for omitting an imformation about that my project added many
> > > nativesdks. I will ensure if the issue was triggered by these soon.
> >
> > These nativesdks are irrelevant to the result.
> >
> > I separately build projects with kernel5.4 and kernel5.8. There are some
> > differences about CONFIG_GCC_PLUGINS of /usr/src/kernel/.config on
> > target machine.
> >
> > -----------5.4-----------------
> > CONFIG_PLUGIN_HOSTCC=""
> > CONFIG_HAVE_GCC_PLUGINS=y
> > # end of General architecture-dependent options
> >
> > -----------5.8-----------------
> > CONFIG_HAVE_GCC_PLUGINS=y
> > CONFIG_GCC_PLUGINS=y
> > # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
> > # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
> > # end of General architecture-dependent options
>
> Also, with the 5.4 kernel, I was able to trigger one on-target
> configuration run. I'll look into that first, and then get back to the
> gcc plugins config question.

I have a fix for this now, and it will work for both 5.8 and 5.4 kernels.

I need to test it a bit more, but I'll send the patch on my Wednesday
(since it is already Wednesday for you :)

Bruce

>
> Cheers,
>
> Bruce
>
> >
> >
> > Yanfei
> >
> > >
> > > Thanks,
> > > Yanfei
> > >
> > >>
> > >> Bruce
> > >>
> > >>>
> > >>> Thanks,
> > >>> Yanfei
> > >>>
> > >>>
> > >>>>
> > >>>> Bruce
> > >>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> Regards,
> > >>>>> Yanfei
> > >>>>>
> > >>>>>
> > >>>>> =============================================================
> > >>>>>
> > >>>>> $ make -C /usr/src/kernel scripts prepare
> > >>>>> ......
> > >>>>> \ * GCC plugins
> > >>>>> *
> > >>>>> GCC plugins (GCC_PLUGINS) [Y/n/?] (NEW) y
> > >>>>> Generate some entropy during boot and runtime
> > >>>>> (GCC_PLUGIN_LATENT_ENTROPY) [N/y/?] (NEW) y
> > >>>>> Randomize layout of sensitive kernel structures
> > >>>>> (GCC_PLUGIN_RANDSTRUCT)
> > >>>>> [N/y/?] (NEW) y
> > >>>>> Use cacheline-aware structure randomization
> > >>>>> (GCC_PLUGIN_RANDSTRUCT_PERFORMANCE) [N/y/?] (NEW) y
> > >>>>> *
> > >>>>> \ * Memory initialization
> > >>>>> *
> > >>>>> Initialize kernel stack variables at function entry
> > >>>>>    > 1. no automatic initialization (weakest) (INIT_STACK_NONE)
> > >>>>> 2. zero-init structs marked for userspace (weak)
> > >>>>> (GCC_PLUGIN_STRUCTLEAK_USER) (NEW)
> > >>>>> 3. zero-init structs passed by reference (strong)
> > >>>>> (GCC_PLUGIN_STRUCTLEAK_BYREF) (NEW)
> > >>>>> 4. zero-init anything passed by reference (very strong)
> > >>>>> (GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) (NEW)
> > >>>>> choice[1-4?]: 1
> > >>>>> Poison kernel stack before returning from syscalls
> > >>>>> (GCC_PLUGIN_STACKLEAK) [N/y/?] (NEW) y
> > >>>>> Minimum stack frame size of functions tracked by STACKLEAK
> > >>>>> (STACKLEAK_TRACK_MIN_SIZE) [100] (NEW)
> > >>>>> Show STACKLEAK metrics in the /proc file system (STACKLEAK_METRICS)
> > >>>>> [N/y/?] (NEW) y
> > >>>>> Allow runtime disabling of kernel stack erasing
> > >>>>> (STACKLEAK_RUNTIME_DISABLE) [N/y/?] (NEW) y
> > >>>>> Enable heap memory zeroing on allocation by default
> > >>>>> (INIT_ON_ALLOC_DEFAULT_ON) [N/y/?] n
> > >>>>> Enable heap memory zeroing on free by default
> > >>>>> (INIT_ON_FREE_DEFAULT_ON)
> > >>>>> [N/y/?] n
> > >>>>>
> > >>>>> HOSTCC scripts/dtc/dtc.o
> > >>>>> ......
> > >>>>> ==
> > >>>>> then build the module,
> > >>>>> ==
> > >>>>> $ make -C /usr/src/kernel M=/module_path/module_example modules
> > >>>>> Build external kernel module ...
> > >>>>> make: Entering directory '/lib/modules/5.4.57-yocto-standard/build'
> > >>>>> CC [M] /module_path/module_example/hello.o
> > >>>>> Building modules, stage 2.
> > >>>>> MODPOST 1 modules
> > >>>>> ERROR: "module_layout" [/module_path/module_example/hello.ko]
> > >>>>> undefined!
> > >>>>> make[1]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
> > >>>>> make: *** [Makefile:1630: modules] Error 2
> > >>>>> make: Leaving directory '/lib/modules/5.4.57-yocto-standard/build'
> > >>>>> ==
> > >>>>
> > >>>>
> > >>>>
> > >>
> > >>
> > >>
> > >> --
> > >> - Thou shalt not follow the NULL pointer, for chaos and madness await
> > >> thee at its end
> > >> - "Use the force Harry" - Gandalf, Star Trek II
> > >>
> > >
> > >
> > >
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
> 



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#9041): 
https://lists.yoctoproject.org/g/linux-yocto/message/9041
Mute This Topic: https://lists.yoctoproject.org/mt/76682606/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to