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. 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
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#9040): https://lists.yoctoproject.org/g/linux-yocto/message/9040 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]] -=-=-=-=-=-=-=-=-=-=-=-
