1# Copyright (C) 2011-2013, International Business Machines 2# Corporation and others. All Rights Reserved. 3# 4# file name: dependencies.txt 5# 6# created on: 2011may26 7# created by: Markus W. Scherer 8 9# Standard library symbols used by ICU --------------------------------------- # 10 11system_symbols: 12 deps 13 # C 14 PIC system_debug malloc_functions c_strings c_string_formatting 15 floating_point trigonometry 16 stdlib_qsort 17 pthread system_locale 18 stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn 19 # C++ 20 cplusplus iostream 21 22group: PIC 23 # Position-Independent Code (-fPIC) requires a Global Offset Table. 24 _GLOBAL_OFFSET_TABLE_ 25 26group: system_debug 27 __assert_fail __stack_chk_fail 28 29group: malloc_functions 30 free malloc realloc 31 32group: c_strings 33 isspace isdigit 34 __ctype_b_loc # for <ctype.h> 35 # We must not use tolower and toupper because they are system-locale-sensitive (Turkish i). 36 strlen strchr strrchr strstr strcmp strncmp strcpy strncpy strcat strncat 37 memcmp memcpy memmove memset 38 # Additional symbols in an optimized build. 39 __strcpy_chk __strncpy_chk __strcat_chk __strncat_chk 40 __rawmemchr __memcpy_chk __memmove_chk __memset_chk 41 42group: c_string_formatting 43 atoi atol strtod strtol strtoul 44 sprintf 45 # Additional symbols in an optimized build. 46 __sprintf_chk 47 48group: floating_point 49 abs fabs floor ceil modf fmod log pow sqrt 50 51group: trigonometry 52 acos asin atan atan2 cos sin tan 53 # Additional symbols in an optimized build. 54 sincos 55 56group: stdlib_qsort 57 qsort 58 59group: pthread 60 pthread_mutex_init pthread_mutex_destroy pthread_mutex_lock pthread_mutex_unlock 61 pthread_cond_wait pthread_cond_broadcast 62 63group: system_locale 64 getenv 65 nl_langinfo setlocale 66 gettimeofday localtime_r tzname tzset __timezone 67 68group: stdio_input 69 fopen fclose fgets fread fseek ftell rewind feof fileno 70 # Additional symbols in an optimized build. 71 __fgets_chk __fread_chk 72 73group: stdio_output 74 fflush fwrite 75 stdout 76 77group: file_io 78 open close stat 79 # Additional symbols in an optimized build. 80 __xstat 81 82group: readlink_function 83 readlink # putil.cpp uprv_tzname() calls this in a hack to get the time zone name 84 85group: dir_io 86 opendir closedir readdir # for a hack to get the time zone name 87 88group: mmap_functions # for memory-mapped data loading 89 mmap munmap 90 91group: dlfcn 92 dlopen dlclose dlsym # called by putil.o only for icuplug.o 93 94group: cplusplus 95 __dynamic_cast 96 # The compiler generates references to the global operator delete 97 # even when no code actually uses it. 98 # ICU must not _use_ the global operator delete. 99 "operator delete(void*)" 100 # ICU also must not use the global operator new. 101 # "operator new[](unsigned long)" 102 103 # _Unwind_Resume is related to exceptions: 104 # "A call to this routine is inserted as the end of a landing pad that performs cleanup, 105 # but does not resume normal execution. It causes unwinding to proceed further." 106 # (Linux Standard Base Specification 1.3) 107 # Even though ICU does not actually use (nor handle) exceptions. 108 _Unwind_Resume 109 # std::terminate() looks similar to _Unwind_Resume: 110 # "Calls the current terminate handler." 111 std::terminate() 112 113group: iostream 114 "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)" 115 "std::basic_ios<char, std::char_traits<char> >::eof() const" 116 "std::basic_ios<char, std::char_traits<char> >::fail() const" 117 "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)" 118 std::istream::get() 119 std::istream::putback(char) 120 # Additional symbols in an optimized build. 121 "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)" 122 123# ICU common library --------------------------------------------------------- # 124 125library: stubdata 126 stubdata.o # Exports icudt48_dat. 127 128library: common 129 # All files in the common library are listed in its dependencies. 130 deps 131 # Libraries and groups that the common library depends on. 132 date_interval 133 breakiterator 134 uts46 filterednormalizer2 normalizer2 canonical_iterator 135 normlzr unormcmp unorm_it unorm 136 idna2003 stringprep 137 stringenumeration 138 unistr_core unistr_props unistr_case unistr_case_locale unistr_titlecase_brkiter unistr_cnv 139 uniset_core uniset_props uniset_closure usetiter uset uset_props 140 uiter 141 ucasemap ucasemap_titlecase_brkiter script_runs 142 uprops ubidi_props ucase uscript uscript_props 143 ubidi ushape 144 listformatter 145 resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat 146 loclikely 147 conversion converter_selector ucnv_set ucnvdisp 148 messagepattern 149 icu_utility icu_utility_with_props 150 ustr_wcs 151 ucharstriebuilder ucharstrieiterator 152 bytestriebuilder bytestrieiterator 153 hashtable uhash uvector uvector32 uvector64 ulist 154 propsvec utrie2 utrie2_builder 155 sort 156 uinit utypes errorcode 157 icuplug 158 platform 159 160group: date_interval # class DateInterval 161 dtintrv.o 162 deps 163 platform 164 165group: breakiterator 166 # We could try to split off a breakiterator_builder group, 167 # but we still need uniset_props for code like in the ThaiBreakEngine constructor 168 # which does 169 # fThaiWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]]"), status) 170 brkiter.o brkeng.o ubrk.o 171 rbbi.o rbbinode.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o 172 rbbidata.o rbbirb.o 173 dictionarydata.o dictbe.o 174 deps 175 resourcebundle service_registration 176 schriter utext uniset_core uniset_props 177 uhash ustack utrie 178 ucharstrie bytestrie 179 normlzr # for dictbe.o, should switch to Normalizer2 180 181group: unormcmp # unorm_compare() 182 unormcmp.o 183 deps 184 filterednormalizer2 185 uniset_props # for uniset_getUnicode32Instance() 186 ucase 187 188group: unorm_it # UNormIterator 189 unorm_it.o 190 deps 191 unorm uiter 192 193group: unorm # old normalization C API 194 unorm.o 195 deps 196 filterednormalizer2 197 uniset_props # for uniset_getUnicode32Instance() 198 uiter 199 200group: normlzr # old Normalizer C++ class 201 normlzr.o 202 deps 203 filterednormalizer2 204 uniset_props # for uniset_getUnicode32Instance() 205 schriter 206 207group: uts46 208 uts46.o 209 deps 210 normalizer2 punycode 211 uchar # for u_charType() (via U_GET_GC_MASK(c)) 212 ubidi_props # for u_charDirection() & ubidi_getJoiningType() 213 unistr_core 214 stringpiece bytestream 215 216group: filterednormalizer2 217 filterednormalizer2.o 218 deps 219 normalizer2 220 221group: idna2003 222 uidna.o 223 deps 224 stringprep punycode 225 226group: stringprep 227 usprep.o 228 deps 229 unorm # could change to use filterednormalizer2 directly for Unicode 3.2 normalization 230 normalizer2 231 ubidi_props 232 233group: canonical_iterator 234 caniter.o 235 deps 236 normalizer2 usetiter 237 238group: normalizer2 239 normalizer2.o 240 normalizer2impl.o 241 deps 242 uniset_core 243 unistr_core 244 utrie2_builder # for building CanonIterData & FCD 245 uvector # for building CanonIterData 246 uhash # for the instance cache 247 udata 248 249group: punycode 250 punycode.o 251 deps 252 platform 253 254group: uset_props 255 uset_props.o 256 deps 257 uniset_closure uniset_props uniset_core 258 259group: uset 260 uset.o 261 deps 262 uniset_core 263 264group: uniset_closure 265 uniset_closure.o 266 deps 267 uniset_core unistr_case_locale unistr_titlecase_brkiter 268 269group: uniset_props 270 uniset_props.o ruleiter.o 271 deps 272 uniset_core uprops unistr_case 273 parsepos 274 resourcebundle 275 propname unames 276 277group: parsepos 278 parsepos.o 279 deps 280 platform 281 282group: usetiter # UnicodeSetIterator 283 usetiter.o 284 deps 285 uniset_core 286 287group: uniset_core 288 unifilt.o unifunct.o 289 uniset.o bmpset.o unisetspan.o 290 deps 291 patternprops 292 unistr_core icu_utility 293 uvector 294 295group: icu_utility_with_props 296 util_props.o 297 deps 298 icu_utility uchar ucase 299 300group: icu_utility 301 util.o 302 deps 303 unistr_core patternprops 304 305group: utext 306 utext.o 307 deps 308 unistr_core ucase 309 310group: stringenumeration 311 ustrenum.o uenum.o 312 deps 313 unistr_core 314 315group: schriter 316 schriter.o 317 # The UCharCharacterIterator implements virtual void getText(UnicodeString& result) 318 # so it depends on UnicodeString, therefore it makes little sense to split 319 # schriter and uchriter into separate groups. 320 uchriter.o 321 deps 322 chariter unistr_core 323 324group: chariter 325 chariter.o 326 deps 327 platform 328 329group: uiter 330 uiter.o 331 deps 332 platform 333 334group: unistr_cnv 335 unistr_cnv.o 336 deps 337 conversion unistr_core 338 339group: unistr_core 340 unistr.o 341 deps 342 ustrtrns appendable 343 344group: uscript 345 uscript.o # uscript_getCode() accepts a locale ID and loads its script code data 346 deps 347 propname resourcebundle 348 349group: uscript_props # script metadata properties 350 uscript_props.o 351 deps 352 unistr_core platform 353 354group: uprops 355 uprops.o 356 deps 357 normalizer2 358 uchar 359 ubidi_props 360 unistr_case ustring_case # only for case folding 361 ucase 362 363group: propname 364 propname.o 365 deps 366 bytestrie 367 368group: unames 369 unames.o 370 deps 371 uchar udata 372 373group: script_runs 374 usc_impl.o 375 deps 376 uchar 377 378group: uchar 379 uchar.o 380 deps 381 utrie2 382 383group: messagepattern # for MessageFormat and tools 384 messagepattern.o 385 deps 386 patternprops unistr_core 387 388group: patternprops 389 patternprops.o 390 deps 391 PIC 392 393group: ushape 394 ushape.o 395 deps 396 ubidi_props 397 398group: ubidi 399 ubidi.o ubidiln.o ubidiwrt.o 400 deps 401 ubidi_props 402 uchar # for doWriteReverse() which uses IS_COMBINING(u_charType(c)) 403 404group: ubidi_props 405 ubidi_props.o 406 deps 407 utrie2 408 409group: unistr_props 410 unistr_props.o 411 deps 412 unistr_core uchar 413 414group: unistr_case_locale 415 unistr_case_locale.o 416 deps 417 unistr_case ustring_case_locale 418 419group: unistr_case 420 unistr_case.o 421 deps 422 unistr_core 423 ustring_case 424 425group: unistr_titlecase_brkiter 426 unistr_titlecase_brkiter.o 427 deps 428 ustr_titlecase_brkiter 429 430group: ustr_titlecase_brkiter 431 ustr_titlecase_brkiter.o 432 deps 433 breakiterator 434 ustring_case_locale ucase 435 436group: ucasemap_titlecase_brkiter 437 ucasemap_titlecase_brkiter.o 438 deps 439 ucasemap breakiterator utext 440 441group: ucasemap 442 ucasemap.o 443 deps 444 ustring_case 445 resourcebundle # uloc_getName() etc. 446 447group: ustring_case_locale 448 ustrcase_locale.o 449 deps 450 ustring_case 451 resourcebundle # for uloc_getDefault() 452 453group: ustring_case 454 ustrcase.o 455 deps 456 ucase 457 458group: ucase 459 ucase.o 460 deps 461 unistr_core utrie2 462 463group: uinit 464 uinit.o 465 deps 466 ucnv_io icuplug 467 468group: converter_selector 469 ucnvsel.o 470 deps 471 conversion propsvec utrie2_builder uset ucnv_set 472 473group: ucnvdisp # ucnv_getDisplayName() 474 ucnvdisp.o 475 deps 476 conversion resourcebundle 477 478group: ucnv_set # ucnv_getUnicodeSet 479 ucnv_set.o 480 deps 481 uset 482 483group: conversion 484 ustr_cnv.o 485 ucnv.o ucnv_cnv.o ucnv_bld.o ucnv_cb.o ucnv_err.o 486 ucnv_ct.o 487 ucnvmbcs.o ucnv_ext.o 488 ucnvhz.o ucnvisci.o ucnv_lmb.o ucnv2022.o 489 ucnvlat1.o ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o 490 ucnvbocu.o ucnvscsu.o 491 deps 492 ucnv_io 493 494group: ucnv_io 495 ucnv_io.o 496 deps 497 sort stringenumeration udata 498 499group: service_registration 500 serv.o servnotf.o servlkf.o servlk.o servls.o servrbf.o servslkf.o 501 locutil.o 502 deps 503 locale_display_names resourcebundle 504 hashtable uvector 505 506group: listformatter 507 listformatter.o 508 deps 509 resourcebundle 510 511group: ucat # message-catalog-like API 512 ucat.o 513 deps 514 resourcebundle 515 516group: locale_display_names 517 locdispnames.o 518 deps 519 locresdata 520 521group: icudataver # u_getDataVersion() 522 icudataver.o 523 deps 524 resourcebundle 525 526group: loclikely 527 loclikely.o 528 deps 529 resourcebundle 530 531group: locresdata 532 # This was intended to collect locale functions that load resource bundle data. 533 # See the resourcebundle group about what else loads data. 534 locresdata.o 535 deps 536 resourcebundle 537 538group: resbund_cnv # paths are Unicode strings 539 resbund_cnv.o 540 deps 541 conversion resourcebundle ures_cnv 542 543group: ures_cnv # ures_openU, path is a Unicode string 544 ures_cnv.o 545 deps 546 conversion resourcebundle 547 548group: resourcebundle 549 resbund.o uresbund.o uresdata.o 550 locavailable.o 551 # uloc_tag.c converts between old ICU/LDML/CLDR locale IDs and newer BCP 47 IDs. 552 # It uses data from resource bundles for some of the mappings. 553 # We might want to generate .c files for that data, to #include rather than load, 554 # to minimize dependencies from this code. 555 # Then we could separate this higher-level locale ID code from the resource bundle code. 556 uloc.o uloc_tag.o 557 # Even basic locid.cpp via Locale constructors and Locale::getDefault() 558 # depend on canonicalization and data loading. 559 # We can probably only disentangle basic locale ID handling from resource bundle code 560 # by hardcoding all of the locale ID data. 561 locid.o locmap.o wintz.o 562 # Do we need class LocaleBased? http://bugs.icu-project.org/trac/ticket/8608 563 locbased.o 564 deps 565 udata ucol_swp 566 sort stringenumeration uhash 567 568group: udata 569 udata.o ucmndata.o udatamem.o 570 umapfile.o 571 deps 572 uhash charstr stringpiece platform stubdata 573 file_io mmap_functions 574 575group: ucharstriebuilder 576 ucharstriebuilder.o 577 deps 578 ucharstrie stringtriebuilder sort 579 unistr_core 580 581group: ucharstrieiterator 582 ucharstrieiterator.o 583 deps 584 ucharstrie unistr_core uvector32 585 586group: ucharstrie 587 ucharstrie.o 588 deps 589 platform 590 591group: bytestriebuilder 592 bytestriebuilder.o 593 deps 594 bytestrie stringtriebuilder sort 595 charstr stringpiece 596 597group: bytestrieiterator 598 bytestrieiterator.o 599 deps 600 bytestrie charstr uvector32 601 602group: bytestrie 603 bytestrie.o 604 deps 605 platform 606 607group: stringtriebuilder 608 stringtriebuilder.o 609 deps 610 uhash 611 612group: propsvec 613 propsvec.o 614 deps 615 sort utrie2_builder 616 617group: utrie2_builder 618 utrie2_builder.o 619 deps 620 platform 621 utrie2 622 utrie # for utrie2_fromUTrie() 623 ucol_swp # for utrie_swap() 624 625group: utrie2 626 utrie2.o 627 deps 628 platform 629 630group: utrie # Callers should use utrie2 instead. 631 utrie.o 632 deps 633 platform 634 635group: hashtable # Maps UnicodeString to value. 636 uhash_us.o 637 deps 638 unistr_core 639 uhash 640 641group: uhash 642 uhash.o 643 deps 644 platform 645 646group: ustack 647 ustack.o 648 deps 649 uvector 650 651group: uvector 652 uvector.o 653 deps 654 platform 655 sort # for UVector::sort() 656 657group: uvector32 658 uvectr32.o 659 deps 660 platform 661 662group: uvector64 663 uvectr64.o 664 deps 665 platform 666 667group: ulist 668 ulist.o 669 deps 670 platform 671 672group: sort 673 uarrsort.o 674 deps 675 platform 676 677group: ustr_wcs 678 ustr_wcs.o 679 deps 680 ustrtrns # on platforms where wchar_t is UTF-32 681 # platform -- on other platforms 682 683group: ustrtrns 684 ustrtrns.o 685 deps 686 platform 687 688group: charstr 689 charstr.o 690 deps 691 unistr_core # for CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode) 692 platform 693 694group: stringpiece 695 stringpiece.o 696 deps 697 PIC c_strings 698 699group: bytestream 700 bytestream.o 701 deps 702 platform 703 704group: appendable 705 appendable.o 706 deps 707 platform 708 709group: icuplug 710 icuplug.o 711 deps 712 platform 713 714group: ucol_swp 715 ucol_swp.o 716 deps 717 platform 718 719group: errorcode # ErrorCode base class 720 errorcode.o 721 deps 722 utypes 723 platform 724 725group: utypes # u_errorName() 726 utypes.o 727 728group: platform 729 # Files in the "platform" group. 730 cmemory.o uobject.o 731 cstring.o cwchar.o uinvchar.o 732 ustring.o # Other platform files really just need u_strlen 733 ustrfmt.o # uprv_itou 734 utf_impl.o 735 putil.o 736 ucln_cmn.o # for putil.o which calls ucln_common_registerCleanup 737 udataswp.o # for uinvchar.o; TODO: move uinvchar.o swapper functions to udataswp.o? 738 umath.o 739 umutex.o 740 utrace.o 741 deps 742 # The "platform" group has no ICU dependencies. 743 PIC system_debug malloc_functions c_strings c_string_formatting 744 floating_point pthread system_locale 745 stdio_input readlink_function dir_io 746 dlfcn # Move related code into icuplug.c? 747 cplusplus 748 749# ICU i18n library ----------------------------------------------------------- # 750 751library: i18n 752 deps 753 region localedata genderinfo charset_detector spoof_detection 754 alphabetic_index collation formatting formattable_cnv regex regex_cnv translit 755 universal_time_scale 756 uclean_i18n 757 758group: region 759 region.o uregion.o 760 deps 761 formatting # Temporary, TODO: Ticket #9982 class Region should use low-level ASCII-integer functions, and probably be moved to the common library. 762 resourcebundle 763 uvector uclean_i18n 764 765group: localedata 766 ulocdata.o 767 deps 768 uniset_props resourcebundle 769 uset_props # TODO: change to using C++ UnicodeSet, remove this dependency 770 loclikely 771 772group: genderinfo 773 gender.o 774 deps 775 resourcebundle 776 uclean_i18n 777 778group: charset_detector 779 csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o ucsdet.o 780 deps 781 conversion 782 uclean_i18n 783 784group: spoof_detection 785 uspoof.o uspoof_build.o uspoof_conf.o uspoof_impl.o uspoof_wsconf.o 786 identifier_info.o scriptset.o 787 deps 788 uniset_props regex unorm uscript 789 790group: alphabetic_index 791 alphaindex.o 792 deps 793 collation localedata 794 uclean_i18n 795 796group: collation 797 bocsu.o coleitr.o coll.o sortkey.o tblcoll.o ucol.o 798 ucol_bld.o ucol_cnt.o ucol_elm.o ucol_res.o ucol_sit.o ucol_tok.o ucol_wgt.o ucoleitr.o 799 search.o stsearch.o usearch.o 800 deps 801 common # TODO: Could be narrower. 802 uclean_i18n 803 804group: formatting 805 # TODO: Try to subdivide this ball of wax. 806 # locale_display_names2 807 locdspnm.o 808 # currency 809 ucurr.o 810 # currencyformat 811 curramt.o currfmt.o currpinf.o currunit.o 812 # decimalformat 813 dcfmtsym.o decfmtst.o decimfmt.o compactdecimalformat.o 814 numfmt.o numsys.o unumsys.o unum.o winnmfmt.o 815 # rbnf 816 nfrs.o nfrule.o nfsubs.o rbnf.o 817 # measureformat 818 measfmt.o 819 # dateformat 820 astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o 821 gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o 822 ucal.o 823 basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o 824 vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o 825 tzfmt.o tzgnames.o tznames.o tznames_impl.o 826 datefmt.o dtfmtsym.o dtitvfmt.o dtitvinf.o dtptngen.o dtrule.o reldtfmt.o 827 smpdtfmt.o smpdtfst.o udateintervalformat.o udatpg.o windtfmt.o 828 udat.o 829 tmunit.o tmutamt.o tmutfmt.o 830 # messageformat 831 choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o 832 deps 833 digitlist formattable format 834 pluralrules 835 collation # for rbnf 836 common 837 floating_point # sqrt() for astro.o 838 trigonometry # for astro.o 839 stdlib_qsort # for ucurr.o (which does not use ICU's uarrsort.o) 840 uclean_i18n 841 842group: digitlist 843 digitlst.o decContext.o decNumber.o 844 deps 845 charstr stringpiece unistr_core 846 847group: formattable 848 fmtable.o 849 measure.o 850 deps 851 unistr_core digitlist stringpiece charstr 852 853group: formattable_cnv 854 fmtable_cnv.o 855 deps 856 formattable unistr_cnv conversion 857 858group: format 859 format.o fphdlimp.o fpositer.o 860 deps 861 resourcebundle parsepos unistr_core uvector32 862 863group: pluralrules 864 plurrule.o upluralrules.o 865 deps 866 digitlist # plurals depend on decimals 867 patternprops resourcebundle uvector uvector32 868 unistr_case_locale 869 870group: regex_cnv 871 uregexc.o 872 deps 873 regex unistr_cnv 874 875group: regex 876 regexcmp.o regexst.o regextxt.o regeximp.o rematch.o repattrn.o uregex.o 877 deps 878 uniset_closure utext uvector32 uvector64 ustack 879 breakiterator 880 unistr_core 881 uinit # TODO: Really needed? 882 uclean_i18n 883 884group: translit 885 anytrans.o brktrans.o casetrn.o cpdtrans.o name2uni.o uni2name.o nortrans.o remtrans.o titletrn.o tolowtrn.o toupptrn.o 886 esctrn.o unesctrn.o nultrans.o 887 funcrepl.o quant.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o strmatch.o strrepl.o translit.o transreg.o tridpars.o utrans.o 888 deps 889 common 890 formatting # for Transliterator::getDisplayName() 891 uclean_i18n 892 893group: universal_time_scale 894 utmscale.o 895 896group: uclean_i18n 897 ucln_in.o 898 deps 899 platform 900 901# ICU io library ------------------------------------------------------------- # 902 903library: io 904 deps 905 ustdio ustream uclean_io 906 907group: ustdio 908 locbund.o sprintf.o sscanf.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o uscanf.o uscanf_p.o ustdio.o 909 deps 910 formatting conversion translit 911 uclean_io 912 stdio_output 913 914group: ustream 915 ustream.o 916 deps 917 unistr_cnv 918 uchar # for u_isWhitespace() 919 iostream 920 921group: uclean_io 922 ucln_io.o 923 deps 924 platform 925