diff options
author | sandra <sandra@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2007-12-13 18:16:57 +0000 |
---|---|---|
committer | sandra <sandra@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2007-12-13 18:16:57 +0000 |
commit | 946e2396f8cdcba07e59e324fb44d03f323f8452 (patch) | |
tree | 07b490701e6fe5bd4d72e367606bba18b5029459 /libc/stdlib | |
parent | 34faad38b87a823ca93058804c85114dc06f9c15 (diff) |
2007-12-13 Jim Blandy <jimb@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
Implement the OPTION_POSIX_C_LANG_WIDE_CHAR option group.
* option-groups.def (OPTION_POSIX_C_LANG_WIDE_CHAR): New entry.
(OPTION_EGLIBC_LOCALE_CODE, OPTION_POSIX_WIDE_CHAR_DEVICE_IO):
Note dependence on OPTION_POSIX_C_LANG_WIDE_CHAR.
(OPTION_POSIX_WIDE_CHAR_DEVICE_IO): Doc fix; note effect on
support for 'ccs=CHARSET' strings in fopen and friends.
* option-groups.mak (option-disabled): New function.
* scripts/option-groups.awk: Generate preprocessor conditionals to
protect gnu/option-groups.h from multiple #inclusion.
* stdlib/Makefile (routines): Put in group: mblen mbstowcs mbtowc
wcstombs wctomb wcstoimax wcstoumax.
(tests): Put in group: testmb.
* debug/Makefile (routines): Put in group: wctomb_chk wcscpy_chk
wmemcpy_chk wmemmove_chk wmempcpy_chk wcpcpy_chk wcsncpy_chk
wcscat_chk wcsncat_chk wmemset_chk wcpncpy_chk swprintf_chk
vswprintf_chk wcrtomb_chk mbsnrtowcs_chk wcsnrtombs_chk
mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk wcstombs_chk.
* debug/tst-chk1.c (do_test): Make wide character parts conditional
on __OPTION_POSIX_WIDE_CHAR_DEVICE_IO.
* wcsmbs/Makefile (routines): Put in group: wcscat wcschr wcscmp
wcscpy wcscspn wcsdup wcslen wcsncat wcsncmp wcsncpy wcspbrk
wcsrchr wcsspn wcstok wcsstr wmemchr wmemcmp wmemmove wcpcpy
wcpncpy wmempcpy btowc wctob mbsinit mbrlen mbrtowc wcrtomb
mbsrtowcs wcsrtombs mbsnrtowcs wcsnrtombs wcsnlen wcschrnul wcstol
wcstoul wcstoll wcstoull wcstod wcstold wcstof wcstol_l wcstoul_l
wcstoll_l wcstoull_l wcstod_l wcstold_l wcstof_l wcscoll wcsxfrm
wcwidth wcswidth wcscoll_l wcsxfrm_l wcscasecmp wcsncase
wcscasecmp_l wcsncase_l wcsmbsload mbsrtowcs_l isoc99_swscanf
isoc99_vswscanf.
(tests): Put in group: tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-wcpncpy
tst-mbsrtowcs wcsatcliff.
* time/Makefile (routines): Put in group: wcsftime wcsftime_l
* libio/Makefile (routines): When group is disabled, add
wdummyfileops. Put in group: wfiledoalloc iowpadn swprintf
vswprintf iovswscanf swscanf wgenops wstrops wfileops wmemstream.
(tests): Put in group: tst_swprintf tst_swscanf tst-sscanf
tst-wmemstream1 tst-wmemstream2.
* libio/wdummyfileops.c: New file. Provide a dummy definition for
the _IO_FILE functions that prints an error message and dies.
* libio/libioP.h: #include <gnu/option-groups.h>.
(_IO_is_wide): New macro. Used as necessary to excise references
to wide character code.
* libio/iosetbuffer.c (_IO_setbuffer): Don't call _IO_WSETBUF if
wide characters are not supported.
* libio/ioseekoff.c (_IO_seekoff_unlocked): Use _IO_is_wide.
* libio/iofwide.c: #include <gnu/option-groups.h>.
(_IO_fwide): When the group is disabled, provide a simplified
definition that aborts if the caller attempts to make a stream
wide-oriented.
* libio/fileops.c (_IO_new_file_close_it): Use _IO_is_wide.
(_IO_new_file_fopen): Conditionalize for
__OPTION_POSIX_WIDE_CHAR_DEVICE_IO.
* libio/ioseekpos.c (_IO_seekpos_unlocked): Use _IO_is_wide.
* libio/__fpurge.c (__fpurge): Likewise.
* wctype/Makefile (routines): Put in group: wcfuncs wctype
iswctype wcfuncs_l wctype_l iswctype_l wctrans_l.
(tests): Put in group: test_wctype test_wcfuncs.
* posix/fnmatch_loop.c (FCT) (either internal_fnmatch or
internal_fnwmatch): Handle character categories accessed via
'wctype' only if the group is enabled.
* stdio-common/Makefile (routines): Put in group: vfwprintf
vfwscanf printf-parsewc.
(tests): Put in group: bug18a tst-swscanf tst-wc-printf.
* stdio-common/printf_fp.c (__printf_fp): When the group is
disabled, fix 'wide' at zero.
* stdio-common/printf_fphex.c (__printf_fphex): Same.
* stdio-common/printf_size.c (__printf_size): Same.
* stdio-common/vfprintf.c (MULTIBYTE_SUPPORT): New macro.
(process_string_arg): If the format contains wide characters or
strings, assert that we have multibyte support.
* stdio-common/vfscanf.c (MULTIBYTE_SUPPORT): New macro.
(_IO_vfscanf_internal): If we see wide string or character format
directives, assert that we have multibyte support.
* stdio-common/scanf14.c (main): Make conditional on
__OPTION_EGLIBC_LOCALE_CODE.
* stdio-common/tst-sprintf.c (main): Make wide character test
conditional on __OPTION_POSIX_C_LANG_WIDE_CHAR.
* stdio-common/tstdiomisc.c (F): Likewise.
git-svn-id: svn://svn.eglibc.org/trunk@4526 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/stdlib')
-rw-r--r-- | libc/stdlib/Makefile | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libc/stdlib/Makefile b/libc/stdlib/Makefile index 47c5a9429..9a296cc85 100644 --- a/libc/stdlib/Makefile +++ b/libc/stdlib/Makefile @@ -38,7 +38,6 @@ routines-y := \ exit on_exit atexit cxa_atexit cxa_finalize old_atexit \ abs labs llabs \ div ldiv lldiv \ - mblen mbstowcs mbtowc wcstombs wctomb \ random random_r rand rand_r \ drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ srand48 seed48 lcong48 \ @@ -52,10 +51,13 @@ routines-y := \ system canonicalize \ a64l l64a \ getsubopt xpg_basename fmtmsg \ - strtoimax strtoumax wcstoimax wcstoumax \ + strtoimax strtoumax \ getcontext setcontext makecontext swapcontext routines-$(OPTION_EGLIBC_LOCALE_CODE) += \ strfmon strfmon_l +routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ + mblen mbstowcs mbtowc wcstombs wctomb \ + wcstoimax wcstoumax ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_POSIX_REGEXP)) routines-y += rpmatch endif @@ -69,7 +71,7 @@ static-only-routines = atexit distribute := exit.h grouping.h abort-instr.h isomac.c tst-fmtmsg.sh \ allocalim.h test-srcs := tst-fmtmsg -tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ +tests := tst-strtol tst-strtod testrand testsort testdiv \ test-canon test-canon2 tst-strtoll tst-environ \ tst-xpg-basename tst-random tst-random2 tst-bsearch \ tst-limits tst-rand48 bug-strtod tst-setcontext \ @@ -78,6 +80,8 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ tst-makecontext tst-qsort2 tests-$(OPTION_EGLIBC_LOCALE_CODE) \ += tst-strtod3 tst-strtod4 tst-strtod5 testmb2 +tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ + += testmb include ../Makeconfig ifeq ($(build-shared),yes) |