localization and make buildworld

Rein Kadastik wigry at uninet.ee
Sat Sep 3 12:03:00 GMT 2005


Hi,

There is a problem with make buildworld if the LANG is set to 
et_EE.ISO8859-1 (and propbaly to some other locales).

This setting alters the way system treats the alphabet and therefore the 
regular expression a-z does not cover the whole alphabet anymore. The 
reason is that in Estonian alphabet, the z is between s and t so the 
following characters are left out: t, u, v, w, x, y

Therefore the following sed command will not work always: sed -e 
'/^\([a-z_][a-z_]*\) /s//\1 gen_/'

for example "int something" is not transformed to "int gen_something" 
(without double quotes) but "char something" is transformed to "char 
gen_something"

sed fails in three modules: ncurses (lib_gen.c), csh/tcsh (tc.const.h) 
and gdb (init.c)

The solution. Force LANG=C throughout the whole make buildworld process 
so that regex [a-z] will cover any character.

Rein


More information about the freebsd-bugs mailing list