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

Matthias Schiffer posted 1 patch 4 years, 5 months ago
scripts/dtc/dtx_diff | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] scripts/dtc: dtx_diff: fix documentation for redirect workaround
Posted by Matthias Schiffer 4 years, 5 months ago
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 <matthias.schiffer@ew.tq-group.com>
---
 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

Re: [PATCH] scripts/dtc: dtx_diff: fix documentation for redirect workaround
Posted by Frank Rowand 4 years, 5 months ago
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 <matthias.schiffer@ew.tq-group.com>
> ---
>  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)
>  
>