
Hi Michal, Emmanuel,
On 31/05/2018 17:14, Emmanuel Vadot wrote:
On Thu, 31 May 2018 16:28:46 +0200 Michal Simek michal.simek@xilinx.com wrote:
On 31.5.2018 14:58, Luca Ceresoli wrote:
The value of PMUFW_INIT_FILE is prefixed with "$(srctree)/", thus forcing it to be a relative path inside the U-Boot source tree. Since the PMUFW is a binary file generated outside of U-Boot, the PMUFW binary must be copied inside the U-Boot source tree before the build.
This generates a few problems:
- if the source tree is shared among different out-of-tree builds, they will pollute (and potentially corrupt) each other
- the source tree cannot be read-only
- any buildsystem must add a command to copy the PMUFW binary
- putting an externally-generated binary in the source tree is ugly as hell
Avoid these problems by accepting an absolute path for PMUFW_INIT_FILE. This would be as simple as removing the "$(srctree)/" prefix, but in order to keep backward compatibility we rather use the shell and readlink to get the absolute path even when starting from a relative path.
Tested in the 9 possible combinations of:
- PMUFW_INIT_FILE empty, relative or absolute
- building in-tree, in subdir, in other directory
Signed-off-by: Luca Ceresoli luca@lucaceresoli.net Cc: Michal Simek michal.simek@xilinx.com Cc: Simon Glass sjg@chromium.org
scripts/Makefile.spl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 057389997de6..ef1681ef4bf5 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -168,7 +168,7 @@ MKIMAGEFLAGS_boot.bin = -T zynqimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) endif ifdef CONFIG_ARCH_ZYNQMP MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \
- -n $(srctree)/$(CONFIG_PMUFW_INIT_FILE)
- -n "$(shell cd $(srctree); readlink -m $(CONFIG_PMUFW_INIT_FILE))"
endif
spl/boot.bin: $(obj)/u-boot-spl.bin FORCE
looks good.
Tom: Do we still have people who build u-boot on BSD system? I would like to know if this readlink -m works there.
Thanks, Michal _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
We don't have -m on FreeBSD and after checking they don't either on OpenBSD and NetBSD.
Ok, then we need a portable version. Thanks for the heads up.
The problem with 'readlink -f' is that for a mistyped filename it will call
./tools/mkimage <...> -n "" <...>
and exit successfully producing a boot.bin without a pmufw. :(
I'll have to find out where to check for file existence, which cannot be done where the readlink is in the present patch.