[PATCH 9/9] powerpc: A new cache geometry aux vectors

Michael Ellerman mpe at ellerman.id.au
Tue Jan 31 07:27:13 AEDT 2017


Benjamin Herrenschmidt <benh at kernel.crashing.org> writes:

> diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
> index 730c27e..a128836 100644
> --- a/arch/powerpc/include/asm/elf.h
> +++ b/arch/powerpc/include/asm/elf.h
> @@ -156,6 +163,14 @@ do {									\
>  	NEW_AUX_ENT(AT_ICACHEBSIZE, icache_bsize);			\
>  	NEW_AUX_ENT(AT_UCACHEBSIZE, ucache_bsize);			\
>  	VDSO_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso_base);	\
> +	NEW_AUX_ENT(AT_L1I_CACHESIZE, ppc64_caches.l1i.size);		\
> +	NEW_AUX_ENT(AT_L1I_CACHEGEOMETRY, get_cache_shape(l1i));	\
> +	NEW_AUX_ENT(AT_L1D_CACHESIZE, ppc64_caches.l1i.size);		\
> +	NEW_AUX_ENT(AT_L1D_CACHEGEOMETRY, get_cache_shape(l1i));	\
> +	NEW_AUX_ENT(AT_L2_CACHESIZE, ppc64_caches.l2.size);		\
> +	NEW_AUX_ENT(AT_L2_CACHEGEOMETRY, get_cache_shape(l2));		\
> +	NEW_AUX_ENT(AT_L3_CACHESIZE, ppc64_caches.l3.size);		\
> +	NEW_AUX_ENT(AT_L3_CACHEGEOMETRY, get_cache_shape(l3));		\
>  } while (0)
  
This breaks the 32-bit build:


  ../fs/binfmt_elf.c: In function ‘create_elf_tables’:
  ../arch/powerpc/include/asm/elf.h:166:32: error: ‘ppc64_caches’ undeclared (first use in this function)
    NEW_AUX_ENT(AT_L1I_CACHESIZE, ppc64_caches.l1i.size);  \
                                  ^
  ../fs/binfmt_elf.c:222:26: note: in definition of macro ‘NEW_AUX_ENT’
     elf_info[ei_index++] = val; \
                            ^~~
  ../fs/binfmt_elf.c:232:2: note: in expansion of macro ‘ARCH_DLINFO’
    ARCH_DLINFO;
    ^~~~~~~~~~~
  ../arch/powerpc/include/asm/elf.h:166:32: note: each undeclared identifier is reported only once for each function it appears in
    NEW_AUX_ENT(AT_L1I_CACHESIZE, ppc64_caches.l1i.size);  \
                                  ^
  ../fs/binfmt_elf.c:222:26: note: in definition of macro ‘NEW_AUX_ENT’
     elf_info[ei_index++] = val; \
                            ^~~
  ../fs/binfmt_elf.c:232:2: note: in expansion of macro ‘ARCH_DLINFO’
    ARCH_DLINFO;
    ^~~~~~~~~~~
  make[2]: *** [fs/binfmt_elf.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[1]: *** [fs] Error 2
  make: *** [sub-make] Error 2


Will need some more macro foo.

cheers


More information about the Linuxppc-dev mailing list