From: Michael Ellerman <mpe@ellerman•id.au>
To: Nathan Chancellor <natechancellor@gmail•com>,
Herbert Xu <herbert@gondor•apana.org.au>
Cc: kbuild test robot <lkp@intel•com>,
linux-kernel@vger•kernel.org, clang-built-linux@googlegroups•com,
Paul Mackerras <paulus@samba•org>,
linux-crypto@vger•kernel.org,
Nathan Chancellor <natechancellor@gmail•com>,
linuxppc-dev@lists•ozlabs.org
Subject: Re: [PATCH] lib/mpi: Fix building for powerpc with clang
Date: Tue, 14 Apr 2020 17:36:52 +1000 [thread overview]
Message-ID: <87blnujz6z.fsf@mpe.ellerman.id.au> (raw)
In-Reply-To: <20200413195041.24064-1-natechancellor@gmail.com>
Nathan Chancellor <natechancellor@gmail•com> writes:
> 0day reports over and over on an powerpc randconfig with clang:
>
> 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
>
> Remove the superfluous casts, which have been done previously for x86
> and arm32 in commit dea632cadd12 ("lib/mpi: fix build with clang") and
> commit 7b7c1df2883d ("lib/mpi/longlong.h: fix building with 32-bit
> x86").
>
> Reported-by: kbuild test robot <lkp@intel•com>
> Link: https://github.com/ClangBuiltLinux/linux/issues/991
> Signed-off-by: Nathan Chancellor <natechancellor@gmail•com>
> ---
>
> Herbet seems to take lib/mpi patches but there does not seem to be a
> formal maintainer so Michael could take it since it is just a powerpc
> thing.
Oh you mean it's inside:
#if (defined(_ARCH_PPC) || defined(_IBMR2)) && W_TYPE_SIZE == 32
I don't mind taking it with Herbet's ack, or he could just merge it.
cheers
>
> lib/mpi/longlong.h | 34 +++++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h
> index 2dceaca27489..891e1c3549c4 100644
> --- a/lib/mpi/longlong.h
> +++ b/lib/mpi/longlong.h
> @@ -722,22 +722,22 @@ do { \
> do { \
> if (__builtin_constant_p(bh) && (bh) == 0) \
> __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "%r" ((USItype)(ah)), \
> "%r" ((USItype)(al)), \
> "rI" ((USItype)(bl))); \
> else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \
> __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "%r" ((USItype)(ah)), \
> "%r" ((USItype)(al)), \
> "rI" ((USItype)(bl))); \
> else \
> __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "%r" ((USItype)(ah)), \
> "r" ((USItype)(bh)), \
> "%r" ((USItype)(al)), \
> @@ -747,36 +747,36 @@ do { \
> do { \
> if (__builtin_constant_p(ah) && (ah) == 0) \
> __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "r" ((USItype)(bh)), \
> "rI" ((USItype)(al)), \
> "r" ((USItype)(bl))); \
> else if (__builtin_constant_p(ah) && (ah) == ~(USItype) 0) \
> __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "r" ((USItype)(bh)), \
> "rI" ((USItype)(al)), \
> "r" ((USItype)(bl))); \
> else if (__builtin_constant_p(bh) && (bh) == 0) \
> __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "r" ((USItype)(ah)), \
> "rI" ((USItype)(al)), \
> "r" ((USItype)(bl))); \
> else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \
> __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "r" ((USItype)(ah)), \
> "rI" ((USItype)(al)), \
> "r" ((USItype)(bl))); \
> else \
> __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \
> - : "=r" ((USItype)(sh)), \
> - "=&r" ((USItype)(sl)) \
> + : "=r" (sh), \
> + "=&r" (sl) \
> : "r" ((USItype)(ah)), \
> "r" ((USItype)(bh)), \
> "rI" ((USItype)(al)), \
> @@ -787,7 +787,7 @@ do { \
> do { \
> USItype __m0 = (m0), __m1 = (m1); \
> __asm__ ("mulhwu %0,%1,%2" \
> - : "=r" ((USItype) ph) \
> + : "=r" (ph) \
> : "%r" (__m0), \
> "r" (__m1)); \
> (pl) = __m0 * __m1; \
>
> base-commit: 8f3d9f354286745c751374f5f1fcafee6b3f3136
> --
> 2.26.0
next prev parent reply other threads:[~2020-04-14 7:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-13 19:50 [PATCH] lib/mpi: Fix building for powerpc with clang Nathan Chancellor
2020-04-14 7:36 ` Michael Ellerman [this message]
2020-04-14 13:57 ` Herbert Xu
2020-04-23 16:36 ` Nathan Chancellor
2020-04-24 3:23 ` Michael Ellerman
2020-04-24 8:13 ` Nathan Chancellor
2020-04-25 23:51 ` Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87blnujz6z.fsf@mpe.ellerman.id.au \
--to=mpe@ellerman$(echo .)id.au \
--cc=clang-built-linux@googlegroups$(echo .)com \
--cc=herbert@gondor$(echo .)apana.org.au \
--cc=linux-crypto@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=lkp@intel$(echo .)com \
--cc=natechancellor@gmail$(echo .)com \
--cc=paulus@samba$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox