2008-02-27 19:43:02

by Roland McGrath

[permalink] [raw]
Subject: [PATCH] x86 vdso: fix build locale dependency


Priit Laes discovered that the sed command processing nm output was
sensitive to locale settings. This was addressed in commit
03994f01e8b72b3d01fd3d09d1cc7c9f421a727c by using [:alnum:] in place of
[a-zA-Z0-9]. But that too is locale-dependent and may not always match
the identifiers it needs to. The better fix is just to run sed et al
with a fixed locale setting in all builds.

Signed-off-by: Roland McGrath <[email protected]>
CC: Priit Laes <[email protected]>
---
arch/x86/vdso/Makefile | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index b8bd0c4..0a8f474 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -48,9 +48,11 @@ obj-$(VDSO64-y) += vdso-syms.lds
# Match symbols in the DSO that look like VDSO*; produce a file of constants.
#
sed-vdsosym := -e 's/^00*/0/' \
- -e 's/^\([[:xdigit:]]*\) . \(VDSO[[:alnum:]_]*\)$$/\2 = 0x\1;/p'
+ -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$$/\2 = 0x\1;/p'
quiet_cmd_vdsosym = VDSOSYM $@
- cmd_vdsosym = $(NM) $< | sed -n $(sed-vdsosym) | LC_ALL=C sort > $@
+define cmd_vdsosym
+ $(NM) $< | LC_ALL=C sed -n $(sed-vdsosym) | LC_ALL=C sort > $@
+endef

$(obj)/%-syms.lds: $(obj)/%.so.dbg FORCE
$(call if_changed,vdsosym)


2008-02-27 20:43:25

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] x86 vdso: fix build locale dependency

On Wed, Feb 27, 2008 at 11:42:15AM -0800, Roland McGrath wrote:
>
> Priit Laes discovered that the sed command processing nm output was
> sensitive to locale settings. This was addressed in commit
> 03994f01e8b72b3d01fd3d09d1cc7c9f421a727c by using [:alnum:] in place of
> [a-zA-Z0-9]. But that too is locale-dependent and may not always match
> the identifiers it needs to. The better fix is just to run sed et al
> with a fixed locale setting in all builds.

Priit's original patch used the LC_ALL trick. It is
me to blame that it was replaced with [:alnum:] :-(

Sam

2008-02-27 20:46:17

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86 vdso: fix build locale dependency


* Sam Ravnborg <[email protected]> wrote:

> On Wed, Feb 27, 2008 at 11:42:15AM -0800, Roland McGrath wrote:
> >
> > Priit Laes discovered that the sed command processing nm output was
> > sensitive to locale settings. This was addressed in commit
> > 03994f01e8b72b3d01fd3d09d1cc7c9f421a727c by using [:alnum:] in place of
> > [a-zA-Z0-9]. But that too is locale-dependent and may not always match
> > the identifiers it needs to. The better fix is just to run sed et al
> > with a fixed locale setting in all builds.
>
> Priit's original patch used the LC_ALL trick. It is me to blame that
> it was replaced with [:alnum:] :-(

ok. I've queued up Roland's re-fix. We'll eventually converge to
something everyone is happy with ;-)

Ingo

2008-02-27 20:52:35

by Roland McGrath

[permalink] [raw]
Subject: Re: [PATCH] x86 vdso: fix build locale dependency

> ok. I've queued up Roland's re-fix. We'll eventually converge to
> something everyone is happy with ;-)

Hey, I'm happy with living in the C locale. It's catering to you
troublesome people covering the vast majority of the planet that has
me worrying about pedantic correctness for whatever the least-similar
LC_CTYPE anyone uses might entail. :-)


Thanks,
Roland