2022-01-12 10:15:28

by Matthias Schiffer

[permalink] [raw]
Subject: [PATCH] scripts/dtc: dtx_diff: fix documentation for redirect workaround

dtx_diff suggests to use <(...) syntax to pipe two inputs into it, but
this has never worked: The /proc/self/fds/... paths passed by the shell
will fail the `[ -f "${dtx}" ] && [ -r "${dtx}" ]` check in compile_to_dts,
but even with this check removed, the function cannot work: hexdump will
eat up the DTB magic, making the subsequent dtc call fail, as a pipe
cannot be rewound.

Change the example to use `diff -u` directly.

Fixes: 10eadc253ddf ("dtc: create tool to diff device trees")
Signed-off-by: Matthias Schiffer <[email protected]>
---
scripts/dtc/dtx_diff | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
index d3422ee15e30..f97eb83420a4 100755
--- a/scripts/dtc/dtx_diff
+++ b/scripts/dtc/dtx_diff
@@ -62,7 +62,7 @@ Otherwise DTx is treated as a dts source file (aka .dts).
may not work since \${ARCH} is part of the include path. Two possible
workarounds:

- `basename $0` \\
+ diff -u \\
<(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\
<(ARCH=arch_of_dtx_2 `basename $0` DTx_2)

--
2.25.1



2022-01-12 19:46:50

by Frank Rowand

[permalink] [raw]
Subject: Re: [PATCH] scripts/dtc: dtx_diff: fix documentation for redirect workaround

Hi Matthisas,

On 1/12/22 4:14 AM, Matthias Schiffer wrote:
> dtx_diff suggests to use <(...) syntax to pipe two inputs into it, but
> this has never worked: The /proc/self/fds/... paths passed by the shell
> will fail the `[ -f "${dtx}" ] && [ -r "${dtx}" ]` check in compile_to_dts,
> but even with this check removed, the function cannot work: hexdump will
> eat up the DTB magic, making the subsequent dtc call fail, as a pipe
> cannot be rewound.

Thanks for catching this.

I would rather just remove this first workaround entirely instead of
changing it to use 'diff'. Can you redo the patch to do the removal?

Thanks,

Frank


>
> Change the example to use `diff -u` directly.
>
> Fixes: 10eadc253ddf ("dtc: create tool to diff device trees")
> Signed-off-by: Matthias Schiffer <[email protected]>
> ---
> scripts/dtc/dtx_diff | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
> index d3422ee15e30..f97eb83420a4 100755
> --- a/scripts/dtc/dtx_diff
> +++ b/scripts/dtc/dtx_diff
> @@ -62,7 +62,7 @@ Otherwise DTx is treated as a dts source file (aka .dts).
> may not work since \${ARCH} is part of the include path. Two possible
> workarounds:
>
> - `basename $0` \\
> + diff -u \\
> <(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\
> <(ARCH=arch_of_dtx_2 `basename $0` DTx_2)
>
>