On 8/5/20 10:39 AM, Naresh Kamboju wrote: > On Wed, 5 Aug 2020 at 21:22, Greg Kroah-Hartman > <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: >> >> This is the start of the stable review cycle for the 5.7.14 release. >> There are 6 patches in this series, all will be posted as a response >> to this one. If anyone has any issues with these being applied, please >> let me know. >> >> Responses should be made by Fri, 07 Aug 2020 15:34:53 +0000. >> Anything received after that time might be too late. >> >> The whole patch series can be found in one patch at: >> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.14-rc1.gz >> or in the git tree and branch at: >> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.7.y >> and the diffstat can be found below. >> >> thanks, >> >> greg k-h >> >> ------------- >> Pseudo-Shortlog of commits: >> >> Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >> Linux 5.7.14-rc1 >> >> Marc Zyngier <maz@xxxxxxxxxx> >> arm64: Workaround circular dependency in pointer_auth.h >> >> Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> >> random32: move the pseudo-random 32-bit definitions to prandom.h >> >> Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> >> random32: remove net_rand_state from the latent entropy gcc plugin >> >> Willy Tarreau <w@xxxxxx> >> random: fix circular include dependency on arm64 after addition of percpu.h >> >> Grygorii Strashko <grygorii.strashko@xxxxxx> >> ARM: percpu.h: fix build error >> >> Willy Tarreau <w@xxxxxx> >> random32: update the net random state on interrupt and activity >> > > [ sorry if it is not interesting ! ] > > While building with old gcc-7.3.0 the build breaks for arm64 > whereas build PASS on gcc-8, gcc-9 and gcc-10. > > with gcc 7.3.0 build breaks log, > Same with older versions of gcc. I don't see the problem with the mainline kernel. I think this is caused by more recursive includes. arch/arm64/include/asm/archrandom.h includes include/linux/random.h which includes arch/arm64/include/asm/archrandom.h to get the definition of arch_get_random_seed_long_early (which it won't get because of the recursion). What I don't really understand is how this works with new versions of gcc. Guenter > In file included from arch/arm64/include/asm/archrandom.h:9:0, > from arch/arm64/kernel/kaslr.c:14: > include/linux/random.h: In function 'arch_get_random_seed_long_early': > include/linux/random.h:149:9: error: implicit declaration of function > 'arch_get_random_seed_long'; did you mean > 'arch_get_random_seed_long_early'? > [-Werror=implicit-function-declaration] > return arch_get_random_seed_long(v); > ^~~~~~~~~~~~~~~~~~~~~~~~~ > arch_get_random_seed_long_early > include/linux/random.h: In function 'arch_get_random_long_early': > include/linux/random.h:157:9: error: implicit declaration of function > 'arch_get_random_long'; did you mean 'get_random_long'? > [-Werror=implicit-function-declaration] > return arch_get_random_long(v); > ^~~~~~~~~~~~~~~~~~~~ > get_random_long > In file included from arch/arm64/kernel/kaslr.c:14:0: > arch/arm64/include/asm/archrandom.h: At top level: > arch/arm64/include/asm/archrandom.h:30:33: error: conflicting types > for 'arch_get_random_long' > static inline bool __must_check arch_get_random_long(unsigned long *v) > ^~~~~~~~~~~~~~~~~~~~ > In file included from arch/arm64/include/asm/archrandom.h:9:0, > from arch/arm64/kernel/kaslr.c:14: > include/linux/random.h:157:9: note: previous implicit declaration of > 'arch_get_random_long' was here > return arch_get_random_long(v); > ^~~~~~~~~~~~~~~~~~~~ > In file included from arch/arm64/kernel/kaslr.c:14:0: > arch/arm64/include/asm/archrandom.h:40:33: error: conflicting types > for 'arch_get_random_seed_long' > static inline bool __must_check arch_get_random_seed_long(unsigned long *v) > ^~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from arch/arm64/include/asm/archrandom.h:9:0, > from arch/arm64/kernel/kaslr.c:14: > include/linux/random.h:149:9: note: previous implicit declaration of > 'arch_get_random_seed_long' was here > return arch_get_random_seed_long(v); > ^~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from arch/arm64/kernel/kaslr.c:14:0: > arch/arm64/include/asm/archrandom.h:72:1: error: redefinition of > 'arch_get_random_seed_long_early' > arch_get_random_seed_long_early(unsigned long *v) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from arch/arm64/include/asm/archrandom.h:9:0, > from arch/arm64/kernel/kaslr.c:14: > include/linux/random.h:146:27: note: previous definition of > 'arch_get_random_seed_long_early' was here > static inline bool __init arch_get_random_seed_long_early(unsigned long *v) > >