Re: [PATCH] mips: decompressor: do not copy source files while building
From: Masahiro Yamada
Date: Wed Nov 10 2021 - 21:59:37 EST
On Thu, Nov 11, 2021 at 3:52 AM Thomas Bogendoerfer
<tsbogend@xxxxxxxxxxxxxxxx> wrote:
>
> On Thu, Nov 11, 2021 at 02:02:32AM +0900, Masahiro Yamada wrote:
> > On Wed, Nov 10, 2021 at 5:56 PM Thomas Bogendoerfer
> > <tsbogend@xxxxxxxxxxxxxxxx> wrote:
> > >
> > > On Fri, Nov 05, 2021 at 11:38:14AM +0900, Masahiro Yamada wrote:
> > > > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt
> > > > builds") stated, copying source files during the build time may not
> > > > end up with as clean code as expected.
> > > >
> > > > Do similar for mips to clean up the Makefile and .gitignore.
> > > >
> > > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > > > ---
> > > >
> > > > arch/mips/boot/compressed/.gitignore | 3 ---
> > > > arch/mips/boot/compressed/Makefile | 12 ------------
> > > > arch/mips/boot/compressed/ashldi3.c | 2 ++
> > > > arch/mips/boot/compressed/bswapsi.c | 2 ++
> > > > arch/mips/boot/compressed/uart-ath79.c | 2 ++
> > > > scripts/remove-stale-files | 5 +++++
> > > > 6 files changed, 11 insertions(+), 15 deletions(-)
> > > > delete mode 100644 arch/mips/boot/compressed/.gitignore
> > > > create mode 100644 arch/mips/boot/compressed/ashldi3.c
> > > > create mode 100644 arch/mips/boot/compressed/bswapsi.c
> > > > create mode 100644 arch/mips/boot/compressed/uart-ath79.c
> > > >
> > > > diff --git a/arch/mips/boot/compressed/.gitignore b/arch/mips/boot/compressed/.gitignore
> > > > deleted file mode 100644
> > > > index d358395614c9..000000000000
> > > > --- a/arch/mips/boot/compressed/.gitignore
> > > > +++ /dev/null
> > > > @@ -1,3 +0,0 @@
> > > > -# SPDX-License-Identifier: GPL-2.0-only
> > > > -ashldi3.c
> > > > -bswapsi.c
> > > > diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
> > > > index 3548b3b45269..e6584dab2360 100644
> > > > --- a/arch/mips/boot/compressed/Makefile
> > > > +++ b/arch/mips/boot/compressed/Makefile
> > > > @@ -50,20 +50,8 @@ vmlinuzobjs-$(CONFIG_MIPS_ALCHEMY) += $(obj)/uart-alchemy.o
> > > > vmlinuzobjs-$(CONFIG_ATH79) += $(obj)/uart-ath79.o
> > > > endif
> > > >
> > > > -extra-y += uart-ath79.c
> > > > -$(obj)/uart-ath79.c: $(srctree)/arch/mips/ath79/early_printk.c
> > > > - $(call cmd,shipped)
> > > > -
> > > > vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o
> > > >
> > > > -extra-y += ashldi3.c
> > > > -$(obj)/ashldi3.c: $(obj)/%.c: $(srctree)/lib/%.c FORCE
> > > > - $(call if_changed,shipped)
> > > > -
> > > > -extra-y += bswapsi.c
> > > > -$(obj)/bswapsi.c: $(obj)/%.c: $(srctree)/arch/mips/lib/%.c FORCE
> > > > - $(call if_changed,shipped)
> > > > -
> > > > targets := $(notdir $(vmlinuzobjs-y))
> > > >
> > > > targets += vmlinux.bin
> > > > diff --git a/arch/mips/boot/compressed/ashldi3.c b/arch/mips/boot/compressed/ashldi3.c
> > > > new file mode 100644
> > > > index 000000000000..f7bf6a7aae31
> > > > --- /dev/null
> > > > +++ b/arch/mips/boot/compressed/ashldi3.c
> > > > @@ -0,0 +1,2 @@
> > > > +// SPDX-License-Identifier: GPL-2.0-only
> > > > +#include "../../../../lib/ashldi3.c"
> > > > diff --git a/arch/mips/boot/compressed/bswapsi.c b/arch/mips/boot/compressed/bswapsi.c
> > > > new file mode 100644
> > > > index 000000000000..fdb9c6476904
> > > > --- /dev/null
> > > > +++ b/arch/mips/boot/compressed/bswapsi.c
> > > > @@ -0,0 +1,2 @@
> > > > +// SPDX-License-Identifier: GPL-2.0-only
> > > > +#include "../../lib/bswapsi.c"
> > > > diff --git a/arch/mips/boot/compressed/uart-ath79.c b/arch/mips/boot/compressed/uart-ath79.c
> > > > new file mode 100644
> > > > index 000000000000..d686820921be
> > > > --- /dev/null
> > > > +++ b/arch/mips/boot/compressed/uart-ath79.c
> > > > @@ -0,0 +1,2 @@
> > > > +// SPDX-License-Identifier: GPL-2.0-only
> > > > +#include "../../ath79/early_printk.c"
> > > > diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
> > > > index eb630ee287c3..c534fe1eac16 100755
> > > > --- a/scripts/remove-stale-files
> > > > +++ b/scripts/remove-stale-files
> > > > @@ -28,4 +28,9 @@ if [ -n "${building_out_of_srctree}" ]; then
> > > > do
> > > > rm -f arch/arm/boot/compressed/${f}
> > > > done
> > > > +
> > > > + for f in uart-ath79.c ashldi3.c bswapsi.c
> > > > + do
> > > > + rm -f arch/mips/boot/compressed/${f}
> > > > + done
> > >
> > > hmm, isn't this the wrong action now that these files have been added
> > > to git ?
> > >
> > > Thomas.
> >
> >
> > Please note that the entire code block is enclosed by:
> >
> > if [ -n "${building_out_of_srctree}" ]; then
> > ...
> > fi
> >
> >
> > "building_out_of_srctree" is set when you are doing
> > out-of-tree build (O=<output-dir>).
> >
> > So, only the generated files are removed.
>
> but there aren't copied/generated any longer or I'm missing someting ?
People do "git pull" without cleaning the tree.
(and we should not require users to do "make clean")
[1] ashldi3.c and bswapsi.c will be remaining
in the build directory, which were generated
by an older commit
[2] ashldi3.c and bswapsi.c will be added to the
source tree when people pull this commit
[1] takes precedence over [2].
So, old files will be compiled. This is a problem.
That's why I am removing [1] for O= builds.
>
> Anyway I've applied your patch to mips-next with changes to also cover
>
> https://patchwork.kernel.org/project/linux-mips/patch/20211110030944.6733-1-rdunlap@xxxxxxxxxxxxx/
>
> Thomas.
>
> --
> Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
> good idea. [ RFC1925, 2.3 ]
--
Best Regards
Masahiro Yamada