diff mbox series

[U-Boot] env: Fix operation of 'make environ'

Message ID 20170827164850.31986-1-sjg@chromium.org
State Superseded
Delegated to: Tom Rini
Headers show
Series [U-Boot] env: Fix operation of 'make environ' | expand

Commit Message

Simon Glass Aug. 27, 2017, 4:48 p.m. UTC
This was broken by the recent environment refactoring. Specifically:

$  make environ
scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
make[1]: *** No rule to make target 'tools/environ/Makefile'.  Stop.
make: *** [Makefile:1469: environ] Error 2

Fix this by updating the Makefile and adjusting the #include filesnames in
two C files.

Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
Reported-by: Måns Rullgård <mans@mansr.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile              | 2 +-
 tools/env/env_attr.c  | 2 +-
 tools/env/env_flags.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Comments

Måns Rullgård Aug. 28, 2017, 11:01 a.m. UTC | #1
Simon Glass <sjg@chromium.org> writes:

> This was broken by the recent environment refactoring. Specifically:
>
> $  make environ
> scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
> make[1]: *** No rule to make target 'tools/environ/Makefile'.  Stop.
> make: *** [Makefile:1469: environ] Error 2
>
> Fix this by updating the Makefile and adjusting the #include filesnames in
> two C files.
>
> Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
> Reported-by: Måns Rullgård <mans@mansr.com>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>  Makefile              | 2 +-
>  tools/env/env_attr.c  | 2 +-
>  tools/env/env_flags.c | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)

This still breaks any build scripts using the old target (yes, there are
many).  That's probably acceptable, but a mention of it in some release
note would be nice.

Come to think of it, if we're anyway going to break things, how about
giving that target a more descriptive name than environ?  I suggest
envtools.

> diff --git a/Makefile b/Makefile
> index a0f3bfd2a52..dd9d5678118 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1466,7 +1466,7 @@ checkarmreloc: u-boot
>  	fi
>
>  environ: scripts_basic
> -	$(Q)$(MAKE) $(build)=tools/$@
> +	$(Q)$(MAKE) $(build)=tools/env
>
>  tools-only: scripts_basic $(version_h) $(timestamp_h)
>  	$(Q)$(MAKE) $(build)=tools
> diff --git a/tools/env/env_attr.c b/tools/env/env_attr.c
> index 502d4c900bf..4d8536335c3 100644
> --- a/tools/env/env_attr.c
> +++ b/tools/env/env_attr.c
> @@ -1 +1 @@
> -#include "../../common/env_attr.c"
> +#include "../../env/attr.c"
> diff --git a/tools/env/env_flags.c b/tools/env/env_flags.c
> index b261cb8e390..71e13e2021f 100644
> --- a/tools/env/env_flags.c
> +++ b/tools/env/env_flags.c
> @@ -1 +1 @@
> -#include "../../common/env_flags.c"
> +#include "../../env/flags.c"
> -- 
> 2.14.1.342.g6490525c54-goog
>
Tom Rini Aug. 28, 2017, 11:13 a.m. UTC | #2
On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
> Simon Glass <sjg@chromium.org> writes:
> 
> > This was broken by the recent environment refactoring. Specifically:
> >
> > $  make environ
> > scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
> > make[1]: *** No rule to make target 'tools/environ/Makefile'.  Stop.
> > make: *** [Makefile:1469: environ] Error 2
> >
> > Fix this by updating the Makefile and adjusting the #include filesnames in
> > two C files.
> >
> > Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
> > Reported-by: Måns Rullgård <mans@mansr.com>
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> 
> This still breaks any build scripts using the old target (yes, there are
> many).  That's probably acceptable, but a mention of it in some release
> note would be nice.
> 
> Come to think of it, if we're anyway going to break things, how about
> giving that target a more descriptive name than environ?  I suggest
> envtools.

