diff mbox series

[V3] Makefile: Sort u-boot-initial-env output

Message ID 20220301083851.2677-1-cniedermaier@dh-electronics.com
State Accepted
Commit cc5a490cf46565d3a42f86beaac05f56f4f40741
Delegated to: Tom Rini
Headers show
Series [V3] Makefile: Sort u-boot-initial-env output | expand

Commit Message

Christoph Niedermaier March 1, 2022, 8:38 a.m. UTC
This will sort the default environment file generated by
"make u-boot-initial-env", but won't sort the default
environment in the compiled u-boot binary. The file
u-boot-initial-env is considered to use for the userpace
environment access tools [1] in case of that the
environments is written the first time into its location.
This is done on the one hand for a better overview and
comparison of the generated environment file. On the other
hand it is to synchronize the output with the script
get_default_env.sh, which generated a sorted default
environment file. The sorting preserves the order of equal
variable names by sorting only the variable name, and
disable the last-resort comparison. After sorting,
unnoticed blank lines at the end move to the top. Avoid
that by removing it before sorting.

[1] https://github.com/sbabic/libubootenv

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Tested-by: Stefano Babic <sbabic@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Marek Behún <marek.behun@nic.cz>
To: u-boot@lists.denx.de
---
V2: - More detailed description of the patch in the commit message
V3: - Add forgotten tags
---
 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Simon Glass March 12, 2022, 2:25 a.m. UTC | #1
On Tue, 1 Mar 2022 at 01:42, Christoph Niedermaier
<cniedermaier@dh-electronics.com> wrote:
>
> This will sort the default environment file generated by
> "make u-boot-initial-env", but won't sort the default
> environment in the compiled u-boot binary. The file
> u-boot-initial-env is considered to use for the userpace
> environment access tools [1] in case of that the
> environments is written the first time into its location.
> This is done on the one hand for a better overview and
> comparison of the generated environment file. On the other
> hand it is to synchronize the output with the script
> get_default_env.sh, which generated a sorted default
> environment file. The sorting preserves the order of equal
> variable names by sorting only the variable name, and
> disable the last-resort comparison. After sorting,
> unnoticed blank lines at the end move to the top. Avoid
> that by removing it before sorting.
>
> [1] https://github.com/sbabic/libubootenv
>
> Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Reviewed-by: Stefano Babic <sbabic@denx.de>
> Tested-by: Stefano Babic <sbabic@denx.de>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Marek Behún <marek.behun@nic.cz>
> To: u-boot@lists.denx.de
> ---
> V2: - More detailed description of the patch in the commit message
> V3: - Add forgotten tags
> ---
>  Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini April 8, 2022, 12:30 p.m. UTC | #2
On Tue, Mar 01, 2022 at 09:38:51AM +0100, Christoph Niedermaier wrote:

> This will sort the default environment file generated by
> "make u-boot-initial-env", but won't sort the default
> environment in the compiled u-boot binary. The file
> u-boot-initial-env is considered to use for the userpace
> environment access tools [1] in case of that the
> environments is written the first time into its location.
> This is done on the one hand for a better overview and
> comparison of the generated environment file. On the other
> hand it is to synchronize the output with the script
> get_default_env.sh, which generated a sorted default
> environment file. The sorting preserves the order of equal
> variable names by sorting only the variable name, and
> disable the last-resort comparison. After sorting,
> unnoticed blank lines at the end move to the top. Avoid
> that by removing it before sorting.
> 
> [1] https://github.com/sbabic/libubootenv
> 
> Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Reviewed-by: Stefano Babic <sbabic@denx.de>
> Tested-by: Stefano Babic <sbabic@denx.de>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Marek Behún <marek.behun@nic.cz>
> To: u-boot@lists.denx.de
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index e6fc80aa6f..603747c3cc 100644
--- a/Makefile
+++ b/Makefile
@@ -2441,7 +2441,8 @@  endif
 
 quiet_cmd_genenv = GENENV  $@
 cmd_genenv = $(OBJCOPY) --dump-section .rodata.default_environment=$@ env/common.o; \
-	sed --in-place -e 's/\x00/\x0A/g' $@
+	sed --in-place -e 's/\x00/\x0A/g' $@; sed --in-place -e '/^\s*$$/d' $@; \
+	sort --field-separator== -k1,1 --stable $@ -o $@
 
 u-boot-initial-env: u-boot.bin
 	$(call if_changed,genenv)