From mboxrd@z Thu Jan 1 00:00:00 1970 From: sam@ravnborg.org (Sam Ravnborg) Date: Mon, 28 Jul 2014 21:06:52 +0200 Subject: [PATCH] arm64/crypto: fix makefile rule for aes-glue-%.o In-Reply-To: References: <20140724161225.GA11204@ravnborg.org> <20140724204526.GA11754@ravnborg.org> <20140727184010.GA26029@ravnborg.org> Message-ID: <20140728190652.GB366@ravnborg.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, Jul 28, 2014 at 07:00:17PM +0200, Ard Biesheuvel wrote: > On 27 July 2014 20:40, Sam Ravnborg wrote: > >> > >> > Btw. the current solution is already faulty - even with the fix. > >> > There are no support for make C=2 arch/.../crypto/ > >> > > >> > >> So can you elaborate on how it is faulty? > > > > When you run "make C=2 arch/.../crypto/" then sparse shall be run > > for all .c files also if they are already built. > > But due to the re-implementation of some parts of the kbuild logic > > in the makefile this does not happen with the -glue file. > > > > A minor detail - but this may not be the only wreckage we see over time. > > > > I agree. Any suggestions for a generic way to solve this? Yes - two small .c file that each include the same glue file. Anything else is over-engineering. > BTW, while looking into this issue, I noticed something else that is strange: > after touch'ing sha1-ce-glue.c in arch/arm64/crypto and re-executing > 'make V=2', this is what I get > > make[1]: Entering directory `/home/ard/linux-arm64-build' > CHK include/config/kernel.release > Using /home/ard/linux-2.6 as source for kernel > GEN ./Makefile > CHK include/generated/uapi/linux/version.h > CHK include/generated/utsrelease.h > CALL /home/ard/linux-2.6/scripts/checksyscalls.sh - due to target missing > CHK include/generated/compile.h > CC arch/arm64/crypto/sha1-ce-glue.o - due to: > /home/ard/linux-2.6/arch/arm64/crypto/sha1-ce-glue.c > LD arch/arm64/crypto/sha1-ce.o - due to: arch/arm64/crypto/sha1-ce-glue.o > LD arch/arm64/crypto/sha2-ce.o - due to: arch/arm64/crypto/sha1-ce-glue.o > LD arch/arm64/crypto/ghash-ce.o - due to: > arch/arm64/crypto/sha1-ce-glue.o > LD arch/arm64/crypto/aes-ce-ccm.o - due to: > arch/arm64/crypto/sha1-ce-glue.o > LD arch/arm64/crypto/built-in.o - due to: > arch/arm64/crypto/sha1-ce.o arch/arm64/crypto/sha2-ce.o > arch/arm64/crypto/ghash-ce.o arch/arm64/crypto/aes-ce-ccm.o > CHK kernel/config_data.h > LINK vmlinux - due to: arch/arm64/crypto/built-in.o Just from inspecting the above I have no idea. And I have no arm64 toolchain installed to test myself. So for now no clue - sorry. Sam