Too early, no coffee.  Can't we do some make logic so that 'env' is
still a target and thus we don't break those scripts?  Otherwise, yes,
I'll make sure to indicate in at least the v2017.09 release email that
we renamed 'env' to envtools or something.  Thanks!
Joe Hershberger Aug. 28, 2017, 4:08 p.m. UTC | #3
On Mon, Aug 28, 2017 at 6:13 AM, Tom Rini <trini@konsulko.com> wrote:
> On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
>> Simon Glass <sjg@chromium.org> writes:
>>
>> > This was broken by the recent environment refactoring. Specifically:
>> >
>> > $  make environ
>> > scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
>> > make[1]: *** No rule to make target 'tools/environ/Makefile'.  Stop.
>> > make: *** [Makefile:1469: environ] Error 2
>> >
>> > Fix this by updating the Makefile and adjusting the #include filesnames in
>> > two C files.
>> >
>> > Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
>> > Reported-by: Måns Rullgård <mans@mansr.com>
>> > Signed-off-by: Simon Glass <sjg@chromium.org>
>>
>> This still breaks any build scripts using the old target (yes, there are
>> many).  That's probably acceptable, but a mention of it in some release
>> note would be nice.
>>
>> Come to think of it, if we're anyway going to break things, how about
>> giving that target a more descriptive name than environ?  I suggest
>> envtools.
>
> Too early, no coffee.  Can't we do some make logic so that 'env' is
> still a target and thus we don't break those scripts?  Otherwise, yes,
> I'll make sure to indicate in at least the v2017.09 release email that
> we renamed 'env' to envtools or something.  Thanks!

It's really just building the fw_printenv tool (which uses a symlink
for fw_setenv). It seems like a much clearer make target, and source
dir for that matter, would be fw_printenv.

-Joe
Simon Glass Sept. 5, 2017, 7:54 a.m. UTC | #4
Hi,

On 29 August 2017 at 00:08, Joe Hershberger <joe.hershberger@ni.com> wrote:
>
> On Mon, Aug 28, 2017 at 6:13 AM, Tom Rini <trini@konsulko.com> wrote:
> > On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
> >> Simon Glass <sjg@chromium.org> writes:
> >>
> >> > This was broken by the recent environment refactoring. Specifically:
> >> >
> >> > $  make environ
> >> > scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
> >> > make[1]: *** No rule to make target 'tools/environ/Makefile'.  Stop.
> >> > make: *** [Makefile:1469: environ] Error 2
> >> >
> >> > Fix this by updating the Makefile and adjusting the #include filesnames in
> >> > two C files.
> >> >
> >> > Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
> >> > Reported-by: Måns Rullgård <mans@mansr.com>
> >> > Signed-off-by: Simon Glass <sjg@chromium.org>
> >>
> >> This still breaks any build scripts using the old target (yes, there are
> >> many).  That's probably acceptable, but a mention of it in some release
> >> note would be nice.
> >>
> >> Come to think of it, if we're anyway going to break things, how about
> >> giving that target a more descriptive name than environ?  I suggest
> >> envtools.
> >
> > Too early, no coffee.  Can't we do some make logic so that 'env' is
> > still a target and thus we don't break those scripts?  Otherwise, yes,
> > I'll make sure to indicate in at least the v2017.09 release email that
> > we renamed 'env' to envtools or something.  Thanks!
>
> It's really just building the fw_printenv tool (which uses a symlink
> for fw_setenv). It seems like a much clearer make target, and source
> dir for that matter, would be fw_printenv.
>
> -Joe

I decided to go with envtools for v2 since even though there is a
symlink, there are two tools intended from this.

If you don't like it let me know and I can change it.

I could not figure out how to make the 'env' target build what we have
now. We make each subdir a target in the main Makefile, so it just
produced a duplicate target.

Regards,
Simon
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index a0f3bfd2a52..dd9d5678118 100644
--- a/Makefile
+++ b/Makefile
@@ -1466,7 +1466,7 @@  checkarmreloc: u-boot
 	fi
 
 environ: scripts_basic
-	$(Q)$(MAKE) $(build)=tools/$@
+	$(Q)$(MAKE) $(build)=tools/env
 
 tools-only: scripts_basic $(version_h) $(timestamp_h)
 	$(Q)$(MAKE) $(build)=tools
diff --git a/tools/env/env_attr.c b/tools/env/env_attr.c
index 502d4c900bf..4d8536335c3 100644
--- a/tools/env/env_attr.c
+++ b/tools/env/env_attr.c
@@ -1 +1 @@ 
-#include "../../common/env_attr.c"
+#include "../../env/attr.c"
diff --git a/tools/env/env_flags.c b/tools/env/env_flags.c
index b261cb8e390..71e13e2021f 100644
--- a/tools/env/env_flags.c
+++ b/tools/env/env_flags.c
@@ -1 +1 @@ 
-#include "../../common/env_flags.c"
+#include "../../env/flags.c"