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/option-groups.mak | |
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/option-groups.mak')
-rw-r--r-- | libc/option-groups.mak | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libc/option-groups.mak b/libc/option-groups.mak index 2ade410a7..7d9f9a43e 100644 --- a/libc/option-groups.mak +++ b/libc/option-groups.mak @@ -15,6 +15,16 @@ include $(firstword $(..) ../)option-groups.defaults # defaults from option-groups.defaults. -include $(option_group_config_file) +# $(call option-disabled, VAR) is 'y' if VAR is not 'y', or 'n' otherwise. +# VAR should be a variable name, not a variable reference; this is +# less general, but more terse for the intended use. +# You can use it to add a file to a list if an option group is +# disabled, like this: +# routines-$(call option-disabled, OPTION_POSIX_C_LANG_WIDE_CHAR) += ... +define option-disabled +$(firstword $(subst y,n,$(filter y,$($(strip $(1))))) y) +endef + # Establish 'routines-y', etc. as simply-expanded variables. aux-y := extra-libs-others-y := |