[PATCH] Replace echo -n's used in environment processing with touch

Simon Glass sjg at chromium.org
Wed Feb 9 18:16:18 CET 2022


Hi Qthedev,

On Wed, 9 Feb 2022 at 08:25, qthedev <qthedev at protonmail.com> wrote:
>
> On Monday, February 7th, 2022 at 11:22 PM, Simon Glass <sjg at chromium.org> wrote:
>
> > Hi,
> >
> > On Sat, 5 Feb 2022 at 06:49, qthedev qthedev at protonmail.com wrote:
> >
> > > echo -n does not give the intended effect when invoked in macOS through /bin/sh, which is the shell make uses by default, see "https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working" for a detailed explanation. In this case, it resulted in "-n" being written to env.txt and env.in even though they should be empty, which caused compilation to fail with "Your board uses a text-file environment, so must not define CONFIG_EXTRA_ENV_SETTINGS".
> > >
> > > This patch prevents the error by replacing echo -n's with touch, as they are used to create empty files in these cases.
> >
> > Please word-wrap your commit message and use a real name :-)
> >
> > > diff --git a/Makefile b/Makefile
> > >
> > > index 184223ec63..3101aa0132 100644
> > >
> > > --- a/Makefile
> > >
> > > +++ b/Makefile
> > >
> > > @@ -1843,7 +1843,7 @@ quiet_cmd_gen_envp = ENVP $@
> > >
> > > -I$(srctree)/arch/$(ARCH)/include \
> > >
> > > $< -o $@; \
> > >
> > > else \
> > >
> > > -                 echo -n >$@ ; \\
> > >
> > >
> > >
> > > -                 touch $@ ; \\
> > >           fi
> > >
> > >
> > >
> > > include/generated/env.in: include/generated/env.txt FORCE
> > >
> > > $(call cmd,gen_envp)
> > >
> > > @@ -1860,7 +1860,7 @@ quiet_cmd_envc = ENVC $@
> > >
> > > elif [ -n "$(ENV_SOURCE_FILE)" ]; then \
> > >
> > > echo "Missing file $(ENV_FILE_CFG)"; \
> > >
> > > else \
> > >
> > > -                 echo -n >$@ ; \\
> > >
> > >
> > >
> > > -                 touch $@ ; \\
> > >           fi
> > >
> > >
> > >
> > > include/generated/env.txt: $(wildcard $(ENV_FILE)) FORCE
> >
> > Regards,
> >
> > Simon
>
> Hi,
>
> I am not able to use my real name for privacy reasons, I hope it is not a problem.
> Here is the patch with a word wrapped version of the commit message:
>
> echo -n does not give the intended effect when invoked in macOS
> through /bin/sh, which is the shell make uses by default, see
> "https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working"
> for a detailed explanation. In this case, it resulted in "-n" being
> written to env.txt and env.in even though they should be empty, which
> caused compilation to fail with "Your board uses a text-file environment,
> so must not define CONFIG_EXTRA_ENV_SETTINGS".
>
> This patch prevents the error by replacing echo -n's with touch,
> as they are used to create empty files in these cases.
>
> diff --git a/Makefile b/Makefile
> index 184223ec63..3101aa0132 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1843,7 +1843,7 @@ quiet_cmd_gen_envp = ENVP    $@
>                         -I$(srctree)/arch/$(ARCH)/include \
>                         $< -o $@; \
>         else \
> -               echo -n >$@ ; \
> +               touch $@ ; \
>         fi
>  include/generated/env.in: include/generated/env.txt FORCE
>         $(call cmd,gen_envp)
> @@ -1860,7 +1860,7 @@ quiet_cmd_envc = ENVC    $@
>         elif [ -n "$(ENV_SOURCE_FILE)" ]; then \
>                 echo "Missing file $(ENV_FILE_CFG)"; \
>         else \
> -               echo -n >$@ ; \
> +               touch $@ ; \
>         fi
>
>  include/generated/env.txt: $(wildcard $(ENV_FILE)) FORCE

I don't think we can accept anonymous patches since the sign-off is
not meaningful in that situation. Perhaps you could get someone else
to submit it for you and sign off?

Information about submitting patches is here:

https://www.denx.de/wiki/U-Boot/Patches

+U-Boot Mailing List
+Tom Rini for thoughts on this

Regards,
Simon


More information about the U-Boot mailing list