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

Christoph Niedermaier cniedermaier at dh-electronics.com
Fri Feb 25 23:27:30 CET 2022


From: Simon Glass [mailto:sjg at chromium.org]
Sent: Friday, February 25, 2022 12:54 AM
> 
> Hi Christoph,
>

Hi Simon,
 
> On Thu, 24 Feb 2022 at 02:59, Christoph Niedermaier
> <cniedermaier at dh-electronics.com> wrote:
>>
>> From: Simon Glass [mailto:sjg at chromium.org]
>> Sent: Wednesday, February 23, 2022 11:59 PM
>>>
>>> Hi Christoph,
>>>
>>
>> Hi Simon,
>>
>>> On Wed, 23 Feb 2022 at 02:33, Christoph Niedermaier <cniedermaier at dh-electronics.com> wrote:
>>>>
>>>> For a better overview and better comparison sort the initial
>>>> environment as the get_default_env.sh script does. We need
>>>> to preserve the order of equal variable names. So only sort
>>>> by the variable name, and disable the last-resort comparison.
>>>> Also remove blank lines before sorting.
>>>>
>>>> Signed-off-by: Christoph Niedermaier <cniedermaier at dh-electronics.com>
>>>> Cc: Stefano Babic <sbabic at denx.de>
>>>> Cc: Simon Glass <sjg at chromium.org>
>>>> Cc: Marek Behún <marek.behun at nic.cz>
>>>> To: u-boot at lists.denx.de
>>>> ---
>>>>  Makefile | 3 ++-
>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> Does this sort the text environment too?
>>
>> It sorts only the generated file "u-boot-initial-env" which comes
>> from the default environment.
>> What exactly do you mean by "text environment"?
> 
> https://u-boot.readthedocs.io/en/latest/usage/environment.html#text-based-environment
> 
> Can you please expand your commit message a bit to explain exactly
> what this affects? Also how about an update to the above page that
> describes how the env is sorted.

I will make a V2 of the patch with a better commit message.

The sorting only affects the u-boot-initial-env file for the userspace
tools [1]. The environments of the bootloader are sorted if printed by
printenv. I think mentioning the u-boot-initial-env file in the page
above will lead to more confusion. It think it belongs more to the
userspace tools [1].

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

>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index 4b152249ca..67ed4edc1a 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -2439,7 +2439,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)
>>

Regards
Christoph


More information about the U-Boot mailing list