Re: [PATCH 3/5] lib/mpi: Fix for building for MIPS32 with Clang
From: Jussi Kivilinna
Date: Mon Aug 12 2019 - 15:41:02 EST
Hello,
On 12.8.2019 20.14, Nathan Chancellor wrote:
> On Mon, Aug 12, 2019 at 10:35:53AM +0300, Jussi Kivilinna wrote:
>> Hello,
>>
>> On 12.8.2019 6.31, Nathan Chancellor wrote:
>>> From: Vladimir Serbinenko <phcoder@xxxxxxxxx>
>>>
>>> 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@xxxxxxxxx>
>>> [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@xxxxxx>
>>
>> This is my signed-off-by for libgcrypt project, not kernel. I do not think
>> signed-offs can be passed from other projects in this way.
>>
>> -Jussi
>
> Hi Jussi,
>
> I am no signoff expert but if I am reading the developer certificate of
> origin in the libgcrypt repo correctly [1], your signoff on this commit
> falls under:
>
> (d) I understand and agree that this project and the contribution
> are public and that a record of the contribution (including all
> personal information I submit with it, including my sign-off) is
> maintained indefinitely and may be redistributed consistent with
> this project or the open source license(s) involved.
There is nothing wrong with the commit in libgcrypt repo and/or my
libgcrypt-DCO-sign-off.
>
> This file is maintained under the LGPL because it was taken straight
> from the libgcrypr repo and per (b), I can submit this commit here
> with everything intact.
But you do not have my kernel-DCO-sign-off for this patch. I have not
been involved with this kernel patch in anyway, have not integrated
it to kernel, not testing it on kernel.. I do not own it. However,
with this signed-off-by line you have involved me to kernel patch
process in which for this patch I'm not interested. So to be clear,
I retract my kernel-DCO-signed-off for this kernel patch:
NOT-Signed-off-by: Jussi Kivilinna <jussi.kivilinna@xxxxxx>
Of course you can copy the original libgcrypt commit message to this
patch, but I think it needs to be clearly quoted so that my
libgcrypt-DCO-signed-off line wont be mixed with kernel-DOC-signed-off
lines.
>
> However, I don't want to upset you in any way though so if you are not
> comfortable with that, I suppose I can remove it as if Vladimir
> submitted this fix to me directly (as I got permission for his signoff).
> I need to resubmit this fix to an appropriate maintainer so let me know
> what you think.
That's quite complicated approach. Fast and easier process would be if you
just own the patch yourself. Libgcrypt (and target file in libgcrypt)
is LGPL v2.1+, so the license is compatible with kernel and you are good
to go with just your own (kernel DCO) signed-off-by.
-Jussi
>
> [1]: https://github.com/gpg/libgcrypt/blob/3bb858551cd5d84e43b800edfa2b07d1529718a9/doc/DCO
>
> Cheers,
> Nathan
>