PPC_FPU, ALTIVEC: enable_kernel_fp, put_vr, get_vr
Christophe Leroy
christophe.leroy at csgroup.eu
Mon Apr 19 02:24:29 AEST 2021
Le 17/04/2021 à 22:17, Randy Dunlap a écrit :
> Hi,
>
> kernel test robot reports:
>
>>> drivers/cpufreq/pmac32-cpufreq.c:262:2: error: implicit declaration of function 'enable_kernel_fp' [-Werror,-Wimplicit-function-declaration]
> enable_kernel_fp();
> ^
>
> when
> # CONFIG_PPC_FPU is not set
> CONFIG_ALTIVEC=y
>
> I see at least one other place that does not handle that
> combination well, here:
>
> ../arch/powerpc/lib/sstep.c: In function 'do_vec_load':
> ../arch/powerpc/lib/sstep.c:637:3: error: implicit declaration of function 'put_vr' [-Werror=implicit-function-declaration]
> 637 | put_vr(rn, &u.v);
> | ^~~~~~
> ../arch/powerpc/lib/sstep.c: In function 'do_vec_store':
> ../arch/powerpc/lib/sstep.c:660:3: error: implicit declaration of function 'get_vr'; did you mean 'get_oc'? [-Werror=implicit-function-declaration]
> 660 | get_vr(rn, &u.v);
> | ^~~~~~
>
>
> Should the code + Kconfigs/Makefiles handle that kind of
> kernel config or should ALTIVEC always mean PPC_FPU as well?
As far as I understand, Altivec is completely independant of FPU in Theory. So it should be possible
to use Altivec without using FPU.
However, until recently, it was not possible to de-activate FPU support on book3s/32. I made it
possible in order to reduce unneccessary processing on processors like the 832x that has no FPU.
As far as I can see in cputable.h/.c, 832x is the only book3s/32 without FPU, and it doesn't have
ALTIVEC either.
So we can in the future ensure that Altivec can be used without FPU support, but for the time being
I think it is OK to force selection of FPU when selecting ALTIVEC in order to avoid build failures.
>
> I have patches to fix the build errors with the config as
> reported but I don't know if that's the right thing to do...
>
Lets see them.
Christophe
More information about the Linuxppc-dev
mailing list