On Tue, Apr 21, 2020 at 02:47:04PM -0700, Nathan Chancellor wrote: > When building 64r6_defconfig with CONFIG_MIPS32_O32 disabled and > CONFIG_CRYPTO_RSA enabled: > > lib/mpi/generic_mpih-mul1.c:37:24: error: invalid use of a cast in a > inline asm context requiring an l-value: remove the cast > or build with -fheinous-gnu-extensions > umul_ppmm(prod_high, prod_low, s1_ptr[j], s2_limb); > ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > lib/mpi/longlong.h:664:22: note: expanded from macro 'umul_ppmm' > : "=d" ((UDItype)(w0)) > ~~~~~~~~~~^~~ > lib/mpi/generic_mpih-mul1.c:37:13: error: invalid use of a cast in a > inline asm context requiring an l-value: remove the cast > or build with -fheinous-gnu-extensions > umul_ppmm(prod_high, prod_low, s1_ptr[j], s2_limb); > ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > lib/mpi/longlong.h:668:22: note: expanded from macro 'umul_ppmm' > : "=d" ((UDItype)(w1)) > ~~~~~~~~~~^~~ > 2 errors generated. > > This special case for umul_ppmm for MIPS64r6 was added in > commit bbc25bee37d2b ("lib/mpi: Fix umul_ppmm() for MIPS64r6"), due to > GCC being inefficient and emitting a __multi3 intrinsic. > > There is no such issue with clang; with this patch applied, I can build > this configuration without any problems and there are no link errors > like mentioned in the commit above (which I can still reproduce with > GCC 9.3.0 when that commit is reverted). Only use this definition when > GCC is being used. > > This really should have been caught by commit b0c091ae04f67 ("lib/mpi: > Eliminate unused umul_ppmm definitions for MIPS") when I was messing > around in this area but I was not testing 64-bit MIPS at the time. > > Link: https://github.com/ClangBuiltLinux/linux/issues/885 > Reported-by: Dmitry Golovin <dima@xxxxxxxxxx> > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > lib/mpi/longlong.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Patch applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt