Re: Linux 3.0.1 compile problem on different locales..

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Damn gmail ! It's send to your personal mail, not to list :(

This is a common problem and too many programs effected in
historically. Many smb, kde, evolution, apache etc. setups failed with
this reason.

In Turkish locale,

tolower('I') -> ascii(141) // in old IBM PC Charset. Other charsets
can be differ.
toupper('i') -> ascii(152)

Rarely i do a manually patch libc for strcasecmp(). Generally, if a
program uses strcasecmp or toupper/lower for internal strings, this
program can be broken in turkish locale.

For my personel know-how, patch kernel Makefile to change build env.
locale to "C" best solution. This problem can be occurred for other
langs. in different parts of kernel. Internatinoal linux developers
cannot be know all trics of other locales, naturally.

Thanks.

2011/8/16 Arnaud Lacombe <lacombar@xxxxxxxxx>:
> Hi,
>
> [Please do not reply only to me, it's considered rude for people on
> the public mailing list.]
>
> 2011/8/15 Serdar KÖYLÜ <s.koylux@xxxxxxxxx>:
>> Dist: MDV 2010.1, but very tweaked manually..
>>
>> bash-3.2$ set |grep LC
>> LC_ADDRESS=tr_TR.UTF-8
>> LC_COLLATE=tr_TR.UTF-8
>> LC_CTYPE=tr_TR.UTF-8
>> LC_IDENTIFICATION=tr_TR.UTF-8
>> LC_MEASUREMENT=tr_TR.UTF-8
>> LC_MESSAGES=tr_TR.UTF-8
>> LC_MONETARY=tr_TR.UTF-8
>> LC_NAME=tr_TR.UTF-8
>> LC_NUMERIC=tr_TR.UTF-8
>> LC_PAPER=tr_TR.UTF-8
>> LC_SOURCED=1
>> LC_TELEPHONE=tr_TR.UTF-8
>> LC_TIME=tr_TR.UTF-8
>> MAILCHECK=60
>>
>>
> he... obvious:
>
> SYNOPSIS
>       #include <ctype.h>
>
>       int toupper(int c);
>       int tolower(int c);
>
> BUGS
>       The details of what constitutes an uppercase or lowercase
> letter depend on the current locale.  For example, the default "C"
> locale does not know about umlauts, so no conversion is done for them.
>
>       In some non-English locales, there are lowercase letters with
> no corresponding uppercase equivalent; the German sharp s is one
> example.
>
>
> Is Turkish such a corner case where the capital I has no lowercase equivalent ?
>
> I guess we should reset the locale to C when generating
> include/config/ files, it'd be better than re-inventing our special
> case wheel.
>
> Thanks,
>  - Arnaud
>
>> 2011/8/16 Arnaud Lacombe <lacombar@xxxxxxxxx>:
>>> Hi,
>>>
>>> [Added linux-kbuild@ to the CC list.]
>>>
>>> 2011/8/15 Serdar KÖYLÜ <s.koylux@xxxxxxxxx>:
>>>> FYI.
>>>>
>>>> I download latest stable version and try compile it. But process
>>>> terminated with an error message, such as:
>>>>
>>>> error config/modversions.h, file or directory not found (Message is my
>>>> original language, in Turkish).
>>>>
>>>> I check manually this file, found it as:
>>>>
>>>> foo/linux-3.0.1/include/config/modversIons.h
>>>>
>>>> And all other "i" chars, translated into "I" chars. I run a grep, find this:
>>>>
>>>> [root@localhost kconfig]# grep -in tolower *.c
>>>> confdata.c:730:                 c = tolower(c);
>>>>
>>>> I set env. vars such as "LC_CTYPE=C" manually, retry compile kernel,
>>>> yes, it's compiled now.
>>>>
>>>> I don't know best solutions for this problem. A solutions can be write
>>>> some warnings in related documents. An other solution, make a patch,
>>>> such as:
>>>>
>>>> - confdata.c:730:                 c = tolower(c);
>>>> +#define TOLOWER(x) ((x) | 0x20)
>>>> +confdata.c:730:                 c = TOLOWER(c);
>>>>
>>>> or makefiles set locale to "C". I don't sure best solution. But this
>>>> problem occured in turkish and can be occurred other langs.
>>>>
>>> What is the Turkish locale you were using originally ?
>>>
>>> Thanks,
>>>  - Arnaud
>>>
>>>> Thanks, best regards..
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>> Please read the FAQ at  http://www.tux.org/lkml/
>>>>
>>>
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux