| From: Leonard Crestez <leonard.crestez@nxp.com> |
| Date: Tue, 13 Mar 2018 22:17:23 +0200 |
| Subject: crypto: arm,arm64 - Fix random regeneration of S_shipped |
| |
| commit 6aaf49b495b446ff6eec0ac983f781ca0dc56a73 upstream. |
| |
| The decision to rebuild .S_shipped is made based on the relative |
| timestamps of .S_shipped and .pl files but git makes this essentially |
| random. This means that the perl script might run anyway (usually at |
| most once per checkout), defeating the whole purpose of _shipped. |
| |
| Fix by skipping the rule unless explicit make variables are provided: |
| REGENERATE_ARM_CRYPTO or REGENERATE_ARM64_CRYPTO. |
| |
| This can produce nasty occasional build failures downstream, for example |
| for toolchains with broken perl. The solution is minimally intrusive to |
| make it easier to push into stable. |
| |
| Another report on a similar issue here: https://lkml.org/lkml/2018/3/8/1379 |
| |
| Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> |
| Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| [bwh: Backported to 3.16: Only arm has this problem] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| --- a/arch/arm/crypto/Makefile |
| +++ b/arch/arm/crypto/Makefile |
| @@ -10,10 +10,12 @@ aes-arm-y := aes-armv4.o aes_glue.o |
| aes-arm-bs-y := aesbs-core.o aesbs-glue.o |
| sha1-arm-y := sha1-armv4-large.o sha1_glue.o |
| |
| +ifdef REGENERATE_ARM_CRYPTO |
| quiet_cmd_perl = PERL $@ |
| cmd_perl = $(PERL) $(<) > $(@) |
| |
| $(src)/aesbs-core.S_shipped: $(src)/bsaes-armv7.pl |
| $(call cmd,perl) |
| +endif |
| |
| .PRECIOUS: $(obj)/aesbs-core.S |