Linux разное


Как вылечить локализацию в Linux


From: Ales Popov
NM) libc-5.2.18, ld.so-1.7.14...
Вот в этой библиотеке дело ^^^^^^^^^^ !
Можно просто взять ее с CD Linux.Yes или пересобрать эту библиотеку.
Только надо в сырцах исправить, - это вот с того сидюка:

=== Begin 11.r === Eugene Shakhtarin


Локализация koi8-r для версии libc 5.2.18 (ELF).
Сделано в Linux kernel 1.3.57, gcc 2.7.2.

  1. Описание механизма генерации locale находится здесь: http://es-sun2.fernuni-hagen.de/public/mirrors/GCC-experimental/Intro
  2. Стандарты charmap и locale находятся здесь:
  3. В дистрибутиве libc 5.2.18 функция libc/locale/ctype.c неисправна, а именно, в операторе (is_upper ? toupper_done : tolower_done) |= BIT (token); выражение BIT (token) равно 0 вместо необходимой 1 и tolower_done получает значение 0, даже когда tolower таблица сформирована. ctype.c далее принимает решение заменить tolower на умолчание.
    Для починки требуется замена в libc/locale/ctype.c:

    /* static unsigned short toupper_done = 0; static unsigned short tolower_done = 0; */ static unsigned toupper_done = 0; static unsigned tolower_done = 0;


    Вот соответствующий патч:

    *** ctype.c.orig Tue Jan 16 19:02:43 1996 --- ctype.c Tue Jan 16 19:03:23 1996 *************** *** 54,59 **** --- 54,63 ---- /* Remember which class or conversion is already done. */ static unsigned short class_done = 0; + /* static unsigned short toupper_done = 0; static unsigned short tolower_done = 0; + */ + static unsigned toupper_done = 0; + static unsigned tolower_done = 0; #define SYNTAX_ERROR \


    Здесь находятся http://eugene.mplik.ru/pub/Linux/utils/nls/locale/libc-5.2.18.fix/:
    ctype.c -- 6534 исправленный вариант ctype.c
    localedef.gz -- 53833 программа, оттранслированная для отладчика с ключем -g

  4. Трансляция localedef.c (и locale.c):

    make SHARED= programs

  5. В libc 5.2.18 поддержка LC_COLLATE не реализована вообще.
  6. Для генерации базы данных locale для koi8-r в депозитарии нет готовых исходных данных.


    Исходные данные для генерации koi8-r находятся здесь:
    http://eugene.mplik.ru/pub/Linux/utils/nls/locale/share/nls/charmap/KOI8-R
    http://eugene.mplik.ru/pub/Linux/utils/nls/locale/share/nls/locale/ru_RU
    Эти данные подготовлены на основе стандартов ISO 10646 (Unicode), RFC-1489 и депозитария
    Файлы KOI8-R и ru_RU не являются официальными документами и не обладают никаким формальным статусом. Они сделаны для личного употребления, не имеют ограничений на тиражирование, и гарантия их пригодности для каких-либо определенных целей абсолютно отсутствует.

  7. Генерация базы данных locale для koi8-r. 7.1) Создать каталоги




    Начало    Вперед



    Книжный магазин