OSDN Git Service

ARM: 8969/1: decompressor: simplify libfdt builds
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 22 Apr 2020 13:08:53 +0000 (14:08 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Wed, 29 Apr 2020 12:28:59 +0000 (13:28 +0100)
commit7ae4a78daacf240a8247cde73337dc4b26d253da
treeb5c3e60d7af7eb0f8bd9628797acf9884a60265e
parent4f39467e523e5fc8064dbabde8e927b1337e5b7e
ARM: 8969/1: decompressor: simplify libfdt builds

Copying source files during the build time may not end up with
as clean code as expected.

lib/fdt*.c simply wrap scripts/dtc/libfdt/fdt*.c, and it works
nicely. Let's follow this approach for the arm decompressor, too.

Add four wrappers, arch/arm/boot/compressed/fdt*.c and remove
the Makefile messes. Another nice thing is we no longer need to
maintain the own libfdt_env.h because the decompressor can include
<linux/libfdt_env.h>.

There is a subtle problem when generated files are turned into
check-in files.

When you are doing a rebuild of an existing object tree with O=
option, there exists stale "shipped" copies that the old Makefile
implementation created. The build system ends up with compiling the
stale generated files because Make searches for prerequisites in the
current directory, i.e. $(objtree) first, and then the directory
listed in VPATH, i.e. $(srctree).

To mend this issue, I added the following code:

  ifdef building_out_of_srctree
  $(shell rm -f $(addprefix $(obj)/, fdt_rw.c fdt_ro.c fdt_wip.c fdt.c))
  endif

This will need to stay for a while because "git bisect" crossing this
commit, otherwise, would result in a build error.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/boot/compressed/.gitignore
arch/arm/boot/compressed/Makefile
arch/arm/boot/compressed/atags_to_fdt.c
arch/arm/boot/compressed/fdt.c [new file with mode: 0644]
arch/arm/boot/compressed/fdt_ro.c [new file with mode: 0644]
arch/arm/boot/compressed/fdt_rw.c [new file with mode: 0644]
arch/arm/boot/compressed/fdt_wip.c [new file with mode: 0644]
arch/arm/boot/compressed/libfdt_env.h [deleted file]