From: Nathan Chancellor <natechancellor@gmail.com> To: Ralf Baechle <ralf@linux-mips.org>, Paul Burton <paul.burton@mips.com>, James Hogan <jhogan@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com>, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Vladimir Serbinenko <phcoder@gmail.com>, Jussi Kivilinna <jussi.kivilinna@iki.fi>, Nathan Chancellor <natechancellor@gmail.com> Subject: [PATCH 3/5] lib/mpi: Fix for building for MIPS32 with Clang Date: Sun, 11 Aug 2019 20:31:18 -0700 Message-ID: <20190812033120.43013-4-natechancellor@gmail.com> (raw) In-Reply-To: <20190812033120.43013-1-natechancellor@gmail.com> From: Vladimir Serbinenko <phcoder@gmail.com> clang doesn't recognise =l / =h assembly operand specifiers but apparently handles C version well. 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:652:20: note: expanded from macro 'umul_ppmm' : "=l" ((USItype)(w0)), \ ~~~~~~~~~~^~~ lib/mpi/generic_mpih-mul1.c:37:3: error: invalid output constraint '=h' in asm umul_ppmm(prod_high, prod_low, s1_ptr[j], s2_limb); ^ lib/mpi/longlong.h:653:7: note: expanded from macro 'umul_ppmm' "=h" ((USItype)(w1)) \ ^ 2 errors generated. Fixes: 5ce3e312ec5c ("crypto: GnuPG based MPI lib - header files (part 2)") Link: https://github.com/ClangBuiltLinux/linux/issues/605 Link: https://github.com/gpg/libgcrypt/commit/1ecbd0bca31d462719a2a6590c1d03244e76ef89 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> [jk: add changelog, rebase on libgcrypt repository, reformat changed line so it does not go over 80 characters] Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi> [nc: Added build error and tags to commit message Added Vladimir's signoff with his permission Adjusted Jussi's comment to wrap at 73 characters Modified commit subject to mirror MIPS64 commit Removed space between defined and (__clang__)] Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- lib/mpi/longlong.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h index 3bb6260d8f42..8a1507fc94dd 100644 --- a/lib/mpi/longlong.h +++ b/lib/mpi/longlong.h @@ -639,7 +639,8 @@ do { \ ************** MIPS ***************** ***************************************/ #if defined(__mips__) && W_TYPE_SIZE == 32 -#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4) +#if defined(__clang__) || (__GNUC__ >= 5) || (__GNUC__ == 4 && \ + __GNUC_MINOR__ >= 4) #define umul_ppmm(w1, w0, u, v) \ do { \ UDItype __ll = (UDItype)(u) * (v); \ -- 2.23.0.rc2
next prev parent reply index Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-12 3:31 [PATCH 0/5] Clang build fixes for MIPS Nathan Chancellor 2019-08-12 3:31 ` [PATCH 1/5] MIPS: Don't use bc_false uninitialized in __mm_isBranchInstr Nathan Chancellor 2019-08-12 4:47 ` Paul Burton 2019-08-12 3:31 ` [PATCH 2/5] MIPS/ptrace: Update mips_get_syscall_arg's return type Nathan Chancellor 2019-08-12 4:47 ` Paul Burton 2019-08-12 3:31 ` Nathan Chancellor [this message] 2019-08-12 5:23 ` [PATCH 3/5] lib/mpi: Fix for building for MIPS32 with Clang Nathan Chancellor 2019-08-12 5:26 ` Nathan Chancellor 2019-08-12 12:28 ` Herbert Xu 2019-08-12 17:58 ` Paul Burton 2019-08-12 7:35 ` Jussi Kivilinna 2019-08-12 17:14 ` Nathan Chancellor 2019-08-12 19:40 ` Jussi Kivilinna 2019-08-12 19:45 ` Nathan Chancellor 2019-08-12 3:31 ` [PATCH 4/5] lib/mpi: Fix for building for MIPS64 " Nathan Chancellor 2019-08-12 5:25 ` Nathan Chancellor 2019-08-12 17:42 ` Nick Desaulniers 2019-08-12 17:45 ` Nathan Chancellor 2019-08-12 3:31 ` [PATCH 5/5] MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean Nathan Chancellor 2019-08-12 4:47 ` Paul Burton
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=20190812033120.43013-4-natechancellor@gmail.com \ --to=natechancellor@gmail.com \ --cc=clang-built-linux@googlegroups.com \ --cc=jhogan@kernel.org \ --cc=jussi.kivilinna@iki.fi \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@vger.kernel.org \ --cc=ndesaulniers@google.com \ --cc=paul.burton@mips.com \ --cc=phcoder@gmail.com \ --cc=ralf@linux-mips.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-MIPS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \ linux-mips@vger.kernel.org public-inbox-index linux-mips Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips AGPL code for this site: git clone https://public-inbox.org/public-inbox.git