[U-Boot] [PATCH] fix linker generated lists on non-C locales

Marek Vasut marex at denx.de
Sun Dec 2 20:13:13 CET 2012


Dear Pavel Herrmann,

> On Sunday 02 of December 2012 19:12:17 Marek Vasut wrote:
> > Dear Pavel Herrmann,
> > 
> > > On Sunday 02 of December 2012 18:50:53 Marek Vasut wrote:
> > > > Dear Pavel Herrmann,
> > > > 
> > > > > Setting LC_COLLATE=C is not enough if LC_ALL=en_US.utf8. The result
> > > > > is a build that has no available commands. Setting LC_ALL=C for
> > > > > the generator script helps.
> > > > > 
> > > > > Signed-off-by: Pavel Herrmann <morpheus.ibis at gmail.com>
> > > > > ---
> > > > > 
> > > > >  helper.mk | 4 ++--
> > > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > > > 
> > > > > diff --git a/helper.mk b/helper.mk
> > > > > index 79a1da0..2b75182 100644
> > > > > --- a/helper.mk
> > > > > +++ b/helper.mk
> > > > > @@ -35,7 +35,7 @@
> > > > > 
> > > > >  #    line. Next, append "@" at the end and print the line.
> > > > >  Finally, #    append "~" at the end of line. This will make sense
> > > > >  in conjunction #    with 6) and 7).
> > > > > 
> > > > > -# 7) Sort the lines. It is imperative to use LC_COLLATE=C here
> > > > > because
> > > > > +# 7) Sort the lines. It is imperative to use LC_ALL=C here because
> > > > > 
> > > > >  #    with this, the "\a" symbol is first and "~" symbol is last.
> > > > >  Any #    other symbols fall inbetween. Symbols like "@", which
> > > > >  marks the #    end of current line (representing current section)
> > > > >  and ".", which
> > > > > 
> > > > > @@ -57,7 +57,7 @@ $(1): $(2)
> > > > > 
> > > > >  		-e 's/\.[^\.]\+$$$$//' \
> > > > >  		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | 
\
> > > > >  	
> > > > >  	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
> > > > > 
> > > > > -	LC_COLLATE=C sort -u | \
> > > > > +	LC_ALL=C sort -u | \
> > > > 
> > > > How will this work? LC_COLLATE is supposed to adjust the behavior of
> > > > "sort" command, without it, "sort" will not behave as expected.
> > > 
> > > Clearly, LC_COLLATE is not enough for it to behave correctly, as seen
> > > on my
> > > setup.
> > > This works because LC_ALL sets LC_COLLATE, as well as all other LC_*
> > > environment variables.
> > 
> > Do you have any reference where I can verify this claim please?
> 
> Which claim? that this helps, or that LC_ALL sets LC_COLLATE as well?

You claim the following:

"This works because LC_ALL sets LC_COLLATE, as well as all other LC_* 
environment variables."

Where can I verify this? Do you have any link to any documentation?

Best regards,
Marek Vasut


More information about the U-Boot mailing list