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

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(-)
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)

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

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!
participants (3)
-
Christoph Niedermaier
-
Simon Glass
-
Tom Rini