Re: [PATCH v2 1/2] kbuild: Always validate DT binding examples

From: Masahiro Yamada
Date: Tue Apr 21 2020 - 13:37:56 EST


Hi Laurent,

On Tue, Apr 21, 2020 at 10:47 PM Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:

> HOSTLD scripts/dtc/dtc
> CHKDT Documentation/devicetree/bindings/arm/psci.yaml
> make[2]: execvp: /bin/sh: Argument list too long
> make[2]: *** [/home/laurent/src/kernel/this_is_a_long_directory_name/linux/Documentation/devicetree/bindings/Makefile:38: Documentation/devicetree/bindings/processed-schema-examples.yaml] Error 127
> make[1]: *** [/home/laurent/src/kernel/this_is_a_long_directory_name/linux/Makefile:1300: dt_binding_check] Error 2
> make[1]: Leaving directory '/home/laurent/src/kernel/this_is_a_long_directory_name/linux/output/x86'
> make: *** [Makefile:180: sub-make] Error 2
>
> It seems to only fail with out of tree builds (O=...). I expect that
> failures will become more common the more YAML bindings we have, even
> without long directory names.

Indeed. This will be a common problem sooner or later.

Rob already suggested a solution.


Another way is to use a pipe.

See the following code in scripts/Makefile.modpost


# Read out modules.order instead of expanding $(modules) to pass in modpost.
# Otherwise, allmodconfig would fail with "Argument list too long".
quiet_cmd_modpost = MODPOST $(words $(modules)) modules
cmd_modpost = sed 's/ko$$/o/' $(MODORDER) | $(MODPOST)


The same issue happens for modpost
because allmodconfig floods the command line.


--
Best Regards
Masahiro Yamada