Up to [cvs.NetBSD.org] / src / lib / libc / citrus
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
m68k vs GCC 12: apply -fno-stack-protector to a few things. i've looked at the C code here and i can't see any real problems, and in at least the strsuftoll.c case, i'm convinced it is not a real problem for the reported case, and indicates a GCC bug. for strsuftoll.c, this fixes basic parsing of almost any input. the simple test case is "dd count=1". in my testing, it was only the front-end strsuftoll() that needs the checking removed, the sub-functions are fine. for citrus_module.c, this fixes "env LC_CTYPE=en_US.UTF-8 locale", and i was able to reduce to only _citrus_find_getops(). for blake2_prov.c, i chose to apply to the whole file to avoid editing a 3rd-party source. these issues and their source-file fixes were discovered by rin@.
Add bunch of missing includes of namespace.h in libc The NetBSD Standard C Library uses internally some of its functions with a mangled symbol name, usually "_symbol". The internal functions shall not use the global (public) symbols. This change eliminates usage of the global changes of the following symbols: - strlcat -> _strlcat - sysconf -> __sysconf - closedir -> _closedir - fparseln -> _fparseln - kill -> _kill - mkstemp -> _mkstemp - reallocarr -> _reallocarr - strcasecmp -> _strcasecmp - strncasecmp -> _strncasecmp - strptime -> _strptime - strtok_r -> _strtok_r - sysctl -> _sysctl - dlopen -> __dlopen - dlclose -> __dlclose - dlsym -> __dlsym Sponsored by <The NetBSD Foundation>
Don't unconditionally pass MLIBDIR via CPPFLAGS. Drop now dead branch.
Rebase to HEAD as of a few days ago.
sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
look in the right place for the modules of compat binaries
Resync to 2012-11-19 00:00:00 UTC
sync with head
-Wstrict-overflow
Pull up following revision(s) (requested by tnozaki in ticket #222): distrib/sets/lists/base/mi: revision 1.788 distrib/utils/libhack/Makefile.inc: revision 1.23 distrib/utils/libhack/Makefile: revision 1.22 etc/mtree/NetBSD.dist: revision 1.387 include/locale.h: revision 1.15 lib/libc/citrus/Makefile.inc: revision 1.6 lib/libc/citrus/citrus_aliasname_local.h: revision 1.1 lib/libc/citrus/citrus_bcs.h: revision 1.5 lib/libc/citrus/citrus_bcs_strtol.c: revision 1.1 lib/libc/citrus/citrus_bcs_strtoul.c: revision 1.1 lib/libc/citrus/citrus_csmapper.c: revision 1.9 lib/libc/citrus/citrus_fix_grouping.h: revision 1.1 lib/libc/citrus/citrus_lc_ctype.c: revision 1.1 lib/libc/citrus/citrus_lc_messages.c: revision 1.1 lib/libc/citrus/citrus_lc_messages.h: revision 1.1 lib/libc/citrus/citrus_lc_monetary.c: revision 1.1 lib/libc/citrus/citrus_lc_monetary.h: revision 1.1 lib/libc/citrus/citrus_lc_numeric.c: revision 1.1 lib/libc/citrus/citrus_lc_numeric.h: revision 1.1 lib/libc/citrus/citrus_lc_template.h: revision 1.1 lib/libc/citrus/citrus_lc_template_decl.h: revision 1.1 lib/libc/citrus/citrus_lc_time.c: revision 1.1 lib/libc/citrus/citrus_lc_time.h: revision 1.1 lib/libc/citrus/citrus_module.c: revision 1.8 lib/libc/citrus/citrus_namespace.h: revision 1.7 lib/libc/citrus/modules/citrus_euc.c: revision 1.13 lib/libc/gen/Makefile.inc: revision 1.166 lib/libc/gen/isctype.c: revision 1.17 via patch lib/libc/gen/tolower_.c: revision 1.10 lib/libc/gen/toupper_.c: revision 1.10 lib/libc/iconv/Makefile.inc: revision 1.3 lib/libc/iconv/iconv.c: revision 1.7 lib/libc/locale/Makefile.inc: revision 1.53 lib/libc/locale/___runetype_mb.c: file removal lib/libc/locale/_wctrans.c: revision 1.7 lib/libc/locale/_wctrans_local.h: revision 1.3 lib/libc/locale/_wctype.c: revision 1.1 lib/libc/locale/_wctype_local.h: revision 1.1 lib/libc/locale/aliasname.c: revision 1.3 lib/libc/locale/aliasname_local.h: revision 1.2 lib/libc/locale/bsdctype.c: revision 1.1 lib/libc/locale/bsdctype.h: revision 1.1 lib/libc/locale/ctypeio.c: revision 1.8 lib/libc/locale/ctypeio.h: revision 1.2 lib/libc/locale/current_locale.c: revision 1.1 lib/libc/locale/dummy_lc_collate.c: revision 1.1 lib/libc/locale/dummy_lc_template.h: revision 1.1 lib/libc/locale/fix_grouping.c: revision 1.1 lib/libc/locale/fix_grouping.h: revision 1.1 lib/libc/locale/generic_lc_all.c: revision 1.1 lib/libc/locale/generic_lc_template.h: revision 1.1 lib/libc/locale/generic_lc_template_decl.h: revision 1.1 lib/libc/locale/global_locale.c: revision 1.1 lib/libc/locale/iswctype.c: file removal lib/libc/locale/iswctype_mb.c: revision 1.1 lib/libc/locale/iswctype_sb.c: revision 1.6 lib/libc/locale/lcmessages.c: file removal lib/libc/locale/lcmessages.h: file removal lib/libc/locale/lcmonetary.c: file removal lib/libc/locale/lcmonetary.h: file removal lib/libc/locale/lcnumeric.c: file removal lib/libc/locale/lcnumeric.h: file removal lib/libc/locale/lctime.c: file removal lib/libc/locale/lctime.h: file removal lib/libc/locale/localeconv.c: revision 1.15 lib/libc/locale/localeio.c: revision 1.2 lib/libc/locale/localeio.h: revision 1.2 lib/libc/locale/localeio_lc_ctype.c: revision 1.1 lib/libc/locale/localeio_lc_messages.c: revision 1.1 lib/libc/locale/localeio_lc_monetary.c: revision 1.1 lib/libc/locale/localeio_lc_numeric.c: revision 1.1 lib/libc/locale/localeio_lc_time.c: revision 1.1 lib/libc/locale/multibyte.h: revision 1.4 lib/libc/locale/multibyte_amd1.c: revision 1.6 lib/libc/locale/multibyte_c90.c: revision 1.5 lib/libc/locale/nb_lc_messages_misc.h: revision 1.1 lib/libc/locale/nb_lc_monetary_misc.h: revision 1.1 lib/libc/locale/nb_lc_numeric_misc.h: revision 1.1 lib/libc/locale/nb_lc_template.h: revision 1.1 lib/libc/locale/nb_lc_template_decl.h: revision 1.1 lib/libc/locale/nb_lc_time_misc.h: revision 1.1 lib/libc/locale/nl_langinfo.c: revision 1.12 lib/libc/locale/rune.c: revision 1.31 lib/libc/locale/rune.h: revision 1.13 lib/libc/locale/rune_local.h: revision 1.11 lib/libc/locale/runeglue.c: revision 1.14 lib/libc/locale/runetable.c: revision 1.18 lib/libc/locale/setlocale.c: revision 1.55 via patch lib/libc/locale/setlocale_local.h: revision 1.1 lib/libc/locale/setrunelocale.c: file removal lib/libc/nls/Makefile.inc: revision 1.9 lib/libc/nls/catopen.c: revision 1.26 lib/libc/string/Makefile.inc: revision 1.68 lib/libc/string/wcscmp.c: revision 1.6 lib/libc/string/wcsncmp.c: revision 1.6 lib/libc/string/wcswidth.c: file removal lib/libc/string/wmemcmp.c: revision 1.4 regress/lib/libc/locale/Makefile: revision 1.4 regress/lib/libc/locale/ctype1/Makefile: revision 1.4 regress/lib/libc/locale/ctype1/en_US.UTF-8.exp.uue: revision 1.2 regress/lib/libc/locale/ctype1/ja_JP.ISO-2022-JP.exp.uue: revision 1.1 regress/lib/libc/locale/ctype1/ja_JP.ISO-2022-JP.in.uue: revision 1.1 regress/lib/libc/locale/ctype1/ja_JP.ISO2022-JP.exp.uue: file removal regress/lib/libc/locale/ctype1/ja_JP.ISO2022-JP.in.uue: file removal regress/lib/libc/locale/ctype1/ja_JP.SJIS.exp.uue: revision 1.2 regress/lib/libc/locale/ctype1/ja_JP.eucJP.exp.uue: revision 1.2 regress/lib/libc/locale/ctype2/Makefile: revision 1.5 regress/lib/libc/locale/ctype2/ja_JP.ISO-2022-JP-2.in.uue: revision 1.1 regress/lib/libc/locale/ctype2/ja_JP.ISO2022-JP2.in.uue: file removal regress/lib/libc/locale/ctype3/Makefile: revision 1.5 regress/lib/libc/locale/mbtowc/Makefile: revision 1.3 regress/lib/libc/locale/mbtowc/ja_JP.ISO-2022-JP: revision 1.1 regress/lib/libc/locale/mbtowc/ja_JP.ISO2022-JP: file removal regress/lib/libc/locale/wcstod/wcstod_test.c: revision 1.2 share/locale/Makefile.locale: revision 1.1 share/locale/Makefile: revision 1.5 share/locale/ctype/Makefile: revision 1.28 share/locale/locale.alias: revision 1.11 share/locale/messages/Makefile: revision 1.5 share/locale/messages/en_US.ISO8859-1.src: file removal share/locale/messages/en_US.US-ASCII.src: revision 1.1 share/locale/messages/ja_JP.ISO-2022-JP.src: revision 1.1 share/locale/messages/ja_JP.ct.src: revision 1.1 share/locale/messages/sr_ME.ISO8859-2.src: revision 1.1 share/locale/messages/sr_ME.ISO8859-5.src: revision 1.1 share/locale/messages/sr_YU.ISO8859-2.src: file removal share/locale/messages/sr_YU.ISO8859-5.src: file removal share/locale/messages/sr_YU.UTF-8.src: file removal share/locale/messages/zh_CN.GB18030.src: file removal share/locale/messages/zh_TW.eucTW.src: revision 1.1 share/locale/monetary/Makefile: revision 1.5 share/locale/monetary/af_ZA.ISO8859-1.src: revision 1.2 share/locale/monetary/am_ET.UTF-8.src: revision 1.2 share/locale/monetary/be_BY.CP1131.src: file removal share/locale/monetary/be_BY.CP1251.src: revision 1.2 share/locale/monetary/be_BY.ISO8859-5.src: revision 1.2 share/locale/monetary/be_BY.UTF-8.src: revision 1.2 share/locale/monetary/bg_BG.CP1251.src: revision 1.2 share/locale/monetary/bg_BG.UTF-8.src: revision 1.2 share/locale/monetary/ca_ES.ISO8859-1.src: revision 1.2 share/locale/monetary/cs_CZ.ISO8859-2.src: revision 1.2 share/locale/monetary/cs_CZ.UTF-8.src: revision 1.2 share/locale/monetary/da_DK.ISO8859-1.src: revision 1.2 share/locale/monetary/de_AT.ISO8859-1.src: revision 1.2 share/locale/monetary/de_CH.ISO8859-1.src: revision 1.2 share/locale/monetary/de_DE.ISO8859-1.src: revision 1.2 share/locale/monetary/el_GR.ISO8859-7.src: revision 1.2 share/locale/monetary/en_AU.ISO8859-1.src: revision 1.2 share/locale/monetary/en_CA.ISO8859-1.src: revision 1.2 share/locale/monetary/en_GB.ISO8859-1.src: revision 1.2 share/locale/monetary/en_GB.UTF-8.src: revision 1.2 share/locale/monetary/en_IE.UTF-8.src: revision 1.2 share/locale/monetary/en_NZ.ISO8859-1.src: revision 1.2 share/locale/monetary/en_US.ISO8859-1.src: revision 1.2 share/locale/monetary/en_US.US-ASCII.src: revision 1.1 share/locale/monetary/es_ES.ISO8859-1.src: revision 1.2 share/locale/monetary/et_EE.ISO8859-15.src: revision 1.2 share/locale/monetary/fi_FI.ISO8859-1.src: revision 1.2 share/locale/monetary/fr_BE.ISO8859-1.src: revision 1.2 share/locale/monetary/fr_CA.ISO8859-1.src: revision 1.2 share/locale/monetary/fr_FR.ISO8859-1.src: revision 1.2 share/locale/monetary/he_IL.UTF-8.src: revision 1.2 share/locale/monetary/hi_IN.ISCII-DEV.src: revision 1.2 share/locale/monetary/hr_HR.ISO8859-2.src: revision 1.2 share/locale/monetary/hu_HU.ISO8859-2.src: revision 1.2 share/locale/monetary/hy_AM.ARMSCII-8.src: revision 1.2 share/locale/monetary/hy_AM.UTF-8.src: revision 1.2 share/locale/monetary/is_IS.ISO8859-1.src: revision 1.2 share/locale/monetary/it_IT.ISO8859-1.src: revision 1.2 share/locale/monetary/ja_JP.ISO-2022-JP.src: revision 1.1 share/locale/monetary/ja_JP.UTF-8.src: revision 1.2 share/locale/monetary/ja_JP.eucJP.src: revision 1.2 share/locale/monetary/kk_KZ.PT154.src: revision 1.2 share/locale/monetary/kk_KZ.UTF-8.src: revision 1.2 share/locale/monetary/ko_KR.UTF-8.src: revision 1.2 share/locale/monetary/ko_KR.eucKR.src: revision 1.2 share/locale/monetary/lt_LT.ISO8859-13.src: revision 1.2 share/locale/monetary/mn_MN.UTF-8.src: revision 1.2 share/locale/monetary/nl_BE.ISO8859-1.src: revision 1.2 share/locale/monetary/nl_NL.ISO8859-1.src: revision 1.2 share/locale/monetary/no_NO.ISO8859-1.src: revision 1.2 share/locale/monetary/pl_PL.ISO8859-2.src: revision 1.2 share/locale/monetary/pl_PL.UTF-8.src: revision 1.2 share/locale/monetary/pt_BR.ISO8859-1.src: revision 1.2 share/locale/monetary/pt_PT.ISO8859-1.src: revision 1.2 share/locale/monetary/ro_RO.ISO8859-2.src: revision 1.2 share/locale/monetary/ru_RU.CP1251.src: revision 1.2 share/locale/monetary/ru_RU.CP866.src: revision 1.2 share/locale/monetary/ru_RU.ISO8859-5.src: revision 1.2 share/locale/monetary/ru_RU.KOI8-R.src: revision 1.2 share/locale/monetary/ru_RU.UTF-8.src: revision 1.2 share/locale/monetary/sk_SK.ISO8859-2.src: revision 1.2 share/locale/monetary/sl_SI.ISO8859-2.src: revision 1.2 share/locale/monetary/sr_ME.ISO8859-2.src: revision 1.1 share/locale/monetary/sr_RS.ISO8859-2.src: revision 1.1 share/locale/monetary/sr_YU.ISO8859-2.src: revision 1.2 share/locale/monetary/sr_YU.ISO8859-5.src: revision 1.2 share/locale/monetary/sr_YU.UTF-8.src: revision 1.2 share/locale/monetary/sv_SE.ISO8859-1.src: revision 1.2 share/locale/monetary/tr_TR.ISO8859-9.src: revision 1.2 share/locale/monetary/uk_UA.CP1251.src: revision 1.2 share/locale/monetary/uk_UA.ISO8859-5.src: revision 1.2 share/locale/monetary/uk_UA.KOI8-U.src: revision 1.2 share/locale/monetary/uk_UA.UTF-8.src: revision 1.2 share/locale/monetary/zh_CN.GB18030.src: revision 1.2 share/locale/monetary/zh_CN.UTF-8.src: revision 1.2 share/locale/monetary/zh_CN.eucCN.src: revision 1.2 share/locale/monetary/zh_HK.Big5hkscs.src: revision 1.1 share/locale/monetary/zh_HK.UTF-8.src: revision 1.2 share/locale/monetary/zh_TW.Big5.src: revision 1.2 share/locale/numeric/Makefile: revision 1.4 share/locale/numeric/am_ET.UTF-8.src: file removal share/locale/numeric/en_US.ISO8859-1.src: file removal share/locale/numeric/en_US.US-ASCII.src: revision 1.1 share/locale/numeric/ja_JP.eucJP.src: file removal share/locale/numeric/ko_KR.eucKR.src: file removal share/locale/numeric/mn_MN.UTF-8.src: file removal share/locale/numeric/sr_ME.ISO8859-2.src: revision 1.1 share/locale/numeric/sr_YU.ISO8859-2.src: file removal share/locale/numeric/sr_YU.ISO8859-5.src: file removal share/locale/numeric/zh_CN.eucCN.src: file removal share/locale/time/Makefile: revision 1.5 share/locale/time/en_US.ISO8859-1.src: file removal share/locale/time/en_US.US-ASCII.src: revision 1.1 share/locale/time/ja_JP.ISO-2022-JP.src: revision 1.1 share/locale/time/ja_JP.ct.src: revision 1.1 share/locale/time/sr_ME.ISO8859-2.src: revision 1.1 share/locale/time/sr_ME.ISO8859-5.src: revision 1.1 share/locale/time/sr_ME.UTF-8.src: revision 1.1 share/locale/time/sr_YU.ISO8859-2.src: file removal share/locale/time/sr_YU.ISO8859-5.src: file removal share/locale/time/sr_YU.UTF-8.src: file removal share/locale/time/zh_CN.GB18030.src: file removal share/locale/time/zh_TW.eucTW.src: revision 1.1 usr.bin/locale/locale.c: revision 1.6 usr.bin/mklocale/Makefile: revision 1.12 usr.bin/mklocale/lex.l: revision 1.14 usr.bin/mklocale/mklocaledb.c: revision 1.1 usr.bin/mklocale/yacc.y: revision 1.25 usr.sbin/chrtbl/Makefile: revision 1.8 usr.sbin/chrtbl/ctypeio.c: revision 1.1 usr.sbin/chrtbl/ctypeio.h: revision 1.1 Fixes PR lib/39662, shortcomings in LC_{MONETARY,NUMERIC,TIME,MESSAGES} db format. ok'ed by core and releng. (thanks for agc@, snj@ and i'm sorry for long time patience). [libc] - localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by new locale-db implementation using citrus_db backend, see src/lib/libc/citrus/citrus_lc_*.[ch]. - add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation internally, because they're locale-aware function. - add some stubs for multi-locale issue, see {current,global}_locale.c. - remove some obsolete file, setrunelocale.c, ___runetype_mb.c. - remove __savectype() from ctypeio.[ch]. [tools] - mklocale(1): add new option ``-t'' that generates new style LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format. - chrtbl(1): added ctypeio.[ch] for __savectype(). [locale-db] - added en_US.US-ASCII locale. - removed some shareable locale definition file: en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8 zh_CN.eucCN -> zh_CN.GB18030 and more...see src/share/locale/*/Makefile. - remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS. - change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP* for X11's locale.alias file alignments. - fix regression test, wrong wcs?width(3), NAN/INF usage. i tested release-build following arch: i386, amd64, hpc{mips,arm,sh}, sparc64, vax. citrus_lc_*.[ch] also can read old-plain-text style locale-db. so that backward compatibility is keeped, but lc*.[ch] can't read new citrus_db'ed locale-db and localeio.c never check sanity, so forward compatibility is broken ;-< old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
merge christos-time_t
merge with head.
Fixes PR lib/39662, shortcomings in LC_{MONETARY,NUMERIC,TIME,MESSAGES} db format. ok'ed by core and releng. (thanks for agc@, snj@ and i'm sorry for long time patience). [libc] - localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by new locale-db implementation using citrus_db backend, see src/lib/libc/citrus/citrus_lc_*.[ch]. - add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation internally, because they're locale-aware function. - add some stubs for multi-locale issue, see {current,global}_locale.c. - remove some obsolete file, setrunelocale.c, ___runetype_mb.c. - remove __savectype() from ctypeio.[ch]. [tools] - mklocale(1): add new option ``-t'' that generates new style LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format. - chrtbl(1): added ctypeio.[ch] for __savectype(). [locale-db] - added en_US.US-ASCII locale. - removed some shareable locale definition file: en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8 zh_CN.eucCN -> zh_CN.GB18030 and more...see src/share/locale/*/Makefile. - remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS. - change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP* for X11's locale.alias file alignments. - fix regression test, wrong wcs?width(3), NAN/INF usage. i tested release-build following arch: i386, amd64, hpc{mips,arm,sh}, sparc64, vax. citrus_lc_*.[ch] also can read old-plain-text style locale-db. so that backward compatibility is keeped, but lc*.[ch] can't read new citrus_db'ed locale-db and localeio.c never check sanity, so forward compatibility is broken ;-< old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
Sync w/ -current. 34 merge conflicts to follow.
sync with head.
file citrus_module.c was added on branch christos-time_t on 2009-01-04 17:02:19 +0000
remove unused include, locale.h.
sync with head.
Remove clause 3 and 4 from TNF licenses
WARNS=4
_citrus_find_getops: use _C_LABEL_STRING.
Move UCB-licensed code from 4-clause to 3-clause licence. Patches provided by Joel Baker in PR 22280, verified by myself.
Catch up to -current.
- fix a.out case. (pointed by an anonymous person) - use __ELF__ to determine if we're using elf.
Catch up to -current.
file citrus_module.c was added on branch nathanw_sa on 2002-03-22 20:42:01 +0000
refine i18n stuffs. - add libc/citrus directory. this directory contains the common stuffs not only for locale but also other facilities relating to i18n (e.g. iconv). - To keep the binary compatibility for the ctype modules easily, the interface between libc and the modules is simplified. - For the future integrated extension, module pool is renamed from "/usr/lib/runemodule" to "/usr/lib/i18n". In the future, this directory will contain the modules for "iconv", "collation", etc. - some cosmetic changes. - Bug fix for runetype.h; __attribute__((__packed__)) is placed at the wrong position and it is invalid unintentionally. But, the all members of the structures seem well-aligned. Thus, this bug causes no problem, hopefully. HEADS UP: - /usr/lib/rumemodule is obsoleted. If you use the multibyte locales, you need to install /usr/lib/i18n/* from sys/lib/i18n_module . - The binary compatibility of /usr/share/locale/*/LC_CTYPE is probably kept. Perhaps, the bug fix about __packed__ mentioned above breaks the compatibility... Be careful especially on 64bit platforms.