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]] -=-=-=-=-=-=-=-=-=-=-=-
