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