| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!The programs in this directory are strictly cut-and-paste hack jobs toextract the data I needed from glibc's locale database.  I'm ashamed toeven let them into the light of day, and I consider them complete garbage.However, they are currently necessary to build the data needed for thelocale support I've implemented, so I'm forced to include them here.NOTE: While its possible to use this stuff for native != target arch,you'll have to either write a converter to account for endianess andstruct padding issues, or run the mmap file generator on your targetarch.  But all these programs will be rewritten at some point.All that being said, LC_CTYPE support has been added and supports thectype.h and wctype.h function.  Also, LC_TIME, LC_MONETARY, LC_NUMERIC,and LC_MESSAGES are supported wrt SUSv3.  localeconv() works in bothreal and stub locale modes.  nl_langinfo() currently only works withreal locales enabled.  That will be fixed though.  wc->mb unsupportedchar replacement and basic translit support is on the way as well.Finally, some basic 8-bit codeset LC_COLLATE support should be in placein the next week or two (similar to what was in the previous localeimplementation).Also, as one can probably guess, I'm working towards having the localedata accessed via a shared mmap.  That will allow non-mmu platformsto use this without the current bloat.Currently, the output of size for my locale_data.o file is  text    data     bss     dec     hex filename  59072       4       0   59076    e6c4 extra/locale/locale_data.owhich is for the C locale (automatic of course) + all codesets incharmaps/ and all 268 locales in LOCALES.  I estimate that thetranslit support for those 8-bit codesets will add another 7-10k.One difference of note is that the special case upper/lower mappingsin the turkish locale are currently not implemented.  That will befixed.ManuelWarning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!   Warning!!!1) In the toplevel dir,  'make headers'.2) Create a codesets.txt file in this dir listing the codesets you want   to support.  The easiest way to do this is to edit the output of	'find ./charmaps -name "*.pairs" > codesets.txt'.   NOTE: UTF-8 support is always included if you build with wide chars enabled.   NOTE: The files in charmaps/ were created from glibc's charmap files         with the awk script at the end of this file.  You can add others	 but only single byte codesets are supported.3) Create a locales.txt file to select the locales you want to support.   You can copy and edit the LOCALES file for example.  Other locales could   added provided you've included the appropriate codesets in step 2.   NOTE: You have to have the approprite locales available for glibc!4) Run make here.5) Continue building uClibc from the toplevel dir.Script used to generate the charmaps/*.pairs files:cat $1 | awk 'BEGIN { i = 0 } ; { if ($1 == "CHARMAP") i=1 ; else if ($1 == "END") i=0 ; else if (i==1) { sub("/","0",$2) ; sub("<U","0x",$1) ; sub(">","",$1) ; print "{", $2, ",", $1, "}," } }'
 |