xeno74 wrote:Error during compiling the RC2:
The variable MAX_PHYSMEM_BITS isn't defined. The problem is in the last PowerPC fixes 5.1-3.
Code: Select all
CC arch/powerpc/mm/slb.o In file included from ./arch/powerpc/include/asm/book3s/64/mmu.h:39:0, from ./arch/powerpc/include/asm/mmu.h:360, from ./arch/powerpc/include/asm/lppaca.h:36, from ./arch/powerpc/include/asm/paca.h:21, from ./arch/powerpc/include/asm/current.h:16, from ./include/linux/thread_info.h:21, from ./include/asm-generic/preempt.h:5, from ./arch/powerpc/include/generated/asm/preempt.h:1, from ./include/linux/preempt.h:78, from ./include/linux/spinlock.h:51, from ./include/linux/mmzone.h:8, from ./include/linux/gfp.h:6, from ./include/linux/mm.h:10, from ./arch/powerpc/include/asm/cacheflush.h:12, from ./arch/powerpc/include/asm/asm-prototypes.h:16, from arch/powerpc/mm/slb.c:17: ./arch/powerpc/include/asm/book3s/64/mmu-hash.h:584:6: warning: "MAX_PHYSMEM_BITS" is not defined [-Wundef] #if (MAX_PHYSMEM_BITS > MAX_EA_BITS_PER_CONTEXT) ^ arch/powerpc/mm/slb.c: In function 'slb_allocate_kernel': arch/powerpc/mm/slb.c:697:37: error: 'MAX_PHYSMEM_BITS' undeclared (first use in this function) if ((ea & ~REGION_MASK) > (1UL << MAX_PHYSMEM_BITS)) ^ arch/powerpc/mm/slb.c:697:37: note: each undeclared identifier is reported only once for each function it appears in scripts/Makefile.build:278: recipe for target 'arch/powerpc/mm/slb.o' failed make: *** [arch/powerpc/mm/slb.o] Error 1 scripts/Makefile.build:489: recipe for target 'arch/powerpc/mm' failed make: *** [arch/powerpc/mm] Error 2 /home/christian/Downloads/a/Makefile:1046: recipe for target 'arch/powerpc' failed make: *** [arch/powerpc] Error 2 Makefile:170: recipe for target 'sub-make' failed make: *** [sub-make] Error 2
Problematic fix:Commit log wrote:powerpc/mm: Only define MAX_PHYSMEM_BITS in SPARSEMEM configurations
The first if statement isn't successfull because the variables CONFIG_SPARSEMEM_EXTREME and CONFIG_PPC_64K_PAGES aren't activated in our kernel configuration. Therefore we need MAX_PHYSMEM_BITS 46 for our Nemo board. Unfortunately CONFIG_SPARSEMEM doesn't exist in the kernel source code so we can't activate it in the kernel config.
Code: Select all
diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h index d34ad1657d7b..598cdcdd1355 100644 --- a/arch/powerpc/include/asm/mmu.h +++ b/arch/powerpc/include/asm/mmu.h @@ -352,7 +352,7 @@ static inline bool strict_kernel_rwx_enabled(void) #if defined(CONFIG_SPARSEMEM_VMEMMAP) && defined(CONFIG_SPARSEMEM_EXTREME) && \ defined (CONFIG_PPC_64K_PAGES) #define MAX_PHYSMEM_BITS 51 -#else +#elif defined(CONFIG_SPARSEMEM) #define MAX_PHYSMEM_BITS 46 #endif
I replaced #elif defined(CONFIG_SPARSEMEM) with #else and after that the compiling of the RC2 works again.
I reported this issue to the Linuxppc-dev mailing list today. Link: PowerPC fixes 5.1-3: CONFIG_SPARSEMEM doesn't exist in the kernel source code