* Linux 3.0.1 compile problem on different locales.. @ 2011-08-15 20:51 Serdar KÖYLÜ 2011-08-15 22:58 ` Arnaud Lacombe 0 siblings, 1 reply; 7+ messages in thread From: Serdar KÖYLÜ @ 2011-08-15 20:51 UTC (permalink / raw) To: linux-kernel 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. Thanks, best regards.. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Linux 3.0.1 compile problem on different locales.. 2011-08-15 20:51 Linux 3.0.1 compile problem on different locales Serdar KÖYLÜ @ 2011-08-15 22:58 ` Arnaud Lacombe [not found] ` <CAKxaRT+hCXu-921RoNw0aiiffZzNGQNgQX0FGfsfdSOP95DzBQ@mail.gmail.com> 0 siblings, 1 reply; 7+ messages in thread From: Arnaud Lacombe @ 2011-08-15 22:58 UTC (permalink / raw) To: Serdar KÖYLÜ; +Cc: linux-kernel, linux-kbuild Hi, [Added linux-kbuild@ to the CC list.] 2011/8/15 Serdar KÖYLÜ <s.koylux@gmail.com>: > 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CAKxaRT+hCXu-921RoNw0aiiffZzNGQNgQX0FGfsfdSOP95DzBQ@mail.gmail.com>]
* Re: Linux 3.0.1 compile problem on different locales.. [not found] ` <CAKxaRT+hCXu-921RoNw0aiiffZzNGQNgQX0FGfsfdSOP95DzBQ@mail.gmail.com> @ 2011-08-16 0:03 ` Arnaud Lacombe 2011-08-16 1:47 ` Arnaud Lacombe 2011-08-16 6:15 ` Serdar KÖYLÜ 0 siblings, 2 replies; 7+ messages in thread From: Arnaud Lacombe @ 2011-08-16 0:03 UTC (permalink / raw) To: Serdar KÖYLÜ; +Cc: LKML, linux-kbuild 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@gmail.com>: > 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@gmail.com>: >> Hi, >> >> [Added linux-kbuild@ to the CC list.] >> >> 2011/8/15 Serdar KÖYLÜ <s.koylux@gmail.com>: >>> 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@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> Please read the FAQ at http://www.tux.org/lkml/ >>> >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Linux 3.0.1 compile problem on different locales.. 2011-08-16 0:03 ` Arnaud Lacombe @ 2011-08-16 1:47 ` Arnaud Lacombe 2011-08-16 1:49 ` Arnaud Lacombe 2011-08-16 6:15 ` Serdar KÖYLÜ 1 sibling, 1 reply; 7+ messages in thread From: Arnaud Lacombe @ 2011-08-16 1:47 UTC (permalink / raw) To: Serdar KÖYLÜ; +Cc: LKML, linux-kbuild Hi, 2011/8/15 Arnaud Lacombe <lacombar@gmail.com>: > 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@gmail.com>: >> 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 ? > here it is: http://en.wikipedia.org/wiki/Turkish_dotted_and_dotless_I So I'd assume that English capital 'I' is treated as a dotless-i, however, its lowercase 'i' is a dotted-i. It is unclear (to me) what character set's value is meant to be returned by tolower(3). If, it's ASCII, I'd assume the Turkish lowercase-dotless-i should able to be represented and thus we ends up with the original argument being returned. - Arnaud > 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@gmail.com>: >>> Hi, >>> >>> [Added linux-kbuild@ to the CC list.] >>> >>> 2011/8/15 Serdar KÖYLÜ <s.koylux@gmail.com>: >>>> 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@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> Please read the FAQ at http://www.tux.org/lkml/ >>>> >>> >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Linux 3.0.1 compile problem on different locales.. 2011-08-16 1:47 ` Arnaud Lacombe @ 2011-08-16 1:49 ` Arnaud Lacombe 0 siblings, 0 replies; 7+ messages in thread From: Arnaud Lacombe @ 2011-08-16 1:49 UTC (permalink / raw) To: Serdar KÖYLÜ; +Cc: LKML, linux-kbuild Hi, 2011/8/15 Arnaud Lacombe <lacombar@gmail.com>: > Hi, > > 2011/8/15 Arnaud Lacombe <lacombar@gmail.com>: >> 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@gmail.com>: >>> 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 ? >> > here it is: > > http://en.wikipedia.org/wiki/Turkish_dotted_and_dotless_I > > So I'd assume that English capital 'I' is treated as a dotless-i, > however, its lowercase 'i' is a dotted-i. It is unclear (to me) what > character set's value is meant to be returned by tolower(3). If, it's > ASCII, I'd assume the Turkish lowercase-dotless-i should able to be > represented and thus we ends up with the original argument being > returned. s/should able to be/should not be able to be/ - Arnaud > >> 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@gmail.com>: >>>> Hi, >>>> >>>> [Added linux-kbuild@ to the CC list.] >>>> >>>> 2011/8/15 Serdar KÖYLÜ <s.koylux@gmail.com>: >>>>> 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@vger.kernel.org >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>>> Please read the FAQ at http://www.tux.org/lkml/ >>>>> >>>> >>> >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Linux 3.0.1 compile problem on different locales.. 2011-08-16 0:03 ` Arnaud Lacombe 2011-08-16 1:47 ` Arnaud Lacombe @ 2011-08-16 6:15 ` Serdar KÖYLÜ 2011-08-19 12:44 ` Michal Marek 1 sibling, 1 reply; 7+ messages in thread From: Serdar KÖYLÜ @ 2011-08-16 6:15 UTC (permalink / raw) To: linux-kbuild 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@gmail.com>: > 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@gmail.com>: >> 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@gmail.com>: >>> Hi, >>> >>> [Added linux-kbuild@ to the CC list.] >>> >>> 2011/8/15 Serdar KÖYLÜ <s.koylux@gmail.com>: >>>> 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@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> Please read the FAQ at http://www.tux.org/lkml/ >>>> >>> >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Linux 3.0.1 compile problem on different locales.. 2011-08-16 6:15 ` Serdar KÖYLÜ @ 2011-08-19 12:44 ` Michal Marek 0 siblings, 0 replies; 7+ messages in thread From: Michal Marek @ 2011-08-19 12:44 UTC (permalink / raw) To: Serdar KÖYLÜ; +Cc: linux-kbuild On 16.8.2011 08:15, Serdar KÖYLÜ wrote: > Damn gmail ! It's send to your personal mail, not to list :( Please also do not toppost. > 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. People might prefer error messages in their locale. We tried setting LC_CTYPE=C, which would fix the toupper/tolower problem, but it broke japanese locales: https://lkml.org/lkml/2009/12/24/58. So I'd rather handle this in kconfig, either use a pure ascii version of tolower() or create the files in capitals. BTW, can you paste the whole error message and a few lines before? It's strange that it failed, because both fixdep and kconfig use tolower(), so they should agree on the filename. Michal ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-08-19 12:44 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-15 20:51 Linux 3.0.1 compile problem on different locales Serdar KÖYLÜ
2011-08-15 22:58 ` Arnaud Lacombe
[not found] ` <CAKxaRT+hCXu-921RoNw0aiiffZzNGQNgQX0FGfsfdSOP95DzBQ@mail.gmail.com>
2011-08-16 0:03 ` Arnaud Lacombe
2011-08-16 1:47 ` Arnaud Lacombe
2011-08-16 1:49 ` Arnaud Lacombe
2011-08-16 6:15 ` Serdar KÖYLÜ
2011-08-19 12:44 ` Michal Marek
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.