Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <>2004-11-11 19:26:14 +0300
committercvs2svn <>2004-11-11 19:26:14 +0300
commite4159ff2b48023606222f71a5f2af1d2bc033bc1 (patch)
treed28c53770ec7f1b4fb4bc66f4fce309751e0d303 /newlib/libc/sys/linux/iconv
parente8248d01321a563ff78d6bce70a03d953d9da18b (diff)
This commit was manufactured by cvs2svn to create branch 'noreparent'.reparent-point
Sprout from master 2004-11-11 16:26:13 UTC Christopher Faylor <me@cgf.cx> '* include/cygwin/version.h: Bump DLL minor number to 13.' Delete: COPYING COPYING.LIB COPYING.LIBGLOSS COPYING.NEWLIB ChangeLog MAINTAINERS Makefile.def Makefile.in Makefile.tpl README README-maintainer-mode compile config-ml.in config.guess config.if config.sub config/ChangeLog config/accross.m4 config/acinclude.m4 config/acx.m4 config/codeset.m4 config/gcc-lib-path.m4 config/gettext-sister.m4 config/gettext.m4 config/glibc21.m4 config/iconv.m4 config/intdiv0.m4 config/inttypes-pri.m4 config/inttypes.m4 config/inttypes_h.m4 config/lcmessage.m4 config/lib-ld.m4 config/lib-link.m4 config/lib-prefix.m4 config/mh-armpic config/mh-cxux config/mh-cygwin config/mh-decstation config/mh-dgux386 config/mh-djgpp config/mh-elfalphapic config/mh-i370pic config/mh-ia64pic config/mh-interix config/mh-lynxrs6k config/mh-m68kpic config/mh-mingw32 config/mh-ncr3000 config/mh-necv4 config/mh-papic config/mh-ppc-darwin config/mh-ppcpic config/mh-s390pic config/mh-sco config/mh-solaris config/mh-sparcpic config/mh-sysv4 config/mh-sysv5 config/mh-x86omitfp config/mh-x86pic config/mt-alphaieee config/mt-d30v config/mt-gnu config/mt-netware config/mt-ospace config/mt-v810 config/mt-wince config/nls.m4 config/no-executables.m4 config/po.m4 config/progtest.m4 config/stdint_h.m4 config/uintmax_t.m4 config/ulonglong.m4 config/warnings.m4 configure configure.in depcomp djunpack.bat etc/ChangeLog etc/Makefile.in etc/add-log.el etc/add-log.vi etc/configbuild.ein etc/configbuild.fig etc/configbuild.jin etc/configbuild.tin etc/configdev.ein etc/configdev.fig etc/configdev.jin etc/configdev.tin etc/configure etc/configure.in etc/configure.texi etc/fdl.texi etc/make-stds.texi etc/standards.texi etc/texi2pod.pl gettext.m4 include/COPYING include/ChangeLog include/ChangeLog-9103 include/MAINTAINERS include/alloca-conf.h include/ansidecl.h include/aout/ChangeLog include/aout/adobe.h include/aout/aout64.h include/aout/ar.h include/aout/dynix3.h include/aout/encap.h include/aout/host.h include/aout/hp.h include/aout/hp300hpux.h include/aout/hppa.h include/aout/ranlib.h include/aout/reloc.h include/aout/stab.def include/aout/stab_gnu.h include/aout/sun4.h include/bfdlink.h include/bin-bugs.h include/bout.h include/coff/ChangeLog include/coff/ChangeLog-9103 include/coff/a29k.h include/coff/alpha.h include/coff/apollo.h include/coff/arm.h include/coff/aux-coff.h include/coff/ecoff.h include/coff/external.h include/coff/go32exe.h include/coff/h8300.h include/coff/h8500.h include/coff/i386.h include/coff/i860.h include/coff/i960.h include/coff/ia64.h include/coff/internal.h include/coff/m68k.h include/coff/m88k.h include/coff/maxq.h include/coff/mcore.h include/coff/mips.h include/coff/mipspe.h include/coff/or32.h include/coff/pe.h include/coff/powerpc.h include/coff/rs6000.h include/coff/rs6k64.h include/coff/sh.h include/coff/sparc.h include/coff/sym.h include/coff/symconst.h include/coff/ti.h include/coff/tic30.h include/coff/tic4x.h include/coff/tic54x.h include/coff/tic80.h include/coff/w65.h include/coff/we32k.h include/coff/xcoff.h include/coff/z8k.h include/demangle.h include/dis-asm.h include/dyn-string.h include/elf/ChangeLog include/elf/ChangeLog-9103 include/elf/alpha.h include/elf/arc.h include/elf/arm.h include/elf/avr.h include/elf/common.h include/elf/cr16c.h include/elf/cris.h include/elf/crx.h include/elf/d10v.h include/elf/d30v.h include/elf/dlx.h include/elf/dwarf.h include/elf/dwarf2.h include/elf/external.h include/elf/fr30.h include/elf/frv.h include/elf/h8.h include/elf/hppa.h include/elf/i370.h include/elf/i386.h include/elf/i860.h include/elf/i960.h include/elf/ia64.h include/elf/internal.h include/elf/ip2k.h include/elf/iq2000.h include/elf/m32r.h include/elf/m68hc11.h include/elf/m68k.h include/elf/mcore.h include/elf/mips.h include/elf/mmix.h include/elf/mn10200.h include/elf/mn10300.h include/elf/msp430.h include/elf/openrisc.h include/elf/or32.h include/elf/pj.h include/elf/ppc.h include/elf/ppc64.h include/elf/reloc-macros.h include/elf/s390.h include/elf/sh.h include/elf/sparc.h include/elf/v850.h include/elf/vax.h include/elf/x86-64.h include/elf/xstormy16.h include/elf/xtensa.h include/fibheap.h include/filenames.h include/floatformat.h include/fnmatch.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/fileio.h include/gdb/remote-sim.h include/gdb/signals.h include/gdb/sim-arm.h include/gdb/sim-d10v.h include/gdb/sim-frv.h include/gdb/sim-h8300.h include/gdb/sim-ppc.h include/gdb/sim-sh.h include/gdbm.h include/getopt.h include/hashtab.h include/hp-symtab.h include/ieee.h include/libiberty.h include/md5.h include/nlm/ChangeLog include/nlm/alpha-ext.h include/nlm/common.h include/nlm/external.h include/nlm/i386-ext.h include/nlm/internal.h include/nlm/ppc-ext.h include/nlm/sparc32-ext.h include/oasys.h include/objalloc.h include/obstack.h include/opcode/ChangeLog include/opcode/ChangeLog-9103 include/opcode/a29k.h include/opcode/alpha.h include/opcode/arc.h include/opcode/arm.h include/opcode/avr.h include/opcode/cgen.h include/opcode/convex.h include/opcode/cris.h include/opcode/crx.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/dlx.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/i960.h include/opcode/ia64.h include/opcode/m68hc11.h include/opcode/m68k.h include/opcode/m88k.h include/opcode/maxq.h include/opcode/mips.h include/opcode/mmix.h include/opcode/mn10200.h include/opcode/mn10300.h include/opcode/msp430.h include/opcode/np1.h include/opcode/ns32k.h include/opcode/or32.h include/opcode/pdp11.h include/opcode/pj.h include/opcode/pn.h include/opcode/ppc.h include/opcode/pyr.h include/opcode/s390.h include/opcode/sparc.h include/opcode/tahoe.h include/opcode/tic30.h include/opcode/tic4x.h include/opcode/tic54x.h include/opcode/tic80.h include/opcode/v850.h include/opcode/vax.h include/os9k.h include/partition.h include/progress.h include/safe-ctype.h include/sort.h include/splay-tree.h include/symcat.h include/ternary.h include/xregex.h include/xregex2.h include/xtensa-config.h include/xtensa-isa-internal.h include/xtensa-isa.h install-sh libgloss/ChangeLog libgloss/Makefile.in libgloss/README libgloss/arm/Makefile.in libgloss/arm/coff-iq80310.specs libgloss/arm/coff-pid.specs libgloss/arm/coff-rdimon.specs libgloss/arm/coff-rdpmon.specs libgloss/arm/coff-redboot.ld libgloss/arm/coff-redboot.specs libgloss/arm/configure libgloss/arm/configure.in libgloss/arm/crt0.S libgloss/arm/elf-iq80310.specs libgloss/arm/elf-pid.specs libgloss/arm/elf-rdimon.specs libgloss/arm/elf-rdpmon.specs libgloss/arm/elf-redboot.ld libgloss/arm/elf-redboot.specs libgloss/arm/libcfunc.c libgloss/arm/redboot-crt0.S libgloss/arm/redboot-syscalls.c libgloss/arm/swi.h libgloss/arm/syscall.h libgloss/arm/syscalls.c libgloss/arm/trap.S libgloss/close.c libgloss/config/default.mh libgloss/config/default.mt libgloss/config/dos.mh libgloss/config/mips.mt libgloss/config/mn10200.mt libgloss/config/mn10300.mt libgloss/config/ppc.mh libgloss/configure libgloss/configure.in libgloss/crx/Makefile.in libgloss/crx/_exit.c libgloss/crx/_getenv.c libgloss/crx/_rename.c libgloss/crx/close.c libgloss/crx/configure libgloss/crx/configure.in libgloss/crx/crt0.S libgloss/crx/crti.S libgloss/crx/crtn.S libgloss/crx/dvz_hndl.c libgloss/crx/flg_hndl.c libgloss/crx/fstat.c libgloss/crx/getpid.c libgloss/crx/iad_hndl.c libgloss/crx/intable.c libgloss/crx/isatty.c libgloss/crx/kill.c libgloss/crx/lseek.c libgloss/crx/open.c libgloss/crx/putnum.c libgloss/crx/read.c libgloss/crx/sbrk.c libgloss/crx/sim.ld libgloss/crx/stat.c libgloss/crx/svc_hndl.c libgloss/crx/time.c libgloss/crx/und_hndl.c libgloss/crx/unlink.c libgloss/crx/write.c libgloss/d30v/Makefile.in libgloss/d30v/configure libgloss/d30v/configure.in libgloss/d30v/crt0.S libgloss/d30v/inbyte.c libgloss/d30v/outbyte.c libgloss/d30v/syscalls.c libgloss/debug.c libgloss/debug.h libgloss/doc/Makefile.in libgloss/doc/configure libgloss/doc/configure.in libgloss/doc/porting.texi libgloss/fr30/Makefile.in libgloss/fr30/configure libgloss/fr30/configure.in libgloss/fr30/crt0.s libgloss/fr30/syscalls.c libgloss/frv/Makefile.in libgloss/frv/configure libgloss/frv/configure.in libgloss/frv/crt0.S libgloss/frv/fstat.c libgloss/frv/getpid.c libgloss/frv/isatty.c libgloss/frv/kill.c libgloss/frv/print.c libgloss/frv/putnum.c libgloss/frv/sbrk.c libgloss/frv/sim-close.S libgloss/frv/sim-exit.S libgloss/frv/sim-inbyte.c libgloss/frv/sim-lseek.S libgloss/frv/sim-open.S libgloss/frv/sim-read.S libgloss/frv/sim-time.c libgloss/frv/sim-unlink.S libgloss/frv/sim-write.S libgloss/frv/stat.c libgloss/fstat.c libgloss/getpid.c libgloss/glue.h libgloss/hp74x/Makefile.in libgloss/hp74x/README libgloss/hp74x/checksum.c libgloss/hp74x/configure libgloss/hp74x/configure.in libgloss/hp74x/crt0.s libgloss/hp74x/debugger.h libgloss/hp74x/debugger.s libgloss/hp74x/diagnose.h libgloss/hp74x/hppa-defs.h libgloss/hp74x/hppa.ld libgloss/hp74x/io.c libgloss/hp74x/iva_table.h libgloss/hp74x/iva_table.s libgloss/hp74x/pa_stub.c libgloss/hp74x/test.c libgloss/i386/Makefile.in libgloss/i386/configure libgloss/i386/configure.in libgloss/i386/cygmon-crt0.S libgloss/i386/cygmon-gmon.c libgloss/i386/cygmon-gmon.h libgloss/i386/cygmon-salib.c libgloss/i386/cygmon-syscall.h libgloss/i386/cygmon.ld libgloss/i960/Makefile.in libgloss/i960/asm.h libgloss/i960/configure libgloss/i960/configure.in libgloss/i960/crt0.c libgloss/i960/mon-read.c libgloss/i960/mon-syscalls.S libgloss/i960/mon-write.c libgloss/i960/mon960.c libgloss/i960/mon960.ld libgloss/i960/syscall.h libgloss/iq2000/Makefile.in libgloss/iq2000/_exit.c libgloss/iq2000/access.c libgloss/iq2000/chmod.c libgloss/iq2000/chown.c libgloss/iq2000/close.c libgloss/iq2000/configure libgloss/iq2000/configure.in libgloss/iq2000/creat.c libgloss/iq2000/crt0.S libgloss/iq2000/crt1.c libgloss/iq2000/execv.c libgloss/iq2000/execve.c libgloss/iq2000/fork.c libgloss/iq2000/fstat.c libgloss/iq2000/getpid.c libgloss/iq2000/gettime.c libgloss/iq2000/isatty.c libgloss/iq2000/kill.c libgloss/iq2000/lseek.c libgloss/iq2000/open.c libgloss/iq2000/pipe.c libgloss/iq2000/read.c libgloss/iq2000/sbrk.c libgloss/iq2000/sim.ld libgloss/iq2000/stat.c libgloss/iq2000/test.c libgloss/iq2000/time.c libgloss/iq2000/times.c libgloss/iq2000/trap.c libgloss/iq2000/trap.h libgloss/iq2000/unlink.c libgloss/iq2000/utime.c libgloss/iq2000/wait.c libgloss/iq2000/write.c libgloss/isatty.c libgloss/kill.c libgloss/libnosys/Makefile.in libgloss/libnosys/_exit.c libgloss/libnosys/acconfig.h libgloss/libnosys/close.c libgloss/libnosys/config.h.in libgloss/libnosys/configure libgloss/libnosys/configure.in libgloss/libnosys/environ.c libgloss/libnosys/errno.c libgloss/libnosys/execve.c libgloss/libnosys/fork.c libgloss/libnosys/fstat.c libgloss/libnosys/getpid.c libgloss/libnosys/gettod.c libgloss/libnosys/isatty.c libgloss/libnosys/kill.c libgloss/libnosys/link.c libgloss/libnosys/lseek.c libgloss/libnosys/open.c libgloss/libnosys/read.c libgloss/libnosys/sbrk.c libgloss/libnosys/stat.c libgloss/libnosys/times.c libgloss/libnosys/unlink.c libgloss/libnosys/wait.c libgloss/libnosys/warning.h libgloss/libnosys/write.c libgloss/lseek.c libgloss/m32r/Makefile.in libgloss/m32r/chmod.c libgloss/m32r/close.c libgloss/m32r/configure libgloss/m32r/configure.in libgloss/m32r/crt0.S libgloss/m32r/eit.h libgloss/m32r/eva-stub.ld libgloss/m32r/eva.ld libgloss/m32r/exit.c libgloss/m32r/fstat.c libgloss/m32r/getpid.c libgloss/m32r/isatty.c libgloss/m32r/kill.c libgloss/m32r/lseek.c libgloss/m32r/m32r-lib.c libgloss/m32r/mon.specs libgloss/m32r/open.c libgloss/m32r/raise.c libgloss/m32r/read.c libgloss/m32r/sbrk.c libgloss/m32r/stat.c libgloss/m32r/trap0.S libgloss/m32r/trapmon0.c libgloss/m32r/unlink.c libgloss/m32r/utime.c libgloss/m32r/write.c libgloss/m68hc11/Makefile.in libgloss/m68hc11/configure libgloss/m68hc11/configure.in libgloss/m68hc11/crt0.S libgloss/m68hc11/sci-inout.S libgloss/m68hc11/sim-valid-m68hc11.ld libgloss/m68hc11/sim-valid-m68hc12.ld libgloss/m68hc11/syscalls.c libgloss/m68k/Makefile.in libgloss/m68k/README libgloss/m68k/asm.h libgloss/m68k/bcc.ld libgloss/m68k/configure libgloss/m68k/configure.in libgloss/m68k/cpu32bug.S libgloss/m68k/cpu32bug.h libgloss/m68k/crt0.S libgloss/m68k/dbug-exit.S libgloss/m68k/dbug-inbyte.S libgloss/m68k/dbug-outbyte.S libgloss/m68k/dtor.C libgloss/m68k/idp-inbyte.c libgloss/m68k/idp-outbyte.c libgloss/m68k/idp.ld libgloss/m68k/idpgdb.ld libgloss/m68k/leds.c libgloss/m68k/leds.h libgloss/m68k/mc68681reg.h libgloss/m68k/mc68ec.c libgloss/m68k/mvme-stub.c libgloss/m68k/mvme.S libgloss/m68k/mvme135-asm.S libgloss/m68k/mvme135.ld libgloss/m68k/mvme162.ld libgloss/m68k/mvme162lx-asm.S libgloss/m68k/sbc5204.ld libgloss/m68k/sbc5206.ld libgloss/m68k/sim-abort.c libgloss/m68k/sim-crt0.S libgloss/m68k/sim-errno.c libgloss/m68k/sim-funcs.c libgloss/m68k/sim-inbyte.c libgloss/m68k/sim-print.c libgloss/m68k/sim-sbrk.c libgloss/m68k/sim.ld libgloss/m68k/simulator.S libgloss/m68k/test.c libgloss/mcore/Makefile.in libgloss/mcore/close.c libgloss/mcore/cmb-exit.c libgloss/mcore/cmb-inbyte.c libgloss/mcore/cmb-outbyte.c libgloss/mcore/configure libgloss/mcore/configure.in libgloss/mcore/crt0.S libgloss/mcore/elf-cmb.ld libgloss/mcore/elf-cmb.specs libgloss/mcore/fstat.c libgloss/mcore/getpid.c libgloss/mcore/kill.c libgloss/mcore/lseek.c libgloss/mcore/open.c libgloss/mcore/pe-cmb.ld libgloss/mcore/pe-cmb.specs libgloss/mcore/print.c libgloss/mcore/putnum.c libgloss/mcore/raise.c libgloss/mcore/read.c libgloss/mcore/sbrk.c libgloss/mcore/stat.c libgloss/mcore/syscalls.S libgloss/mcore/unlink.c libgloss/mcore/write.c libgloss/mips/Makefile.in libgloss/mips/array-io.c libgloss/mips/array.ld libgloss/mips/cfe.c libgloss/mips/cfe.ld libgloss/mips/cfe_api.c libgloss/mips/cfe_api.h libgloss/mips/cfe_api_int.h libgloss/mips/cfe_error.h libgloss/mips/cfe_mem.c libgloss/mips/cma101.c libgloss/mips/configure libgloss/mips/configure.in libgloss/mips/crt0.S libgloss/mips/crt0_cfe.S libgloss/mips/crt0_cygmon.S libgloss/mips/cygmon.c libgloss/mips/ddb-kseg0.ld libgloss/mips/ddb.ld libgloss/mips/dtor.C libgloss/mips/dve.ld libgloss/mips/dvemon.c libgloss/mips/entry.S libgloss/mips/idt.ld libgloss/mips/idt32.ld libgloss/mips/idt64.ld libgloss/mips/idtecoff.ld libgloss/mips/idtmon.S libgloss/mips/jmr3904-io.c libgloss/mips/jmr3904app-java.ld libgloss/mips/jmr3904app.ld libgloss/mips/jmr3904dram-java.ld libgloss/mips/jmr3904dram.ld libgloss/mips/lsi.ld libgloss/mips/lsi33k-stub.c libgloss/mips/lsi33k-stub.h libgloss/mips/lsipmon.S libgloss/mips/nullmon.c libgloss/mips/nullmon.ld libgloss/mips/pmon.S libgloss/mips/pmon.ld libgloss/mips/regs.S libgloss/mips/syscalls.c libgloss/mips/test.c libgloss/mips/vr4300.S libgloss/mips/vr5xxx.S libgloss/mn10200/Makefile.in libgloss/mn10200/_exit.c libgloss/mn10200/access.c libgloss/mn10200/chmod.c libgloss/mn10200/chown.c libgloss/mn10200/close.c libgloss/mn10200/configure libgloss/mn10200/configure.in libgloss/mn10200/creat.c libgloss/mn10200/crt0.S libgloss/mn10200/crt1.c libgloss/mn10200/eval.ld libgloss/mn10200/execv.c libgloss/mn10200/execve.c libgloss/mn10200/fork.c libgloss/mn10200/fstat.c libgloss/mn10200/getpid.c libgloss/mn10200/gettime.c libgloss/mn10200/isatty.c libgloss/mn10200/kill.c libgloss/mn10200/lseek.c libgloss/mn10200/open.c libgloss/mn10200/pipe.c libgloss/mn10200/read.c libgloss/mn10200/sbrk.c libgloss/mn10200/sim.ld libgloss/mn10200/stat.c libgloss/mn10200/test.c libgloss/mn10200/time.c libgloss/mn10200/times.c libgloss/mn10200/trap.S libgloss/mn10200/trap.h libgloss/mn10200/unlink.c libgloss/mn10200/utime.c libgloss/mn10200/wait.c libgloss/mn10200/write.c libgloss/mn10300/Makefile.in libgloss/mn10300/_exit.c libgloss/mn10300/access.c libgloss/mn10300/asb2303.ld libgloss/mn10300/asb2305.ld libgloss/mn10300/chmod.c libgloss/mn10300/chown.c libgloss/mn10300/close.c libgloss/mn10300/configure libgloss/mn10300/configure.in libgloss/mn10300/creat.c libgloss/mn10300/crt0-eval.S libgloss/mn10300/crt0.S libgloss/mn10300/crt0_cygmon.S libgloss/mn10300/crt0_redboot.S libgloss/mn10300/crt1.c libgloss/mn10300/cygmon.c libgloss/mn10300/eval.ld libgloss/mn10300/execv.c libgloss/mn10300/execve.c libgloss/mn10300/fork.c libgloss/mn10300/fstat.c libgloss/mn10300/getpid.c libgloss/mn10300/gettime.c libgloss/mn10300/isatty.c libgloss/mn10300/kill.c libgloss/mn10300/lseek.c libgloss/mn10300/open.c libgloss/mn10300/pipe.c libgloss/mn10300/read.c libgloss/mn10300/sbrk.c libgloss/mn10300/sim.ld libgloss/mn10300/stat.c libgloss/mn10300/test.c libgloss/mn10300/time.c libgloss/mn10300/times.c libgloss/mn10300/trap.S libgloss/mn10300/trap.h libgloss/mn10300/unlink.c libgloss/mn10300/utime.c libgloss/mn10300/wait.c libgloss/mn10300/write.c libgloss/open.c libgloss/pa/Makefile.in libgloss/pa/README libgloss/pa/configure libgloss/pa/configure.in libgloss/pa/crt0.S libgloss/pa/hp-milli.s libgloss/pa/op50n-io.S libgloss/pa/op50n.h libgloss/pa/op50n.ld libgloss/pa/op50nled.c libgloss/pa/setjmp.S libgloss/pa/test.c libgloss/pa/w89k-io.c libgloss/pa/w89k.h libgloss/pa/w89k.ld libgloss/print.c libgloss/putnum.c libgloss/read.c libgloss/rs6000/Makefile.in libgloss/rs6000/ads-exit.S libgloss/rs6000/ads-io.c libgloss/rs6000/ads.ld libgloss/rs6000/configure libgloss/rs6000/configure.in libgloss/rs6000/crt0.S libgloss/rs6000/mbx-exit.c libgloss/rs6000/mbx-inbyte.c libgloss/rs6000/mbx-outbyte.c libgloss/rs6000/mbx-print.c libgloss/rs6000/mbx.ld libgloss/rs6000/mbx.specs libgloss/rs6000/mcount.S libgloss/rs6000/mvme-errno.c libgloss/rs6000/mvme-exit.S libgloss/rs6000/mvme-inbyte.S libgloss/rs6000/mvme-outbyte.S libgloss/rs6000/mvme-print.c libgloss/rs6000/mvme-read.c libgloss/rs6000/sim-abort.c libgloss/rs6000/sim-crt0.S libgloss/rs6000/sim-errno.c libgloss/rs6000/sim-inbyte.c libgloss/rs6000/sim-print.c libgloss/rs6000/sim-sbrk.c libgloss/rs6000/simulator.S libgloss/rs6000/sol-cfuncs.c libgloss/rs6000/sol-syscall.S libgloss/rs6000/test.c libgloss/rs6000/yellowknife.ld libgloss/sbrk.c libgloss/sh/sh1lcevb.ld libgloss/sh/sh2lcevb.ld libgloss/sh/sh3bb.ld libgloss/sh/sh3lcevb.ld libgloss/sparc/Makefile.in libgloss/sparc/asm.h libgloss/sparc/cache.c libgloss/sparc/configure libgloss/sparc/configure.in libgloss/sparc/crt0-701.S libgloss/sparc/crt0.S libgloss/sparc/cygmon-crt0.S libgloss/sparc/cygmon-salib.c libgloss/sparc/cygmon-sparc64-ld.src libgloss/sparc/cygmon.ld.src libgloss/sparc/dtor.C libgloss/sparc/elfsim.ld libgloss/sparc/erc32-crt0.S libgloss/sparc/erc32-io.c libgloss/sparc/erc32-stub.c libgloss/sparc/erc32.ld libgloss/sparc/ex930.ld libgloss/sparc/ex931.ld libgloss/sparc/ex934.ld libgloss/sparc/fixctors.c libgloss/sparc/libsys/Makefile.in libgloss/sparc/libsys/_exit.S libgloss/sparc/libsys/cerror.S libgloss/sparc/libsys/configure libgloss/sparc/libsys/configure.in libgloss/sparc/libsys/isatty.c libgloss/sparc/libsys/libsys-crt0.S libgloss/sparc/libsys/sbrk.S libgloss/sparc/libsys/syscall.h libgloss/sparc/libsys/syscallasm.h libgloss/sparc/libsys/template.S libgloss/sparc/libsys/template_r.S libgloss/sparc/salib-701.c libgloss/sparc/salib.c libgloss/sparc/slite.h libgloss/sparc/sparc-stub.c libgloss/sparc/sparc86x.ld libgloss/sparc/sparcl-stub.c libgloss/sparc/sparclet-stub.c libgloss/sparc/sparclite.h libgloss/sparc/sysc-701.c libgloss/sparc/syscalls.c libgloss/sparc/test.c libgloss/sparc/traps.S libgloss/sparc/tsc701.ld libgloss/stat.c libgloss/syscall.h libgloss/testsuite/Makefile.in libgloss/testsuite/config/hppa.mt libgloss/testsuite/config/m68k.mt libgloss/testsuite/config/mips.mt libgloss/testsuite/config/support.c libgloss/testsuite/configure.in libgloss/testsuite/lib/libgloss.exp libgloss/testsuite/libgloss.all/.gdbinit libgloss/testsuite/libgloss.all/Makefile.in libgloss/testsuite/libgloss.all/array.c libgloss/testsuite/libgloss.all/configure.in libgloss/testsuite/libgloss.all/div.c libgloss/testsuite/libgloss.all/double.c libgloss/testsuite/libgloss.all/float.c libgloss/testsuite/libgloss.all/func.c libgloss/testsuite/libgloss.all/io.c libgloss/testsuite/libgloss.all/math.c libgloss/testsuite/libgloss.all/memory.c libgloss/testsuite/libgloss.all/misc.c libgloss/testsuite/libgloss.all/printf.c libgloss/testsuite/libgloss.all/struct.c libgloss/testsuite/libgloss.all/varargs.c libgloss/testsuite/libgloss.all/varargs2.c libgloss/unlink.c libgloss/v850/sys/syscall.h libgloss/wince/Makefile.am libgloss/wince/Makefile.in libgloss/wince/aclocal.m4 libgloss/wince/configure libgloss/wince/configure.in libgloss/write.c libgloss/xstormy16/Makefile.in libgloss/xstormy16/close.c libgloss/xstormy16/configure libgloss/xstormy16/configure.in libgloss/xstormy16/crt0.s libgloss/xstormy16/crt0_stub.s libgloss/xstormy16/crti.s libgloss/xstormy16/crtn.s libgloss/xstormy16/eva_app.c libgloss/xstormy16/eva_app.ld libgloss/xstormy16/eva_stub.ld libgloss/xstormy16/fstat.c libgloss/xstormy16/getpid.c libgloss/xstormy16/kill.c libgloss/xstormy16/lseek.c libgloss/xstormy16/open.c libgloss/xstormy16/sim_high.ld libgloss/xstormy16/sim_malloc_start.s libgloss/xstormy16/sim_rom.ld libgloss/xstormy16/stat.c libgloss/xstormy16/syscalls.S libgloss/xstormy16/syscalls.m4 libgloss/xstormy16/unlink.c libgloss/xstormy16/xstormy16_stub.c libtool.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig ltmain.sh makefile.vms missing mkdep mkinstalldirs move-if-change newlib/ChangeLog newlib/MAINTAINERS newlib/Makefile.am newlib/Makefile.in newlib/Makefile.shared newlib/NEWS newlib/README newlib/acinclude.m4 newlib/aclocal.m4 newlib/configure newlib/configure.host newlib/configure.in newlib/doc/Makefile.am newlib/doc/Makefile.in newlib/doc/aclocal.m4 newlib/doc/ansidecl.h newlib/doc/configure newlib/doc/configure.in newlib/doc/doc.str newlib/doc/makedoc.c newlib/iconvdata/EUC-JP.irreversible newlib/iconvdata/Makefile.am newlib/iconvdata/Makefile.in newlib/iconvdata/SJIS.irreversible newlib/iconvdata/aclocal.m4 newlib/iconvdata/configure newlib/iconvdata/configure.in newlib/iconvdata/dummy.c newlib/iconvdata/euc-jp.c newlib/iconvdata/gconv-modules newlib/iconvdata/jis0201.c newlib/iconvdata/jis0201.h newlib/iconvdata/jis0208.c newlib/iconvdata/jis0208.h newlib/iconvdata/jis0212.c newlib/iconvdata/jis0212.h newlib/iconvdata/sjis.c newlib/libc/Makefile.am newlib/libc/Makefile.in newlib/libc/aclocal.m4 newlib/libc/argz/Makefile.am newlib/libc/argz/Makefile.in newlib/libc/argz/argz_add.c newlib/libc/argz/argz_add_sep.c newlib/libc/argz/argz_append.c newlib/libc/argz/argz_count.c newlib/libc/argz/argz_create.c newlib/libc/argz/argz_create_sep.c newlib/libc/argz/argz_delete.c newlib/libc/argz/argz_extract.c newlib/libc/argz/argz_insert.c newlib/libc/argz/argz_next.c newlib/libc/argz/argz_replace.c newlib/libc/argz/argz_stringify.c newlib/libc/argz/buf_findstr.c newlib/libc/argz/buf_findstr.h newlib/libc/argz/dummy.c newlib/libc/argz/envz_add.c newlib/libc/argz/envz_entry.c newlib/libc/argz/envz_get.c newlib/libc/argz/envz_merge.c newlib/libc/argz/envz_remove.c newlib/libc/argz/envz_strip.c newlib/libc/configure newlib/libc/configure.in newlib/libc/ctype/Makefile.am newlib/libc/ctype/Makefile.in newlib/libc/ctype/_tolower.c newlib/libc/ctype/_toupper.c newlib/libc/ctype/ctype.tex newlib/libc/ctype/ctype_.c newlib/libc/ctype/isalnum.c newlib/libc/ctype/isalpha.c newlib/libc/ctype/isascii.c newlib/libc/ctype/isblank.c newlib/libc/ctype/iscntrl.c newlib/libc/ctype/isdigit.c newlib/libc/ctype/islower.c newlib/libc/ctype/isprint.c newlib/libc/ctype/ispunct.c newlib/libc/ctype/isspace.c newlib/libc/ctype/isupper.c newlib/libc/ctype/iswalnum.c newlib/libc/ctype/iswalpha.c newlib/libc/ctype/iswblank.c newlib/libc/ctype/iswcntrl.c newlib/libc/ctype/iswctype.c newlib/libc/ctype/iswdigit.c newlib/libc/ctype/iswgraph.c newlib/libc/ctype/iswlower.c newlib/libc/ctype/iswprint.c newlib/libc/ctype/iswpunct.c newlib/libc/ctype/iswspace.c newlib/libc/ctype/iswupper.c newlib/libc/ctype/iswxdigit.c newlib/libc/ctype/isxdigit.c newlib/libc/ctype/jp2uc.c newlib/libc/ctype/jp2uc.h newlib/libc/ctype/local.h newlib/libc/ctype/toascii.c newlib/libc/ctype/tolower.c newlib/libc/ctype/toupper.c newlib/libc/ctype/towctrans.c newlib/libc/ctype/towlower.c newlib/libc/ctype/towupper.c newlib/libc/ctype/utf8alpha.h newlib/libc/ctype/utf8print.h newlib/libc/ctype/utf8punct.h newlib/libc/ctype/wctrans.c newlib/libc/ctype/wctype.c newlib/libc/errno/Makefile.am newlib/libc/errno/Makefile.in newlib/libc/errno/errno.c newlib/libc/iconv/Makefile.am newlib/libc/iconv/Makefile.in newlib/libc/iconv/ccs/Makefile.am newlib/libc/iconv/ccs/Makefile.in newlib/libc/iconv/ccs/big5.c newlib/libc/iconv/ccs/binary/Makefile.am newlib/libc/iconv/ccs/binary/Makefile.in newlib/libc/iconv/ccs/binary/big5.cct newlib/libc/iconv/ccs/binary/cns11643_plane1.cct newlib/libc/iconv/ccs/binary/cns11643_plane14.cct newlib/libc/iconv/ccs/binary/cns11643_plane2.cct newlib/libc/iconv/ccs/binary/cp775.cct newlib/libc/iconv/ccs/binary/cp850.cct newlib/libc/iconv/ccs/binary/cp852.cct newlib/libc/iconv/ccs/binary/cp855.cct newlib/libc/iconv/ccs/binary/cp866.cct newlib/libc/iconv/ccs/binary/iso_8859_1.cct newlib/libc/iconv/ccs/binary/iso_8859_10.cct newlib/libc/iconv/ccs/binary/iso_8859_11.cct newlib/libc/iconv/ccs/binary/iso_8859_13.cct newlib/libc/iconv/ccs/binary/iso_8859_14.cct newlib/libc/iconv/ccs/binary/iso_8859_15.cct newlib/libc/iconv/ccs/binary/iso_8859_2.cct newlib/libc/iconv/ccs/binary/iso_8859_3.cct newlib/libc/iconv/ccs/binary/iso_8859_4.cct newlib/libc/iconv/ccs/binary/iso_8859_5.cct newlib/libc/iconv/ccs/binary/iso_8859_6.cct newlib/libc/iconv/ccs/binary/iso_8859_7.cct newlib/libc/iconv/ccs/binary/iso_8859_8.cct newlib/libc/iconv/ccs/binary/iso_8859_9.cct newlib/libc/iconv/ccs/binary/iso_ir_111.cct newlib/libc/iconv/ccs/binary/jis_x0201_1976.cct newlib/libc/iconv/ccs/binary/jis_x0208_1990.cct newlib/libc/iconv/ccs/binary/jis_x0212_1990.cct newlib/libc/iconv/ccs/binary/koi8_r.cct newlib/libc/iconv/ccs/binary/koi8_ru.cct newlib/libc/iconv/ccs/binary/koi8_u.cct newlib/libc/iconv/ccs/binary/koi8_uni.cct newlib/libc/iconv/ccs/binary/ksx1001.cct newlib/libc/iconv/ccs/binary/win_1250.cct newlib/libc/iconv/ccs/binary/win_1251.cct newlib/libc/iconv/ccs/binary/win_1252.cct newlib/libc/iconv/ccs/binary/win_1253.cct newlib/libc/iconv/ccs/binary/win_1254.cct newlib/libc/iconv/ccs/binary/win_1255.cct newlib/libc/iconv/ccs/binary/win_1256.cct newlib/libc/iconv/ccs/binary/win_1257.cct newlib/libc/iconv/ccs/binary/win_1258.cct newlib/libc/iconv/ccs/ccs.h newlib/libc/iconv/ccs/ccsbi.c newlib/libc/iconv/ccs/ccsbi.h newlib/libc/iconv/ccs/ccsnames.h newlib/libc/iconv/ccs/cns11643_plane1.c newlib/libc/iconv/ccs/cns11643_plane14.c newlib/libc/iconv/ccs/cns11643_plane2.c newlib/libc/iconv/ccs/cp775.c newlib/libc/iconv/ccs/cp850.c newlib/libc/iconv/ccs/cp852.c newlib/libc/iconv/ccs/cp855.c newlib/libc/iconv/ccs/cp866.c newlib/libc/iconv/ccs/iso_8859_1.c newlib/libc/iconv/ccs/iso_8859_10.c newlib/libc/iconv/ccs/iso_8859_11.c newlib/libc/iconv/ccs/iso_8859_13.c newlib/libc/iconv/ccs/iso_8859_14.c newlib/libc/iconv/ccs/iso_8859_15.c newlib/libc/iconv/ccs/iso_8859_2.c newlib/libc/iconv/ccs/iso_8859_3.c newlib/libc/iconv/ccs/iso_8859_4.c newlib/libc/iconv/ccs/iso_8859_5.c newlib/libc/iconv/ccs/iso_8859_6.c newlib/libc/iconv/ccs/iso_8859_7.c newlib/libc/iconv/ccs/iso_8859_8.c newlib/libc/iconv/ccs/iso_8859_9.c newlib/libc/iconv/ccs/iso_ir_111.c newlib/libc/iconv/ccs/jis_x0201_1976.c newlib/libc/iconv/ccs/jis_x0208_1990.c newlib/libc/iconv/ccs/jis_x0212_1990.c newlib/libc/iconv/ccs/koi8_r.c newlib/libc/iconv/ccs/koi8_ru.c newlib/libc/iconv/ccs/koi8_u.c newlib/libc/iconv/ccs/koi8_uni.c newlib/libc/iconv/ccs/ksx1001.c newlib/libc/iconv/ccs/mktbl.pl newlib/libc/iconv/ccs/win_1250.c newlib/libc/iconv/ccs/win_1251.c newlib/libc/iconv/ccs/win_1252.c newlib/libc/iconv/ccs/win_1253.c newlib/libc/iconv/ccs/win_1254.c newlib/libc/iconv/ccs/win_1255.c newlib/libc/iconv/ccs/win_1256.c newlib/libc/iconv/ccs/win_1257.c newlib/libc/iconv/ccs/win_1258.c newlib/libc/iconv/ces/Makefile.am newlib/libc/iconv/ces/Makefile.in newlib/libc/iconv/ces/cesbi.c newlib/libc/iconv/ces/cesbi.h newlib/libc/iconv/ces/cesdeps.h newlib/libc/iconv/ces/euc.c newlib/libc/iconv/ces/mkdeps.pl newlib/libc/iconv/ces/table-pcs.c newlib/libc/iconv/ces/table.c newlib/libc/iconv/ces/ucs-2-internal.c newlib/libc/iconv/ces/ucs-2.c newlib/libc/iconv/ces/ucs-4-internal.c newlib/libc/iconv/ces/ucs-4.c newlib/libc/iconv/ces/us-ascii.c newlib/libc/iconv/ces/utf-16.c newlib/libc/iconv/ces/utf-8.c newlib/libc/iconv/encoding.aliases newlib/libc/iconv/iconv.tex newlib/libc/iconv/lib/Makefile.am newlib/libc/iconv/lib/Makefile.in newlib/libc/iconv/lib/aliasesbi.c newlib/libc/iconv/lib/aliasesi.c newlib/libc/iconv/lib/conv.h newlib/libc/iconv/lib/encnames.h newlib/libc/iconv/lib/encoding.deps newlib/libc/iconv/lib/endian.h newlib/libc/iconv/lib/iconv.c newlib/libc/iconv/lib/iconvnls.c newlib/libc/iconv/lib/iconvnls.h newlib/libc/iconv/lib/local.h newlib/libc/iconv/lib/nullconv.c newlib/libc/iconv/lib/ucsconv.c newlib/libc/iconv/lib/ucsconv.h newlib/libc/include/_ansi.h newlib/libc/include/_syslist.h newlib/libc/include/alloca.h newlib/libc/include/ar.h newlib/libc/include/argz.h newlib/libc/include/assert.h newlib/libc/include/ctype.h newlib/libc/include/dirent.h newlib/libc/include/envz.h newlib/libc/include/errno.h newlib/libc/include/fastmath.h newlib/libc/include/fcntl.h newlib/libc/include/grp.h newlib/libc/include/iconv.h newlib/libc/include/ieeefp.h newlib/libc/include/langinfo.h newlib/libc/include/limits.h newlib/libc/include/locale.h newlib/libc/include/machine/ansi.h newlib/libc/include/machine/endian.h newlib/libc/include/machine/fastmath.h newlib/libc/include/machine/ieeefp.h newlib/libc/include/machine/malloc.h newlib/libc/include/machine/param.h newlib/libc/include/machine/setjmp-dj.h newlib/libc/include/machine/setjmp.h newlib/libc/include/machine/stdlib.h newlib/libc/include/machine/termios.h newlib/libc/include/machine/time.h newlib/libc/include/machine/types.h newlib/libc/include/malloc.h newlib/libc/include/math.h newlib/libc/include/newlib.h newlib/libc/include/paths.h newlib/libc/include/process.h newlib/libc/include/pthread.h newlib/libc/include/pwd.h newlib/libc/include/reent.h newlib/libc/include/regdef.h newlib/libc/include/search.h newlib/libc/include/setjmp.h newlib/libc/include/signal.h newlib/libc/include/stdio.h newlib/libc/include/stdlib.h newlib/libc/include/string.h newlib/libc/include/sys/_types.h newlib/libc/include/sys/cdefs.h newlib/libc/include/sys/config.h newlib/libc/include/sys/dirent.h newlib/libc/include/sys/errno.h newlib/libc/include/sys/fcntl.h newlib/libc/include/sys/features.h newlib/libc/include/sys/file.h newlib/libc/include/sys/iconvnls.h newlib/libc/include/sys/lock.h newlib/libc/include/sys/param.h newlib/libc/include/sys/queue.h newlib/libc/include/sys/reent.h newlib/libc/include/sys/resource.h newlib/libc/include/sys/sched.h newlib/libc/include/sys/signal.h newlib/libc/include/sys/stat.h newlib/libc/include/sys/stdio.h newlib/libc/include/sys/syslimits.h newlib/libc/include/sys/time.h newlib/libc/include/sys/timeb.h newlib/libc/include/sys/times.h newlib/libc/include/sys/types.h newlib/libc/include/sys/unistd.h newlib/libc/include/sys/utime.h newlib/libc/include/sys/wait.h newlib/libc/include/termios.h newlib/libc/include/time.h newlib/libc/include/unctrl.h newlib/libc/include/unistd.h newlib/libc/include/utime.h newlib/libc/include/utmp.h newlib/libc/include/wchar.h newlib/libc/include/wctype.h newlib/libc/libc.texinfo newlib/libc/locale/Makefile.am newlib/libc/locale/Makefile.in newlib/libc/locale/fix_grouping.c newlib/libc/locale/ldpart.c newlib/libc/locale/ldpart.h newlib/libc/locale/lmessages.c newlib/libc/locale/lmessages.h newlib/libc/locale/lmonetary.c newlib/libc/locale/lmonetary.h newlib/libc/locale/lnumeric.c newlib/libc/locale/lnumeric.h newlib/libc/locale/locale.c newlib/libc/locale/locale.tex newlib/libc/locale/nl_langinfo.3 newlib/libc/locale/nl_langinfo.c newlib/libc/locale/setlocale.h newlib/libc/locale/timelocal.c newlib/libc/locale/timelocal.h newlib/libc/machine/Makefile.am newlib/libc/machine/Makefile.in newlib/libc/machine/a29k/Makefile.am newlib/libc/machine/a29k/Makefile.in newlib/libc/machine/a29k/aclocal.m4 newlib/libc/machine/a29k/configure newlib/libc/machine/a29k/configure.in newlib/libc/machine/aclocal.m4 newlib/libc/machine/arm/Makefile.am newlib/libc/machine/arm/Makefile.in newlib/libc/machine/arm/access.c newlib/libc/machine/arm/aclocal.m4 newlib/libc/machine/arm/configure newlib/libc/machine/arm/configure.in newlib/libc/machine/arm/machine/endian.h newlib/libc/machine/arm/machine/param.h newlib/libc/machine/arm/setjmp.S newlib/libc/machine/configure newlib/libc/machine/configure.in newlib/libc/machine/crx/Makefile.am newlib/libc/machine/crx/Makefile.in newlib/libc/machine/crx/aclocal.m4 newlib/libc/machine/crx/configure newlib/libc/machine/crx/configure.in newlib/libc/machine/crx/getenv.c newlib/libc/machine/crx/setjmp.S newlib/libc/machine/crx/sys/asm.h newlib/libc/machine/crx/sys/libh.h newlib/libc/machine/crx/sys/syscall.h newlib/libc/machine/d10v/Makefile.am newlib/libc/machine/d10v/Makefile.in newlib/libc/machine/d10v/aclocal.m4 newlib/libc/machine/d10v/configure newlib/libc/machine/d10v/configure.in newlib/libc/machine/d10v/setjmp.S newlib/libc/machine/d30v/Makefile.am newlib/libc/machine/d30v/Makefile.in newlib/libc/machine/d30v/aclocal.m4 newlib/libc/machine/d30v/configure newlib/libc/machine/d30v/configure.in newlib/libc/machine/d30v/setjmp.S newlib/libc/machine/fr30/Makefile.am newlib/libc/machine/fr30/Makefile.in newlib/libc/machine/fr30/aclocal.m4 newlib/libc/machine/fr30/configure newlib/libc/machine/fr30/configure.in newlib/libc/machine/fr30/setjmp.S newlib/libc/machine/frv/Makefile.am newlib/libc/machine/frv/Makefile.in newlib/libc/machine/frv/aclocal.m4 newlib/libc/machine/frv/configure newlib/libc/machine/frv/configure.in newlib/libc/machine/frv/setjmp.S newlib/libc/machine/h8300/Makefile.am newlib/libc/machine/h8300/Makefile.in newlib/libc/machine/h8300/aclocal.m4 newlib/libc/machine/h8300/configure newlib/libc/machine/h8300/configure.in newlib/libc/machine/h8300/defines.h newlib/libc/machine/h8300/h8sx_strcpy.S newlib/libc/machine/h8300/memcpy.S newlib/libc/machine/h8300/memset.S newlib/libc/machine/h8300/reg_memcpy.S newlib/libc/machine/h8300/reg_memset.S newlib/libc/machine/h8300/setarch.h newlib/libc/machine/h8300/setjmp.S newlib/libc/machine/h8300/strcmp.S newlib/libc/machine/h8500/Makefile.am newlib/libc/machine/h8500/Makefile.in newlib/libc/machine/h8500/aclocal.m4 newlib/libc/machine/h8500/cmpsi.c newlib/libc/machine/h8500/configure newlib/libc/machine/h8500/configure.in newlib/libc/machine/h8500/divhi3.S newlib/libc/machine/h8500/divsi3.c newlib/libc/machine/h8500/mulhi3.c newlib/libc/machine/h8500/mulsi3.c newlib/libc/machine/h8500/negsi2.c newlib/libc/machine/h8500/psi.S newlib/libc/machine/h8500/setjmp.S newlib/libc/machine/h8500/shifts.c newlib/libc/machine/hppa/DEFS.h newlib/libc/machine/hppa/Makefile.am newlib/libc/machine/hppa/Makefile.in newlib/libc/machine/hppa/aclocal.m4 newlib/libc/machine/hppa/configure newlib/libc/machine/hppa/configure.in newlib/libc/machine/hppa/memchr.S newlib/libc/machine/hppa/memcmp.S newlib/libc/machine/hppa/memcpy.S newlib/libc/machine/hppa/memset.S newlib/libc/machine/hppa/pcc_prefix.s newlib/libc/machine/hppa/setjmp.S newlib/libc/machine/hppa/strcat.S newlib/libc/machine/hppa/strcmp.S newlib/libc/machine/hppa/strcpy.S newlib/libc/machine/hppa/strlen.S newlib/libc/machine/hppa/strncat.S newlib/libc/machine/hppa/strncmp.S newlib/libc/machine/hppa/strncpy.S newlib/libc/machine/i386/Makefile.am newlib/libc/machine/i386/Makefile.in newlib/libc/machine/i386/aclocal.m4 newlib/libc/machine/i386/configure newlib/libc/machine/i386/configure.in newlib/libc/machine/i386/f_atan2.S newlib/libc/machine/i386/f_atan2f.S newlib/libc/machine/i386/f_exp.c newlib/libc/machine/i386/f_expf.c newlib/libc/machine/i386/f_frexp.S newlib/libc/machine/i386/f_frexpf.S newlib/libc/machine/i386/f_ldexp.S newlib/libc/machine/i386/f_ldexpf.S newlib/libc/machine/i386/f_log.S newlib/libc/machine/i386/f_log10.S newlib/libc/machine/i386/f_log10f.S newlib/libc/machine/i386/f_logf.S newlib/libc/machine/i386/f_math.h newlib/libc/machine/i386/f_pow.c newlib/libc/machine/i386/f_powf.c newlib/libc/machine/i386/f_tan.S newlib/libc/machine/i386/f_tanf.S newlib/libc/machine/i386/i386mach.h newlib/libc/machine/i386/memchr.S newlib/libc/machine/i386/memcmp.S newlib/libc/machine/i386/memcpy.S newlib/libc/machine/i386/memmove.S newlib/libc/machine/i386/memset.S newlib/libc/machine/i386/setjmp.S newlib/libc/machine/i386/strchr.S newlib/libc/machine/i386/strlen.S newlib/libc/machine/i960/Makefile.am newlib/libc/machine/i960/Makefile.in newlib/libc/machine/i960/aclocal.m4 newlib/libc/machine/i960/configure newlib/libc/machine/i960/configure.in newlib/libc/machine/i960/memccpy.S newlib/libc/machine/i960/memccpy_ca.S newlib/libc/machine/i960/memchr.S newlib/libc/machine/i960/memchr_ca.S newlib/libc/machine/i960/memcmp.S newlib/libc/machine/i960/memcmp_ca.S newlib/libc/machine/i960/memcpy.S newlib/libc/machine/i960/memcpy_ca.S newlib/libc/machine/i960/memset.S newlib/libc/machine/i960/setjmp.S newlib/libc/machine/i960/strchr.S newlib/libc/machine/i960/strchr_ca.S newlib/libc/machine/i960/strcmp.S newlib/libc/machine/i960/strcmp_ca.S newlib/libc/machine/i960/strcpy.S newlib/libc/machine/i960/strcpy_ca.S newlib/libc/machine/i960/strcspn.S newlib/libc/machine/i960/strdup.S newlib/libc/machine/i960/strlen.S newlib/libc/machine/i960/strlen_ca.S newlib/libc/machine/i960/strncat.S newlib/libc/machine/i960/strncat_ca.S newlib/libc/machine/i960/strncmp.S newlib/libc/machine/i960/strncmp_ca.S newlib/libc/machine/i960/strncpy.S newlib/libc/machine/i960/strncpy_ca.S newlib/libc/machine/i960/strpbrk.S newlib/libc/machine/i960/strrchr.S newlib/libc/machine/iq2000/Makefile.am newlib/libc/machine/iq2000/Makefile.in newlib/libc/machine/iq2000/aclocal.m4 newlib/libc/machine/iq2000/configure newlib/libc/machine/iq2000/configure.in newlib/libc/machine/iq2000/setjmp.S newlib/libc/machine/m32r/Makefile.am newlib/libc/machine/m32r/Makefile.in newlib/libc/machine/m32r/aclocal.m4 newlib/libc/machine/m32r/configure newlib/libc/machine/m32r/configure.in newlib/libc/machine/m32r/setjmp.S newlib/libc/machine/m68hc11/Makefile.am newlib/libc/machine/m68hc11/Makefile.in newlib/libc/machine/m68hc11/aclocal.m4 newlib/libc/machine/m68hc11/configure newlib/libc/machine/m68hc11/configure.in newlib/libc/machine/m68hc11/setjmp.S newlib/libc/machine/m68k/Makefile.am newlib/libc/machine/m68k/Makefile.in newlib/libc/machine/m68k/aclocal.m4 newlib/libc/machine/m68k/configure newlib/libc/machine/m68k/configure.in newlib/libc/machine/m68k/setjmp.S newlib/libc/machine/m68k/strcpy.c newlib/libc/machine/m68k/strlen.c newlib/libc/machine/m88k/Makefile.am newlib/libc/machine/m88k/Makefile.in newlib/libc/machine/m88k/aclocal.m4 newlib/libc/machine/m88k/configure newlib/libc/machine/m88k/configure.in newlib/libc/machine/m88k/setjmp.S newlib/libc/machine/mips/Makefile.am newlib/libc/machine/mips/Makefile.in newlib/libc/machine/mips/aclocal.m4 newlib/libc/machine/mips/configure newlib/libc/machine/mips/configure.in newlib/libc/machine/mips/machine/regdef.h newlib/libc/machine/mips/memcpy.c newlib/libc/machine/mips/memset.c newlib/libc/machine/mips/setjmp.S newlib/libc/machine/mips/strcmp.c newlib/libc/machine/mips/strlen.c newlib/libc/machine/mips/strncpy.c newlib/libc/machine/mn10200/Makefile.am newlib/libc/machine/mn10200/Makefile.in newlib/libc/machine/mn10200/aclocal.m4 newlib/libc/machine/mn10200/configure newlib/libc/machine/mn10200/configure.in newlib/libc/machine/mn10200/setjmp.S newlib/libc/machine/mn10300/Makefile.am newlib/libc/machine/mn10300/Makefile.in newlib/libc/machine/mn10300/aclocal.m4 newlib/libc/machine/mn10300/configure newlib/libc/machine/mn10300/configure.in newlib/libc/machine/mn10300/memchr.S newlib/libc/machine/mn10300/memcmp.S newlib/libc/machine/mn10300/memcpy.S newlib/libc/machine/mn10300/memset.S newlib/libc/machine/mn10300/setjmp.S newlib/libc/machine/mn10300/strchr.S newlib/libc/machine/mn10300/strcmp.S newlib/libc/machine/mn10300/strcpy.S newlib/libc/machine/mn10300/strlen.S newlib/libc/machine/necv70/Makefile.am newlib/libc/machine/necv70/Makefile.in newlib/libc/machine/necv70/aclocal.m4 newlib/libc/machine/necv70/configure newlib/libc/machine/necv70/configure.in newlib/libc/machine/necv70/fastmath.s newlib/libc/machine/necv70/machine/registers.h newlib/libc/machine/necv70/necv70.tex newlib/libc/machine/necv70/setjmp.s newlib/libc/machine/powerpc/Makefile.am newlib/libc/machine/powerpc/Makefile.in newlib/libc/machine/powerpc/aclocal.m4 newlib/libc/machine/powerpc/atosfix16.c newlib/libc/machine/powerpc/atosfix32.c newlib/libc/machine/powerpc/atosfix64.c newlib/libc/machine/powerpc/atoufix16.c newlib/libc/machine/powerpc/atoufix32.c newlib/libc/machine/powerpc/atoufix64.c newlib/libc/machine/powerpc/configure newlib/libc/machine/powerpc/configure.in newlib/libc/machine/powerpc/fix64.h newlib/libc/machine/powerpc/machine/malloc.h newlib/libc/machine/powerpc/machine/stdlib.h newlib/libc/machine/powerpc/setjmp.S newlib/libc/machine/powerpc/simdldtoa.c newlib/libc/machine/powerpc/strtosfix16.c newlib/libc/machine/powerpc/strtosfix32.c newlib/libc/machine/powerpc/strtosfix64.c newlib/libc/machine/powerpc/strtoufix16.c newlib/libc/machine/powerpc/strtoufix32.c newlib/libc/machine/powerpc/strtoufix64.c newlib/libc/machine/powerpc/times.c newlib/libc/machine/powerpc/ufix64toa.c newlib/libc/machine/powerpc/vec_calloc.c newlib/libc/machine/powerpc/vec_free.c newlib/libc/machine/powerpc/vec_malloc.c newlib/libc/machine/powerpc/vec_mallocr.c newlib/libc/machine/powerpc/vec_realloc.c newlib/libc/machine/powerpc/vfprintf.c newlib/libc/machine/powerpc/vfscanf.c newlib/libc/machine/sh/Makefile.am newlib/libc/machine/sh/Makefile.in newlib/libc/machine/sh/aclocal.m4 newlib/libc/machine/sh/asm.h newlib/libc/machine/sh/configure newlib/libc/machine/sh/configure.in newlib/libc/machine/sh/memcpy.S newlib/libc/machine/sh/memset.S newlib/libc/machine/sh/setjmp.S newlib/libc/machine/sh/strcmp.S newlib/libc/machine/sh/strcpy.S newlib/libc/machine/sh/strlen.S newlib/libc/machine/sh/strncpy.S newlib/libc/machine/sparc/Makefile.am newlib/libc/machine/sparc/Makefile.in newlib/libc/machine/sparc/aclocal.m4 newlib/libc/machine/sparc/configure newlib/libc/machine/sparc/configure.in newlib/libc/machine/sparc/machine/sparclet.h newlib/libc/machine/sparc/scan.c newlib/libc/machine/sparc/setjmp.S newlib/libc/machine/sparc/shuffle.c newlib/libc/machine/tic4x/Makefile.am newlib/libc/machine/tic4x/Makefile.in newlib/libc/machine/tic4x/aclocal.m4 newlib/libc/machine/tic4x/configure newlib/libc/machine/tic4x/configure.in newlib/libc/machine/tic4x/setjmp.S newlib/libc/machine/tic80/Makefile.am newlib/libc/machine/tic80/Makefile.in newlib/libc/machine/tic80/aclocal.m4 newlib/libc/machine/tic80/configure newlib/libc/machine/tic80/configure.in newlib/libc/machine/tic80/setjmp.S newlib/libc/machine/v850/Makefile.am newlib/libc/machine/v850/Makefile.in newlib/libc/machine/v850/aclocal.m4 newlib/libc/machine/v850/configure newlib/libc/machine/v850/configure.in newlib/libc/machine/v850/setjmp.S newlib/libc/machine/w65/Makefile.am newlib/libc/machine/w65/Makefile.in newlib/libc/machine/w65/aclocal.m4 newlib/libc/machine/w65/cmpsi.c newlib/libc/machine/w65/configure newlib/libc/machine/w65/configure.in newlib/libc/machine/w65/divsi3.c newlib/libc/machine/w65/lshrhi.s newlib/libc/machine/w65/mulsi3.c newlib/libc/machine/w65/sdivhi3.s newlib/libc/machine/w65/smulhi3.s newlib/libc/machine/w65/udivhi3.s newlib/libc/machine/w65/umodhi3.s newlib/libc/machine/xscale/Makefile.am newlib/libc/machine/xscale/Makefile.in newlib/libc/machine/xscale/aclocal.m4 newlib/libc/machine/xscale/configure newlib/libc/machine/xscale/configure.in newlib/libc/machine/xscale/machine/profile.h newlib/libc/machine/xscale/memchr.c newlib/libc/machine/xscale/memcmp.c newlib/libc/machine/xscale/memcpy.c newlib/libc/machine/xscale/memmove.c newlib/libc/machine/xscale/memset.c newlib/libc/machine/xscale/setjmp.S newlib/libc/machine/xscale/strchr.c newlib/libc/machine/xscale/strcmp.c newlib/libc/machine/xscale/strcpy.c newlib/libc/machine/xscale/strlen.c newlib/libc/machine/xscale/xscale.h newlib/libc/machine/xstormy16/Makefile.am newlib/libc/machine/xstormy16/Makefile.in newlib/libc/machine/xstormy16/aclocal.m4 newlib/libc/machine/xstormy16/configure newlib/libc/machine/xstormy16/configure.in newlib/libc/machine/xstormy16/mallocr.c newlib/libc/machine/xstormy16/setjmp.S newlib/libc/machine/xstormy16/tiny-malloc.c newlib/libc/machine/z8k/Makefile.am newlib/libc/machine/z8k/Makefile.in newlib/libc/machine/z8k/aclocal.m4 newlib/libc/machine/z8k/args.h newlib/libc/machine/z8k/configure newlib/libc/machine/z8k/configure.in newlib/libc/machine/z8k/setjmp.S newlib/libc/misc/Makefile.am newlib/libc/misc/Makefile.in newlib/libc/misc/dprintf.c newlib/libc/misc/ffs.c newlib/libc/misc/misc.tex newlib/libc/misc/unctrl.c newlib/libc/posix/Makefile.am newlib/libc/posix/Makefile.in newlib/libc/posix/closedir.c newlib/libc/posix/creat.c newlib/libc/posix/execl.c newlib/libc/posix/execle.c newlib/libc/posix/execlp.c newlib/libc/posix/execv.c newlib/libc/posix/execve.c newlib/libc/posix/execvp.c newlib/libc/posix/isatty.c newlib/libc/posix/opendir.c newlib/libc/posix/popen.c newlib/libc/posix/readdir.c newlib/libc/posix/readdir_r.c newlib/libc/posix/rewinddir.c newlib/libc/posix/scandir.c newlib/libc/posix/seekdir.c newlib/libc/posix/telldir.c newlib/libc/reent/Makefile.am newlib/libc/reent/Makefile.in newlib/libc/reent/closer.c newlib/libc/reent/execr.c newlib/libc/reent/fcntlr.c newlib/libc/reent/fstat64r.c newlib/libc/reent/fstatr.c newlib/libc/reent/getreent.c newlib/libc/reent/impure.c newlib/libc/reent/linkr.c newlib/libc/reent/lseek64r.c newlib/libc/reent/lseekr.c newlib/libc/reent/open64r.c newlib/libc/reent/openr.c newlib/libc/reent/readr.c newlib/libc/reent/reent.c newlib/libc/reent/reent.tex newlib/libc/reent/sbrkr.c newlib/libc/reent/signalr.c newlib/libc/reent/signgam.c newlib/libc/reent/statr.c newlib/libc/reent/timer.c newlib/libc/reent/unlinkr.c newlib/libc/reent/writer.c newlib/libc/saber newlib/libc/search/Makefile.am newlib/libc/search/Makefile.in newlib/libc/search/bsearch.c newlib/libc/search/db_local.h newlib/libc/search/extern.h newlib/libc/search/hash.c newlib/libc/search/hash.h newlib/libc/search/hash_bigkey.c newlib/libc/search/hash_buf.c newlib/libc/search/hash_func.c newlib/libc/search/hash_log2.c newlib/libc/search/hash_page.c newlib/libc/search/hcreate.3 newlib/libc/search/hcreate.c newlib/libc/search/hcreate_r.c newlib/libc/search/page.h newlib/libc/search/qsort.c newlib/libc/search/tdelete.c newlib/libc/search/tdestroy.c newlib/libc/search/tfind.c newlib/libc/search/tsearch.3 newlib/libc/search/tsearch.c newlib/libc/search/twalk.c newlib/libc/signal/Makefile.am newlib/libc/signal/Makefile.in newlib/libc/signal/raise.c newlib/libc/signal/signal.c newlib/libc/signal/signal.tex newlib/libc/stdio/Makefile.am newlib/libc/stdio/Makefile.in newlib/libc/stdio/asprintf.c newlib/libc/stdio/clearerr.c newlib/libc/stdio/fclose.c newlib/libc/stdio/fcloseall.c newlib/libc/stdio/fdopen.c newlib/libc/stdio/feof.c newlib/libc/stdio/ferror.c newlib/libc/stdio/fflush.c newlib/libc/stdio/fgetc.c newlib/libc/stdio/fgetpos.c newlib/libc/stdio/fgets.c newlib/libc/stdio/fileno.c newlib/libc/stdio/findfp.c newlib/libc/stdio/fiprintf.c newlib/libc/stdio/flags.c newlib/libc/stdio/floatio.h newlib/libc/stdio/fopen.c newlib/libc/stdio/fprintf.c newlib/libc/stdio/fputc.c newlib/libc/stdio/fputs.c newlib/libc/stdio/fread.c newlib/libc/stdio/freopen.c newlib/libc/stdio/fscanf.c newlib/libc/stdio/fseek.c newlib/libc/stdio/fseeko.c newlib/libc/stdio/fsetpos.c newlib/libc/stdio/ftell.c newlib/libc/stdio/ftello.c newlib/libc/stdio/fvwrite.c newlib/libc/stdio/fvwrite.h newlib/libc/stdio/fwalk.c newlib/libc/stdio/fwrite.c newlib/libc/stdio/getc.c newlib/libc/stdio/getc_u.c newlib/libc/stdio/getchar.c newlib/libc/stdio/getchar_u.c newlib/libc/stdio/getdelim.c newlib/libc/stdio/getline.c newlib/libc/stdio/gets.c newlib/libc/stdio/getw.c newlib/libc/stdio/iprintf.c newlib/libc/stdio/local.h newlib/libc/stdio/makebuf.c newlib/libc/stdio/mktemp.c newlib/libc/stdio/perror.c newlib/libc/stdio/printf.c newlib/libc/stdio/putc.c newlib/libc/stdio/putc_u.c newlib/libc/stdio/putchar.c newlib/libc/stdio/putchar_u.c newlib/libc/stdio/puts.c newlib/libc/stdio/putw.c newlib/libc/stdio/refill.c newlib/libc/stdio/remove.c newlib/libc/stdio/rename.c newlib/libc/stdio/rewind.c newlib/libc/stdio/rget.c newlib/libc/stdio/scanf.c newlib/libc/stdio/setbuf.c newlib/libc/stdio/setbuffer.c newlib/libc/stdio/setlinebuf.c newlib/libc/stdio/setvbuf.c newlib/libc/stdio/siprintf.c newlib/libc/stdio/snprintf.c newlib/libc/stdio/sprintf.c newlib/libc/stdio/sscanf.c newlib/libc/stdio/stdio.c newlib/libc/stdio/stdio.tex newlib/libc/stdio/tmpfile.c newlib/libc/stdio/tmpnam.c newlib/libc/stdio/ungetc.c newlib/libc/stdio/vasprintf.c newlib/libc/stdio/vfieeefp.h newlib/libc/stdio/vfprintf.c newlib/libc/stdio/vfscanf.c newlib/libc/stdio/vprintf.c newlib/libc/stdio/vscanf.c newlib/libc/stdio/vsnprintf.c newlib/libc/stdio/vsprintf.c newlib/libc/stdio/vsscanf.c newlib/libc/stdio/wbuf.c newlib/libc/stdio/wsetup.c newlib/libc/stdio64/Makefile.am newlib/libc/stdio64/Makefile.in newlib/libc/stdio64/dummy.c newlib/libc/stdio64/fdopen64.c newlib/libc/stdio64/fgetpos64.c newlib/libc/stdio64/fopen64.c newlib/libc/stdio64/freopen64.c newlib/libc/stdio64/fseeko64.c newlib/libc/stdio64/fsetpos64.c newlib/libc/stdio64/ftello64.c newlib/libc/stdio64/local64.h newlib/libc/stdio64/stdio64.c newlib/libc/stdio64/stdio64.tex newlib/libc/stdio64/tmpfile64.c newlib/libc/stdlib/Makefile.am newlib/libc/stdlib/Makefile.in newlib/libc/stdlib/_Exit.c newlib/libc/stdlib/__adjust.c newlib/libc/stdlib/__atexit.c newlib/libc/stdlib/__call_atexit.c newlib/libc/stdlib/__exp10.c newlib/libc/stdlib/__ten_mu.c newlib/libc/stdlib/a64l.c newlib/libc/stdlib/abort.c newlib/libc/stdlib/abs.c newlib/libc/stdlib/assert.c newlib/libc/stdlib/atexit.c newlib/libc/stdlib/atexit.h newlib/libc/stdlib/atof.c newlib/libc/stdlib/atoff.c newlib/libc/stdlib/atoi.c newlib/libc/stdlib/atol.c newlib/libc/stdlib/atoll.c newlib/libc/stdlib/btowc.c newlib/libc/stdlib/calloc.c newlib/libc/stdlib/cxa_atexit.c newlib/libc/stdlib/cxa_finalize.c newlib/libc/stdlib/div.c newlib/libc/stdlib/drand48.c newlib/libc/stdlib/dtoa.c newlib/libc/stdlib/dtoastub.c newlib/libc/stdlib/ecvtbuf.c newlib/libc/stdlib/efgcvt.c newlib/libc/stdlib/environ.c newlib/libc/stdlib/envlock.c newlib/libc/stdlib/envlock.h newlib/libc/stdlib/eprintf.c newlib/libc/stdlib/erand48.c newlib/libc/stdlib/exit.c newlib/libc/stdlib/getenv.c newlib/libc/stdlib/getenv_r.c newlib/libc/stdlib/getopt.c newlib/libc/stdlib/getsubopt.3 newlib/libc/stdlib/getsubopt.c newlib/libc/stdlib/jrand48.c newlib/libc/stdlib/l64a.c newlib/libc/stdlib/labs.c newlib/libc/stdlib/lcong48.c newlib/libc/stdlib/ldiv.c newlib/libc/stdlib/ldtoa.c newlib/libc/stdlib/llabs.c newlib/libc/stdlib/lldiv.c newlib/libc/stdlib/local.h newlib/libc/stdlib/lrand48.c newlib/libc/stdlib/malign.c newlib/libc/stdlib/malloc.c newlib/libc/stdlib/mallocr.c newlib/libc/stdlib/mbctype.h newlib/libc/stdlib/mblen.c newlib/libc/stdlib/mblen_r.c newlib/libc/stdlib/mbrlen.c newlib/libc/stdlib/mbrtowc.c newlib/libc/stdlib/mbsinit.c newlib/libc/stdlib/mbsrtowcs.c newlib/libc/stdlib/mbstowcs.c newlib/libc/stdlib/mbstowcs_r.c newlib/libc/stdlib/mbtowc.c newlib/libc/stdlib/mbtowc_r.c newlib/libc/stdlib/mlock.c newlib/libc/stdlib/mprec.c newlib/libc/stdlib/mprec.h newlib/libc/stdlib/mrand48.c newlib/libc/stdlib/msize.c newlib/libc/stdlib/mstats.c newlib/libc/stdlib/mtrim.c newlib/libc/stdlib/nrand48.c newlib/libc/stdlib/on_exit.c newlib/libc/stdlib/putenv.c newlib/libc/stdlib/putenv_r.c newlib/libc/stdlib/rand.c newlib/libc/stdlib/rand48.c newlib/libc/stdlib/rand48.h newlib/libc/stdlib/rand_r.c newlib/libc/stdlib/realloc.c newlib/libc/stdlib/seed48.c newlib/libc/stdlib/setenv.c newlib/libc/stdlib/setenv_r.c newlib/libc/stdlib/srand48.c newlib/libc/stdlib/std.h newlib/libc/stdlib/stdlib.tex newlib/libc/stdlib/strtod.c newlib/libc/stdlib/strtol.c newlib/libc/stdlib/strtoll.c newlib/libc/stdlib/strtoll_r.c newlib/libc/stdlib/strtoul.c newlib/libc/stdlib/strtoull.c newlib/libc/stdlib/strtoull_r.c newlib/libc/stdlib/system.c newlib/libc/stdlib/valloc.c newlib/libc/stdlib/wcrtomb.c newlib/libc/stdlib/wcsrtombs.c newlib/libc/stdlib/wcstombs.c newlib/libc/stdlib/wcstombs_r.c newlib/libc/stdlib/wctob.c newlib/libc/stdlib/wctomb.c newlib/libc/stdlib/wctomb_r.c newlib/libc/string/Makefile.am newlib/libc/string/Makefile.in newlib/libc/string/bcmp.c newlib/libc/string/bcopy.c newlib/libc/string/bzero.c newlib/libc/string/index.c newlib/libc/string/memccpy.c newlib/libc/string/memchr.c newlib/libc/string/memcmp.c newlib/libc/string/memcpy.c newlib/libc/string/memmove.c newlib/libc/string/mempcpy.c newlib/libc/string/memset.c newlib/libc/string/rindex.c newlib/libc/string/strcasecmp.c newlib/libc/string/strcat.c newlib/libc/string/strchr.c newlib/libc/string/strcmp.c newlib/libc/string/strcoll.c newlib/libc/string/strcpy.c newlib/libc/string/strcspn.c newlib/libc/string/strdup.c newlib/libc/string/strdup_r.c newlib/libc/string/strerror.c newlib/libc/string/strerror_r.c newlib/libc/string/strings.tex newlib/libc/string/strlcat.c newlib/libc/string/strlcpy.c newlib/libc/string/strlen.c newlib/libc/string/strlwr.c newlib/libc/string/strncasecmp.c newlib/libc/string/strncat.c newlib/libc/string/strncmp.c newlib/libc/string/strncpy.c newlib/libc/string/strndup.c newlib/libc/string/strndup_r.c newlib/libc/string/strnlen.c newlib/libc/string/strpbrk.c newlib/libc/string/strrchr.c newlib/libc/string/strsep.c newlib/libc/string/strspn.c newlib/libc/string/strstr.c newlib/libc/string/strtok.c newlib/libc/string/strtok_r.c newlib/libc/string/strupr.c newlib/libc/string/strxfrm.c newlib/libc/string/swab.c newlib/libc/string/u_strerr.c newlib/libc/string/wcscat.c newlib/libc/string/wcschr.c newlib/libc/string/wcscmp.c newlib/libc/string/wcscoll.c newlib/libc/string/wcscpy.c newlib/libc/string/wcscspn.c newlib/libc/string/wcslcat.c newlib/libc/string/wcslcpy.c newlib/libc/string/wcslen.c newlib/libc/string/wcsncat.c newlib/libc/string/wcsncmp.c newlib/libc/string/wcsncpy.c newlib/libc/string/wcsnlen.c newlib/libc/string/wcspbrk.c newlib/libc/string/wcsrchr.c newlib/libc/string/wcsspn.c newlib/libc/string/wcsstr.c newlib/libc/string/wcstrings.tex newlib/libc/string/wcswidth.c newlib/libc/string/wcwidth.c newlib/libc/string/wmemchr.c newlib/libc/string/wmemcmp.c newlib/libc/string/wmemcpy.c newlib/libc/string/wmemmove.c newlib/libc/string/wmemset.c newlib/libc/sys.tex newlib/libc/sys/Makefile.am newlib/libc/sys/Makefile.in newlib/libc/sys/a29khif/Makefile.am newlib/libc/sys/a29khif/Makefile.in newlib/libc/sys/a29khif/_alloc.s newlib/libc/sys/a29khif/_close.s newlib/libc/sys/a29khif/_cycles.s newlib/libc/sys/a29khif/_exit.s newlib/libc/sys/a29khif/_fstat.s newlib/libc/sys/a29khif/_getpsiz.s newlib/libc/sys/a29khif/_gettz.s newlib/libc/sys/a29khif/_ioctl.s newlib/libc/sys/a29khif/_iostat.s newlib/libc/sys/a29khif/_iowait.s newlib/libc/sys/a29khif/_isatty.s newlib/libc/sys/a29khif/_lseek.s newlib/libc/sys/a29khif/_open.s newlib/libc/sys/a29khif/_query.s newlib/libc/sys/a29khif/_read.s newlib/libc/sys/a29khif/_sbrk.s newlib/libc/sys/a29khif/_setim.s newlib/libc/sys/a29khif/_settrap.s newlib/libc/sys/a29khif/_setvec.s newlib/libc/sys/a29khif/_tmpnam.s newlib/libc/sys/a29khif/_write.s newlib/libc/sys/a29khif/aclocal.m4 newlib/libc/sys/a29khif/alloc.s newlib/libc/sys/a29khif/clock.s newlib/libc/sys/a29khif/configure newlib/libc/sys/a29khif/configure.in newlib/libc/sys/a29khif/crt0.s newlib/libc/sys/a29khif/getargs.s newlib/libc/sys/a29khif/getenv.s newlib/libc/sys/a29khif/getpid.c newlib/libc/sys/a29khif/kill.c newlib/libc/sys/a29khif/read.s newlib/libc/sys/a29khif/remove.s newlib/libc/sys/a29khif/rename.s newlib/libc/sys/a29khif/signal.s newlib/libc/sys/a29khif/stubs.s newlib/libc/sys/a29khif/sys/cpudef.h newlib/libc/sys/a29khif/sys/fpsymbol.h newlib/libc/sys/a29khif/sys/intrinsi.h newlib/libc/sys/a29khif/sys/macros.h newlib/libc/sys/a29khif/sys/proreg.h newlib/libc/sys/a29khif/sys/romdcl.h newlib/libc/sys/a29khif/sys/smartmac.h newlib/libc/sys/a29khif/sys/sysmac.h newlib/libc/sys/a29khif/systime.s newlib/libc/sys/a29khif/vec.s newlib/libc/sys/aclocal.m4 newlib/libc/sys/arc/Makefile.am newlib/libc/sys/arc/Makefile.in newlib/libc/sys/arc/aclocal.m4 newlib/libc/sys/arc/configure newlib/libc/sys/arc/configure.in newlib/libc/sys/arc/crt0.S newlib/libc/sys/arc/isatty.c newlib/libc/sys/arc/mem-layout.c newlib/libc/sys/arc/sbrk.c newlib/libc/sys/arc/sys/syscall.h newlib/libc/sys/arc/syscalls.c newlib/libc/sys/arm/Makefile.am newlib/libc/sys/arm/Makefile.in newlib/libc/sys/arm/aclocal.m4 newlib/libc/sys/arm/configure newlib/libc/sys/arm/configure.in newlib/libc/sys/arm/crt0.S newlib/libc/sys/arm/libcfunc.c newlib/libc/sys/arm/swi.h newlib/libc/sys/arm/syscalls.c newlib/libc/sys/arm/trap.S newlib/libc/sys/configure newlib/libc/sys/configure.in newlib/libc/sys/d10v/Makefile.am newlib/libc/sys/d10v/Makefile.in newlib/libc/sys/d10v/aclocal.m4 newlib/libc/sys/d10v/configure newlib/libc/sys/d10v/configure.in newlib/libc/sys/d10v/creat.c newlib/libc/sys/d10v/crt0.S newlib/libc/sys/d10v/sys/syscall.h newlib/libc/sys/d10v/syscalls.c newlib/libc/sys/d10v/trap.S newlib/libc/sys/decstation/Makefile.am newlib/libc/sys/decstation/Makefile.in newlib/libc/sys/decstation/_main.c newlib/libc/sys/decstation/aclocal.m4 newlib/libc/sys/decstation/configure newlib/libc/sys/decstation/configure.in newlib/libc/sys/decstation/sys/dirent.h newlib/libc/sys/h8300hms/Makefile.am newlib/libc/sys/h8300hms/Makefile.in newlib/libc/sys/h8300hms/_exit.S newlib/libc/sys/h8300hms/aclocal.m4 newlib/libc/sys/h8300hms/close.S newlib/libc/sys/h8300hms/configure newlib/libc/sys/h8300hms/configure.in newlib/libc/sys/h8300hms/crt0.S newlib/libc/sys/h8300hms/crt1.c newlib/libc/sys/h8300hms/fstat.S newlib/libc/sys/h8300hms/lseek.S newlib/libc/sys/h8300hms/misc.c newlib/libc/sys/h8300hms/open.S newlib/libc/sys/h8300hms/read.S newlib/libc/sys/h8300hms/sbrk.c newlib/libc/sys/h8300hms/setarch.h newlib/libc/sys/h8300hms/stat.S newlib/libc/sys/h8300hms/sys/file.h newlib/libc/sys/h8300hms/sys/syscall.h newlib/libc/sys/h8300hms/syscalls.c newlib/libc/sys/h8300hms/write.S newlib/libc/sys/h8500hms/Makefile.am newlib/libc/sys/h8500hms/Makefile.in newlib/libc/sys/h8500hms/aclocal.m4 newlib/libc/sys/h8500hms/configure newlib/libc/sys/h8500hms/configure.in newlib/libc/sys/h8500hms/crt0.c newlib/libc/sys/h8500hms/misc.c newlib/libc/sys/h8500hms/syscalls.c newlib/libc/sys/linux/Makefile.am newlib/libc/sys/linux/Makefile.in newlib/libc/sys/linux/aclocal.m4 newlib/libc/sys/linux/aio.c newlib/libc/sys/linux/aio64.c newlib/libc/sys/linux/argp/Makefile.am newlib/libc/sys/linux/argp/Makefile.in newlib/libc/sys/linux/argp/argp-ba.c newlib/libc/sys/linux/argp/argp-eexst.c newlib/libc/sys/linux/argp/argp-fmtstream.c newlib/libc/sys/linux/argp/argp-fmtstream.h newlib/libc/sys/linux/argp/argp-fs-xinl.c newlib/libc/sys/linux/argp/argp-help.c newlib/libc/sys/linux/argp/argp-namefrob.h newlib/libc/sys/linux/argp/argp-parse.c newlib/libc/sys/linux/argp/argp-pv.c newlib/libc/sys/linux/argp/argp-pvh.c newlib/libc/sys/linux/argp/argp-xinl.c newlib/libc/sys/linux/bp-checks.h newlib/libc/sys/linux/brk.c newlib/libc/sys/linux/calloc.c newlib/libc/sys/linux/callocr.c newlib/libc/sys/linux/cfreer.c newlib/libc/sys/linux/cfspeed.c newlib/libc/sys/linux/clock_getres.c newlib/libc/sys/linux/clock_gettime.c newlib/libc/sys/linux/clock_settime.c newlib/libc/sys/linux/cmath/Makefile.am newlib/libc/sys/linux/cmath/Makefile.in newlib/libc/sys/linux/cmath/math_private.h newlib/libc/sys/linux/cmath/s_cacos.c newlib/libc/sys/linux/cmath/s_cacosf.c newlib/libc/sys/linux/cmath/s_cacosh.c newlib/libc/sys/linux/cmath/s_cacoshf.c newlib/libc/sys/linux/cmath/s_cacoshl.c newlib/libc/sys/linux/cmath/s_cacosl.c newlib/libc/sys/linux/cmath/s_casin.c newlib/libc/sys/linux/cmath/s_casinf.c newlib/libc/sys/linux/cmath/s_casinh.c newlib/libc/sys/linux/cmath/s_casinhf.c newlib/libc/sys/linux/cmath/s_casinhl.c newlib/libc/sys/linux/cmath/s_casinl.c newlib/libc/sys/linux/cmath/s_catan.c newlib/libc/sys/linux/cmath/s_catanf.c newlib/libc/sys/linux/cmath/s_catanh.c newlib/libc/sys/linux/cmath/s_catanhf.c newlib/libc/sys/linux/cmath/s_catanhl.c newlib/libc/sys/linux/cmath/s_catanl.c newlib/libc/sys/linux/cmath/s_cbrtl.c newlib/libc/sys/linux/cmath/s_ccos.c newlib/libc/sys/linux/cmath/s_ccosf.c newlib/libc/sys/linux/cmath/s_ccosh.c newlib/libc/sys/linux/cmath/s_ccoshf.c newlib/libc/sys/linux/cmath/s_ccoshl.c newlib/libc/sys/linux/cmath/s_ccosl.c newlib/libc/sys/linux/cmath/s_cexp.c newlib/libc/sys/linux/cmath/s_cexpf.c newlib/libc/sys/linux/cmath/s_cexpl.c newlib/libc/sys/linux/cmath/s_clog.c newlib/libc/sys/linux/cmath/s_clog10.c newlib/libc/sys/linux/cmath/s_clog10f.c newlib/libc/sys/linux/cmath/s_clog10l.c newlib/libc/sys/linux/cmath/s_clogf.c newlib/libc/sys/linux/cmath/s_clogl.c newlib/libc/sys/linux/cmath/s_cpow.c newlib/libc/sys/linux/cmath/s_cpowf.c newlib/libc/sys/linux/cmath/s_cpowl.c newlib/libc/sys/linux/cmath/s_cproj.c newlib/libc/sys/linux/cmath/s_cprojf.c newlib/libc/sys/linux/cmath/s_cprojl.c newlib/libc/sys/linux/cmath/s_csin.c newlib/libc/sys/linux/cmath/s_csinf.c newlib/libc/sys/linux/cmath/s_csinh.c newlib/libc/sys/linux/cmath/s_csinhf.c newlib/libc/sys/linux/cmath/s_csinhl.c newlib/libc/sys/linux/cmath/s_csinl.c newlib/libc/sys/linux/cmath/s_csqrt.c newlib/libc/sys/linux/cmath/s_csqrtf.c newlib/libc/sys/linux/cmath/s_csqrtl.c newlib/libc/sys/linux/cmath/s_ctan.c newlib/libc/sys/linux/cmath/s_ctanf.c newlib/libc/sys/linux/cmath/s_ctanh.c newlib/libc/sys/linux/cmath/s_ctanhf.c newlib/libc/sys/linux/cmath/s_ctanhl.c newlib/libc/sys/linux/cmath/s_ctanl.c newlib/libc/sys/linux/config.h newlib/libc/sys/linux/configure newlib/libc/sys/linux/configure.in newlib/libc/sys/linux/confstr.c newlib/libc/sys/linux/confstr.h newlib/libc/sys/linux/crt1.c newlib/libc/sys/linux/ctermid.c newlib/libc/sys/linux/dl/Makefile.am newlib/libc/sys/linux/dl/Makefile.in newlib/libc/sys/linux/dl/abi-tag.h newlib/libc/sys/linux/dl/atomicity.h newlib/libc/sys/linux/dl/dl-addr.c newlib/libc/sys/linux/dl/dl-cache.c newlib/libc/sys/linux/dl/dl-cache.h newlib/libc/sys/linux/dl/dl-close.c newlib/libc/sys/linux/dl/dl-debug.c newlib/libc/sys/linux/dl/dl-deps.c newlib/libc/sys/linux/dl/dl-dst.h newlib/libc/sys/linux/dl/dl-error.c newlib/libc/sys/linux/dl/dl-fini.c newlib/libc/sys/linux/dl/dl-init.c newlib/libc/sys/linux/dl/dl-iteratephdr.c newlib/libc/sys/linux/dl/dl-libc.c newlib/libc/sys/linux/dl/dl-librecon.h newlib/libc/sys/linux/dl/dl-load.c newlib/libc/sys/linux/dl/dl-lookup.c newlib/libc/sys/linux/dl/dl-lookupcfg.h newlib/libc/sys/linux/dl/dl-minimal.c newlib/libc/sys/linux/dl/dl-misc.c newlib/libc/sys/linux/dl/dl-object.c newlib/libc/sys/linux/dl/dl-open.c newlib/libc/sys/linux/dl/dl-osinfo.h newlib/libc/sys/linux/dl/dl-profile.c newlib/libc/sys/linux/dl/dl-profstub.c newlib/libc/sys/linux/dl/dl-reloc.c newlib/libc/sys/linux/dl/dl-runtime.c newlib/libc/sys/linux/dl/dl-support.c newlib/libc/sys/linux/dl/dl-sym.c newlib/libc/sys/linux/dl/dl-version.c newlib/libc/sys/linux/dl/dlfcn.h newlib/libc/sys/linux/dl/do-lookup.h newlib/libc/sys/linux/dl/do-rel.h newlib/libc/sys/linux/dl/dynamic-link.h newlib/libc/sys/linux/dl/kernel-features.h newlib/libc/sys/linux/dl/ldsodefs.h newlib/libc/sys/linux/dl/libintl.h newlib/libc/sys/linux/dl/trusted-dirs.h newlib/libc/sys/linux/dl/unsecvars.h newlib/libc/sys/linux/fclean.c newlib/libc/sys/linux/flockfile.c newlib/libc/sys/linux/fpathconf.c newlib/libc/sys/linux/free.c newlib/libc/sys/linux/freer.c newlib/libc/sys/linux/fstab.c newlib/libc/sys/linux/fstatvfs.c newlib/libc/sys/linux/fstatvfs64.c newlib/libc/sys/linux/ftok.c newlib/libc/sys/linux/ftw.c newlib/libc/sys/linux/ftw64.c newlib/libc/sys/linux/funlockfile.c newlib/libc/sys/linux/getdate.c newlib/libc/sys/linux/getdate_err.c newlib/libc/sys/linux/gethostid.c newlib/libc/sys/linux/gethostname.c newlib/libc/sys/linux/getlogin.c newlib/libc/sys/linux/getopt.c newlib/libc/sys/linux/getopt1.c newlib/libc/sys/linux/getpwnam.c newlib/libc/sys/linux/getpwuid.c newlib/libc/sys/linux/getreent.c newlib/libc/sys/linux/getrlimit64.c newlib/libc/sys/linux/getwd.c newlib/libc/sys/linux/hp-timing.h newlib/libc/sys/linux/iconv/Makefile.am newlib/libc/sys/linux/iconv/Makefile.in newlib/libc/sys/linux/iconv/categories.def newlib/libc/sys/linux/iconv/dummy-repertoire.c newlib/libc/sys/linux/iconv/gconv.c newlib/libc/sys/linux/iconv/gconv_builtin.c newlib/libc/sys/linux/iconv/gconv_builtin.h newlib/libc/sys/linux/iconv/gconv_cache.c newlib/libc/sys/linux/iconv/gconv_charset.h newlib/libc/sys/linux/iconv/gconv_close.c newlib/libc/sys/linux/iconv/gconv_conf.c newlib/libc/sys/linux/iconv/gconv_db.c newlib/libc/sys/linux/iconv/gconv_dl.c newlib/libc/sys/linux/iconv/gconv_int.h newlib/libc/sys/linux/iconv/gconv_open.c newlib/libc/sys/linux/iconv/gconv_simple.c newlib/libc/sys/linux/iconv/gconv_trans.c newlib/libc/sys/linux/iconv/hash-string.h newlib/libc/sys/linux/iconv/iconv.c newlib/libc/sys/linux/iconv/iconv.h newlib/libc/sys/linux/iconv/iconv_charmap.c newlib/libc/sys/linux/iconv/iconv_close.c newlib/libc/sys/linux/iconv/iconv_open.c newlib/libc/sys/linux/iconv/iconvconfig.c newlib/libc/sys/linux/iconv/iconvconfig.h newlib/libc/sys/linux/iconv/loadinfo.h newlib/libc/sys/linux/iconv/localeinfo.h newlib/libc/sys/linux/iconv/loop.c newlib/libc/sys/linux/iconv/skeleton.c newlib/libc/sys/linux/iconv/strtab.c newlib/libc/sys/linux/ids.c newlib/libc/sys/linux/include/argp.h newlib/libc/sys/linux/include/arpa/ftp.h newlib/libc/sys/linux/include/arpa/inet.h newlib/libc/sys/linux/include/arpa/nameser.h newlib/libc/sys/linux/include/arpa/nameser_compat.h newlib/libc/sys/linux/include/arpa/telnet.h newlib/libc/sys/linux/include/arpa/tftp.h newlib/libc/sys/linux/include/bp-sym.h newlib/libc/sys/linux/include/cmathcalls.h newlib/libc/sys/linux/include/complex.h newlib/libc/sys/linux/include/dl-hash.h newlib/libc/sys/linux/include/dlfcn.h newlib/libc/sys/linux/include/fnmatch.h newlib/libc/sys/linux/include/gconv.h newlib/libc/sys/linux/include/getopt.h newlib/libc/sys/linux/include/glob.h newlib/libc/sys/linux/include/hesiod.h newlib/libc/sys/linux/include/iconv.h newlib/libc/sys/linux/include/ifaddrs.h newlib/libc/sys/linux/include/libc_private.h newlib/libc/sys/linux/include/limits.h newlib/libc/sys/linux/include/link.h newlib/libc/sys/linux/include/malloc.h newlib/libc/sys/linux/include/mcheck.h newlib/libc/sys/linux/include/mqueue.h newlib/libc/sys/linux/include/namespace.h newlib/libc/sys/linux/include/net/bpf.h newlib/libc/sys/linux/include/net/bpf_compat.h newlib/libc/sys/linux/include/net/bpfdesc.h newlib/libc/sys/linux/include/net/bridge.h newlib/libc/sys/linux/include/net/ethernet.h newlib/libc/sys/linux/include/net/fddi.h newlib/libc/sys/linux/include/net/if.h newlib/libc/sys/linux/include/net/if_arc.h newlib/libc/sys/linux/include/net/if_arp.h newlib/libc/sys/linux/include/net/if_atm.h newlib/libc/sys/linux/include/net/if_dl.h newlib/libc/sys/linux/include/net/if_gif.h newlib/libc/sys/linux/include/net/if_ieee80211.h newlib/libc/sys/linux/include/net/if_llc.h newlib/libc/sys/linux/include/net/if_media.h newlib/libc/sys/linux/include/net/if_mib.h newlib/libc/sys/linux/include/net/if_ppp.h newlib/libc/sys/linux/include/net/if_pppvar.h newlib/libc/sys/linux/include/net/if_slvar.h newlib/libc/sys/linux/include/net/if_sppp.h newlib/libc/sys/linux/include/net/if_stf.h newlib/libc/sys/linux/include/net/if_tap.h newlib/libc/sys/linux/include/net/if_tapvar.h newlib/libc/sys/linux/include/net/if_tun.h newlib/libc/sys/linux/include/net/if_tunvar.h newlib/libc/sys/linux/include/net/if_types.h newlib/libc/sys/linux/include/net/if_var.h newlib/libc/sys/linux/include/net/if_vlan_var.h newlib/libc/sys/linux/include/net/intrq.h newlib/libc/sys/linux/include/net/iso88025.h newlib/libc/sys/linux/include/net/net_osdep.h newlib/libc/sys/linux/include/net/netisr.h newlib/libc/sys/linux/include/net/pfil.h newlib/libc/sys/linux/include/net/pfkeyv2.h newlib/libc/sys/linux/include/net/ppp_comp.h newlib/libc/sys/linux/include/net/ppp_defs.h newlib/libc/sys/linux/include/net/radix.h newlib/libc/sys/linux/include/net/raw_cb.h newlib/libc/sys/linux/include/net/route.h newlib/libc/sys/linux/include/net/slcompress.h newlib/libc/sys/linux/include/net/slip.h newlib/libc/sys/linux/include/net/zlib.h newlib/libc/sys/linux/include/netconfig.h newlib/libc/sys/linux/include/netdb.h newlib/libc/sys/linux/include/netinet/icmp6.h newlib/libc/sys/linux/include/netinet/icmp_var.h newlib/libc/sys/linux/include/netinet/if_atm.h newlib/libc/sys/linux/include/netinet/if_ether.h newlib/libc/sys/linux/include/netinet/igmp.h newlib/libc/sys/linux/include/netinet/igmp_var.h newlib/libc/sys/linux/include/netinet/in.h newlib/libc/sys/linux/include/netinet/in_gif.h newlib/libc/sys/linux/include/netinet/in_pcb.h newlib/libc/sys/linux/include/netinet/in_systm.h newlib/libc/sys/linux/include/netinet/in_var.h newlib/libc/sys/linux/include/netinet/ip.h newlib/libc/sys/linux/include/netinet/ip6.h newlib/libc/sys/linux/include/netinet/ip_dummynet.h newlib/libc/sys/linux/include/netinet/ip_ecn.h newlib/libc/sys/linux/include/netinet/ip_encap.h newlib/libc/sys/linux/include/netinet/ip_flow.h newlib/libc/sys/linux/include/netinet/ip_fw.h newlib/libc/sys/linux/include/netinet/ip_icmp.h newlib/libc/sys/linux/include/netinet/ip_mroute.h newlib/libc/sys/linux/include/netinet/ip_var.h newlib/libc/sys/linux/include/netinet/ipprotosw.h newlib/libc/sys/linux/include/netinet/tcp.h newlib/libc/sys/linux/include/netinet/tcp_debug.h newlib/libc/sys/linux/include/netinet/tcp_fsm.h newlib/libc/sys/linux/include/netinet/tcp_seq.h newlib/libc/sys/linux/include/netinet/tcp_timer.h newlib/libc/sys/linux/include/netinet/tcp_var.h newlib/libc/sys/linux/include/netinet/tcpip.h newlib/libc/sys/linux/include/netinet/udp.h newlib/libc/sys/linux/include/netinet/udp_var.h newlib/libc/sys/linux/include/netinet6/ah.h newlib/libc/sys/linux/include/netinet6/ah6.h newlib/libc/sys/linux/include/netinet6/esp.h newlib/libc/sys/linux/include/netinet6/esp6.h newlib/libc/sys/linux/include/netinet6/esp_rijndael.h newlib/libc/sys/linux/include/netinet6/icmp6.h newlib/libc/sys/linux/include/netinet6/in6.h newlib/libc/sys/linux/include/netinet6/in6_gif.h newlib/libc/sys/linux/include/netinet6/in6_ifattach.h newlib/libc/sys/linux/include/netinet6/in6_pcb.h newlib/libc/sys/linux/include/netinet6/in6_prefix.h newlib/libc/sys/linux/include/netinet6/in6_var.h newlib/libc/sys/linux/include/netinet6/ip6.h newlib/libc/sys/linux/include/netinet6/ip6_ecn.h newlib/libc/sys/linux/include/netinet6/ip6_fw.h newlib/libc/sys/linux/include/netinet6/ip6_mroute.h newlib/libc/sys/linux/include/netinet6/ip6_var.h newlib/libc/sys/linux/include/netinet6/ip6protosw.h newlib/libc/sys/linux/include/netinet6/ipcomp.h newlib/libc/sys/linux/include/netinet6/ipcomp6.h newlib/libc/sys/linux/include/netinet6/ipsec.h newlib/libc/sys/linux/include/netinet6/ipsec6.h newlib/libc/sys/linux/include/netinet6/mld6_var.h newlib/libc/sys/linux/include/netinet6/nd6.h newlib/libc/sys/linux/include/netinet6/pim6.h newlib/libc/sys/linux/include/netinet6/pim6_var.h newlib/libc/sys/linux/include/netinet6/raw_ip6.h newlib/libc/sys/linux/include/netinet6/scope6_var.h newlib/libc/sys/linux/include/netinet6/tcp6_var.h newlib/libc/sys/linux/include/netinet6/udp6_var.h newlib/libc/sys/linux/include/netns/idp.h newlib/libc/sys/linux/include/netns/idp_var.h newlib/libc/sys/linux/include/netns/ns.h newlib/libc/sys/linux/include/netns/ns_error.h newlib/libc/sys/linux/include/netns/ns_if.h newlib/libc/sys/linux/include/netns/ns_pcb.h newlib/libc/sys/linux/include/netns/sp.h newlib/libc/sys/linux/include/netns/spidp.h newlib/libc/sys/linux/include/netns/spp_debug.h newlib/libc/sys/linux/include/netns/spp_timer.h newlib/libc/sys/linux/include/netns/spp_var.h newlib/libc/sys/linux/include/nsswitch.h newlib/libc/sys/linux/include/paths.h newlib/libc/sys/linux/include/pthread.h newlib/libc/sys/linux/include/regex.h newlib/libc/sys/linux/include/resolv.h newlib/libc/sys/linux/include/rpc/Makefile newlib/libc/sys/linux/include/rpc/auth.h newlib/libc/sys/linux/include/rpc/auth_des.h newlib/libc/sys/linux/include/rpc/auth_kerb.h newlib/libc/sys/linux/include/rpc/auth_unix.h newlib/libc/sys/linux/include/rpc/clnt.h newlib/libc/sys/linux/include/rpc/clnt_soc.h newlib/libc/sys/linux/include/rpc/clnt_stat.h newlib/libc/sys/linux/include/rpc/des.h newlib/libc/sys/linux/include/rpc/des_crypt.h newlib/libc/sys/linux/include/rpc/nettype.h newlib/libc/sys/linux/include/rpc/pmap_clnt.h newlib/libc/sys/linux/include/rpc/pmap_prot.h newlib/libc/sys/linux/include/rpc/pmap_rmt.h newlib/libc/sys/linux/include/rpc/raw.h newlib/libc/sys/linux/include/rpc/rpc.h newlib/libc/sys/linux/include/rpc/rpc_com.h newlib/libc/sys/linux/include/rpc/rpc_msg.h newlib/libc/sys/linux/include/rpc/rpcb_clnt.h newlib/libc/sys/linux/include/rpc/rpcb_prot.h newlib/libc/sys/linux/include/rpc/rpcb_prot.x newlib/libc/sys/linux/include/rpc/rpcent.h newlib/libc/sys/linux/include/rpc/svc.h newlib/libc/sys/linux/include/rpc/svc_auth.h newlib/libc/sys/linux/include/rpc/svc_dg.h newlib/libc/sys/linux/include/rpc/svc_soc.h newlib/libc/sys/linux/include/rpc/types.h newlib/libc/sys/linux/include/rpc/xdr.h newlib/libc/sys/linux/include/rune.h newlib/libc/sys/linux/include/runetype.h newlib/libc/sys/linux/include/semaphore.h newlib/libc/sys/linux/include/setjmp.h newlib/libc/sys/linux/include/setlocale.h newlib/libc/sys/linux/include/stdint.h newlib/libc/sys/linux/include/time.h newlib/libc/sys/linux/include/un-namespace.h newlib/libc/sys/linux/include/unistd.h newlib/libc/sys/linux/include/wordexp.h newlib/libc/sys/linux/inode.c newlib/libc/sys/linux/internal_statvfs.c newlib/libc/sys/linux/intl/Makefile.am newlib/libc/sys/linux/intl/Makefile.in newlib/libc/sys/linux/intl/bindtextdom.c newlib/libc/sys/linux/intl/catgets.c newlib/libc/sys/linux/intl/catgetsinfo.h newlib/libc/sys/linux/intl/config.h newlib/libc/sys/linux/intl/dcgettext.c newlib/libc/sys/linux/intl/dcigettext.c newlib/libc/sys/linux/intl/dcngettext.c newlib/libc/sys/linux/intl/dgettext.c newlib/libc/sys/linux/intl/dngettext.c newlib/libc/sys/linux/intl/explodename.c newlib/libc/sys/linux/intl/finddomain.c newlib/libc/sys/linux/intl/gettext.c newlib/libc/sys/linux/intl/gettext.h newlib/libc/sys/linux/intl/gettextP.h newlib/libc/sys/linux/intl/hash-string.h newlib/libc/sys/linux/intl/l10nflist.c newlib/libc/sys/linux/intl/loadinfo.h newlib/libc/sys/linux/intl/loadmsgcat.c newlib/libc/sys/linux/intl/locale.alias newlib/libc/sys/linux/intl/localealias.c newlib/libc/sys/linux/intl/ngettext.c newlib/libc/sys/linux/intl/open_catalog.c newlib/libc/sys/linux/intl/plural.c newlib/libc/sys/linux/intl/plural.y newlib/libc/sys/linux/intl/stpcpy.c newlib/libc/sys/linux/intl/textdomain.c newlib/libc/sys/linux/io.c newlib/libc/sys/linux/io64.c newlib/libc/sys/linux/ipc.c newlib/libc/sys/linux/kernel_sigaction.h newlib/libc/sys/linux/libc-internal.h newlib/libc/sys/linux/libc-symbols.h newlib/libc/sys/linux/libc-tsd.h newlib/libc/sys/linux/libintl.h newlib/libc/sys/linux/linux.c newlib/libc/sys/linux/linux_fsinfo.h newlib/libc/sys/linux/linuxthreads/LICENSE newlib/libc/sys/linux/linuxthreads/Makefile.am newlib/libc/sys/linux/linuxthreads/Makefile.in newlib/libc/sys/linux/linuxthreads/aclocal.m4 newlib/libc/sys/linux/linuxthreads/attr.c newlib/libc/sys/linux/linuxthreads/barrier.c newlib/libc/sys/linux/linuxthreads/bits/initspin.h newlib/libc/sys/linux/linuxthreads/bits/libc-lock.h newlib/libc/sys/linux/linuxthreads/bits/libc-tsd.h newlib/libc/sys/linux/linuxthreads/bits/local_lim.h newlib/libc/sys/linux/linuxthreads/bits/posix_opt.h newlib/libc/sys/linux/linuxthreads/bits/pthreadtypes.h newlib/libc/sys/linux/linuxthreads/bits/sigthread.h newlib/libc/sys/linux/linuxthreads/bp-sym.h newlib/libc/sys/linux/linuxthreads/cancel.c newlib/libc/sys/linux/linuxthreads/condvar.c newlib/libc/sys/linux/linuxthreads/config.h newlib/libc/sys/linux/linuxthreads/configure newlib/libc/sys/linux/linuxthreads/configure.in newlib/libc/sys/linux/linuxthreads/defs.awk newlib/libc/sys/linux/linuxthreads/ecmutex.c newlib/libc/sys/linux/linuxthreads/events.c newlib/libc/sys/linux/linuxthreads/getcpuclockid.c newlib/libc/sys/linux/linuxthreads/getreent.c newlib/libc/sys/linux/linuxthreads/internals.h newlib/libc/sys/linux/linuxthreads/join.c newlib/libc/sys/linux/linuxthreads/joinrace.c newlib/libc/sys/linux/linuxthreads/kernel-features.h newlib/libc/sys/linux/linuxthreads/libc-internal.h newlib/libc/sys/linux/linuxthreads/libc-symbols.h newlib/libc/sys/linux/linuxthreads/linuxthreads.texi newlib/libc/sys/linux/linuxthreads/lockfile.c newlib/libc/sys/linux/linuxthreads/machine/Makefile.am newlib/libc/sys/linux/linuxthreads/machine/Makefile.in newlib/libc/sys/linux/linuxthreads/machine/aclocal.m4 newlib/libc/sys/linux/linuxthreads/machine/configure newlib/libc/sys/linux/linuxthreads/machine/configure.in newlib/libc/sys/linux/linuxthreads/machine/generic/generic-sysdep.h newlib/libc/sys/linux/linuxthreads/machine/i386/Makefile.am newlib/libc/sys/linux/linuxthreads/machine/i386/Makefile.in newlib/libc/sys/linux/linuxthreads/machine/i386/aclocal.m4 newlib/libc/sys/linux/linuxthreads/machine/i386/bp-asm.h newlib/libc/sys/linux/linuxthreads/machine/i386/clone.S newlib/libc/sys/linux/linuxthreads/machine/i386/configure newlib/libc/sys/linux/linuxthreads/machine/i386/configure.in newlib/libc/sys/linux/linuxthreads/machine/i386/i386-sysdep.S newlib/libc/sys/linux/linuxthreads/machine/i386/i386-sysdep.h newlib/libc/sys/linux/linuxthreads/machine/i386/pspinlock.c newlib/libc/sys/linux/linuxthreads/machine/i386/pt-machine.h newlib/libc/sys/linux/linuxthreads/machine/i386/sigcontextinfo.h newlib/libc/sys/linux/linuxthreads/machine/i386/stackinfo.h newlib/libc/sys/linux/linuxthreads/machine/i386/sysdep.S newlib/libc/sys/linux/linuxthreads/machine/i386/sysdep.h newlib/libc/sys/linux/linuxthreads/machine/i386/useldt.h newlib/libc/sys/linux/linuxthreads/manager.c newlib/libc/sys/linux/linuxthreads/mq_notify.c newlib/libc/sys/linux/linuxthreads/mutex.c newlib/libc/sys/linux/linuxthreads/no-tsd.c newlib/libc/sys/linux/linuxthreads/oldsemaphore.c newlib/libc/sys/linux/linuxthreads/posix-timer.h newlib/libc/sys/linux/linuxthreads/prio.c newlib/libc/sys/linux/linuxthreads/proc_service.h newlib/libc/sys/linux/linuxthreads/pt-machine.c newlib/libc/sys/linux/linuxthreads/ptclock_gettime.c newlib/libc/sys/linux/linuxthreads/ptclock_settime.c newlib/libc/sys/linux/linuxthreads/ptfork.c newlib/libc/sys/linux/linuxthreads/pthread.c newlib/libc/sys/linux/linuxthreads/ptlongjmp.c newlib/libc/sys/linux/linuxthreads/queue.h newlib/libc/sys/linux/linuxthreads/reent.c newlib/libc/sys/linux/linuxthreads/reqsyscalls.c newlib/libc/sys/linux/linuxthreads/restart.h newlib/libc/sys/linux/linuxthreads/rwlock.c newlib/libc/sys/linux/linuxthreads/semaphore.c newlib/libc/sys/linux/linuxthreads/semaphore.h newlib/libc/sys/linux/linuxthreads/shlib-compat.h newlib/libc/sys/linux/linuxthreads/signals.c newlib/libc/sys/linux/linuxthreads/specific.c newlib/libc/sys/linux/linuxthreads/spinlock.c newlib/libc/sys/linux/linuxthreads/spinlock.h newlib/libc/sys/linux/linuxthreads/sysctl.c newlib/libc/sys/linux/linuxthreads/td_init.c newlib/libc/sys/linux/linuxthreads/td_log.c newlib/libc/sys/linux/linuxthreads/td_symbol_list.c newlib/libc/sys/linux/linuxthreads/td_ta_clear_event.c newlib/libc/sys/linux/linuxthreads/td_ta_delete.c newlib/libc/sys/linux/linuxthreads/td_ta_enable_stats.c newlib/libc/sys/linux/linuxthreads/td_ta_event_addr.c newlib/libc/sys/linux/linuxthreads/td_ta_event_getmsg.c newlib/libc/sys/linux/linuxthreads/td_ta_get_nthreads.c newlib/libc/sys/linux/linuxthreads/td_ta_get_ph.c newlib/libc/sys/linux/linuxthreads/td_ta_get_stats.c newlib/libc/sys/linux/linuxthreads/td_ta_map_id2thr.c newlib/libc/sys/linux/linuxthreads/td_ta_map_lwp2thr.c newlib/libc/sys/linux/linuxthreads/td_ta_new.c newlib/libc/sys/linux/linuxthreads/td_ta_reset_stats.c newlib/libc/sys/linux/linuxthreads/td_ta_set_event.c newlib/libc/sys/linux/linuxthreads/td_ta_setconcurrency.c newlib/libc/sys/linux/linuxthreads/td_ta_thr_iter.c newlib/libc/sys/linux/linuxthreads/td_ta_tsd_iter.c newlib/libc/sys/linux/linuxthreads/td_thr_clear_event.c newlib/libc/sys/linux/linuxthreads/td_thr_dbresume.c newlib/libc/sys/linux/linuxthreads/td_thr_dbsuspend.c newlib/libc/sys/linux/linuxthreads/td_thr_event_enable.c newlib/libc/sys/linux/linuxthreads/td_thr_event_getmsg.c newlib/libc/sys/linux/linuxthreads/td_thr_get_info.c newlib/libc/sys/linux/linuxthreads/td_thr_getfpregs.c newlib/libc/sys/linux/linuxthreads/td_thr_getgregs.c newlib/libc/sys/linux/linuxthreads/td_thr_getxregs.c newlib/libc/sys/linux/linuxthreads/td_thr_getxregsize.c newlib/libc/sys/linux/linuxthreads/td_thr_set_event.c newlib/libc/sys/linux/linuxthreads/td_thr_setfpregs.c newlib/libc/sys/linux/linuxthreads/td_thr_setgregs.c newlib/libc/sys/linux/linuxthreads/td_thr_setprio.c newlib/libc/sys/linux/linuxthreads/td_thr_setsigpending.c newlib/libc/sys/linux/linuxthreads/td_thr_setxregs.c newlib/libc/sys/linux/linuxthreads/td_thr_sigsetmask.c newlib/libc/sys/linux/linuxthreads/td_thr_tsd.c newlib/libc/sys/linux/linuxthreads/td_thr_validate.c newlib/libc/sys/linux/linuxthreads/testrtsig.h newlib/libc/sys/linux/linuxthreads/thread_db.h newlib/libc/sys/linux/linuxthreads/thread_dbP.h newlib/libc/sys/linux/linuxthreads/timer_create.c newlib/libc/sys/linux/linuxthreads/timer_delete.c newlib/libc/sys/linux/linuxthreads/timer_getoverr.c newlib/libc/sys/linux/linuxthreads/timer_gettime.c newlib/libc/sys/linux/linuxthreads/timer_routines.c newlib/libc/sys/linux/linuxthreads/timer_settime.c newlib/libc/sys/linux/linuxthreads/tst-cancel.c newlib/libc/sys/linux/linuxthreads/tst-context.c newlib/libc/sys/linux/linuxthreads/tststack.c newlib/libc/sys/linux/linuxthreads/unload.c newlib/libc/sys/linux/linuxthreads/weaks.c newlib/libc/sys/linux/linuxthreads/wrapsyscall.c newlib/libc/sys/linux/machine/Makefile.am newlib/libc/sys/linux/machine/Makefile.in newlib/libc/sys/linux/machine/aclocal.m4 newlib/libc/sys/linux/machine/configure newlib/libc/sys/linux/machine/configure.in newlib/libc/sys/linux/machine/hp-timing.h newlib/libc/sys/linux/machine/i386/Makefile.am newlib/libc/sys/linux/machine/i386/Makefile.in newlib/libc/sys/linux/machine/i386/aclocal.m4 newlib/libc/sys/linux/machine/i386/configure newlib/libc/sys/linux/machine/i386/configure.in newlib/libc/sys/linux/machine/i386/crt0.c newlib/libc/sys/linux/machine/i386/dl-machine.h newlib/libc/sys/linux/machine/i386/dl-procinfo.c newlib/libc/sys/linux/machine/i386/dl-procinfo.h newlib/libc/sys/linux/machine/i386/get_clockfreq.c newlib/libc/sys/linux/machine/i386/getpagesize.c newlib/libc/sys/linux/machine/i386/hp-timing.c newlib/libc/sys/linux/machine/i386/hp-timing.h newlib/libc/sys/linux/machine/i386/huge_val.h newlib/libc/sys/linux/machine/i386/i386mach.h newlib/libc/sys/linux/machine/i386/include/endian.h newlib/libc/sys/linux/machine/i386/include/param.h newlib/libc/sys/linux/machine/i386/include/setjmp.h newlib/libc/sys/linux/machine/i386/include/termios.h newlib/libc/sys/linux/machine/i386/setjmp.S newlib/libc/sys/linux/machine/i386/sigaction.c newlib/libc/sys/linux/machine/i386/sigstack.h newlib/libc/sys/linux/machine/i386/socketcall.h newlib/libc/sys/linux/machine/i386/syscall.h newlib/libc/sys/linux/machine/i386/sysdep.h newlib/libc/sys/linux/machine/i386/weakalias.h newlib/libc/sys/linux/malign.c newlib/libc/sys/linux/malignr.c newlib/libc/sys/linux/mallinfor.c newlib/libc/sys/linux/malloc.c newlib/libc/sys/linux/mallocr.c newlib/libc/sys/linux/malloptr.c newlib/libc/sys/linux/mallstatsr.c newlib/libc/sys/linux/mcheck.c newlib/libc/sys/linux/mhooks.h newlib/libc/sys/linux/mmap.c newlib/libc/sys/linux/mntent.c newlib/libc/sys/linux/mntent_r.c newlib/libc/sys/linux/mq_close.c newlib/libc/sys/linux/mq_getattr.c newlib/libc/sys/linux/mq_notify.c newlib/libc/sys/linux/mq_open.c newlib/libc/sys/linux/mq_receive.c newlib/libc/sys/linux/mq_send.c newlib/libc/sys/linux/mq_setattr.c newlib/libc/sys/linux/mq_unlink.c newlib/libc/sys/linux/mqlocal.h newlib/libc/sys/linux/msize.c newlib/libc/sys/linux/msizer.c newlib/libc/sys/linux/mstats.c newlib/libc/sys/linux/mtrim.c newlib/libc/sys/linux/mtrimr.c newlib/libc/sys/linux/net/Makefile.am newlib/libc/sys/linux/net/Makefile.in newlib/libc/sys/linux/net/addr2ascii.3 newlib/libc/sys/linux/net/addr2ascii.c newlib/libc/sys/linux/net/ascii2addr.c newlib/libc/sys/linux/net/base64.c newlib/libc/sys/linux/net/bindresvport.c newlib/libc/sys/linux/net/byteorder.3 newlib/libc/sys/linux/net/ether_addr.c newlib/libc/sys/linux/net/ethers.3 newlib/libc/sys/linux/net/getaddrinfo.3 newlib/libc/sys/linux/net/getaddrinfo.c newlib/libc/sys/linux/net/gethostbydns.c newlib/libc/sys/linux/net/gethostbyht.c newlib/libc/sys/linux/net/gethostbyname.3 newlib/libc/sys/linux/net/gethostbynis.c newlib/libc/sys/linux/net/gethostnamadr.c newlib/libc/sys/linux/net/getifaddrs.3 newlib/libc/sys/linux/net/getifaddrs.c newlib/libc/sys/linux/net/getipnodebyname.3 newlib/libc/sys/linux/net/getnameinfo.3 newlib/libc/sys/linux/net/getnameinfo.c newlib/libc/sys/linux/net/getnetbydns.c newlib/libc/sys/linux/net/getnetbyht.c newlib/libc/sys/linux/net/getnetbynis.c newlib/libc/sys/linux/net/getnetent.3 newlib/libc/sys/linux/net/getnetnamadr.c newlib/libc/sys/linux/net/getproto.c newlib/libc/sys/linux/net/getprotoent.3 newlib/libc/sys/linux/net/getprotoent.c newlib/libc/sys/linux/net/getprotoname.c newlib/libc/sys/linux/net/getservbyname.c newlib/libc/sys/linux/net/getservbyport.c newlib/libc/sys/linux/net/getservent.3 newlib/libc/sys/linux/net/getservent.c newlib/libc/sys/linux/net/herror.c newlib/libc/sys/linux/net/hesiod.3 newlib/libc/sys/linux/net/hesiod.c newlib/libc/sys/linux/net/if_indextoname.3 newlib/libc/sys/linux/net/ifname.c newlib/libc/sys/linux/net/inet.3 newlib/libc/sys/linux/net/inet6_option_space.3 newlib/libc/sys/linux/net/inet6_rthdr_space.3 newlib/libc/sys/linux/net/inet_addr.c newlib/libc/sys/linux/net/inet_lnaof.c newlib/libc/sys/linux/net/inet_makeaddr.c newlib/libc/sys/linux/net/inet_net.3 newlib/libc/sys/linux/net/inet_net_ntop.c newlib/libc/sys/linux/net/inet_net_pton.c newlib/libc/sys/linux/net/inet_neta.c newlib/libc/sys/linux/net/inet_netof.c newlib/libc/sys/linux/net/inet_network.c newlib/libc/sys/linux/net/inet_ntoa.c newlib/libc/sys/linux/net/inet_ntop.c newlib/libc/sys/linux/net/inet_pton.c newlib/libc/sys/linux/net/innetgr-stub.c newlib/libc/sys/linux/net/ip6opt.c newlib/libc/sys/linux/net/iso_addr.3 newlib/libc/sys/linux/net/iso_addr.c newlib/libc/sys/linux/net/issetugid-stub.c newlib/libc/sys/linux/net/linkaddr.3 newlib/libc/sys/linux/net/linkaddr.c newlib/libc/sys/linux/net/map_v4v6.c newlib/libc/sys/linux/net/name6.c newlib/libc/sys/linux/net/namespace.h newlib/libc/sys/linux/net/ns.3 newlib/libc/sys/linux/net/ns_addr.c newlib/libc/sys/linux/net/ns_name.c newlib/libc/sys/linux/net/ns_netint.c newlib/libc/sys/linux/net/ns_ntoa.c newlib/libc/sys/linux/net/ns_parse.c newlib/libc/sys/linux/net/ns_print.c newlib/libc/sys/linux/net/ns_ttl.c newlib/libc/sys/linux/net/nsap_addr.c newlib/libc/sys/linux/net/nsdispatch.3 newlib/libc/sys/linux/net/nsdispatch.c newlib/libc/sys/linux/net/nslexer.c newlib/libc/sys/linux/net/nslexer.l newlib/libc/sys/linux/net/nsparser.c newlib/libc/sys/linux/net/nsparser.h newlib/libc/sys/linux/net/nsparser.y newlib/libc/sys/linux/net/rcmd.3 newlib/libc/sys/linux/net/rcmd.c newlib/libc/sys/linux/net/rcmdsh.3 newlib/libc/sys/linux/net/rcmdsh.c newlib/libc/sys/linux/net/recv.c newlib/libc/sys/linux/net/res_comp.c newlib/libc/sys/linux/net/res_config.h newlib/libc/sys/linux/net/res_data.c newlib/libc/sys/linux/net/res_debug.c newlib/libc/sys/linux/net/res_init.c newlib/libc/sys/linux/net/res_mkquery.c newlib/libc/sys/linux/net/res_mkupdate.c newlib/libc/sys/linux/net/res_query.c newlib/libc/sys/linux/net/res_send.c newlib/libc/sys/linux/net/res_update.c newlib/libc/sys/linux/net/resolver.3 newlib/libc/sys/linux/net/rthdr.c newlib/libc/sys/linux/net/send.c newlib/libc/sys/linux/net/un-namespace.h newlib/libc/sys/linux/net/vars.c newlib/libc/sys/linux/ntp_gettime.c newlib/libc/sys/linux/pathconf.c newlib/libc/sys/linux/pread.c newlib/libc/sys/linux/pread64.c newlib/libc/sys/linux/process.c newlib/libc/sys/linux/prof-freq.c newlib/libc/sys/linux/profile.c newlib/libc/sys/linux/psignal.c newlib/libc/sys/linux/pvallocr.c newlib/libc/sys/linux/pwrite.c newlib/libc/sys/linux/pwrite64.c newlib/libc/sys/linux/raise.c newlib/libc/sys/linux/readdir64.c newlib/libc/sys/linux/realloc.c newlib/libc/sys/linux/reallocr.c newlib/libc/sys/linux/realpath.c newlib/libc/sys/linux/rename.c newlib/libc/sys/linux/resource.c newlib/libc/sys/linux/scandir64.c newlib/libc/sys/linux/sched.c newlib/libc/sys/linux/select.c newlib/libc/sys/linux/seteuid.c newlib/libc/sys/linux/sethostid.c newlib/libc/sys/linux/sethostname.c newlib/libc/sys/linux/setrlimit64.c newlib/libc/sys/linux/shared.ld newlib/libc/sys/linux/shm_open.c newlib/libc/sys/linux/shm_unlink.c newlib/libc/sys/linux/sig.c newlib/libc/sys/linux/sigaction.c newlib/libc/sys/linux/siglongjmp.c newlib/libc/sys/linux/signal.c newlib/libc/sys/linux/sigqueue.c newlib/libc/sys/linux/sigset.c newlib/libc/sys/linux/sigwait.c newlib/libc/sys/linux/sleep.c newlib/libc/sys/linux/socket.c newlib/libc/sys/linux/sockops.h newlib/libc/sys/linux/stack.c newlib/libc/sys/linux/statvfs.c newlib/libc/sys/linux/statvfs64.c newlib/libc/sys/linux/stdlib/COPYRIGHT newlib/libc/sys/linux/stdlib/Makefile.am newlib/libc/sys/linux/stdlib/Makefile.in newlib/libc/sys/linux/stdlib/cclass.h newlib/libc/sys/linux/stdlib/cname.h newlib/libc/sys/linux/stdlib/collate.c newlib/libc/sys/linux/stdlib/collate.h newlib/libc/sys/linux/stdlib/collcmp.c newlib/libc/sys/linux/stdlib/engine.c newlib/libc/sys/linux/stdlib/fnmatch.3 newlib/libc/sys/linux/stdlib/fnmatch.c newlib/libc/sys/linux/stdlib/glob.3 newlib/libc/sys/linux/stdlib/glob.c newlib/libc/sys/linux/stdlib/reallocf.c newlib/libc/sys/linux/stdlib/regcomp.c newlib/libc/sys/linux/stdlib/regerror.c newlib/libc/sys/linux/stdlib/regex.3 newlib/libc/sys/linux/stdlib/regex2.h newlib/libc/sys/linux/stdlib/regexec.c newlib/libc/sys/linux/stdlib/regfree.c newlib/libc/sys/linux/stdlib/utils.h newlib/libc/sys/linux/stdlib/wordexp.c newlib/libc/sys/linux/stdlib/wordfree.c newlib/libc/sys/linux/strsignal.c newlib/libc/sys/linux/strverscmp.c newlib/libc/sys/linux/sys/_types.h newlib/libc/sys/linux/sys/cdefs.h newlib/libc/sys/linux/sys/dirent.h newlib/libc/sys/linux/sys/dlfcn.h newlib/libc/sys/linux/sys/elfclass.h newlib/libc/sys/linux/sys/errno.h newlib/libc/sys/linux/sys/event.h newlib/libc/sys/linux/sys/fcntl.h newlib/libc/sys/linux/sys/features.h newlib/libc/sys/linux/sys/file.h newlib/libc/sys/linux/sys/ioccom.h newlib/libc/sys/linux/sys/ioctl.h newlib/libc/sys/linux/sys/libc-tsd.h newlib/libc/sys/linux/sys/link.h newlib/libc/sys/linux/sys/linux_time.h newlib/libc/sys/linux/sys/lock.h newlib/libc/sys/linux/sys/param.h newlib/libc/sys/linux/sys/resource.h newlib/libc/sys/linux/sys/select.h newlib/libc/sys/linux/sys/signal.h newlib/libc/sys/linux/sys/socket.h newlib/libc/sys/linux/sys/sockio.h newlib/libc/sys/linux/sys/stat.h newlib/libc/sys/linux/sys/stdio.h newlib/libc/sys/linux/sys/termios.h newlib/libc/sys/linux/sys/time.h newlib/libc/sys/linux/sys/types.h newlib/libc/sys/linux/sys/unistd.h newlib/libc/sys/linux/sys/utime.h newlib/libc/sys/linux/sys/utmp.h newlib/libc/sys/linux/sys/utsname.h newlib/libc/sys/linux/sys/wait.h newlib/libc/sys/linux/sysconf.c newlib/libc/sys/linux/sysctl.c newlib/libc/sys/linux/systat.c newlib/libc/sys/linux/system.c newlib/libc/sys/linux/tcdrain.c newlib/libc/sys/linux/tcsendbrk.c newlib/libc/sys/linux/termios.c newlib/libc/sys/linux/thread-m.h newlib/libc/sys/linux/time.c newlib/libc/sys/linux/ttyname_r.c newlib/libc/sys/linux/usleep.c newlib/libc/sys/linux/utimes.c newlib/libc/sys/linux/vallocr.c newlib/libc/sys/linux/versionsort.c newlib/libc/sys/linux/versionsort64.c newlib/libc/sys/linux/wait.c newlib/libc/sys/m88kbug/Makefile.am newlib/libc/sys/m88kbug/Makefile.in newlib/libc/sys/m88kbug/aclocal.m4 newlib/libc/sys/m88kbug/configure newlib/libc/sys/m88kbug/configure.in newlib/libc/sys/m88kbug/crt0.c newlib/libc/sys/m88kbug/sys/systraps.h newlib/libc/sys/m88kbug/syscalls.c newlib/libc/sys/mmixware/Makefile.am newlib/libc/sys/mmixware/Makefile.in newlib/libc/sys/mmixware/_exit.c newlib/libc/sys/mmixware/access.c newlib/libc/sys/mmixware/aclocal.m4 newlib/libc/sys/mmixware/chmod.c newlib/libc/sys/mmixware/chown.c newlib/libc/sys/mmixware/close.c newlib/libc/sys/mmixware/configure newlib/libc/sys/mmixware/configure.in newlib/libc/sys/mmixware/creat.c newlib/libc/sys/mmixware/crt0.c newlib/libc/sys/mmixware/execv.c newlib/libc/sys/mmixware/execve.c newlib/libc/sys/mmixware/fork.c newlib/libc/sys/mmixware/fstat.c newlib/libc/sys/mmixware/getpid.c newlib/libc/sys/mmixware/gettime.c newlib/libc/sys/mmixware/isatty.c newlib/libc/sys/mmixware/kill.c newlib/libc/sys/mmixware/link.c newlib/libc/sys/mmixware/lseek.c newlib/libc/sys/mmixware/open.c newlib/libc/sys/mmixware/pipe.c newlib/libc/sys/mmixware/read.c newlib/libc/sys/mmixware/sbrk.c newlib/libc/sys/mmixware/setjmp.S newlib/libc/sys/mmixware/stat.c newlib/libc/sys/mmixware/sys/syscall.h newlib/libc/sys/mmixware/time.c newlib/libc/sys/mmixware/times.c newlib/libc/sys/mmixware/unlink.c newlib/libc/sys/mmixware/utime.c newlib/libc/sys/mmixware/wait.c newlib/libc/sys/mmixware/write.c newlib/libc/sys/netware/Makefile.am newlib/libc/sys/netware/Makefile.in newlib/libc/sys/netware/aclocal.m4 newlib/libc/sys/netware/configure newlib/libc/sys/netware/configure.in newlib/libc/sys/netware/crt0.c newlib/libc/sys/netware/getpid.c newlib/libc/sys/netware/link.c newlib/libc/sys/rtems/Makefile.am newlib/libc/sys/rtems/Makefile.in newlib/libc/sys/rtems/aclocal.m4 newlib/libc/sys/rtems/configure newlib/libc/sys/rtems/configure.in newlib/libc/sys/rtems/crt0.c newlib/libc/sys/rtems/dummysys.c newlib/libc/sys/rtems/include/limits.h newlib/libc/sys/rtems/machine/limits.h newlib/libc/sys/rtems/machine/param.h newlib/libc/sys/rtems/sys/dirent.h newlib/libc/sys/rtems/sys/param.h newlib/libc/sys/rtems/sys/queue.h newlib/libc/sys/rtems/sys/syslimits.h newlib/libc/sys/rtems/sys/utime.h newlib/libc/sys/sh/Makefile.am newlib/libc/sys/sh/Makefile.in newlib/libc/sys/sh/aclocal.m4 newlib/libc/sys/sh/configure newlib/libc/sys/sh/configure.in newlib/libc/sys/sh/creat.c newlib/libc/sys/sh/crt0.S newlib/libc/sys/sh/ftruncate.c newlib/libc/sys/sh/sys/syscall.h newlib/libc/sys/sh/syscalls.c newlib/libc/sys/sh/trap.S newlib/libc/sys/sh/truncate.c newlib/libc/sys/sparc64/Makefile.am newlib/libc/sys/sparc64/Makefile.in newlib/libc/sys/sparc64/_exit.S newlib/libc/sys/sparc64/_main.c newlib/libc/sys/sparc64/aclocal.m4 newlib/libc/sys/sparc64/cerror.S newlib/libc/sys/sparc64/closedir.c newlib/libc/sys/sparc64/configure newlib/libc/sys/sparc64/configure.in newlib/libc/sys/sparc64/creat.c newlib/libc/sys/sparc64/crt0.S newlib/libc/sys/sparc64/dup2.S newlib/libc/sys/sparc64/execve.S newlib/libc/sys/sparc64/ieee.c newlib/libc/sys/sparc64/isatty.c newlib/libc/sys/sparc64/lstat.S newlib/libc/sys/sparc64/opendir.c newlib/libc/sys/sparc64/readdir.c newlib/libc/sys/sparc64/rewinddir.c newlib/libc/sys/sparc64/sbrk.S newlib/libc/sys/sparc64/scandir.c newlib/libc/sys/sparc64/seekdir.c newlib/libc/sys/sparc64/sigsetjmp.S newlib/libc/sys/sparc64/stat.S newlib/libc/sys/sparc64/sys/dirent.h newlib/libc/sys/sparc64/sys/fcntl.h newlib/libc/sys/sparc64/sys/file.h newlib/libc/sys/sparc64/sys/stat.h newlib/libc/sys/sparc64/sys/syscall.h newlib/libc/sys/sparc64/sys/syscallasm.h newlib/libc/sys/sparc64/sys/termios.h newlib/libc/sys/sparc64/sys/time.h newlib/libc/sys/sparc64/sys/utime.h newlib/libc/sys/sparc64/sys/utmp.h newlib/libc/sys/sparc64/sys/wait.h newlib/libc/sys/sparc64/telldir.c newlib/libc/sys/sparc64/template.S newlib/libc/sys/sparc64/template_r.S newlib/libc/sys/sparc64/utime.S newlib/libc/sys/sparc64/utime2.c newlib/libc/sys/sparc64/wait.S newlib/libc/sys/sun4/Makefile.am newlib/libc/sys/sun4/Makefile.in newlib/libc/sys/sun4/_main.c newlib/libc/sys/sun4/aclocal.m4 newlib/libc/sys/sun4/configure newlib/libc/sys/sun4/configure.in newlib/libc/sys/sun4/ieee.c newlib/libc/sys/sun4/sys/dirent.h newlib/libc/sys/sun4/sys/file.h newlib/libc/sys/sun4/sys/termios.h newlib/libc/sys/sun4/sys/utime.h newlib/libc/sys/sun4/sys/utmp.h newlib/libc/sys/sun4/sys/wait.h newlib/libc/sys/sysmec/Makefile.am newlib/libc/sys/sysmec/Makefile.in newlib/libc/sys/sysmec/_exit.c newlib/libc/sys/sysmec/access.c newlib/libc/sys/sysmec/aclocal.m4 newlib/libc/sys/sysmec/chmod.c newlib/libc/sys/sysmec/chown.c newlib/libc/sys/sysmec/close.c newlib/libc/sys/sysmec/configure newlib/libc/sys/sysmec/configure.in newlib/libc/sys/sysmec/creat.c newlib/libc/sys/sysmec/crt0.S newlib/libc/sys/sysmec/crt1.c newlib/libc/sys/sysmec/execv.c newlib/libc/sys/sysmec/execve.c newlib/libc/sys/sysmec/fork.c newlib/libc/sys/sysmec/fstat.c newlib/libc/sys/sysmec/getpid.c newlib/libc/sys/sysmec/gettime.c newlib/libc/sys/sysmec/isatty.c newlib/libc/sys/sysmec/kill.c newlib/libc/sys/sysmec/lseek.c newlib/libc/sys/sysmec/open.c newlib/libc/sys/sysmec/pipe.c newlib/libc/sys/sysmec/read.c newlib/libc/sys/sysmec/sbrk.c newlib/libc/sys/sysmec/stat.c newlib/libc/sys/sysmec/sys/syscall.h newlib/libc/sys/sysmec/time.c newlib/libc/sys/sysmec/times.c newlib/libc/sys/sysmec/trap.S newlib/libc/sys/sysmec/unlink.c newlib/libc/sys/sysmec/utime.c newlib/libc/sys/sysmec/wait.c newlib/libc/sys/sysmec/write.c newlib/libc/sys/sysnec810/Makefile.am newlib/libc/sys/sysnec810/Makefile.in newlib/libc/sys/sysnec810/aclocal.m4 newlib/libc/sys/sysnec810/configure newlib/libc/sys/sysnec810/configure.in newlib/libc/sys/sysnec810/crt0.s newlib/libc/sys/sysnec810/io.s newlib/libc/sys/sysnec810/misc.c newlib/libc/sys/sysnec810/sbrk.c newlib/libc/sys/sysnec810/write.c newlib/libc/sys/sysnecv850/Makefile.am newlib/libc/sys/sysnecv850/Makefile.in newlib/libc/sys/sysnecv850/_exit.c newlib/libc/sys/sysnecv850/access.c newlib/libc/sys/sysnecv850/aclocal.m4 newlib/libc/sys/sysnecv850/chmod.c newlib/libc/sys/sysnecv850/chown.c newlib/libc/sys/sysnecv850/close.c newlib/libc/sys/sysnecv850/configure newlib/libc/sys/sysnecv850/configure.in newlib/libc/sys/sysnecv850/creat.c newlib/libc/sys/sysnecv850/crt0.S newlib/libc/sys/sysnecv850/crt1.c newlib/libc/sys/sysnecv850/execv.c newlib/libc/sys/sysnecv850/execve.c newlib/libc/sys/sysnecv850/fork.c newlib/libc/sys/sysnecv850/fstat.c newlib/libc/sys/sysnecv850/getpid.c newlib/libc/sys/sysnecv850/gettime.c newlib/libc/sys/sysnecv850/isatty.c newlib/libc/sys/sysnecv850/kill.c newlib/libc/sys/sysnecv850/link.c newlib/libc/sys/sysnecv850/lseek.c newlib/libc/sys/sysnecv850/open.c newlib/libc/sys/sysnecv850/pipe.c newlib/libc/sys/sysnecv850/read.c newlib/libc/sys/sysnecv850/sbrk.c newlib/libc/sys/sysnecv850/stat.c newlib/libc/sys/sysnecv850/sys/syscall.h newlib/libc/sys/sysnecv850/time.c newlib/libc/sys/sysnecv850/times.c newlib/libc/sys/sysnecv850/trap.S newlib/libc/sys/sysnecv850/unlink.c newlib/libc/sys/sysnecv850/utime.c newlib/libc/sys/sysnecv850/wait.c newlib/libc/sys/sysnecv850/write.c newlib/libc/sys/sysvi386/Makefile.am newlib/libc/sys/sysvi386/Makefile.in newlib/libc/sys/sysvi386/_exit.s newlib/libc/sys/sysvi386/_longjmp.s newlib/libc/sys/sysvi386/_setjmp.s newlib/libc/sys/sysvi386/access.s newlib/libc/sys/sysvi386/aclocal.m4 newlib/libc/sys/sysvi386/alarm.s newlib/libc/sys/sysvi386/brk.s newlib/libc/sys/sysvi386/cerror.s newlib/libc/sys/sysvi386/chdir.s newlib/libc/sys/sysvi386/chmod.s newlib/libc/sys/sysvi386/close.s newlib/libc/sys/sysvi386/closedir.c newlib/libc/sys/sysvi386/configure newlib/libc/sys/sysvi386/configure.in newlib/libc/sys/sysvi386/crt0.c newlib/libc/sys/sysvi386/dup.c newlib/libc/sys/sysvi386/dup2.c newlib/libc/sys/sysvi386/exec.c newlib/libc/sys/sysvi386/execve.s newlib/libc/sys/sysvi386/fcntl.s newlib/libc/sys/sysvi386/fork.s newlib/libc/sys/sysvi386/fpathconf.s newlib/libc/sys/sysvi386/fps.s newlib/libc/sys/sysvi386/fpx.c newlib/libc/sys/sysvi386/fstat.s newlib/libc/sys/sysvi386/getdents.s newlib/libc/sys/sysvi386/getegid.s newlib/libc/sys/sysvi386/geteuid.s newlib/libc/sys/sysvi386/getgid.s newlib/libc/sys/sysvi386/getgroups.s newlib/libc/sys/sysvi386/getpid.s newlib/libc/sys/sysvi386/getuid.s newlib/libc/sys/sysvi386/ioctl.s newlib/libc/sys/sysvi386/isatty.c newlib/libc/sys/sysvi386/kill.s newlib/libc/sys/sysvi386/link.s newlib/libc/sys/sysvi386/lseek.s newlib/libc/sys/sysvi386/mkdir.s newlib/libc/sys/sysvi386/open.s newlib/libc/sys/sysvi386/opendir.c newlib/libc/sys/sysvi386/pathconf.s newlib/libc/sys/sysvi386/pause.s newlib/libc/sys/sysvi386/pipe.s newlib/libc/sys/sysvi386/read.s newlib/libc/sys/sysvi386/readdir.c newlib/libc/sys/sysvi386/rename.s newlib/libc/sys/sysvi386/rewinddir.c newlib/libc/sys/sysvi386/rmdir.s newlib/libc/sys/sysvi386/sbrk.c newlib/libc/sys/sysvi386/scandir.c newlib/libc/sys/sysvi386/seekdir.c newlib/libc/sys/sysvi386/setgid.s newlib/libc/sys/sysvi386/setuid.s newlib/libc/sys/sysvi386/sigaction.s newlib/libc/sys/sysvi386/signal.s newlib/libc/sys/sysvi386/sigprocmask.s newlib/libc/sys/sysvi386/sleep.c newlib/libc/sys/sysvi386/speed.c newlib/libc/sys/sysvi386/stat.s newlib/libc/sys/sysvi386/sys/dirent.h newlib/libc/sys/sysvi386/sys/setjmp.h newlib/libc/sys/sysvi386/sys/termio.h newlib/libc/sys/sysvi386/sys/termios.h newlib/libc/sys/sysvi386/sys/utime.h newlib/libc/sys/sysvi386/sys/utmp.h newlib/libc/sys/sysvi386/sys/wait.h newlib/libc/sys/sysvi386/sysconf.s newlib/libc/sys/sysvi386/tcgetattr.c newlib/libc/sys/sysvi386/tcline.c newlib/libc/sys/sysvi386/tcsetattr.c newlib/libc/sys/sysvi386/telldir.c newlib/libc/sys/sysvi386/time.s newlib/libc/sys/sysvi386/times.s newlib/libc/sys/sysvi386/unlink.s newlib/libc/sys/sysvi386/utime.s newlib/libc/sys/sysvi386/wait.s newlib/libc/sys/sysvi386/waitpid.s newlib/libc/sys/sysvi386/write.s newlib/libc/sys/sysvnecv70/Makefile.am newlib/libc/sys/sysvnecv70/Makefile.in newlib/libc/sys/sysvnecv70/aclocal.m4 newlib/libc/sys/sysvnecv70/cerror.s newlib/libc/sys/sysvnecv70/close.s newlib/libc/sys/sysvnecv70/configure newlib/libc/sys/sysvnecv70/configure.in newlib/libc/sys/sysvnecv70/crt0.s newlib/libc/sys/sysvnecv70/exit.s newlib/libc/sys/sysvnecv70/fps.s newlib/libc/sys/sysvnecv70/fpx.c newlib/libc/sys/sysvnecv70/fstat.s newlib/libc/sys/sysvnecv70/ioctl.s newlib/libc/sys/sysvnecv70/isatty.s newlib/libc/sys/sysvnecv70/lseek.s newlib/libc/sys/sysvnecv70/open.s newlib/libc/sys/sysvnecv70/read.s newlib/libc/sys/sysvnecv70/sbrk.s newlib/libc/sys/sysvnecv70/sysv60.s newlib/libc/sys/sysvnecv70/sysvnecv70.tex newlib/libc/sys/sysvnecv70/write.s newlib/libc/sys/tic80/Makefile.am newlib/libc/sys/tic80/Makefile.in newlib/libc/sys/tic80/aclocal.m4 newlib/libc/sys/tic80/configure newlib/libc/sys/tic80/configure.in newlib/libc/sys/tic80/crt0.c newlib/libc/sys/w65/Makefile.am newlib/libc/sys/w65/Makefile.in newlib/libc/sys/w65/aclocal.m4 newlib/libc/sys/w65/configure newlib/libc/sys/w65/configure.in newlib/libc/sys/w65/crt0.c newlib/libc/sys/w65/sys/syscall.h newlib/libc/sys/w65/syscalls.c newlib/libc/sys/w65/trap.c newlib/libc/sys/z8ksim/Makefile.am newlib/libc/sys/z8ksim/Makefile.in newlib/libc/sys/z8ksim/aclocal.m4 newlib/libc/sys/z8ksim/configure newlib/libc/sys/z8ksim/configure.in newlib/libc/sys/z8ksim/crt0.c newlib/libc/sys/z8ksim/glue.c newlib/libc/sys/z8ksim/sys/syscall.h newlib/libc/syscalls/Makefile.am newlib/libc/syscalls/Makefile.in newlib/libc/syscalls/sysclose.c newlib/libc/syscalls/sysexecve.c newlib/libc/syscalls/sysfcntl.c newlib/libc/syscalls/sysfork.c newlib/libc/syscalls/sysfstat.c newlib/libc/syscalls/sysgetpid.c newlib/libc/syscalls/sysgettod.c newlib/libc/syscalls/syskill.c newlib/libc/syscalls/syslink.c newlib/libc/syscalls/syslseek.c newlib/libc/syscalls/sysopen.c newlib/libc/syscalls/sysread.c newlib/libc/syscalls/syssbrk.c newlib/libc/syscalls/sysstat.c newlib/libc/syscalls/systimes.c newlib/libc/syscalls/sysunlink.c newlib/libc/syscalls/syswait.c newlib/libc/syscalls/syswrite.c newlib/libc/time/Makefile.am newlib/libc/time/Makefile.in newlib/libc/time/asctime.c newlib/libc/time/asctime_r.c newlib/libc/time/clock.c newlib/libc/time/ctime.c newlib/libc/time/ctime_r.c newlib/libc/time/difftime.c newlib/libc/time/gmtime.c newlib/libc/time/gmtime_r.c newlib/libc/time/lcltime.c newlib/libc/time/lcltime_r.c newlib/libc/time/local.h newlib/libc/time/mktime.c newlib/libc/time/mktm_r.c newlib/libc/time/strftime.c newlib/libc/time/strptime.c newlib/libc/time/time.c newlib/libc/time/time.tex newlib/libc/time/tzlock.c newlib/libc/time/tzset.c newlib/libc/time/tzset_r.c newlib/libc/unix/Makefile.am newlib/libc/unix/Makefile.in newlib/libc/unix/getcwd.c newlib/libc/unix/getlogin.c newlib/libc/unix/getpass.c newlib/libc/unix/getpwent.c newlib/libc/unix/getut.c newlib/libc/unix/pread.c newlib/libc/unix/pwrite.c newlib/libc/unix/sigset.c newlib/libc/unix/ttyname.c newlib/libm/Makefile.am newlib/libm/Makefile.in newlib/libm/aclocal.m4 newlib/libm/common/Makefile.am newlib/libm/common/Makefile.in newlib/libm/common/common.tex newlib/libm/common/fdlibm.h newlib/libm/common/s_cbrt.c newlib/libm/common/s_copysign.c newlib/libm/common/s_expm1.c newlib/libm/common/s_fdim.c newlib/libm/common/s_finite.c newlib/libm/common/s_fma.c newlib/libm/common/s_fmax.c newlib/libm/common/s_fmin.c newlib/libm/common/s_fpclassify.c newlib/libm/common/s_ilogb.c newlib/libm/common/s_infinity.c newlib/libm/common/s_lib_ver.c newlib/libm/common/s_log1p.c newlib/libm/common/s_logb.c newlib/libm/common/s_lrint.c newlib/libm/common/s_lround.c newlib/libm/common/s_matherr.c newlib/libm/common/s_modf.c newlib/libm/common/s_nan.c newlib/libm/common/s_nearbyint.c newlib/libm/common/s_nextafter.c newlib/libm/common/s_remquo.c newlib/libm/common/s_rint.c newlib/libm/common/s_round.c newlib/libm/common/s_scalbln.c newlib/libm/common/s_scalbn.c newlib/libm/common/s_signbit.c newlib/libm/common/s_trunc.c newlib/libm/common/sf_cbrt.c newlib/libm/common/sf_copysign.c newlib/libm/common/sf_expm1.c newlib/libm/common/sf_fdim.c newlib/libm/common/sf_finite.c newlib/libm/common/sf_fma.c newlib/libm/common/sf_fmax.c newlib/libm/common/sf_fmin.c newlib/libm/common/sf_ilogb.c newlib/libm/common/sf_infinity.c newlib/libm/common/sf_log1p.c newlib/libm/common/sf_logb.c newlib/libm/common/sf_lrint.c newlib/libm/common/sf_lround.c newlib/libm/common/sf_modf.c newlib/libm/common/sf_nan.c newlib/libm/common/sf_nearbyint.c newlib/libm/common/sf_nextafter.c newlib/libm/common/sf_remquo.c newlib/libm/common/sf_rint.c newlib/libm/common/sf_round.c newlib/libm/common/sf_scalbln.c newlib/libm/common/sf_scalbn.c newlib/libm/common/sf_trunc.c newlib/libm/config.h.in newlib/libm/configure newlib/libm/configure.in newlib/libm/libm.texinfo newlib/libm/machine/Makefile.am newlib/libm/machine/Makefile.in newlib/libm/machine/aclocal.m4 newlib/libm/machine/configure newlib/libm/machine/configure.in newlib/libm/machine/i386/Makefile.am newlib/libm/machine/i386/Makefile.in newlib/libm/machine/i386/aclocal.m4 newlib/libm/machine/i386/configure newlib/libm/machine/i386/configure.in newlib/libm/machine/i386/f_atan2.S newlib/libm/machine/i386/f_atan2f.S newlib/libm/machine/i386/f_exp.c newlib/libm/machine/i386/f_expf.c newlib/libm/machine/i386/f_frexp.S newlib/libm/machine/i386/f_frexpf.S newlib/libm/machine/i386/f_ldexp.S newlib/libm/machine/i386/f_ldexpf.S newlib/libm/machine/i386/f_log.S newlib/libm/machine/i386/f_log10.S newlib/libm/machine/i386/f_log10f.S newlib/libm/machine/i386/f_logf.S newlib/libm/machine/i386/f_math.h newlib/libm/machine/i386/f_pow.c newlib/libm/machine/i386/f_powf.c newlib/libm/machine/i386/f_tan.S newlib/libm/machine/i386/f_tanf.S newlib/libm/machine/i386/i386mach.h newlib/libm/math/Makefile.am newlib/libm/math/Makefile.in newlib/libm/math/e_acos.c newlib/libm/math/e_acosh.c newlib/libm/math/e_asin.c newlib/libm/math/e_atan2.c newlib/libm/math/e_atanh.c newlib/libm/math/e_cosh.c newlib/libm/math/e_exp.c newlib/libm/math/e_fmod.c newlib/libm/math/e_hypot.c newlib/libm/math/e_j0.c newlib/libm/math/e_j1.c newlib/libm/math/e_jn.c newlib/libm/math/e_log.c newlib/libm/math/e_log10.c newlib/libm/math/e_pow.c newlib/libm/math/e_rem_pio2.c newlib/libm/math/e_remainder.c newlib/libm/math/e_scalb.c newlib/libm/math/e_sinh.c newlib/libm/math/e_sqrt.c newlib/libm/math/ef_acos.c newlib/libm/math/ef_acosh.c newlib/libm/math/ef_asin.c newlib/libm/math/ef_atan2.c newlib/libm/math/ef_atanh.c newlib/libm/math/ef_cosh.c newlib/libm/math/ef_exp.c newlib/libm/math/ef_fmod.c newlib/libm/math/ef_hypot.c newlib/libm/math/ef_j0.c newlib/libm/math/ef_j1.c newlib/libm/math/ef_jn.c newlib/libm/math/ef_log.c newlib/libm/math/ef_log10.c newlib/libm/math/ef_pow.c newlib/libm/math/ef_rem_pio2.c newlib/libm/math/ef_remainder.c newlib/libm/math/ef_scalb.c newlib/libm/math/ef_sinh.c newlib/libm/math/ef_sqrt.c newlib/libm/math/er_gamma.c newlib/libm/math/er_lgamma.c newlib/libm/math/erf_gamma.c newlib/libm/math/erf_lgamma.c newlib/libm/math/k_cos.c newlib/libm/math/k_rem_pio2.c newlib/libm/math/k_sin.c newlib/libm/math/k_standard.c newlib/libm/math/k_tan.c newlib/libm/math/kf_cos.c newlib/libm/math/kf_rem_pio2.c newlib/libm/math/kf_sin.c newlib/libm/math/kf_tan.c newlib/libm/math/math.tex newlib/libm/math/s_asinh.c newlib/libm/math/s_atan.c newlib/libm/math/s_ceil.c newlib/libm/math/s_cos.c newlib/libm/math/s_erf.c newlib/libm/math/s_fabs.c newlib/libm/math/s_floor.c newlib/libm/math/s_frexp.c newlib/libm/math/s_infconst.c newlib/libm/math/s_isinf.c newlib/libm/math/s_isnan.c newlib/libm/math/s_ldexp.c newlib/libm/math/s_signif.c newlib/libm/math/s_sin.c newlib/libm/math/s_tan.c newlib/libm/math/s_tanh.c newlib/libm/math/sf_asinh.c newlib/libm/math/sf_atan.c newlib/libm/math/sf_ceil.c newlib/libm/math/sf_cos.c newlib/libm/math/sf_erf.c newlib/libm/math/sf_fabs.c newlib/libm/math/sf_floor.c newlib/libm/math/sf_frexp.c newlib/libm/math/sf_isinf.c newlib/libm/math/sf_isnan.c newlib/libm/math/sf_ldexp.c newlib/libm/math/sf_signif.c newlib/libm/math/sf_sin.c newlib/libm/math/sf_tan.c newlib/libm/math/sf_tanh.c newlib/libm/math/w_acos.c newlib/libm/math/w_acosh.c newlib/libm/math/w_asin.c newlib/libm/math/w_atan2.c newlib/libm/math/w_atanh.c newlib/libm/math/w_cabs.c newlib/libm/math/w_cosh.c newlib/libm/math/w_drem.c newlib/libm/math/w_exp.c newlib/libm/math/w_exp2.c newlib/libm/math/w_fmod.c newlib/libm/math/w_gamma.c newlib/libm/math/w_hypot.c newlib/libm/math/w_j0.c newlib/libm/math/w_j1.c newlib/libm/math/w_jn.c newlib/libm/math/w_lgamma.c newlib/libm/math/w_log.c newlib/libm/math/w_log10.c newlib/libm/math/w_pow.c newlib/libm/math/w_remainder.c newlib/libm/math/w_scalb.c newlib/libm/math/w_sincos.c newlib/libm/math/w_sinh.c newlib/libm/math/w_sqrt.c newlib/libm/math/w_tgamma.c newlib/libm/math/wf_acos.c newlib/libm/math/wf_acosh.c newlib/libm/math/wf_asin.c newlib/libm/math/wf_atan2.c newlib/libm/math/wf_atanh.c newlib/libm/math/wf_cabs.c newlib/libm/math/wf_cosh.c newlib/libm/math/wf_drem.c newlib/libm/math/wf_exp.c newlib/libm/math/wf_exp2.c newlib/libm/math/wf_fmod.c newlib/libm/math/wf_gamma.c newlib/libm/math/wf_hypot.c newlib/libm/math/wf_j0.c newlib/libm/math/wf_j1.c newlib/libm/math/wf_jn.c newlib/libm/math/wf_lgamma.c newlib/libm/math/wf_log.c newlib/libm/math/wf_log10.c newlib/libm/math/wf_pow.c newlib/libm/math/wf_remainder.c newlib/libm/math/wf_scalb.c newlib/libm/math/wf_sincos.c newlib/libm/math/wf_sinh.c newlib/libm/math/wf_sqrt.c newlib/libm/math/wf_tgamma.c newlib/libm/math/wr_gamma.c newlib/libm/math/wr_lgamma.c newlib/libm/math/wrf_gamma.c newlib/libm/math/wrf_lgamma.c newlib/libm/mathfp/Makefile.am newlib/libm/mathfp/Makefile.in newlib/libm/mathfp/e_acosh.c newlib/libm/mathfp/e_atanh.c newlib/libm/mathfp/e_hypot.c newlib/libm/mathfp/e_j0.c newlib/libm/mathfp/e_j1.c newlib/libm/mathfp/e_remainder.c newlib/libm/mathfp/e_scalb.c newlib/libm/mathfp/ef_acosh.c newlib/libm/mathfp/ef_atanh.c newlib/libm/mathfp/ef_hypot.c newlib/libm/mathfp/ef_j0.c newlib/libm/mathfp/ef_j1.c newlib/libm/mathfp/ef_remainder.c newlib/libm/mathfp/ef_scalb.c newlib/libm/mathfp/er_gamma.c newlib/libm/mathfp/er_lgamma.c newlib/libm/mathfp/erf_gamma.c newlib/libm/mathfp/erf_lgamma.c newlib/libm/mathfp/mathfp.tex newlib/libm/mathfp/s_acos.c newlib/libm/mathfp/s_asin.c newlib/libm/mathfp/s_asine.c newlib/libm/mathfp/s_asinh.c newlib/libm/mathfp/s_atan.c newlib/libm/mathfp/s_atan2.c newlib/libm/mathfp/s_atangent.c newlib/libm/mathfp/s_ceil.c newlib/libm/mathfp/s_cos.c newlib/libm/mathfp/s_cosh.c newlib/libm/mathfp/s_erf.c newlib/libm/mathfp/s_exp.c newlib/libm/mathfp/s_exp2.c newlib/libm/mathfp/s_fabs.c newlib/libm/mathfp/s_floor.c newlib/libm/mathfp/s_fmod.c newlib/libm/mathfp/s_frexp.c newlib/libm/mathfp/s_infconst.c newlib/libm/mathfp/s_isinf.c newlib/libm/mathfp/s_isnan.c newlib/libm/mathfp/s_ispos.c newlib/libm/mathfp/s_ldexp.c newlib/libm/mathfp/s_log.c newlib/libm/mathfp/s_log10.c newlib/libm/mathfp/s_logarithm.c newlib/libm/mathfp/s_mathcnst.c newlib/libm/mathfp/s_numtest.c newlib/libm/mathfp/s_pow.c newlib/libm/mathfp/s_signif.c newlib/libm/mathfp/s_sin.c newlib/libm/mathfp/s_sincos.c newlib/libm/mathfp/s_sine.c newlib/libm/mathfp/s_sineh.c newlib/libm/mathfp/s_sinf.c newlib/libm/mathfp/s_sinh.c newlib/libm/mathfp/s_sqrt.c newlib/libm/mathfp/s_tan.c newlib/libm/mathfp/s_tanh.c newlib/libm/mathfp/s_tgamma.c newlib/libm/mathfp/sf_acos.c newlib/libm/mathfp/sf_asin.c newlib/libm/mathfp/sf_asine.c newlib/libm/mathfp/sf_asinh.c newlib/libm/mathfp/sf_atan.c newlib/libm/mathfp/sf_atan2.c newlib/libm/mathfp/sf_atangent.c newlib/libm/mathfp/sf_ceil.c newlib/libm/mathfp/sf_cos.c newlib/libm/mathfp/sf_cosh.c newlib/libm/mathfp/sf_erf.c newlib/libm/mathfp/sf_exp.c newlib/libm/mathfp/sf_exp2.c newlib/libm/mathfp/sf_fabs.c newlib/libm/mathfp/sf_floor.c newlib/libm/mathfp/sf_fmod.c newlib/libm/mathfp/sf_frexp.c newlib/libm/mathfp/sf_isinf.c newlib/libm/mathfp/sf_isnan.c newlib/libm/mathfp/sf_ispos.c newlib/libm/mathfp/sf_ldexp.c newlib/libm/mathfp/sf_log.c newlib/libm/mathfp/sf_log10.c newlib/libm/mathfp/sf_logarithm.c newlib/libm/mathfp/sf_numtest.c newlib/libm/mathfp/sf_pow.c newlib/libm/mathfp/sf_signif.c newlib/libm/mathfp/sf_sin.c newlib/libm/mathfp/sf_sincos.c newlib/libm/mathfp/sf_sine.c newlib/libm/mathfp/sf_sineh.c newlib/libm/mathfp/sf_sinh.c newlib/libm/mathfp/sf_sqrt.c newlib/libm/mathfp/sf_tan.c newlib/libm/mathfp/sf_tanh.c newlib/libm/mathfp/sf_tgamma.c newlib/libm/mathfp/w_cabs.c newlib/libm/mathfp/w_drem.c newlib/libm/mathfp/w_jn.c newlib/libm/mathfp/wf_cabs.c newlib/libm/mathfp/wf_drem.c newlib/libm/mathfp/wf_jn.c newlib/libm/mathfp/zmath.h newlib/libm/test/Makefile.in newlib/libm/test/acos_vec.c newlib/libm/test/acosf_vec.c newlib/libm/test/acosh_vec.c newlib/libm/test/acoshf_vec.c newlib/libm/test/asin_vec.c newlib/libm/test/asinf_vec.c newlib/libm/test/asinh_vec.c newlib/libm/test/asinhf_vec.c newlib/libm/test/atan2_vec.c newlib/libm/test/atan2f_vec.c newlib/libm/test/atan_vec.c newlib/libm/test/atanf_vec.c newlib/libm/test/atanh_vec.c newlib/libm/test/atanhf_vec.c newlib/libm/test/ceil_vec.c newlib/libm/test/ceilf_vec.c newlib/libm/test/conv_vec.c newlib/libm/test/convert.c newlib/libm/test/cos_vec.c newlib/libm/test/cosf_vec.c newlib/libm/test/cosh_vec.c newlib/libm/test/coshf_vec.c newlib/libm/test/dcvt.c newlib/libm/test/dvec.c newlib/libm/test/erf_vec.c newlib/libm/test/erfc_vec.c newlib/libm/test/erfcf_vec.c newlib/libm/test/erff_vec.c newlib/libm/test/exp_vec.c newlib/libm/test/expf_vec.c newlib/libm/test/fabs_vec.c newlib/libm/test/fabsf_vec.c newlib/libm/test/floor_vec.c newlib/libm/test/floorf_vec.c newlib/libm/test/fmod_vec.c newlib/libm/test/fmodf_vec.c newlib/libm/test/gamma_vec.c newlib/libm/test/gammaf_vec.c newlib/libm/test/hypot_vec.c newlib/libm/test/hypotf_vec.c newlib/libm/test/iconv_vec.c newlib/libm/test/j0_vec.c newlib/libm/test/j0f_vec.c newlib/libm/test/j1_vec.c newlib/libm/test/j1f_vec.c newlib/libm/test/jn_vec.c newlib/libm/test/jnf_vec.c newlib/libm/test/log10_vec.c newlib/libm/test/log10f_vec.c newlib/libm/test/log1p_vec.c newlib/libm/test/log1pf_vec.c newlib/libm/test/log2_vec.c newlib/libm/test/log2f_vec.c newlib/libm/test/log_vec.c newlib/libm/test/logf_vec.c newlib/libm/test/math.c newlib/libm/test/math2.c newlib/libm/test/sin_vec.c newlib/libm/test/sinf_vec.c newlib/libm/test/sinh_vec.c newlib/libm/test/sinhf_vec.c newlib/libm/test/sprint_ivec.c newlib/libm/test/sprint_vec.c newlib/libm/test/sqrt_vec.c newlib/libm/test/sqrtf_vec.c newlib/libm/test/string.c newlib/libm/test/tan_vec.c newlib/libm/test/tanf_vec.c newlib/libm/test/tanh_vec.c newlib/libm/test/tanhf_vec.c newlib/libm/test/test.c newlib/libm/test/test.h newlib/libm/test/test_ieee.c newlib/libm/test/test_is.c newlib/libm/test/y0_vec.c newlib/libm/test/y0f_vec.c newlib/libm/test/y1_vec.c newlib/libm/test/y1f_vec.c newlib/libm/test/yn_vec.c newlib/libm/test/ynf_vec.c newlib/libtool.m4 newlib/newlib.hin newlib/stamp-h.in newlib/testsuite/config/default.exp newlib/testsuite/include/check.h newlib/testsuite/lib/checkoutput.exp newlib/testsuite/lib/flags.exp newlib/testsuite/lib/newlib.exp newlib/testsuite/lib/passfail.exp newlib/testsuite/newlib.elix/elix.exp newlib/testsuite/newlib.elix/tmmap.c newlib/testsuite/newlib.iconv/iconv.exp newlib/testsuite/newlib.iconv/iconvjp.c newlib/testsuite/newlib.iconv/iconvnm.c newlib/testsuite/newlib.iconv/iconvru.c newlib/testsuite/newlib.locale/UTF-8.c newlib/testsuite/newlib.locale/UTF-8.exp newlib/testsuite/newlib.locale/locale.exp newlib/testsuite/newlib.search/hsearchtest.c newlib/testsuite/newlib.search/hsearchtest.exp newlib/testsuite/newlib.stdlib/atexit.c newlib/testsuite/newlib.stdlib/atexit.exp newlib/testsuite/newlib.string/string.exp newlib/testsuite/newlib.string/tstring.c newlib/testsuite/newlib.wctype/tiswctype.c newlib/testsuite/newlib.wctype/twctrans.c newlib/testsuite/newlib.wctype/twctype.c newlib/testsuite/newlib.wctype/wctype.exp setup.com src-release symlink-tree texinfo/texinfo.tex winsup/CYGWIN_LICENSE winsup/ChangeLog winsup/Makefile.common winsup/Makefile.in winsup/configure winsup/configure.in winsup/cygserver/ChangeLog winsup/cygserver/Makefile.in winsup/cygserver/README winsup/cygserver/bsd_helper.cc winsup/cygserver/bsd_helper.h winsup/cygserver/bsd_log.cc winsup/cygserver/bsd_log.h winsup/cygserver/bsd_mutex.cc winsup/cygserver/bsd_mutex.h winsup/cygserver/client.cc winsup/cygserver/configure winsup/cygserver/configure.in winsup/cygserver/cygserver-config winsup/cygserver/cygserver.cc winsup/cygserver/cygserver.conf winsup/cygserver/msg.cc winsup/cygserver/process.cc winsup/cygserver/process.h winsup/cygserver/sem.cc winsup/cygserver/shm.cc winsup/cygserver/sysv_msg.cc winsup/cygserver/sysv_sem.cc winsup/cygserver/sysv_shm.cc winsup/cygserver/threaded_queue.cc winsup/cygserver/threaded_queue.h winsup/cygserver/transport.cc winsup/cygserver/transport.h winsup/cygserver/transport_pipes.cc winsup/cygserver/transport_pipes.h winsup/cygserver/transport_sockets.cc winsup/cygserver/transport_sockets.h winsup/cygserver/woutsup.h winsup/doc/ChangeLog winsup/doc/Makefile.in winsup/doc/calls.texinfo winsup/doc/changes.texinfo winsup/doc/configure winsup/doc/configure.in winsup/doc/copy.texinfo winsup/doc/cygserver.sgml winsup/doc/cygwin-api.in.sgml winsup/doc/cygwin-ug-net.in.sgml winsup/doc/cygwin-ug.in.sgml winsup/doc/cygwin.dsl winsup/doc/cygwinenv.sgml winsup/doc/dll.sgml winsup/doc/doctool.c winsup/doc/doctool.txt winsup/doc/effectively.sgml winsup/doc/faq.texinfo winsup/doc/fhandler-tut.txt winsup/doc/filemodes.sgml winsup/doc/gcc.sgml winsup/doc/gdb.sgml winsup/doc/history.texinfo winsup/doc/how-api.texinfo winsup/doc/how-programming.texinfo winsup/doc/how-resources.texinfo winsup/doc/how-using.texinfo winsup/doc/how.texinfo winsup/doc/install.texinfo winsup/doc/legal.sgml winsup/doc/ntsec.sgml winsup/doc/overview.sgml winsup/doc/overview2.sgml winsup/doc/pathnames.sgml winsup/doc/programming.sgml winsup/doc/readme.texinfo winsup/doc/relnotes.texinfo winsup/doc/setup-net.sgml winsup/doc/setup.sgml winsup/doc/setup2.sgml winsup/doc/textbinary.sgml winsup/doc/using.sgml winsup/doc/what.texinfo winsup/doc/who.texinfo winsup/doc/windres.sgml winsup/mingw/CONTRIBUTORS winsup/mingw/CRT_fp10.c winsup/mingw/CRT_fp8.c winsup/mingw/CRT_noglob.c winsup/mingw/CRTfmode.c winsup/mingw/CRTglob.c winsup/mingw/CRTinit.c winsup/mingw/ChangeLog winsup/mingw/DISCLAIMER winsup/mingw/Makefile.in winsup/mingw/README winsup/mingw/TODO winsup/mingw/binmode.c winsup/mingw/config.guess winsup/mingw/config.sub winsup/mingw/configure winsup/mingw/configure.in winsup/mingw/crt1.c winsup/mingw/crtdll.def winsup/mingw/crtmt.c winsup/mingw/crtst.c winsup/mingw/dllcrt1.c winsup/mingw/dllmain.c winsup/mingw/gccmain.c winsup/mingw/include/_mingw.h winsup/mingw/include/assert.h winsup/mingw/include/complex.h winsup/mingw/include/conio.h winsup/mingw/include/ctype.h winsup/mingw/include/dir.h winsup/mingw/include/direct.h winsup/mingw/include/dirent.h winsup/mingw/include/dos.h winsup/mingw/include/errno.h winsup/mingw/include/excpt.h winsup/mingw/include/fcntl.h winsup/mingw/include/fenv.h winsup/mingw/include/float.h winsup/mingw/include/getopt.h winsup/mingw/include/inttypes.h winsup/mingw/include/io.h winsup/mingw/include/limits.h winsup/mingw/include/locale.h winsup/mingw/include/malloc.h winsup/mingw/include/math.h winsup/mingw/include/mbctype.h winsup/mingw/include/mbstring.h winsup/mingw/include/mem.h winsup/mingw/include/memory.h winsup/mingw/include/process.h winsup/mingw/include/search.h winsup/mingw/include/setjmp.h winsup/mingw/include/share.h winsup/mingw/include/signal.h winsup/mingw/include/stdarg.h winsup/mingw/include/stddef.h winsup/mingw/include/stdint.h winsup/mingw/include/stdio.h winsup/mingw/include/stdlib.h winsup/mingw/include/string.h winsup/mingw/include/strings.h winsup/mingw/include/sys/fcntl.h winsup/mingw/include/sys/file.h winsup/mingw/include/sys/locking.h winsup/mingw/include/sys/param.h winsup/mingw/include/sys/stat.h winsup/mingw/include/sys/time.h winsup/mingw/include/sys/timeb.h winsup/mingw/include/sys/types.h winsup/mingw/include/sys/unistd.h winsup/mingw/include/sys/utime.h winsup/mingw/include/tchar.h winsup/mingw/include/time.h winsup/mingw/include/unistd.h winsup/mingw/include/utime.h winsup/mingw/include/values.h winsup/mingw/include/varargs.h winsup/mingw/include/wchar.h winsup/mingw/include/wctype.h winsup/mingw/init.c winsup/mingw/install-sh winsup/mingw/isascii.c winsup/mingw/iscsym.c winsup/mingw/iscsymf.c winsup/mingw/jamfile winsup/mingw/main.c winsup/mingw/mingwex/Makefile.in winsup/mingw/mingwex/_Exit.c winsup/mingw/mingwex/atoll.c winsup/mingw/mingwex/complex/cabs.c winsup/mingw/mingwex/complex/cacos.c winsup/mingw/mingwex/complex/cacosh.c winsup/mingw/mingwex/complex/carg.c winsup/mingw/mingwex/complex/casin.c winsup/mingw/mingwex/complex/casinh.c winsup/mingw/mingwex/complex/catan.c winsup/mingw/mingwex/complex/catanh.c winsup/mingw/mingwex/complex/ccos.c winsup/mingw/mingwex/complex/ccosh.c winsup/mingw/mingwex/complex/cexp.c winsup/mingw/mingwex/complex/cimag.c winsup/mingw/mingwex/complex/clog.c winsup/mingw/mingwex/complex/cpow.c winsup/mingw/mingwex/complex/cproj.c winsup/mingw/mingwex/complex/creal.c winsup/mingw/mingwex/complex/csin.c winsup/mingw/mingwex/complex/csinh.c winsup/mingw/mingwex/complex/csqrt.c winsup/mingw/mingwex/complex/ctan.c winsup/mingw/mingwex/complex/ctanh.c winsup/mingw/mingwex/configure winsup/mingw/mingwex/configure.in winsup/mingw/mingwex/dirent.c winsup/mingw/mingwex/feclearexcept.c winsup/mingw/mingwex/fegetenv.c winsup/mingw/mingwex/fegetexceptflag.c winsup/mingw/mingwex/fegetround.c winsup/mingw/mingwex/feholdexcept.c winsup/mingw/mingwex/feraiseexcept.c winsup/mingw/mingwex/fesetenv.c winsup/mingw/mingwex/fesetexceptflag.c winsup/mingw/mingwex/fesetround.c winsup/mingw/mingwex/fetestexcept.c winsup/mingw/mingwex/feupdateenv.c winsup/mingw/mingwex/ftruncate.c winsup/mingw/mingwex/fwide.c winsup/mingw/mingwex/getopt.c winsup/mingw/mingwex/imaxabs.c winsup/mingw/mingwex/imaxdiv.c winsup/mingw/mingwex/ldtoa.c winsup/mingw/mingwex/lltoa.c winsup/mingw/mingwex/lltow.c winsup/mingw/mingwex/math/acosf.c winsup/mingw/mingwex/math/acosh.c winsup/mingw/mingwex/math/acoshf.c winsup/mingw/mingwex/math/acoshl.c winsup/mingw/mingwex/math/acosl.c winsup/mingw/mingwex/math/asinf.c winsup/mingw/mingwex/math/asinh.c winsup/mingw/mingwex/math/asinhf.c winsup/mingw/mingwex/math/asinhl.c winsup/mingw/mingwex/math/asinl.c winsup/mingw/mingwex/math/atan2f.c winsup/mingw/mingwex/math/atan2l.c winsup/mingw/mingwex/math/atanf.c winsup/mingw/mingwex/math/atanh.c winsup/mingw/mingwex/math/atanhf.c winsup/mingw/mingwex/math/atanhl.c winsup/mingw/mingwex/math/atanl.c winsup/mingw/mingwex/math/cbrt.c winsup/mingw/mingwex/math/cbrtf.c winsup/mingw/mingwex/math/cbrtl.c winsup/mingw/mingwex/math/ceilf.S winsup/mingw/mingwex/math/ceill.S winsup/mingw/mingwex/math/cephes_emath.c winsup/mingw/mingwex/math/cephes_emath.h winsup/mingw/mingwex/math/cephes_mconf.h winsup/mingw/mingwex/math/copysign.S winsup/mingw/mingwex/math/copysignf.S winsup/mingw/mingwex/math/copysignl.S winsup/mingw/mingwex/math/cosf.S winsup/mingw/mingwex/math/coshf.c winsup/mingw/mingwex/math/coshl.c winsup/mingw/mingwex/math/cosl.S winsup/mingw/mingwex/math/exp2.S winsup/mingw/mingwex/math/exp2f.S winsup/mingw/mingwex/math/exp2l.S winsup/mingw/mingwex/math/expf.c winsup/mingw/mingwex/math/expl.c winsup/mingw/mingwex/math/fabs.c winsup/mingw/mingwex/math/fabsf.c winsup/mingw/mingwex/math/fabsl.c winsup/mingw/mingwex/math/fastmath.h winsup/mingw/mingwex/math/fdim.c winsup/mingw/mingwex/math/fdimf.c winsup/mingw/mingwex/math/fdiml.c winsup/mingw/mingwex/math/floorf.S winsup/mingw/mingwex/math/floorl.S winsup/mingw/mingwex/math/fma.S winsup/mingw/mingwex/math/fmaf.S winsup/mingw/mingwex/math/fmal.c winsup/mingw/mingwex/math/fmax.c winsup/mingw/mingwex/math/fmaxf.c winsup/mingw/mingwex/math/fmaxl.c winsup/mingw/mingwex/math/fmin.c winsup/mingw/mingwex/math/fminf.c winsup/mingw/mingwex/math/fminl.c winsup/mingw/mingwex/math/fmodf.c winsup/mingw/mingwex/math/fmodl.c winsup/mingw/mingwex/math/fp_consts.c winsup/mingw/mingwex/math/fp_consts.h winsup/mingw/mingwex/math/fp_constsf.c winsup/mingw/mingwex/math/fp_constsl.c winsup/mingw/mingwex/math/fpclassify.c winsup/mingw/mingwex/math/fpclassifyf.c winsup/mingw/mingwex/math/fpclassifyl.c winsup/mingw/mingwex/math/frexpf.c winsup/mingw/mingwex/math/frexpl.S winsup/mingw/mingwex/math/fucom.c winsup/mingw/mingwex/math/hypotf.c winsup/mingw/mingwex/math/hypotl.c winsup/mingw/mingwex/math/ilogb.S winsup/mingw/mingwex/math/ilogbf.S winsup/mingw/mingwex/math/ilogbl.S winsup/mingw/mingwex/math/isnan.c winsup/mingw/mingwex/math/isnanf.c winsup/mingw/mingwex/math/isnanl.c winsup/mingw/mingwex/math/ldexpf.c winsup/mingw/mingwex/math/ldexpl.c winsup/mingw/mingwex/math/lgamma.c winsup/mingw/mingwex/math/lgammaf.c winsup/mingw/mingwex/math/lgammal.c winsup/mingw/mingwex/math/llrint.c winsup/mingw/mingwex/math/llrintf.c winsup/mingw/mingwex/math/llrintl.c winsup/mingw/mingwex/math/llround.c winsup/mingw/mingwex/math/llroundf.c winsup/mingw/mingwex/math/llroundl.c winsup/mingw/mingwex/math/log10f.S winsup/mingw/mingwex/math/log10l.S winsup/mingw/mingwex/math/log1p.S winsup/mingw/mingwex/math/log1pf.S winsup/mingw/mingwex/math/log1pl.S winsup/mingw/mingwex/math/log2.S winsup/mingw/mingwex/math/log2f.S winsup/mingw/mingwex/math/log2l.S winsup/mingw/mingwex/math/logb.c winsup/mingw/mingwex/math/logbf.c winsup/mingw/mingwex/math/logbl.c winsup/mingw/mingwex/math/logf.S winsup/mingw/mingwex/math/logl.S winsup/mingw/mingwex/math/lrint.c winsup/mingw/mingwex/math/lrintf.c winsup/mingw/mingwex/math/lrintl.c winsup/mingw/mingwex/math/lround.c winsup/mingw/mingwex/math/lroundf.c winsup/mingw/mingwex/math/lroundl.c winsup/mingw/mingwex/math/modff.c winsup/mingw/mingwex/math/modfl.c winsup/mingw/mingwex/math/nearbyint.S winsup/mingw/mingwex/math/nearbyintf.S winsup/mingw/mingwex/math/nearbyintl.S winsup/mingw/mingwex/math/nextafterf.c winsup/mingw/mingwex/math/pow.c winsup/mingw/mingwex/math/powf.c winsup/mingw/mingwex/math/powi.c winsup/mingw/mingwex/math/powif.c winsup/mingw/mingwex/math/powil.c winsup/mingw/mingwex/math/powl.c winsup/mingw/mingwex/math/remainder.S winsup/mingw/mingwex/math/remainderf.S winsup/mingw/mingwex/math/remainderl.S winsup/mingw/mingwex/math/remquo.S winsup/mingw/mingwex/math/remquof.S winsup/mingw/mingwex/math/remquol.S winsup/mingw/mingwex/math/rint.c winsup/mingw/mingwex/math/rintf.c winsup/mingw/mingwex/math/rintl.c winsup/mingw/mingwex/math/round.c winsup/mingw/mingwex/math/roundf.c winsup/mingw/mingwex/math/roundl.c winsup/mingw/mingwex/math/s_erf.c winsup/mingw/mingwex/math/scalbn.S winsup/mingw/mingwex/math/scalbnf.S winsup/mingw/mingwex/math/scalbnl.S winsup/mingw/mingwex/math/sf_erf.c winsup/mingw/mingwex/math/signbit.c winsup/mingw/mingwex/math/signbitf.c winsup/mingw/mingwex/math/signbitl.c winsup/mingw/mingwex/math/sinf.S winsup/mingw/mingwex/math/sinhf.c winsup/mingw/mingwex/math/sinhl.c winsup/mingw/mingwex/math/sinl.S winsup/mingw/mingwex/math/sqrtf.c winsup/mingw/mingwex/math/sqrtl.c winsup/mingw/mingwex/math/tanf.S winsup/mingw/mingwex/math/tanhf.c winsup/mingw/mingwex/math/tanhl.c winsup/mingw/mingwex/math/tanl.S winsup/mingw/mingwex/math/tgamma.c winsup/mingw/mingwex/math/tgammaf.c winsup/mingw/mingwex/math/tgammal.c winsup/mingw/mingwex/math/trunc.c winsup/mingw/mingwex/math/truncf.c winsup/mingw/mingwex/math/truncl.c winsup/mingw/mingwex/mbsinit.c winsup/mingw/mingwex/mingw-aligned-malloc.c winsup/mingw/mingwex/mingw-fseek.c winsup/mingw/mingwex/sitest.c winsup/mingw/mingwex/stdio/fopen64.c winsup/mingw/mingwex/stdio/fseeko64.c winsup/mingw/mingwex/stdio/ftello64.c winsup/mingw/mingwex/stdio/lseek64.c winsup/mingw/mingwex/stdio/snprintf.c winsup/mingw/mingwex/stdio/snwprintf.c winsup/mingw/mingwex/stdio/vfscanf.c winsup/mingw/mingwex/stdio/vfwscanf.c winsup/mingw/mingwex/stdio/vscanf.c winsup/mingw/mingwex/stdio/vsnprintf.c winsup/mingw/mingwex/stdio/vsnwprintf.c winsup/mingw/mingwex/stdio/vsscanf.c winsup/mingw/mingwex/stdio/vswscanf.c winsup/mingw/mingwex/stdio/vwscanf.c winsup/mingw/mingwex/strtof.c winsup/mingw/mingwex/strtoimax.c winsup/mingw/mingwex/strtold.c winsup/mingw/mingwex/strtoumax.c winsup/mingw/mingwex/testwmem.c winsup/mingw/mingwex/tst-aligned-malloc.c winsup/mingw/mingwex/ulltoa.c winsup/mingw/mingwex/ulltow.c winsup/mingw/mingwex/wcstof.c winsup/mingw/mingwex/wcstoimax.c winsup/mingw/mingwex/wcstold.c winsup/mingw/mingwex/wcstoumax.c winsup/mingw/mingwex/wdirent.c winsup/mingw/mingwex/wmemchr.c winsup/mingw/mingwex/wmemcmp.c winsup/mingw/mingwex/wmemcpy.c winsup/mingw/mingwex/wmemmove.c winsup/mingw/mingwex/wmemset.c winsup/mingw/mingwex/wtoll.c winsup/mingw/mkinstalldirs winsup/mingw/moldname.def.in winsup/mingw/msvcrt.def.in winsup/mingw/mthr.c winsup/mingw/mthr_init.c winsup/mingw/mthr_stub.c winsup/mingw/profile/COPYING winsup/mingw/profile/CYGWIN_LICENSE winsup/mingw/profile/Makefile.in winsup/mingw/profile/configure winsup/mingw/profile/configure.in winsup/mingw/profile/gcrt0.c winsup/mingw/profile/gmon.c winsup/mingw/profile/gmon.h winsup/mingw/profile/mcount.c winsup/mingw/profile/profil.c winsup/mingw/profile/profil.h winsup/mingw/profile/profile.h winsup/mingw/pseudo-reloc-list.c winsup/mingw/pseudo-reloc.c winsup/mingw/readme.txt winsup/mingw/samples/dirent/jamfile winsup/mingw/samples/dirent/test.c winsup/mingw/samples/dirent/wtest.c winsup/mingw/samples/dlltest/dll.c winsup/mingw/samples/dlltest/dll.def winsup/mingw/samples/dlltest/dll.h winsup/mingw/samples/dlltest/exe.c winsup/mingw/samples/dlltest/exe.exp winsup/mingw/samples/dlltest/expexe.c winsup/mingw/samples/dlltest/expexe.def winsup/mingw/samples/dlltest/jamfile winsup/mingw/samples/dlltest/loaddll.c winsup/mingw/samples/dlltest/loadexe.c winsup/mingw/samples/dlltest/readme.txt winsup/mingw/samples/dlltest/silly.cpp winsup/mingw/samples/dlltest/silly.def winsup/mingw/samples/dlltest/silly.exp winsup/mingw/samples/dlltest/silly.h winsup/mingw/samples/dlltest/sillydll.cpp winsup/mingw/samples/filehand/filehand.c winsup/mingw/samples/filehand/jamfile winsup/mingw/samples/filehand/junk.txt winsup/mingw/samples/fixargv/fixargv.c winsup/mingw/samples/fixargv/fixargv.h winsup/mingw/samples/fixargv/readme.txt winsup/mingw/samples/fmode/all.c winsup/mingw/samples/fmode/jamfile winsup/mingw/samples/fmode/readme.txt winsup/mingw/samples/fmode/test.c winsup/mingw/samples/fmode/test2.c winsup/mingw/samples/globbing/glob.c winsup/mingw/samples/globbing/jamfile winsup/mingw/samples/globbing/noglob.c winsup/mingw/samples/globbing/readme.txt winsup/mingw/samples/print/jamfile winsup/mingw/samples/print/prntest.c winsup/mingw/samples/seh/eh3.c winsup/mingw/samples/seh/exutil.c winsup/mingw/samples/seh/exutil.def winsup/mingw/samples/seh/exutil.h winsup/mingw/samples/seh/jamfile winsup/mingw/samples/seh/sehfix.c winsup/mingw/samples/seh/sehsub.c winsup/mingw/samples/seh/sehtest.c winsup/mingw/samples/simpledll/dll.c winsup/mingw/samples/simpledll/dll.cpp winsup/mingw/samples/simpledll/dll.def winsup/mingw/samples/simpledll/exe.c winsup/mingw/samples/simpledll/jamfile winsup/mingw/samples/simpledll/makedll.bat winsup/mingw/samples/test/jamfile winsup/mingw/samples/test/test.c winsup/mingw/samples/wintest/jamfile winsup/mingw/samples/wintest/test.c winsup/mingw/strcasecmp.c winsup/mingw/strncasecmp.c winsup/mingw/test_headers.c winsup/mingw/toascii.c winsup/mingw/txtmode.c winsup/mingw/wcscmpi.c winsup/subauth/ChangeLog winsup/subauth/Makefile.in winsup/subauth/configure winsup/subauth/configure.in winsup/subauth/cygsuba.c winsup/subauth/cygsuba.din winsup/testsuite/ChangeLog winsup/testsuite/Makefile.in winsup/testsuite/README winsup/testsuite/config/default.exp winsup/testsuite/configure winsup/testsuite/configure.in winsup/testsuite/cygrun.c winsup/testsuite/libltp/include/dataascii.h winsup/testsuite/libltp/include/databin.h winsup/testsuite/libltp/include/file_lock.h winsup/testsuite/libltp/include/forker.h winsup/testsuite/libltp/include/open_flags.h winsup/testsuite/libltp/include/pattern.h winsup/testsuite/libltp/include/random_range.h winsup/testsuite/libltp/include/rmobj.h winsup/testsuite/libltp/include/search_path.h winsup/testsuite/libltp/include/str_to_bytes.h winsup/testsuite/libltp/include/string_to_tokens.h winsup/testsuite/libltp/include/test.h winsup/testsuite/libltp/include/tlibio.h winsup/testsuite/libltp/include/usctest.h winsup/testsuite/libltp/include/write_log.h winsup/testsuite/libltp/lib/dataascii.c winsup/testsuite/libltp/lib/databin.c winsup/testsuite/libltp/lib/datapid.c winsup/testsuite/libltp/lib/forker.c winsup/testsuite/libltp/lib/get_high_address.c winsup/testsuite/libltp/lib/libtestsuite.c winsup/testsuite/libltp/lib/open_flags.c winsup/testsuite/libltp/lib/parse_opts.c winsup/testsuite/libltp/lib/pattern.c winsup/testsuite/libltp/lib/rmobj.c winsup/testsuite/libltp/lib/search_path.c winsup/testsuite/libltp/lib/str_to_bytes.c winsup/testsuite/libltp/lib/string_to_tokens.c winsup/testsuite/libltp/lib/tst_res.c winsup/testsuite/libltp/lib/tst_sig.c winsup/testsuite/libltp/lib/tst_tmpdir.c winsup/testsuite/libltp/lib/write_log.c winsup/testsuite/winsup.api/checksignal.c winsup/testsuite/winsup.api/crlf.c winsup/testsuite/winsup.api/devdsp.c winsup/testsuite/winsup.api/devdsp_okay.h winsup/testsuite/winsup.api/devzero.c winsup/testsuite/winsup.api/iospeed.c winsup/testsuite/winsup.api/known_bugs.tcl winsup/testsuite/winsup.api/ltp/access01.c winsup/testsuite/winsup.api/ltp/access03.c winsup/testsuite/winsup.api/ltp/access04.c winsup/testsuite/winsup.api/ltp/access05.c winsup/testsuite/winsup.api/ltp/alarm01.c winsup/testsuite/winsup.api/ltp/alarm02.c winsup/testsuite/winsup.api/ltp/alarm03.c winsup/testsuite/winsup.api/ltp/alarm07.c winsup/testsuite/winsup.api/ltp/asyncio02.c winsup/testsuite/winsup.api/ltp/chdir02.c winsup/testsuite/winsup.api/ltp/chdir04.c winsup/testsuite/winsup.api/ltp/chmod01.c winsup/testsuite/winsup.api/ltp/chmod02.c winsup/testsuite/winsup.api/ltp/chown01.c winsup/testsuite/winsup.api/ltp/close01.c winsup/testsuite/winsup.api/ltp/close02.c winsup/testsuite/winsup.api/ltp/close08.c winsup/testsuite/winsup.api/ltp/creat01.c winsup/testsuite/winsup.api/ltp/creat03.c winsup/testsuite/winsup.api/ltp/creat09.c winsup/testsuite/winsup.api/ltp/dup01.c winsup/testsuite/winsup.api/ltp/dup02.c winsup/testsuite/winsup.api/ltp/dup03.c winsup/testsuite/winsup.api/ltp/dup04.c winsup/testsuite/winsup.api/ltp/dup05.c winsup/testsuite/winsup.api/ltp/execl01.c winsup/testsuite/winsup.api/ltp/execle01.c winsup/testsuite/winsup.api/ltp/execlp01.c winsup/testsuite/winsup.api/ltp/execv01.c winsup/testsuite/winsup.api/ltp/execve01.c winsup/testsuite/winsup.api/ltp/execvp01.c winsup/testsuite/winsup.api/ltp/exit01.c winsup/testsuite/winsup.api/ltp/exit02.c winsup/testsuite/winsup.api/ltp/fchdir01.c winsup/testsuite/winsup.api/ltp/fchdir02.c winsup/testsuite/winsup.api/ltp/fchmod01.c winsup/testsuite/winsup.api/ltp/fchown01.c winsup/testsuite/winsup.api/ltp/fcntl02.c winsup/testsuite/winsup.api/ltp/fcntl03.c winsup/testsuite/winsup.api/ltp/fcntl04.c winsup/testsuite/winsup.api/ltp/fcntl05.c winsup/testsuite/winsup.api/ltp/fcntl07.c winsup/testsuite/winsup.api/ltp/fcntl07B.c winsup/testsuite/winsup.api/ltp/fcntl08.c winsup/testsuite/winsup.api/ltp/fcntl09.c winsup/testsuite/winsup.api/ltp/fcntl10.c winsup/testsuite/winsup.api/ltp/fork01.c winsup/testsuite/winsup.api/ltp/fork02.c winsup/testsuite/winsup.api/ltp/fork03.c winsup/testsuite/winsup.api/ltp/fork04.c winsup/testsuite/winsup.api/ltp/fork06.c winsup/testsuite/winsup.api/ltp/fork07.c winsup/testsuite/winsup.api/ltp/fork09.c winsup/testsuite/winsup.api/ltp/fork10.c winsup/testsuite/winsup.api/ltp/fork11.c winsup/testsuite/winsup.api/ltp/fpathconf01.c winsup/testsuite/winsup.api/ltp/fstat01.c winsup/testsuite/winsup.api/ltp/fstat02.c winsup/testsuite/winsup.api/ltp/fstat03.c winsup/testsuite/winsup.api/ltp/fstat04.c winsup/testsuite/winsup.api/ltp/fsync01.c winsup/testsuite/winsup.api/ltp/ftruncate01.c winsup/testsuite/winsup.api/ltp/ftruncate02.c winsup/testsuite/winsup.api/ltp/ftruncate03.c winsup/testsuite/winsup.api/ltp/getegid01.c winsup/testsuite/winsup.api/ltp/geteuid01.c winsup/testsuite/winsup.api/ltp/getgid01.c winsup/testsuite/winsup.api/ltp/getgid02.c winsup/testsuite/winsup.api/ltp/getgid03.c winsup/testsuite/winsup.api/ltp/getgroups01.c winsup/testsuite/winsup.api/ltp/getgroups02.c winsup/testsuite/winsup.api/ltp/gethostid01.c winsup/testsuite/winsup.api/ltp/gethostname01.c winsup/testsuite/winsup.api/ltp/getpgid01.c winsup/testsuite/winsup.api/ltp/getpgid02.c winsup/testsuite/winsup.api/ltp/getpgrp01.c winsup/testsuite/winsup.api/ltp/getpid01.c winsup/testsuite/winsup.api/ltp/getpid02.c winsup/testsuite/winsup.api/ltp/getppid01.c winsup/testsuite/winsup.api/ltp/getppid02.c winsup/testsuite/winsup.api/ltp/getuid01.c winsup/testsuite/winsup.api/ltp/getuid02.c winsup/testsuite/winsup.api/ltp/getuid03.c winsup/testsuite/winsup.api/ltp/kill01.c winsup/testsuite/winsup.api/ltp/kill02.c winsup/testsuite/winsup.api/ltp/kill03.c winsup/testsuite/winsup.api/ltp/kill04.c winsup/testsuite/winsup.api/ltp/kill09.c winsup/testsuite/winsup.api/ltp/link02.c winsup/testsuite/winsup.api/ltp/link03.c winsup/testsuite/winsup.api/ltp/link04.c winsup/testsuite/winsup.api/ltp/link05.c winsup/testsuite/winsup.api/ltp/lseek01.c winsup/testsuite/winsup.api/ltp/lseek02.c winsup/testsuite/winsup.api/ltp/lseek03.c winsup/testsuite/winsup.api/ltp/lseek04.c winsup/testsuite/winsup.api/ltp/lseek05.c winsup/testsuite/winsup.api/ltp/lseek06.c winsup/testsuite/winsup.api/ltp/lseek07.c winsup/testsuite/winsup.api/ltp/lseek08.c winsup/testsuite/winsup.api/ltp/lseek09.c winsup/testsuite/winsup.api/ltp/lseek10.c winsup/testsuite/winsup.api/ltp/lstat02.c winsup/testsuite/winsup.api/ltp/mkdir01.c winsup/testsuite/winsup.api/ltp/mkdir08.c winsup/testsuite/winsup.api/ltp/mknod01.c winsup/testsuite/winsup.api/ltp/mmap001.c winsup/testsuite/winsup.api/ltp/mmap02.c winsup/testsuite/winsup.api/ltp/mmap03.c winsup/testsuite/winsup.api/ltp/mmap04.c winsup/testsuite/winsup.api/ltp/mmap05.c winsup/testsuite/winsup.api/ltp/mmap06.c winsup/testsuite/winsup.api/ltp/mmap07.c winsup/testsuite/winsup.api/ltp/mmap08.c winsup/testsuite/winsup.api/ltp/munmap01.c winsup/testsuite/winsup.api/ltp/munmap02.c winsup/testsuite/winsup.api/ltp/nice05.c winsup/testsuite/winsup.api/ltp/open02.c winsup/testsuite/winsup.api/ltp/open03.c winsup/testsuite/winsup.api/ltp/pathconf01.c winsup/testsuite/winsup.api/ltp/pause01.c winsup/testsuite/winsup.api/ltp/pipe01.c winsup/testsuite/winsup.api/ltp/pipe08.c winsup/testsuite/winsup.api/ltp/pipe09.c winsup/testsuite/winsup.api/ltp/pipe10.c winsup/testsuite/winsup.api/ltp/pipe11.c winsup/testsuite/winsup.api/ltp/poll01.c winsup/testsuite/winsup.api/ltp/read01.c winsup/testsuite/winsup.api/ltp/read04.c winsup/testsuite/winsup.api/ltp/readdir01.c winsup/testsuite/winsup.api/ltp/readlink01.c winsup/testsuite/winsup.api/ltp/readlink02.c winsup/testsuite/winsup.api/ltp/readlink03.c winsup/testsuite/winsup.api/ltp/rename01.c winsup/testsuite/winsup.api/ltp/rename02.c winsup/testsuite/winsup.api/ltp/rename08.c winsup/testsuite/winsup.api/ltp/rename10.c winsup/testsuite/winsup.api/ltp/rmdir01.c winsup/testsuite/winsup.api/ltp/rmdir04.c winsup/testsuite/winsup.api/ltp/rmdir05.c winsup/testsuite/winsup.api/ltp/sbrk01.c winsup/testsuite/winsup.api/ltp/select01.c winsup/testsuite/winsup.api/ltp/select02.c winsup/testsuite/winsup.api/ltp/select03.c winsup/testsuite/winsup.api/ltp/setgid01.c winsup/testsuite/winsup.api/ltp/setgroups01.c winsup/testsuite/winsup.api/ltp/setpgid01.c winsup/testsuite/winsup.api/ltp/setregid01.c winsup/testsuite/winsup.api/ltp/setreuid01.c winsup/testsuite/winsup.api/ltp/setuid01.c winsup/testsuite/winsup.api/ltp/setuid02.c winsup/testsuite/winsup.api/ltp/signal03.c winsup/testsuite/winsup.api/ltp/stat01.c winsup/testsuite/winsup.api/ltp/stat02.c winsup/testsuite/winsup.api/ltp/stat03.c winsup/testsuite/winsup.api/ltp/stat05.c winsup/testsuite/winsup.api/ltp/stat06.c winsup/testsuite/winsup.api/ltp/symlink01.c winsup/testsuite/winsup.api/ltp/symlink02.c winsup/testsuite/winsup.api/ltp/symlink03.c winsup/testsuite/winsup.api/ltp/symlink04.c winsup/testsuite/winsup.api/ltp/symlink05.c winsup/testsuite/winsup.api/ltp/sync01.c winsup/testsuite/winsup.api/ltp/sync02.c winsup/testsuite/winsup.api/ltp/time01.c winsup/testsuite/winsup.api/ltp/time02.c winsup/testsuite/winsup.api/ltp/times01.c winsup/testsuite/winsup.api/ltp/times02.c winsup/testsuite/winsup.api/ltp/times03.c winsup/testsuite/winsup.api/ltp/truncate01.c winsup/testsuite/winsup.api/ltp/truncate02.c winsup/testsuite/winsup.api/ltp/ulimit01.c winsup/testsuite/winsup.api/ltp/umask01.c winsup/testsuite/winsup.api/ltp/umask02.c winsup/testsuite/winsup.api/ltp/umask03.c winsup/testsuite/winsup.api/ltp/uname01.c winsup/testsuite/winsup.api/ltp/unlink05.c winsup/testsuite/winsup.api/ltp/unlink06.c winsup/testsuite/winsup.api/ltp/unlink07.c winsup/testsuite/winsup.api/ltp/unlink08.c winsup/testsuite/winsup.api/ltp/vfork01.c winsup/testsuite/winsup.api/ltp/wait02.c winsup/testsuite/winsup.api/ltp/wait401.c winsup/testsuite/winsup.api/ltp/wait402.c winsup/testsuite/winsup.api/ltp/write01.c winsup/testsuite/winsup.api/ltp/write02.c winsup/testsuite/winsup.api/ltp/write03.c winsup/testsuite/winsup.api/mmaptest01.c winsup/testsuite/winsup.api/mmaptest02.c winsup/testsuite/winsup.api/mmaptest03.c winsup/testsuite/winsup.api/mmaptest04.c winsup/testsuite/winsup.api/msgtest.c winsup/testsuite/winsup.api/nullgetcwd.c winsup/testsuite/winsup.api/pthread/cancel1.c winsup/testsuite/winsup.api/pthread/cancel10.c winsup/testsuite/winsup.api/pthread/cancel11.c winsup/testsuite/winsup.api/pthread/cancel12.c winsup/testsuite/winsup.api/pthread/cancel2.c winsup/testsuite/winsup.api/pthread/cancel3.c winsup/testsuite/winsup.api/pthread/cancel4.c winsup/testsuite/winsup.api/pthread/cancel5.c winsup/testsuite/winsup.api/pthread/cancel6.c winsup/testsuite/winsup.api/pthread/cancel7.c winsup/testsuite/winsup.api/pthread/cancel8.c winsup/testsuite/winsup.api/pthread/cancel9.c winsup/testsuite/winsup.api/pthread/cleanup2.c winsup/testsuite/winsup.api/pthread/cleanup3.c winsup/testsuite/winsup.api/pthread/condvar1.c winsup/testsuite/winsup.api/pthread/condvar2.c winsup/testsuite/winsup.api/pthread/condvar2_1.c winsup/testsuite/winsup.api/pthread/condvar3.c winsup/testsuite/winsup.api/pthread/condvar3_1.c winsup/testsuite/winsup.api/pthread/condvar3_2.c winsup/testsuite/winsup.api/pthread/condvar3_3.c winsup/testsuite/winsup.api/pthread/condvar4.c winsup/testsuite/winsup.api/pthread/condvar5.c winsup/testsuite/winsup.api/pthread/condvar6.c winsup/testsuite/winsup.api/pthread/condvar7.c winsup/testsuite/winsup.api/pthread/condvar8.c winsup/testsuite/winsup.api/pthread/condvar9.c winsup/testsuite/winsup.api/pthread/count1.c winsup/testsuite/winsup.api/pthread/create1.c winsup/testsuite/winsup.api/pthread/create2.c winsup/testsuite/winsup.api/pthread/equal1.c winsup/testsuite/winsup.api/pthread/exit1.c winsup/testsuite/winsup.api/pthread/exit2.c winsup/testsuite/winsup.api/pthread/exit3.c winsup/testsuite/winsup.api/pthread/inherit1.c winsup/testsuite/winsup.api/pthread/join0.c winsup/testsuite/winsup.api/pthread/join1.c winsup/testsuite/winsup.api/pthread/join2.c winsup/testsuite/winsup.api/pthread/mainthreadexits.c winsup/testsuite/winsup.api/pthread/mutex1.c winsup/testsuite/winsup.api/pthread/mutex1d.c winsup/testsuite/winsup.api/pthread/mutex1e.c winsup/testsuite/winsup.api/pthread/mutex1n.c winsup/testsuite/winsup.api/pthread/mutex1r.c winsup/testsuite/winsup.api/pthread/mutex2.c winsup/testsuite/winsup.api/pthread/mutex3.c winsup/testsuite/winsup.api/pthread/mutex4.c winsup/testsuite/winsup.api/pthread/mutex5.c winsup/testsuite/winsup.api/pthread/mutex6d.c winsup/testsuite/winsup.api/pthread/mutex6e.c winsup/testsuite/winsup.api/pthread/mutex6n.c winsup/testsuite/winsup.api/pthread/mutex6r.c winsup/testsuite/winsup.api/pthread/mutex7.c winsup/testsuite/winsup.api/pthread/mutex7d.c winsup/testsuite/winsup.api/pthread/mutex7e.c winsup/testsuite/winsup.api/pthread/mutex7n.c winsup/testsuite/winsup.api/pthread/mutex7r.c winsup/testsuite/winsup.api/pthread/mutex8e.c winsup/testsuite/winsup.api/pthread/mutex8n.c winsup/testsuite/winsup.api/pthread/mutex8r.c winsup/testsuite/winsup.api/pthread/once1.c winsup/testsuite/winsup.api/pthread/priority1.c winsup/testsuite/winsup.api/pthread/priority2.c winsup/testsuite/winsup.api/pthread/rwlock1.c winsup/testsuite/winsup.api/pthread/rwlock2.c winsup/testsuite/winsup.api/pthread/rwlock3.c winsup/testsuite/winsup.api/pthread/rwlock4.c winsup/testsuite/winsup.api/pthread/rwlock5.c winsup/testsuite/winsup.api/pthread/rwlock6.c winsup/testsuite/winsup.api/pthread/rwlock7.c winsup/testsuite/winsup.api/pthread/self1.c winsup/testsuite/winsup.api/pthread/self2.c winsup/testsuite/winsup.api/pthread/test.h winsup/testsuite/winsup.api/pthread/threadidafterfork.c winsup/testsuite/winsup.api/pthread/tsd1.c winsup/testsuite/winsup.api/samples/sample-fail.c winsup/testsuite/winsup.api/samples/sample-miscompile.c winsup/testsuite/winsup.api/samples/sample-pass.c winsup/testsuite/winsup.api/semtest.c winsup/testsuite/winsup.api/shmtest.c winsup/testsuite/winsup.api/sigchld.c winsup/testsuite/winsup.api/signal-into-win32-api.c winsup/testsuite/winsup.api/systemcall.c winsup/testsuite/winsup.api/waitpid.c winsup/testsuite/winsup.api/winsup.exp winsup/utils/ChangeLog winsup/utils/ChangeLog-2000 winsup/utils/Makefile.in winsup/utils/aclocal.m4 winsup/utils/configure winsup/utils/configure.in winsup/utils/cygcheck.cc winsup/utils/cygpath.cc winsup/utils/dump_setup.cc winsup/utils/dumper.cc winsup/utils/dumper.h winsup/utils/getfacl.c winsup/utils/ipcrm.c winsup/utils/ipcs.c winsup/utils/kill.cc winsup/utils/mkgroup.c winsup/utils/mkpasswd.c winsup/utils/module_info.cc winsup/utils/mount.cc winsup/utils/parse_pe.cc winsup/utils/passwd.c winsup/utils/path.cc winsup/utils/path.h winsup/utils/ps.cc winsup/utils/regtool.cc winsup/utils/setfacl.c winsup/utils/ssp.c winsup/utils/ssp.txt winsup/utils/strace.cc winsup/utils/umount.cc winsup/utils/utils.sgml winsup/w32api/CONTRIBUTIONS winsup/w32api/ChangeLog winsup/w32api/Makefile.in winsup/w32api/README.w32api winsup/w32api/TODO winsup/w32api/config.guess winsup/w32api/config.sub winsup/w32api/configure winsup/w32api/configure.in winsup/w32api/include/GL/gl.h winsup/w32api/include/GL/glext.h winsup/w32api/include/GL/glu.h winsup/w32api/include/accctrl.h winsup/w32api/include/aclapi.h winsup/w32api/include/aclui.h winsup/w32api/include/afxres.h winsup/w32api/include/basetsd.h winsup/w32api/include/basetyps.h winsup/w32api/include/cderr.h winsup/w32api/include/cguid.h winsup/w32api/include/comcat.h winsup/w32api/include/commctrl.h winsup/w32api/include/commdlg.h winsup/w32api/include/cpl.h winsup/w32api/include/cplext.h winsup/w32api/include/custcntl.h winsup/w32api/include/dbt.h winsup/w32api/include/dde.h winsup/w32api/include/ddeml.h winsup/w32api/include/ddk/atm.h winsup/w32api/include/ddk/batclass.h winsup/w32api/include/ddk/cfg.h winsup/w32api/include/ddk/cfgmgr32.h winsup/w32api/include/ddk/d4drvif.h winsup/w32api/include/ddk/d4iface.h winsup/w32api/include/ddk/ddkmapi.h winsup/w32api/include/ddk/hidclass.h winsup/w32api/include/ddk/hidpi.h winsup/w32api/include/ddk/hidusage.h winsup/w32api/include/ddk/kbdmou.h winsup/w32api/include/ddk/mcd.h winsup/w32api/include/ddk/miniport.h winsup/w32api/include/ddk/minitape.h winsup/w32api/include/ddk/mountdev.h winsup/w32api/include/ddk/mountmgr.h winsup/w32api/include/ddk/ndis.h winsup/w32api/include/ddk/ndisguid.h winsup/w32api/include/ddk/ndistapi.h winsup/w32api/include/ddk/ndiswan.h winsup/w32api/include/ddk/netevent.h winsup/w32api/include/ddk/netpnp.h winsup/w32api/include/ddk/newdev.h winsup/w32api/include/ddk/ntapi.h winsup/w32api/include/ddk/ntdd8042.h winsup/w32api/include/ddk/ntddbeep.h winsup/w32api/include/ddk/ntddcdrm.h winsup/w32api/include/ddk/ntddcdvd.h winsup/w32api/include/ddk/ntddchgr.h winsup/w32api/include/ddk/ntdddisk.h winsup/w32api/include/ddk/ntddk.h winsup/w32api/include/ddk/ntddkbd.h winsup/w32api/include/ddk/ntddmou.h winsup/w32api/include/ddk/ntddndis.h winsup/w32api/include/ddk/ntddpar.h winsup/w32api/include/ddk/ntddpcm.h winsup/w32api/include/ddk/ntddscsi.h winsup/w32api/include/ddk/ntddser.h winsup/w32api/include/ddk/ntddstor.h winsup/w32api/include/ddk/ntddtape.h winsup/w32api/include/ddk/ntddtdi.h winsup/w32api/include/ddk/ntddvdeo.h winsup/w32api/include/ddk/ntddvol.h winsup/w32api/include/ddk/ntifs.h winsup/w32api/include/ddk/ntpoapi.h winsup/w32api/include/ddk/ntstatus.h winsup/w32api/include/ddk/parallel.h winsup/w32api/include/ddk/pfhook.h winsup/w32api/include/ddk/poclass.h winsup/w32api/include/ddk/scsi.h winsup/w32api/include/ddk/scsiscan.h winsup/w32api/include/ddk/scsiwmi.h winsup/w32api/include/ddk/smbus.h winsup/w32api/include/ddk/srb.h winsup/w32api/include/ddk/storport.h winsup/w32api/include/ddk/tdi.h winsup/w32api/include/ddk/tdiinfo.h winsup/w32api/include/ddk/tdikrnl.h winsup/w32api/include/ddk/tdistat.h winsup/w32api/include/ddk/tvout.h winsup/w32api/include/ddk/upssvc.h winsup/w32api/include/ddk/usb.h winsup/w32api/include/ddk/usb100.h winsup/w32api/include/ddk/usbcamdi.h winsup/w32api/include/ddk/usbdi.h winsup/w32api/include/ddk/usbioctl.h winsup/w32api/include/ddk/usbiodef.h winsup/w32api/include/ddk/usbscan.h winsup/w32api/include/ddk/usbuser.h winsup/w32api/include/ddk/video.h winsup/w32api/include/ddk/videoagp.h winsup/w32api/include/ddk/win2k.h winsup/w32api/include/ddk/winddi.h winsup/w32api/include/ddk/winddk.h winsup/w32api/include/ddk/winnt4.h winsup/w32api/include/ddk/winxp.h winsup/w32api/include/ddk/ws2san.h winsup/w32api/include/ddk/xfilter.h winsup/w32api/include/dhcpcsdk.h winsup/w32api/include/directx/d3d9.h winsup/w32api/include/directx/d3d9caps.h winsup/w32api/include/directx/d3d9types.h winsup/w32api/include/directx/dxerr8.h winsup/w32api/include/directx/dxerr9.h winsup/w32api/include/dlgs.h winsup/w32api/include/docobj.h winsup/w32api/include/errorrep.h winsup/w32api/include/exdisp.h winsup/w32api/include/exdispid.h winsup/w32api/include/httpext.h winsup/w32api/include/idispids.h winsup/w32api/include/imagehlp.h winsup/w32api/include/imm.h winsup/w32api/include/initguid.h winsup/w32api/include/intshcut.h winsup/w32api/include/ipexport.h winsup/w32api/include/iphlpapi.h winsup/w32api/include/ipifcons.h winsup/w32api/include/iprtrmib.h winsup/w32api/include/iptypes.h winsup/w32api/include/isguids.h winsup/w32api/include/largeint.h winsup/w32api/include/lm.h winsup/w32api/include/lmaccess.h winsup/w32api/include/lmalert.h winsup/w32api/include/lmapibuf.h winsup/w32api/include/lmat.h winsup/w32api/include/lmaudit.h winsup/w32api/include/lmbrowsr.h winsup/w32api/include/lmchdev.h winsup/w32api/include/lmconfig.h winsup/w32api/include/lmcons.h winsup/w32api/include/lmerr.h winsup/w32api/include/lmerrlog.h winsup/w32api/include/lmmsg.h winsup/w32api/include/lmremutl.h winsup/w32api/include/lmrepl.h winsup/w32api/include/lmserver.h winsup/w32api/include/lmshare.h winsup/w32api/include/lmsname.h winsup/w32api/include/lmstats.h winsup/w32api/include/lmsvc.h winsup/w32api/include/lmuse.h winsup/w32api/include/lmuseflg.h winsup/w32api/include/lmwksta.h winsup/w32api/include/lzexpand.h winsup/w32api/include/mapi.h winsup/w32api/include/mciavi.h winsup/w32api/include/mcx.h winsup/w32api/include/mgmtapi.h winsup/w32api/include/mmsystem.h winsup/w32api/include/msacm.h winsup/w32api/include/mshtml.h winsup/w32api/include/mswsock.h winsup/w32api/include/nb30.h winsup/w32api/include/nddeapi.h winsup/w32api/include/nspapi.h winsup/w32api/include/ntdef.h winsup/w32api/include/ntdll.h winsup/w32api/include/ntldap.h winsup/w32api/include/ntsecapi.h winsup/w32api/include/ntsecpkg.h winsup/w32api/include/oaidl.h winsup/w32api/include/objbase.h winsup/w32api/include/objfwd.h winsup/w32api/include/objidl.h winsup/w32api/include/ocidl.h winsup/w32api/include/odbcinst.h winsup/w32api/include/ole.h winsup/w32api/include/ole2.h winsup/w32api/include/ole2ver.h winsup/w32api/include/oleacc.h winsup/w32api/include/oleauto.h winsup/w32api/include/olectl.h winsup/w32api/include/olectlid.h winsup/w32api/include/oledlg.h winsup/w32api/include/oleidl.h winsup/w32api/include/pbt.h winsup/w32api/include/poppack.h winsup/w32api/include/powrprof.h winsup/w32api/include/prsht.h winsup/w32api/include/psapi.h winsup/w32api/include/pshpack1.h winsup/w32api/include/pshpack2.h winsup/w32api/include/pshpack4.h winsup/w32api/include/pshpack8.h winsup/w32api/include/rapi.h winsup/w32api/include/ras.h winsup/w32api/include/rasdlg.h winsup/w32api/include/raserror.h winsup/w32api/include/rassapi.h winsup/w32api/include/regstr.h winsup/w32api/include/richedit.h winsup/w32api/include/richole.h winsup/w32api/include/rpc.h winsup/w32api/include/rpcdce.h winsup/w32api/include/rpcdce2.h winsup/w32api/include/rpcdcep.h winsup/w32api/include/rpcndr.h winsup/w32api/include/rpcnsi.h winsup/w32api/include/rpcnsip.h winsup/w32api/include/rpcnterr.h winsup/w32api/include/rpcproxy.h winsup/w32api/include/schannel.h winsup/w32api/include/schnlsp.h winsup/w32api/include/scrnsave.h winsup/w32api/include/secext.h winsup/w32api/include/security.h winsup/w32api/include/servprov.h winsup/w32api/include/setupapi.h winsup/w32api/include/shellapi.h winsup/w32api/include/shlguid.h winsup/w32api/include/shlobj.h winsup/w32api/include/shlwapi.h winsup/w32api/include/snmp.h winsup/w32api/include/sql.h winsup/w32api/include/sqlext.h winsup/w32api/include/sqltypes.h winsup/w32api/include/sqlucode.h winsup/w32api/include/sspi.h winsup/w32api/include/subauth.h winsup/w32api/include/svcguid.h winsup/w32api/include/tlhelp32.h winsup/w32api/include/tmschema.h winsup/w32api/include/unknwn.h winsup/w32api/include/userenv.h winsup/w32api/include/uxtheme.h winsup/w32api/include/vfw.h winsup/w32api/include/w32api.h winsup/w32api/include/winable.h winsup/w32api/include/winbase.h winsup/w32api/include/winber.h winsup/w32api/include/wincon.h winsup/w32api/include/wincrypt.h winsup/w32api/include/windef.h winsup/w32api/include/windns.h winsup/w32api/include/windows.h winsup/w32api/include/windowsx.h winsup/w32api/include/winerror.h winsup/w32api/include/wingdi.h winsup/w32api/include/wininet.h winsup/w32api/include/winioctl.h winsup/w32api/include/winldap.h winsup/w32api/include/winnetwk.h winsup/w32api/include/winnls.h winsup/w32api/include/winnt.h winsup/w32api/include/winperf.h winsup/w32api/include/winreg.h winsup/w32api/include/winresrc.h winsup/w32api/include/winsnmp.h winsup/w32api/include/winsock.h winsup/w32api/include/winsock2.h winsup/w32api/include/winspool.h winsup/w32api/include/winsvc.h winsup/w32api/include/winuser.h winsup/w32api/include/winver.h winsup/w32api/include/ws2spi.h winsup/w32api/include/ws2tcpip.h winsup/w32api/include/wsahelp.h winsup/w32api/include/wsipx.h winsup/w32api/include/wsnetbs.h winsup/w32api/include/wtypes.h winsup/w32api/include/zmouse.h winsup/w32api/install-sh winsup/w32api/lib/Makefile.in winsup/w32api/lib/aclui.def winsup/w32api/lib/advapi32.def winsup/w32api/lib/avicap32.def winsup/w32api/lib/avifil32.def winsup/w32api/lib/cap.def winsup/w32api/lib/comctl32.def winsup/w32api/lib/comdlg32.def winsup/w32api/lib/crypt32.def winsup/w32api/lib/ctl3d32.def winsup/w32api/lib/ddk/Makefile.in winsup/w32api/lib/ddk/apcups.def winsup/w32api/lib/ddk/cfgmgr32.def winsup/w32api/lib/ddk/dxapi.def winsup/w32api/lib/ddk/hal.def winsup/w32api/lib/ddk/hid.def winsup/w32api/lib/ddk/hidparse.def winsup/w32api/lib/ddk/mcd.def winsup/w32api/lib/ddk/ndis.def winsup/w32api/lib/ddk/ntoskrnl.def winsup/w32api/lib/ddk/scsiport.def winsup/w32api/lib/ddk/tdi.def winsup/w32api/lib/ddk/usbcamd.def winsup/w32api/lib/ddk/usbcamd2.def winsup/w32api/lib/ddk/videoprt.def winsup/w32api/lib/ddk/win32k.def winsup/w32api/lib/dhcpcsvc.def winsup/w32api/lib/directx/Makefile.in winsup/w32api/lib/directx/d3d8.def winsup/w32api/lib/directx/d3d9.def winsup/w32api/lib/directx/d3dim.def winsup/w32api/lib/directx/d3drm.def winsup/w32api/lib/directx/d3dx8d.def winsup/w32api/lib/directx/d3dx9d.def winsup/w32api/lib/directx/d3dxof.def winsup/w32api/lib/directx/ddraw.def winsup/w32api/lib/directx/dinput.def winsup/w32api/lib/directx/dinput8.def winsup/w32api/lib/directx/dinput_joy.c winsup/w32api/lib/directx/dinput_joy2.c winsup/w32api/lib/directx/dinput_kbd.c winsup/w32api/lib/directx/dinput_mouse.c winsup/w32api/lib/directx/dinput_mouse2.c winsup/w32api/lib/directx/dinput_private.h winsup/w32api/lib/directx/dmoguids.c winsup/w32api/lib/directx/dplayx.def winsup/w32api/lib/directx/dpnaddr.def winsup/w32api/lib/directx/dpnet.def winsup/w32api/lib/directx/dpnlobby.def winsup/w32api/lib/directx/dpvoice.def winsup/w32api/lib/directx/dsetup.def winsup/w32api/lib/directx/dsound.def winsup/w32api/lib/directx/dxerr.c winsup/w32api/lib/directx/dxerr8.c winsup/w32api/lib/directx/dxerr8w.c winsup/w32api/lib/directx/dxerr9.c winsup/w32api/lib/directx/dxerr9w.c winsup/w32api/lib/directx/dxguid.c winsup/w32api/lib/directx/ksproxy.def winsup/w32api/lib/directx/ksuser.c winsup/w32api/lib/directx/ksuser.def winsup/w32api/lib/directx/msdmo.def winsup/w32api/lib/directx/quartz.def winsup/w32api/lib/directx/strmiids.c winsup/w32api/lib/directx/test.c winsup/w32api/lib/dlcapi.def winsup/w32api/lib/dnsapi.def winsup/w32api/lib/faultrep.def winsup/w32api/lib/gdi32.def winsup/w32api/lib/glaux.def winsup/w32api/lib/glu32.def winsup/w32api/lib/glut.def winsup/w32api/lib/glut32.def winsup/w32api/lib/igmpagnt.def winsup/w32api/lib/imagehlp.def winsup/w32api/lib/imm32.def winsup/w32api/lib/iphlpapi.def winsup/w32api/lib/kernel32.c winsup/w32api/lib/kernel32.def winsup/w32api/lib/largeint.c winsup/w32api/lib/lz32.def winsup/w32api/lib/mapi32.def winsup/w32api/lib/mfcuia32.def winsup/w32api/lib/mgmtapi.def winsup/w32api/lib/mpr.def winsup/w32api/lib/msacm32.def winsup/w32api/lib/mshtml-uuid.c winsup/w32api/lib/msimg32.def winsup/w32api/lib/msvcp60.def winsup/w32api/lib/msvfw32.def winsup/w32api/lib/mswsock.def winsup/w32api/lib/nddeapi.def winsup/w32api/lib/netapi32.def winsup/w32api/lib/ntdll.def winsup/w32api/lib/odbc32.def winsup/w32api/lib/odbccp32.def winsup/w32api/lib/ole32.def winsup/w32api/lib/oleacc.def winsup/w32api/lib/oleaut32.def winsup/w32api/lib/olecli32.def winsup/w32api/lib/oledlg.def winsup/w32api/lib/olepro32.def winsup/w32api/lib/olesvr32.def winsup/w32api/lib/opengl32.def winsup/w32api/lib/penwin32.def winsup/w32api/lib/pkpd32.def winsup/w32api/lib/powrprof.def winsup/w32api/lib/psapi.def winsup/w32api/lib/rapi.def winsup/w32api/lib/rasapi32.def winsup/w32api/lib/rasdlg.def winsup/w32api/lib/res.rc winsup/w32api/lib/rpcdce4.def winsup/w32api/lib/rpcns4.def winsup/w32api/lib/rpcrt4.def winsup/w32api/lib/scrnsave.c winsup/w32api/lib/secur32.def winsup/w32api/lib/setupapi.def winsup/w32api/lib/shell32.c winsup/w32api/lib/shell32.def winsup/w32api/lib/shfolder.def winsup/w32api/lib/shlwapi.def winsup/w32api/lib/snmpapi.def winsup/w32api/lib/svrapi.def winsup/w32api/lib/tapi32.def winsup/w32api/lib/test.c winsup/w32api/lib/th32.def winsup/w32api/lib/thunk32.def winsup/w32api/lib/url.def winsup/w32api/lib/user32.def winsup/w32api/lib/userenv.def winsup/w32api/lib/uuid.c winsup/w32api/lib/uxtheme.def winsup/w32api/lib/vdmdbg.def winsup/w32api/lib/version.def winsup/w32api/lib/vfw32.mri winsup/w32api/lib/win32spl.def winsup/w32api/lib/wininet.def winsup/w32api/lib/winmm.def winsup/w32api/lib/winspool.def winsup/w32api/lib/winstrm.def winsup/w32api/lib/wldap32.def winsup/w32api/lib/wow32.def winsup/w32api/lib/ws2_32.def winsup/w32api/lib/wsnmp32.def winsup/w32api/lib/wsock32.def winsup/w32api/lib/wst.def ylwrap
Diffstat (limited to 'newlib/libc/sys/linux/iconv')
-rw-r--r--newlib/libc/sys/linux/iconv/Makefile.am27
-rw-r--r--newlib/libc/sys/linux/iconv/Makefile.in372
-rw-r--r--newlib/libc/sys/linux/iconv/categories.def344
-rw-r--r--newlib/libc/sys/linux/iconv/dummy-repertoire.c37
-rw-r--r--newlib/libc/sys/linux/iconv/gconv.c73
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_builtin.c84
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_builtin.h115
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_cache.c459
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_charset.h73
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_close.c65
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_conf.c680
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_db.c803
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_dl.c237
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_int.h288
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_open.c326
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_simple.c1327
-rw-r--r--newlib/libc/sys/linux/iconv/gconv_trans.c230
-rw-r--r--newlib/libc/sys/linux/iconv/hash-string.h60
-rw-r--r--newlib/libc/sys/linux/iconv/iconv.c96
-rw-r--r--newlib/libc/sys/linux/iconv/iconv.h51
-rw-r--r--newlib/libc/sys/linux/iconv/iconv_charmap.c563
-rw-r--r--newlib/libc/sys/linux/iconv/iconv_close.c37
-rw-r--r--newlib/libc/sys/linux/iconv/iconv_open.c65
-rw-r--r--newlib/libc/sys/linux/iconv/iconvconfig.c1176
-rw-r--r--newlib/libc/sys/linux/iconv/iconvconfig.h67
-rw-r--r--newlib/libc/sys/linux/iconv/loadinfo.h100
-rw-r--r--newlib/libc/sys/linux/iconv/localeinfo.h209
-rw-r--r--newlib/libc/sys/linux/iconv/loop.c450
-rw-r--r--newlib/libc/sys/linux/iconv/skeleton.c696
-rw-r--r--newlib/libc/sys/linux/iconv/strtab.c341
30 files changed, 0 insertions, 9451 deletions
diff --git a/newlib/libc/sys/linux/iconv/Makefile.am b/newlib/libc/sys/linux/iconv/Makefile.am
deleted file mode 100644
index 732644062..000000000
--- a/newlib/libc/sys/linux/iconv/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-INCLUDES = -DGCONV_DIR='"$(pkglibdir)"' -DGCONV_PATH='"$(pkglibdir)"' -I$(srcdir) -I$(srcdir)/.. $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-LIB_SOURCES = \
- iconv.h gconv.h \
- iconv_open.c iconv.c iconv_close.c \
- gconv_open.c gconv.c gconv_close.c \
- gconv_db.c gconv_dl.c gconv_conf.c gconv_builtin.c \
- gconv_simple.c gconv_trans.c gconv_cache.c
-
-libiconv_la_CFLAGS =
-libiconv_la_LDFLAGS = -Xcompiler -nostdlib
-
-if USE_LIBTOOL
-noinst_LTLIBRARIES = libiconv.la
-libiconv_la_SOURCES = $(LIB_SOURCES)
-noinst_DATA = objectlist.awk.in
-else
-noinst_LIBRARIES = lib.a
-lib_a_SOURCES = $(LIB_SOURCES)
-noinst_DATA =
-endif # USE_LIBTOOL
-
-include $(srcdir)/../../../../Makefile.shared
diff --git a/newlib/libc/sys/linux/iconv/Makefile.in b/newlib/libc/sys/linux/iconv/Makefile.in
deleted file mode 100644
index f29cbda31..000000000
--- a/newlib/libc/sys/linux/iconv/Makefile.in
+++ /dev/null
@@ -1,372 +0,0 @@
-# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AR = @AR@
-AS = @AS@
-AWK = @AWK@
-CC = @CC@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-EXTRA_SUBDIRS = @EXTRA_SUBDIRS@
-EXTRA_SUBLIBS = @EXTRA_SUBLIBS@
-GCJ = @GCJ@
-GCJFLAGS = @GCJFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBTOOL = @LIBTOOL@
-LINUX_MACH_LIB = @LINUX_MACH_LIB@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-VERSION = @VERSION@
-aext = @aext@
-libm_machine_dir = @libm_machine_dir@
-machine_dir = @machine_dir@
-newlib_basedir = @newlib_basedir@
-oext = @oext@
-sys_dir = @sys_dir@
-
-AUTOMAKE_OPTIONS = cygnus
-
-INCLUDES = -DGCONV_DIR='"$(pkglibdir)"' -DGCONV_PATH='"$(pkglibdir)"' -I$(srcdir) -I$(srcdir)/.. $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-LIB_SOURCES = iconv.h gconv.h iconv_open.c iconv.c iconv_close.c gconv_open.c gconv.c gconv_close.c gconv_db.c gconv_dl.c gconv_conf.c gconv_builtin.c gconv_simple.c gconv_trans.c gconv_cache.c
-
-
-libiconv_la_CFLAGS =
-libiconv_la_LDFLAGS = -Xcompiler -nostdlib
-
-@USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libiconv.la
-@USE_LIBTOOL_TRUE@libiconv_la_SOURCES = $(LIB_SOURCES)
-@USE_LIBTOOL_TRUE@noinst_DATA = objectlist.awk.in
-@USE_LIBTOOL_FALSE@noinst_DATA =
-@USE_LIBTOOL_FALSE@noinst_LIBRARIES = lib.a
-@USE_LIBTOOL_FALSE@lib_a_SOURCES = $(LIB_SOURCES)
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LIBS = @LIBS@
-lib_a_LIBADD =
-@USE_LIBTOOL_FALSE@lib_a_OBJECTS = iconv_open.$(OBJEXT) iconv.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@iconv_close.$(OBJEXT) gconv_open.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@gconv.$(OBJEXT) gconv_close.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@gconv_db.$(OBJEXT) gconv_dl.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@gconv_conf.$(OBJEXT) gconv_builtin.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@gconv_simple.$(OBJEXT) gconv_trans.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@gconv_cache.$(OBJEXT)
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-
-libiconv_la_LIBADD =
-@USE_LIBTOOL_TRUE@libiconv_la_OBJECTS = iconv_open.lo iconv.lo \
-@USE_LIBTOOL_TRUE@iconv_close.lo gconv_open.lo gconv.lo gconv_close.lo \
-@USE_LIBTOOL_TRUE@gconv_db.lo gconv_dl.lo gconv_conf.lo \
-@USE_LIBTOOL_TRUE@gconv_builtin.lo gconv_simple.lo gconv_trans.lo \
-@USE_LIBTOOL_TRUE@gconv_cache.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA = $(noinst_DATA)
-
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(lib_a_SOURCES) $(libiconv_la_SOURCES)
-OBJECTS = $(lib_a_OBJECTS) $(libiconv_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .obj .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/../../../../Makefile.shared
- cd $(top_srcdir) && $(AUTOMAKE) --cygnus iconv/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
- -rm -f lib.a
- $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
- $(RANLIB) lib.a
-
-mostlyclean-noinstLTLIBRARIES:
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-
-distclean-noinstLTLIBRARIES:
-
-maintainer-clean-noinstLTLIBRARIES:
-
-libiconv.la: $(libiconv_la_OBJECTS) $(libiconv_la_DEPENDENCIES)
- $(LINK) $(libiconv_la_LDFLAGS) $(libiconv_la_OBJECTS) $(libiconv_la_LIBADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = iconv
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am:
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-noinstLTLIBRARIES \
- mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-noinstLIBRARIES clean-compile clean-libtool \
- clean-noinstLTLIBRARIES clean-tags clean-generic \
- mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-noinstLIBRARIES distclean-compile \
- distclean-libtool distclean-noinstLTLIBRARIES \
- distclean-tags distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-noinstLTLIBRARIES \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool mostlyclean-noinstLTLIBRARIES \
-distclean-noinstLTLIBRARIES clean-noinstLTLIBRARIES \
-maintainer-clean-noinstLTLIBRARIES tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-info-am install-info \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-objectlist.awk.in: $(noinst_LTLIBRARIES)
- -rm -f objectlist.awk.in
- for i in `ls *.lo` ; \
- do \
- echo $$i `pwd`/$$i >> objectlist.awk.in ; \
- done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/newlib/libc/sys/linux/iconv/categories.def b/newlib/libc/sys/linux/iconv/categories.def
deleted file mode 100644
index 257fac73a..000000000
--- a/newlib/libc/sys/linux/iconv/categories.def
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Definition of all available locale categories and their items. -*- C -*-
- Copyright (C) 1995-2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* These definitions are used by the locale-related files in the C library
- and the programs `localedef' and `locale'.
-
- The general format of the descriptions is like this:
-
- DEFINE_CATEGORY (ID, name, ( items ), setlocale-postload)
-
- where items itself is an array of entries in the form
-
- { ID, name, standard, value-type, min, max }
-
- The usage of the load, check, output functions depends on the individual
- program code which loads this file.
-
- The various value types for the items are `string', `stringarray', `byte'
- `bytearray', and `word'. These cover all possible values in the current
- locale definitions. `min' and `max' can be individually used again. */
-
-#ifndef NO_POSTLOAD
-#define NO_POSTLOAD NULL
-#endif
-
-DEFINE_CATEGORY
-(
- LC_COLLATE, "LC_COLLATE",
- (
- DEFINE_ELEMENT (_NL_COLLATE_NRULES, "collate-nrules", std, word)
- DEFINE_ELEMENT (_NL_COLLATE_RULESETS, "collate-rulesets", std, string)
- DEFINE_ELEMENT (_NL_COLLATE_TABLEMB, "collate-tablemb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_WEIGHTMB, "collate-weightmb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_EXTRAMB, "collate-extramb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_INDIRECTMB, "collate-indirectmb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_TABLEWC, "collate-tablewc", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_WEIGHTWC, "collate-weightwc", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_EXTRAWC, "collate-extrawc", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_INDIRECTWC, "collate-indirectwc", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_SYMB_HASH_SIZEMB, "collate-symb-hash-sizemb", std, word)
- DEFINE_ELEMENT (_NL_COLLATE_SYMB_TABLEMB, "collate-symb-tablemb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_SYMB_EXTRAMB, "collate-symb-extramb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB, "collate-collseqmb", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC, "collate-collseqwc", std, wstring)
- DEFINE_ELEMENT (_NL_COLLATE_CODESET, "collate-codeset", std, string)
- ), NO_POSTLOAD)
-
-
-/* The actual definition of ctype is meaningless here. It is hard coded in
- the code because it has to be handled very specially. Only the names of
- the functions and the value types are important. */
-DEFINE_CATEGORY
-(
- LC_CTYPE, "LC_CTYPE",
- (
- DEFINE_ELEMENT (_NL_CTYPE_CLASS, "ctype-class", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TOUPPER, "ctype-toupper", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TOLOWER, "ctype-tolower", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_CLASS32, "ctype-class32", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_CLASS_NAMES, "ctype-class-names", std, stringlist, 10, 32)
- DEFINE_ELEMENT (_NL_CTYPE_MAP_NAMES, "ctype-map-names", std, stringlist, 2, 32)
- DEFINE_ELEMENT (_NL_CTYPE_WIDTH, "ctype-width", std, bytearray)
- DEFINE_ELEMENT (_NL_CTYPE_MB_CUR_MAX, "ctype-mb-cur-max", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_CODESET_NAME, "charmap", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_TOUPPER32, "ctype-toupper32", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TOLOWER32, "ctype-tolower32", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_CLASS_OFFSET, "ctype-class-offset", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_MAP_OFFSET, "ctype-map-offset", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS_MB_LEN, "ctype-indigits_mb-len", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS0_MB, "ctype-indigits0_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS1_MB, "ctype-indigits1_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS2_MB, "ctype-indigits2_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS3_MB, "ctype-indigits3_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS4_MB, "ctype-indigits4_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS5_MB, "ctype-indigits5_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS6_MB, "ctype-indigits6_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS7_MB, "ctype-indigits7_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS8_MB, "ctype-indigits8_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS9_MB, "ctype-indigits9_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS_WC_LEN, "ctype-indigits_wc-len", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS0_WC, "ctype-indigits0_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS1_WC, "ctype-indigits1_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS2_WC, "ctype-indigits2_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS3_WC, "ctype-indigits3_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS4_WC, "ctype-indigits4_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS5_WC, "ctype-indigits5_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS6_WC, "ctype-indigits6_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS7_WC, "ctype-indigits7_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS8_WC, "ctype-indigits8_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_INDIGITS9_WC, "ctype-indigits9_wc", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT0_MB, "ctype-outdigit0_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT1_MB, "ctype-outdigit1_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT2_MB, "ctype-outdigit2_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT3_MB, "ctype-outdigit3_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT4_MB, "ctype-outdigit4_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT5_MB, "ctype-outdigit5_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT6_MB, "ctype-outdigit6_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT7_MB, "ctype-outdigit7_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT8_MB, "ctype-outdigit8_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT9_MB, "ctype-outdigit9_mb", std, string)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT0_WC, "ctype-outdigit0_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT1_WC, "ctype-outdigit1_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT2_WC, "ctype-outdigit2_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT3_WC, "ctype-outdigit3_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT4_WC, "ctype-outdigit4_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT5_WC, "ctype-outdigit5_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT6_WC, "ctype-outdigit6_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT7_WC, "ctype-outdigit7_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT8_WC, "ctype-outdigit8_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_OUTDIGIT9_WC, "ctype-outdigit9_wc", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_TAB_SIZE, "ctype-translit-tab-size", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_FROM_IDX, "ctype-translit-from-idx", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_FROM_TBL, "ctype-translit-from-tbl", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_TO_IDX, "ctype-translit-to-idx", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_TO_TBL, "ctype-translit-to-tbl", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, "ctype-translit-default-missing-len", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_DEFAULT_MISSING, "ctype-translit-default-missing", std, wstring)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
- DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
- ), _nl_postload_ctype)
-
-
-DEFINE_CATEGORY
-(
- LC_MONETARY, "LC_MONETARY",
- (
- DEFINE_ELEMENT (INT_CURR_SYMBOL, "int_curr_symbol", std, string)
- DEFINE_ELEMENT (CURRENCY_SYMBOL, "currency_symbol", std, string)
- DEFINE_ELEMENT (MON_DECIMAL_POINT, "mon_decimal_point", std, string)
- DEFINE_ELEMENT (MON_THOUSANDS_SEP, "mon_thousands_sep", std, string)
- DEFINE_ELEMENT (MON_GROUPING, "mon_grouping", std, bytearray)
- DEFINE_ELEMENT (POSITIVE_SIGN, "positive_sign", std, string)
- DEFINE_ELEMENT (NEGATIVE_SIGN, "negative_sign", std, string)
- DEFINE_ELEMENT (INT_FRAC_DIGITS, "int_frac_digits", std, byte)
- DEFINE_ELEMENT (FRAC_DIGITS, "frac_digits", std, byte)
- DEFINE_ELEMENT (P_CS_PRECEDES, "p_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (P_SEP_BY_SPACE, "p_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (N_CS_PRECEDES, "n_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (N_SEP_BY_SPACE, "n_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (P_SIGN_POSN, "p_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (N_SIGN_POSN, "n_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (__INT_P_CS_PRECEDES, "int_p_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (__INT_P_SEP_BY_SPACE, "int_p_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (__INT_N_CS_PRECEDES, "int_n_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (__INT_N_SEP_BY_SPACE, "int_n_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (__INT_P_SIGN_POSN, "int_p_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (__INT_N_SIGN_POSN, "int_n_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_CURR_SYMBOL, "duo_int_curr_symbol", std, string)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_CURRENCY_SYMBOL, "duo_currency_symbol", std, string)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_FRAC_DIGITS, "duo_int_frac_digits", std, byte)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_FRAC_DIGITS, "duo_frac_digits", std, byte)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_P_CS_PRECEDES, "duo_p_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_P_SEP_BY_SPACE, "duo_p_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_N_CS_PRECEDES, "duo_n_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_N_SEP_BY_SPACE, "duo_n_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_CS_PRECEDES, "duo_int_p_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, "duo_int_p_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_CS_PRECEDES, "duo_int_n_cs_precedes", std, byte, 0, 1)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, "duo_int_n_sep_by_space", std, byte, 0, 2)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_P_SIGN_POSN, "duo_p_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_N_SIGN_POSN, "duo_n_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_SIGN_POSN, "duo_int_p_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_SIGN_POSN, "duo_int_n_sign_posn", std, byte, 0, 4)
- DEFINE_ELEMENT (_NL_MONETARY_UNO_VALID_FROM, "uno_valid_from", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_UNO_VALID_TO, "uno_valid_to", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_FROM, "duo_valid_from", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_TO, "duo_valid_to", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_CONVERSION_RATE, "conversion_rate", std, wordarray, 2, 2)
- DEFINE_ELEMENT (_NL_MONETARY_DECIMAL_POINT_WC, "monetary-decimal-point-wc", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_THOUSANDS_SEP_WC, "monetary-thousands-sep-wc", std, word)
- DEFINE_ELEMENT (_NL_MONETARY_CODESET, "monetary-codeset", std, string)
- ), NO_POSTLOAD)
-
-
-DEFINE_CATEGORY
-(
- LC_NUMERIC, "LC_NUMERIC",
- (
- DEFINE_ELEMENT (DECIMAL_POINT, "decimal_point", std, string)
- DEFINE_ELEMENT (THOUSANDS_SEP, "thousands_sep", std, string)
- DEFINE_ELEMENT (GROUPING, "grouping", std, bytearray)
- DEFINE_ELEMENT (_NL_NUMERIC_DECIMAL_POINT_WC, "numeric-decimal-point-wc", std, word)
- DEFINE_ELEMENT (_NL_NUMERIC_THOUSANDS_SEP_WC, "numeric-thousands-sep-wc", std, word)
- DEFINE_ELEMENT (_NL_NUMERIC_CODESET, "numeric-codeset", std, string)
-
- ), NO_POSTLOAD)
-
-
-DEFINE_CATEGORY
-(
- LC_TIME, "LC_TIME",
- (
- DEFINE_ELEMENT (ABDAY_1, "abday", std, stringarray, 7, 7)
- DEFINE_ELEMENT (DAY_1, "day", std, stringarray, 7, 7)
- DEFINE_ELEMENT (ABMON_1, "abmon", std, stringarray, 12, 12)
- DEFINE_ELEMENT (MON_1, "mon", std, stringarray, 12, 12)
- DEFINE_ELEMENT (AM_STR, "am_pm", std, stringarray, 2, 2)
- DEFINE_ELEMENT (D_T_FMT, "d_t_fmt", std, string)
- DEFINE_ELEMENT (D_FMT, "d_fmt", std, string)
- DEFINE_ELEMENT (T_FMT, "t_fmt", std, string)
- DEFINE_ELEMENT (T_FMT_AMPM, "t_fmt_ampm", std, string)
- DEFINE_ELEMENT (ERA, "era", opt, stringlist, 0, 100)
- DEFINE_ELEMENT (ERA_YEAR, "era_year", opt, string)
- DEFINE_ELEMENT (ERA_D_FMT, "era_d_fmt", opt, string)
- DEFINE_ELEMENT (ALT_DIGITS, "alt_digits", opt, stringlist, 100, 100)
- DEFINE_ELEMENT (ERA_D_T_FMT, "era_d_t_fmt", opt, string)
- DEFINE_ELEMENT (ERA_T_FMT, "era_t_fmt", opt, string)
- DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES, "time-era-num-entries", opt, word)
- DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES, "time-era-entries", opt, string)
- DEFINE_ELEMENT (_NL_WABDAY_1, "wide-abday", std, wstringarray, 7, 7)
- DEFINE_ELEMENT (_NL_WDAY_1, "wide-day", std, wstringarray, 7, 7)
- DEFINE_ELEMENT (_NL_WABMON_1, "wide-abmon", std, wstringarray, 12, 12)
- DEFINE_ELEMENT (_NL_WMON_1, "wide-mon", std, wstringarray, 12, 12)
- DEFINE_ELEMENT (_NL_WAM_STR, "wide-am_pm", std, wstringarray, 2, 2)
- DEFINE_ELEMENT (_NL_WD_T_FMT, "wide-d_t_fmt", std, wstring)
- DEFINE_ELEMENT (_NL_WD_FMT, "wide-d_fmt", std, wstring)
- DEFINE_ELEMENT (_NL_WT_FMT, "wide-t_fmt", std, wstring)
- DEFINE_ELEMENT (_NL_WT_FMT_AMPM, "wide-t_fmt_ampm", std, wstring)
- DEFINE_ELEMENT (_NL_WERA_YEAR, "wide-era_year", opt, wstring)
- DEFINE_ELEMENT (_NL_WERA_D_FMT, "wide-era_d_fmt", opt, wstring)
- DEFINE_ELEMENT (_NL_WALT_DIGITS, "wide-alt_digits", opt, wstringlist, 1000, 100)
- DEFINE_ELEMENT (_NL_WERA_D_T_FMT, "wide-era_d_t_fmt", opt, wstring)
- DEFINE_ELEMENT (_NL_WERA_T_FMT, "wide-era_t_fmt", opt, wstring)
- DEFINE_ELEMENT (_NL_TIME_WEEK_NDAYS, "week-ndays", std, byte)
- DEFINE_ELEMENT (_NL_TIME_WEEK_1STDAY, "week-1stday", std, word)
- DEFINE_ELEMENT (_NL_TIME_WEEK_1STWEEK, "week-1stweek", std, byte)
- DEFINE_ELEMENT (_NL_TIME_FIRST_WEEKDAY, "first_weekday", std, byte)
- DEFINE_ELEMENT (_NL_TIME_FIRST_WORKDAY, "first_workday", std, byte)
- DEFINE_ELEMENT (_NL_TIME_CAL_DIRECTION, "cal_direction", std, byte)
- DEFINE_ELEMENT (_NL_TIME_TIMEZONE, "timezone", std, string)
- DEFINE_ELEMENT (_DATE_FMT, "date_fmt", opt, string)
- DEFINE_ELEMENT (_NL_W_DATE_FMT, "wide-date_fmt", opt, wstring)
- DEFINE_ELEMENT (_NL_TIME_CODESET, "time-codeset", std, string)
- ), _nl_postload_time)
-
-
-DEFINE_CATEGORY
-(
- LC_MESSAGES, "LC_MESSAGES",
- (
- DEFINE_ELEMENT (YESEXPR, "yesexpr", std, string)
- DEFINE_ELEMENT (NOEXPR, "noexpr", std, string)
- DEFINE_ELEMENT (YESSTR, "yesstr", opt, string)
- DEFINE_ELEMENT (NOSTR, "nostr", opt, string)
- DEFINE_ELEMENT (_NL_MESSAGES_CODESET, "messages-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_PAPER, "LC_PAPER",
- (
- DEFINE_ELEMENT (_NL_PAPER_HEIGHT, "height", std, word)
- DEFINE_ELEMENT (_NL_PAPER_WIDTH, "width", std, word)
- DEFINE_ELEMENT (_NL_PAPER_CODESET, "paper-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_NAME, "LC_NAME",
- (
- DEFINE_ELEMENT (_NL_NAME_NAME_FMT, "name_fmt", std, string)
- DEFINE_ELEMENT (_NL_NAME_NAME_GEN, "name_gen", std, string)
- DEFINE_ELEMENT (_NL_NAME_NAME_MR, "name_mr", std, string)
- DEFINE_ELEMENT (_NL_NAME_NAME_MRS, "name_mrs", std, string)
- DEFINE_ELEMENT (_NL_NAME_NAME_MISS, "name_miss", std, string)
- DEFINE_ELEMENT (_NL_NAME_NAME_MS, "name_ms", std, string)
- DEFINE_ELEMENT (_NL_NAME_CODESET, "name-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_ADDRESS, "LC_ADDRESS",
- (
- DEFINE_ELEMENT (_NL_ADDRESS_POSTAL_FMT, "postal_fmt", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NAME, "country_name", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_POST, "country_post", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB2, "country_ab2", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB3, "country_ab3", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_CAR, "country_car", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NUM, "country_num", std, word)
- DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_ISBN, "country_isbn", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_LANG_NAME, "lang_name", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_LANG_AB, "lang_ab", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_LANG_TERM, "lang_term", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_LANG_LIB, "lang_lib", std, string)
- DEFINE_ELEMENT (_NL_ADDRESS_CODESET, "address-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_TELEPHONE, "LC_TELEPHONE",
- (
- DEFINE_ELEMENT (_NL_TELEPHONE_TEL_INT_FMT, "tel_int_fmt", std, string)
- DEFINE_ELEMENT (_NL_TELEPHONE_TEL_DOM_FMT, "tel_dom_fmt", std, string)
- DEFINE_ELEMENT (_NL_TELEPHONE_INT_SELECT, "int_select", std, string)
- DEFINE_ELEMENT (_NL_TELEPHONE_INT_PREFIX, "int_prefix", std, string)
- DEFINE_ELEMENT (_NL_TELEPHONE_CODESET, "telephone-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_MEASUREMENT, "LC_MEASUREMENT",
- (
- DEFINE_ELEMENT (_NL_MEASUREMENT_MEASUREMENT, "measurement", std, byte)
- DEFINE_ELEMENT (_NL_MEASUREMENT_CODESET, "measurement-codeset", std, string)
- ), NO_POSTLOAD)
-
-DEFINE_CATEGORY
-(
- LC_IDENTIFICATION, "LC_IDENTIFICATION",
- (
- DEFINE_ELEMENT (_NL_IDENTIFICATION_TITLE, "title", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_SOURCE, "source", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_ADDRESS, "address", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_CONTACT, "contact", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_EMAIL, "email", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_TEL, "tel", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_FAX, "fax", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_LANGUAGE, "language", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_TERRITORY, "territory", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_AUDIENCE, "audience", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_APPLICATION, "applcation", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_ABBREVIATION, "abbreviation", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_REVISION, "revision", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_DATE, "date", std, string)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_CATEGORY, "category", std, stringarray, 13, 13)
- DEFINE_ELEMENT (_NL_IDENTIFICATION_CODESET, "identification-codeset", std, string)
- ), NO_POSTLOAD)
diff --git a/newlib/libc/sys/linux/iconv/dummy-repertoire.c b/newlib/libc/sys/linux/iconv/dummy-repertoire.c
deleted file mode 100644
index a195460f9..000000000
--- a/newlib/libc/sys/linux/iconv/dummy-repertoire.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* For iconv we don't have to handle repertoire maps. Provide dummy
- definitions to allow the use of linereader.c unchanged. */
-#include <repertoire.h>
-
-
-uint32_t
-repertoire_find_value (const struct repertoire_t *repertoire, const char *name,
- size_t len)
-{
- return ILLEGAL_CHAR_VALUE;
-}
-
-
-const char *
-repertoire_find_symbol (const struct repertoire_t *repertoire, uint32_t ucs)
-{
- return NULL;
-}
diff --git a/newlib/libc/sys/linux/iconv/gconv.c b/newlib/libc/sys/linux/iconv/gconv.c
deleted file mode 100644
index b413e26c5..000000000
--- a/newlib/libc/sys/linux/iconv/gconv.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Convert characters in input buffer using conversion descriptor to
- output buffer.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <gconv_int.h>
-#include <sys/param.h>
-#include <dlfcn.h>
-#include <stddef.h>
-
-int
-internal_function
-__gconv (__gconv_t cd, const unsigned char **inbuf,
- const unsigned char *inbufend, unsigned char **outbuf,
- unsigned char *outbufend, size_t *irreversible)
-{
- size_t last_step;
- int result;
-
- if (cd == (__gconv_t) -1L)
- return __GCONV_ILLEGAL_DESCRIPTOR;
-
- last_step = cd->__nsteps - 1;
-
- assert (irreversible != NULL);
- *irreversible = 0;
-
- cd->__data[last_step].__outbuf = outbuf != NULL ? *outbuf : NULL;
- cd->__data[last_step].__outbufend = outbufend;
-
- if (inbuf == NULL || *inbuf == NULL)
- /* We just flush. */
- result = cd->__steps->__fct (cd->__steps, cd->__data, NULL, NULL, NULL,
- irreversible,
- cd->__data[last_step].__outbuf == NULL ? 2 : 1, 0);
- else
- {
- const unsigned char *last_start;
-
- assert (outbuf != NULL && *outbuf != NULL);
-
- do
- {
- last_start = *inbuf;
- result = cd->__steps->__fct (cd->__steps, cd->__data, inbuf, inbufend,
- NULL, irreversible, 0, 0);
- }
- while (result == __GCONV_EMPTY_INPUT && last_start != *inbuf
- && *inbuf + cd->__steps->__min_needed_from <= inbufend);
- }
-
- if (outbuf != NULL && *outbuf != NULL)
- *outbuf = cd->__data[last_step].__outbuf;
-
- return result;
-}
diff --git a/newlib/libc/sys/linux/iconv/gconv_builtin.c b/newlib/libc/sys/linux/iconv/gconv_builtin.c
deleted file mode 100644
index 45bd4e7e0..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_builtin.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Table for builtin transformation mapping.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <endian.h>
-#include <limits.h>
-#include <string.h>
-
-#include <gconv_int.h>
-
-#include <assert.h>
-
-
-static struct builtin_map
-{
- const char *name;
- __gconv_fct fct;
-
- int min_needed_from;
- int max_needed_from;
- int min_needed_to;
- int max_needed_to;
-
-} map[] =
-{
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT) \
- { \
- .name = Name, \
- .fct = Fct, \
- \
- .min_needed_from = MinF, \
- .max_needed_from = MaxF, \
- .min_needed_to = MinT, \
- .max_needed_to = MaxT \
- },
-#define BUILTIN_ALIAS(From, To)
-
-#include <gconv_builtin.h>
-};
-
-
-void
-internal_function
-__gconv_get_builtin_trans (const char *name, struct __gconv_step *step)
-{
- size_t cnt;
-
- for (cnt = 0; cnt < sizeof (map) / sizeof (map[0]); ++cnt)
- if (strcmp (name, map[cnt].name) == 0)
- break;
-
- assert (cnt < sizeof (map) / sizeof (map[0]));
-
- step->__fct = map[cnt].fct;
- step->__init_fct = NULL;
- step->__end_fct = NULL;
- step->__shlib_handle = NULL;
- step->__modname = NULL;
-
- step->__min_needed_from = map[cnt].min_needed_from;
- step->__max_needed_from = map[cnt].max_needed_from;
- step->__min_needed_to = map[cnt].min_needed_to;
- step->__max_needed_to = map[cnt].max_needed_to;
-
- /* None of the builtin converters handles stateful encoding. */
- step->__stateful = 0;
-}
diff --git a/newlib/libc/sys/linux/iconv/gconv_builtin.h b/newlib/libc/sys/linux/iconv/gconv_builtin.h
deleted file mode 100644
index 1a9d8a80f..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_builtin.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Builtin transformations.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-BUILTIN_ALIAS ("UCS4//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("UCS-4//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("UCS-4BE//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("CSUCS4//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("ISO-10646//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("10646-1:1993//", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("10646-1:1993/UCS4/", "ISO-10646/UCS4/")
-BUILTIN_ALIAS ("OSF00010104//", "ISO-10646/UCS4/") /* level 1 */
-BUILTIN_ALIAS ("OSF00010105//", "ISO-10646/UCS4/") /* level 2 */
-BUILTIN_ALIAS ("OSF00010106//", "ISO-10646/UCS4/") /* level 3 */
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UCS4/", 1, "=INTERNAL->ucs4",
- __gconv_transform_internal_ucs4, 4, 4, 4, 4)
-BUILTIN_TRANSFORMATION ("ISO-10646/UCS4/", "INTERNAL", 1, "=ucs4->INTERNAL",
- __gconv_transform_ucs4_internal, 4, 4, 4, 4)
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "UCS-4LE//", 1, "=INTERNAL->ucs4le",
- __gconv_transform_internal_ucs4le, 4, 4, 4, 4)
-BUILTIN_TRANSFORMATION ("UCS-4LE//", "INTERNAL", 1, "=ucs4le->INTERNAL",
- __gconv_transform_ucs4le_internal, 4, 4, 4, 4)
-
-BUILTIN_ALIAS ("WCHAR_T//", "INTERNAL")
-
-BUILTIN_ALIAS ("UTF8//", "ISO-10646/UTF8/")
-BUILTIN_ALIAS ("UTF-8//", "ISO-10646/UTF8/")
-BUILTIN_ALIAS ("ISO-IR-193//", "ISO-10646/UTF8/")
-BUILTIN_ALIAS ("OSF05010001//", "ISO-10646/UTF8/")
-BUILTIN_ALIAS ("ISO-10646/UTF-8/", "ISO-10646/UTF8/")
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UTF8/", 1, "=INTERNAL->utf8",
- __gconv_transform_internal_utf8, 4, 4, 1, 6)
-
-BUILTIN_TRANSFORMATION ("ISO-10646/UTF8/", "INTERNAL", 1, "=utf8->INTERNAL",
- __gconv_transform_utf8_internal, 1, 6, 4, 4)
-
-BUILTIN_ALIAS ("UCS2//", "ISO-10646/UCS2/")
-BUILTIN_ALIAS ("UCS-2//", "ISO-10646/UCS2/")
-BUILTIN_ALIAS ("OSF00010100//", "ISO-10646/UCS2/") /* level 1 */
-BUILTIN_ALIAS ("OSF00010101//", "ISO-10646/UCS2/") /* level 2 */
-BUILTIN_ALIAS ("OSF00010102//", "ISO-10646/UCS2/") /* level 3 */
-
-BUILTIN_TRANSFORMATION ("ISO-10646/UCS2/", "INTERNAL", 1, "=ucs2->INTERNAL",
- __gconv_transform_ucs2_internal, 2, 2, 4, 4)
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UCS2/", 1, "=INTERNAL->ucs2",
- __gconv_transform_internal_ucs2, 4, 4, 2, 2)
-
-
-BUILTIN_ALIAS ("ANSI_X3.4//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("ISO-IR-6//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("ANSI_X3.4-1986//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("ISO_646.IRV:1991//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("ASCII//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("ISO646-US//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("US-ASCII//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("US//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("IBM367//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("CP367//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("CSASCII//", "ANSI_X3.4-1968//")
-BUILTIN_ALIAS ("OSF00010020//", "ANSI_X3.4-1968//")
-
-BUILTIN_TRANSFORMATION ("ANSI_X3.4-1968//", "INTERNAL", 1, "=ascii->INTERNAL",
- __gconv_transform_ascii_internal, 4, 4, 1, 1)
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "ANSI_X3.4-1968//", 1, "=INTERNAL->ascii",
- __gconv_transform_internal_ascii, 4, 4, 1, 1)
-
-
-#if BYTE_ORDER == BIG_ENDIAN
-BUILTIN_ALIAS ("UNICODEBIG//", "ISO-10646/UCS2/")
-BUILTIN_ALIAS ("UCS-2BE//", "ISO-10646/UCS2/")
-
-BUILTIN_ALIAS ("UCS-2LE//", "UNICODELITTLE//")
-
-BUILTIN_TRANSFORMATION ("UNICODELITTLE//", "INTERNAL", 1,
- "=ucs2reverse->INTERNAL",
- __gconv_transform_ucs2reverse_internal, 2, 2, 4, 4)
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "UNICODELITTLE//", 1,
- "=INTERNAL->ucs2reverse",
- __gconv_transform_internal_ucs2reverse, 4, 4, 2, 2)
-#else
-BUILTIN_ALIAS ("UNICODELITTLE//", "ISO-10646/UCS2/")
-BUILTIN_ALIAS ("UCS-2LE//", "ISO-10646/UCS2/")
-
-BUILTIN_ALIAS ("UCS-2BE//", "UNICODEBIG//")
-
-BUILTIN_TRANSFORMATION ("UNICODEBIG//", "INTERNAL", 1,
- "=ucs2reverse->INTERNAL",
- __gconv_transform_ucs2reverse_internal, 2, 2, 4, 4)
-
-BUILTIN_TRANSFORMATION ("INTERNAL", "UNICODEBIG//", 1,
- "=INTERNAL->ucs2reverse",
- __gconv_transform_internal_ucs2reverse, 4, 4, 2, 2)
-#endif
diff --git a/newlib/libc/sys/linux/iconv/gconv_cache.c b/newlib/libc/sys/linux/iconv/gconv_cache.c
deleted file mode 100644
index c887be970..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_cache.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/* Cache handling for iconv modules.
- Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <dlfcn.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-
-#include <gconv_int.h>
-#include <iconvconfig.h>
-
-#include "hash-string.h"
-
-void *__gconv_cache;
-static size_t cache_size;
-static int cache_malloced;
-
-
-int
-internal_function
-__gconv_load_cache (void)
-{
- int fd;
- struct stat64 st;
- struct gconvcache_header *header;
-
- /* We cannot use the cache if the GCONV_PATH environment variable is
- set. */
- __gconv_path_envvar = getenv ("GCONV_PATH");
- if (__gconv_path_envvar != NULL)
- return -1;
-
- /* See whether the cache file exists. */
- fd = open (GCONV_MODULES_CACHE, O_RDONLY);
- if (__builtin_expect (fd, 0) == -1)
- /* Not available. */
- return -1;
-
-#ifdef _POSIX_ASYNC_IO
- /* Get information about the file. */
- if (__builtin_expect (fstat64 (fd, &st), 0) < 0
- /* We do not have to start looking at the file if it cannot contain
- at least the cache header. */
- || st.st_size < sizeof (struct gconvcache_header))
- {
-#endif
- close_and_exit:
- close (fd);
- return -1;
-#ifdef _POSIX_ASYNC_IO
- }
-#endif
-
- /* Make the file content available. */
- cache_size = st.st_size;
-#ifdef _POSIX_MAPPED_FILES
- __gconv_cache = mmap (NULL, cache_size, PROT_READ, MAP_SHARED, fd, 0);
- if (__builtin_expect (__gconv_cache == MAP_FAILED, 0))
-#endif
- {
- size_t already_read;
-
- __gconv_cache = malloc (cache_size);
- if (__gconv_cache == NULL)
- goto close_and_exit;
-
- already_read = 0;
- do
- {
- ssize_t n = read (fd, (char *) __gconv_cache + already_read,
- cache_size - already_read);
- if (__builtin_expect (n, 0) == -1)
- {
- free (__gconv_cache);
- __gconv_cache = NULL;
- goto close_and_exit;
- }
-
- already_read += n;
- }
- while (already_read < cache_size);
-
- cache_malloced = 1;
- }
-
- /* We don't need the file descriptor anymore. */
- close (fd);
-
- /* Check the consistency. */
- header = (struct gconvcache_header *) __gconv_cache;
- if (__builtin_expect (header->magic, GCONVCACHE_MAGIC) != GCONVCACHE_MAGIC
- || __builtin_expect (header->string_offset >= cache_size, 0)
- || __builtin_expect (header->hash_offset >= cache_size, 0)
- || __builtin_expect (header->hash_size == 0, 0)
- || __builtin_expect ((header->hash_offset
- + header->hash_size * sizeof (struct hash_entry))
- > cache_size, 0)
- || __builtin_expect (header->module_offset >= cache_size, 0)
- || __builtin_expect (header->otherconv_offset > cache_size, 0))
- {
- if (cache_malloced)
- {
- free (__gconv_cache);
- cache_malloced = 0;
- }
-#ifdef _POSIX_MAPPED_FILES
- else
- __munmap (__gconv_cache, cache_size);
-#endif
- __gconv_cache = NULL;
-
- return -1;
- }
-
- /* That worked. */
- return 0;
-}
-
-
-static int
-internal_function
-find_module_idx (const char *str, size_t *idxp)
-{
- unsigned int idx;
- unsigned int hval;
- unsigned int hval2;
- const struct gconvcache_header *header;
- const char *strtab;
- const struct hash_entry *hashtab;
- unsigned int limit;
-
- header = (const struct gconvcache_header *) __gconv_cache;
- strtab = (char *) __gconv_cache + header->string_offset;
- hashtab = (struct hash_entry *) ((char *) __gconv_cache
- + header->hash_offset);
-
- hval = hash_string (str);
- idx = hval % header->hash_size;
- hval2 = 1 + hval % (header->hash_size - 2);
-
- limit = cache_size - header->string_offset;
- while (hashtab[idx].string_offset != 0)
- if (hashtab[idx].string_offset < limit
- && strcmp (str, strtab + hashtab[idx].string_offset) == 0)
- {
- *idxp = hashtab[idx].module_idx;
- return 0;
- }
- else
- if ((idx += hval2) >= header->hash_size)
- idx -= header->hash_size;
-
- /* Nothing found. */
- return -1;
-}
-
-
-#ifndef STATIC_GCONV
-static int
-internal_function
-find_module (const char *directory, const char *filename,
- struct __gconv_step *result)
-{
- size_t dirlen = strlen (directory);
- size_t fnamelen = strlen (filename) + 1;
- char fullname[dirlen + fnamelen];
- int status = __GCONV_NOCONV;
- char *tmp;
-
- tmp = mempcpy (fullname, directory, dirlen);
- tmp += dirlen;
- memcpy (tmp, filename, fnamelen);
-
- result->__shlib_handle = __gconv_find_shlib (fullname);
- if (result->__shlib_handle != NULL)
- {
- status = __GCONV_OK;
-
- result->__modname = NULL;
- result->__fct = result->__shlib_handle->fct;
- result->__init_fct = result->__shlib_handle->init_fct;
- result->__end_fct = result->__shlib_handle->end_fct;
-
- result->__data = NULL;
- if (result->__init_fct != NULL)
- status = result->__init_fct (result);
- }
-
- return status;
-}
-#endif
-
-
-int
-internal_function
-__gconv_compare_alias_cache (const char *name1, const char *name2, int *result)
-{
- size_t name1_idx;
- size_t name2_idx;
-
- if (__gconv_cache == NULL)
- return -1;
-
- if (find_module_idx (name1, &name1_idx) != 0
- || find_module_idx (name2, &name2_idx) != 0)
- *result = strcmp (name1, name2);
- else
- *result = (int) (name1_idx - name2_idx);
-
- return 0;
-}
-
-
-int
-internal_function
-__gconv_lookup_cache (const char *toset, const char *fromset,
- struct __gconv_step **handle, size_t *nsteps, int flags)
-{
- const struct gconvcache_header *header;
- const char *strtab;
- size_t fromidx;
- size_t toidx;
- const struct module_entry *modtab;
- const struct module_entry *from_module;
- const struct module_entry *to_module;
- struct __gconv_step *result;
-
- if (__gconv_cache == NULL)
- /* We have no cache available. */
- return __GCONV_NODB;
-
- header = (const struct gconvcache_header *) __gconv_cache;
- strtab = (char *) __gconv_cache + header->string_offset;
- modtab = (const struct module_entry *) ((char *) __gconv_cache
- + header->module_offset);
-
- if (find_module_idx (fromset, &fromidx) != 0
- || (header->module_offset + (fromidx + 1) * sizeof (struct module_entry)
- > cache_size))
- return __GCONV_NOCONV;
- from_module = &modtab[fromidx];
-
- if (find_module_idx (toset, &toidx) != 0
- || (header->module_offset + (toidx + 1) * sizeof (struct module_entry)
- > cache_size))
- return __GCONV_NOCONV;
- to_module = &modtab[toidx];
-
- /* Avoid copy-only transformations if the user requests. */
- if (__builtin_expect (flags & GCONV_AVOID_NOCONV, 0) && fromidx == toidx)
- return __GCONV_NOCONV;
-
- /* If there are special conversions available examine them first. */
- if (fromidx != 0 && toidx != 0
- && __builtin_expect (from_module->extra_offset, 0) != 0)
- {
- /* Search through the list to see whether there is a module
- matching the destination character set. */
- const struct extra_entry *extra;
-
- /* Note the -1. This is due to the offset added in iconvconfig.
- See there for more explanations. */
- extra = (const struct extra_entry *) ((char *) __gconv_cache
- + header->otherconv_offset
- + from_module->extra_offset - 1);
- while (extra->module_cnt != 0
- && extra->module[extra->module_cnt - 1].outname_offset != toidx)
- extra = (const struct extra_entry *) ((char *) extra
- + sizeof (struct extra_entry)
- + (extra->module_cnt
- * sizeof (struct extra_entry_module)));
-
- if (extra->module_cnt != 0)
- {
- /* Use the extra module. First determine how many steps. */
- char *fromname;
- int idx;
-
- *nsteps = extra->module_cnt;
- *handle = result =
- (struct __gconv_step *) malloc (extra->module_cnt
- * sizeof (struct __gconv_step));
- if (result == NULL)
- return __GCONV_NOMEM;
-
- fromname = (char *) strtab + from_module->canonname_offset;
- idx = 0;
- do
- {
- result[idx].__from_name = fromname;
- fromname = result[idx].__to_name =
- (char *) strtab + modtab[extra->module[idx].outname_offset].canonname_offset;
-
- result[idx].__counter = 1;
- result[idx].__data = NULL;
-
-#ifndef STATIC_GCONV
- if (strtab[extra->module[idx].dir_offset] != '\0')
- {
- /* Load the module, return handle for it. */
- int res;
-
- res = find_module (strtab + extra->module[idx].dir_offset,
- strtab + extra->module[idx].name_offset,
- &result[idx]);
- if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
- {
- /* Something went wrong. */
- free (result);
- goto try_internal;
- }
- }
- else
-#endif
- /* It's a builtin transformation. */
- __gconv_get_builtin_trans (strtab
- + extra->module[idx].name_offset,
- &result[idx]);
-
- }
- while (++idx < extra->module_cnt);
-
- return __GCONV_OK;
- }
- }
-
- try_internal:
- /* See whether we can convert via the INTERNAL charset. */
- if ((fromidx != 0 && __builtin_expect (from_module->fromname_offset, 1) == 0)
- || (toidx != 0 && __builtin_expect (to_module->toname_offset, 1) == 0)
- || (fromidx == 0 && toidx == 0))
- /* Not possible. Nothing we can do. */
- return __GCONV_NOCONV;
-
- /* We will use up to two modules. Always allocate room for two. */
- result = (struct __gconv_step *) malloc (2 * sizeof (struct __gconv_step));
- if (result == NULL)
- return __GCONV_NOMEM;
-
- *handle = result;
- *nsteps = 0;
-
- /* Generate data structure for conversion to INTERNAL. */
- if (fromidx != 0)
- {
- result[0].__from_name = (char *) strtab + from_module->canonname_offset;
- result[0].__to_name = (char *) "INTERNAL";
-
- result[0].__counter = 1;
- result[0].__data = NULL;
-
-#ifndef STATIC_GCONV
- if (strtab[from_module->todir_offset] != '\0')
- {
- /* Load the module, return handle for it. */
- int res = find_module (strtab + from_module->todir_offset,
- strtab + from_module->toname_offset,
- &result[0]);
- if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
- {
- /* Something went wrong. */
- free (result);
- return res;
- }
- }
- else
-#endif
- /* It's a builtin transformation. */
- __gconv_get_builtin_trans (strtab + from_module->toname_offset,
- &result[0]);
-
- ++*nsteps;
- }
-
- /* Generate data structure for conversion from INTERNAL. */
- if (toidx != 0)
- {
- int idx = *nsteps;
-
- result[idx].__from_name = (char *) "INTERNAL";
- result[idx].__to_name = (char *) strtab + to_module->canonname_offset;
-
- result[idx].__counter = 1;
- result[idx].__data = NULL;
-
-#ifndef STATIC_GCONV
- if (strtab[to_module->fromdir_offset] != '\0')
- {
- /* Load the module, return handle for it. */
- int res = find_module (strtab + to_module->fromdir_offset,
- strtab + to_module->fromname_offset,
- &result[idx]);
- if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
- {
- /* Something went wrong. */
- if (idx != 0)
- __gconv_release_step (&result[0]);
- free (result);
- return res;
- }
- }
- else
-#endif
- /* It's a builtin transformation. */
- __gconv_get_builtin_trans (strtab + to_module->fromname_offset,
- &result[idx]);
-
- ++*nsteps;
- }
-
- return __GCONV_OK;
-}
-
-
-/* Free memory allocated for the transformation record. */
-void
-internal_function
-__gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
-{
- if (__gconv_cache != NULL)
- /* The only thing we have to deallocate is the record with the
- steps. */
- free (steps);
-}
-
-
-/* Free all resources if necessary. */
-static void __attribute__ ((unused))
-free_mem (void)
-{
- if (cache_malloced)
- free (__gconv_cache);
-#ifdef _POSIX_MAPPED_FILES
- else
- __munmap (__gconv_cache, cache_size);
-#endif
-}
-
-text_set_element (__libc_subfreeres, free_mem);
diff --git a/newlib/libc/sys/linux/iconv/gconv_charset.h b/newlib/libc/sys/linux/iconv/gconv_charset.h
deleted file mode 100644
index 706669825..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_charset.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Charset name normalization.
- Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <ctype.h>
-#include <locale.h>
-
-
-static inline void
-strip (char *wp, const char *s)
-{
- int slash_count = 0;
- char old_locale[20], *old_locale_p;
-
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
- while (*s != '\0')
- {
- if (isalnum (*s)
- || *s == '_' || *s == '-' || *s == '.')
- *wp++ = toupper (*s);
- else if (*s == '/')
- {
- if (++slash_count == 3)
- break;
- *wp++ = '/';
- }
- ++s;
- }
-
- while (slash_count++ < 2)
- *wp++ = '/';
-
- *wp = '\0';
- setlocale(LC_ALL, old_locale);
-}
-
-
-static char * __attribute__ ((unused))
-upstr (char *dst, const char *str)
-{
- char *cp = dst;
- char old_locale[20], *old_locale_p;
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
- while ((*cp++ = toupper (*str++)) != '\0')
- /* nothing */;
- setlocale(LC_ALL, old_locale);
- return dst;
-}
-
-
-/* If NAME is an codeset alias expand it. */
-extern int __gconv_compare_alias (const char *name1, const char *name2)
- internal_function;
diff --git a/newlib/libc/sys/linux/iconv/gconv_close.c b/newlib/libc/sys/linux/iconv/gconv_close.c
deleted file mode 100644
index cc0ecd650..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_close.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Release any resource associated with given conversion descriptor.
- Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stdlib.h>
-
-#include <gconv_int.h>
-
-
-int
-internal_function
-__gconv_close (__gconv_t cd)
-{
- struct __gconv_step *srunp;
- struct __gconv_step_data *drunp;
- size_t nsteps;
-
- /* Free all resources by calling destructor functions and release
- the implementations. */
- srunp = cd->__steps;
- nsteps = cd->__nsteps;
- drunp = cd->__data;
- do
- {
- struct __gconv_trans_data *transp;
-
- transp = drunp->__trans;
- while (transp != NULL)
- {
- struct __gconv_trans_data *curp = transp;
- transp = transp->__next;
-
- if (__builtin_expect (curp->__trans_end_fct != NULL, 0))
- curp->__trans_end_fct (curp->__data);
-
- free (curp);
- }
-
- if (!(drunp->__flags & __GCONV_IS_LAST) && drunp->__outbuf != NULL)
- free (drunp->__outbuf);
- }
- while (!((drunp++)->__flags & __GCONV_IS_LAST));
-
- /* Free the data allocated for the descriptor. */
- free (cd);
-
- /* Close the participating modules. */
- return __gconv_close_transform (srunp, nsteps);
-}
diff --git a/newlib/libc/sys/linux/iconv/gconv_conf.c b/newlib/libc/sys/linux/iconv/gconv_conf.c
deleted file mode 100644
index c714102a3..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_conf.c
+++ /dev/null
@@ -1,680 +0,0 @@
-/* Handle configuration data.
- Copyright (C) 1997,98,99,2000,2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
-#include <locale.h>
-#include <search.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include <dirent.h>
-#include <gconv_int.h>
-
-/* This is the default path where we look for module lists. */
-static const char default_gconv_path[] = GCONV_PATH;
-
-/* The path elements, as determined by the __gconv_get_path function.
- All path elements end in a slash. */
-struct path_elem *__gconv_path_elem;
-/* Maximum length of a single path element in __gconv_path_elem. */
-size_t __gconv_max_path_elem_len;
-
-/* We use the following struct if we couldn't allocate memory. */
-static const struct path_elem empty_path_elem;
-
-/* Name of the file containing the module information in the directories
- along the path. */
-static const char gconv_conf_filename[] = "gconv-modules";
-
-/* Filename extension for the modules. */
-#ifndef MODULE_EXT
-# define MODULE_EXT ".so"
-#endif
-static const char gconv_module_ext[] = MODULE_EXT;
-
-/* We have a few builtin transformations. */
-static struct gconv_module builtin_modules[] =
-{
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT) \
- { \
- from_string: From, \
- to_string: To, \
- cost_hi: Cost, \
- cost_lo: INT_MAX, \
- module_name: Name \
- },
-#define BUILTIN_ALIAS(From, To)
-
-#include "gconv_builtin.h"
-};
-
-#undef BUILTIN_TRANSFORMATION
-#undef BUILTIN_ALIAS
-
-static const char *builtin_aliases[] =
-{
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT)
-#define BUILTIN_ALIAS(From, To) From " " To,
-
-#include "gconv_builtin.h"
-};
-
-#ifdef USE_IN_LIBIO
-# include <libio/libioP.h>
-# define __getdelim(line, len, c, fp) _IO_getdelim (line, len, c, fp)
-#endif
-
-
-/* Value of the GCONV_PATH environment variable. */
-const char *__gconv_path_envvar;
-
-
-/* Test whether there is already a matching module known. */
-static int
-internal_function
-detect_conflict (const char *alias)
-{
- struct gconv_module *node = __gconv_modules_db;
-
- while (node != NULL)
- {
- int cmpres = strcmp (alias, node->from_string);
-
- if (cmpres == 0)
- /* We have a conflict. */
- return 1;
- else if (cmpres < 0)
- node = node->left;
- else
- node = node->right;
- }
-
- return node != NULL;
-}
-
-
-/* Add new alias. */
-static inline void
-add_alias (char *rp, void *modules)
-{
- /* We now expect two more string. The strings are normalized
- (converted to UPPER case) and strored in the alias database. */
- struct gconv_alias *new_alias;
- char *from, *to, *wp;
- char old_locale[20], *old_locale_p;
-
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
-
- while (isspace (*rp))
- ++rp;
- from = wp = rp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (*rp == '\0')
- {
- setlocale(LC_ALL, old_locale);
- /* There is no `to' string on the line. Ignore it. */
- return;
- }
- *wp++ = '\0';
- to = ++rp;
- while (isspace (*rp))
- ++rp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (to == wp)
- {
- setlocale(LC_ALL, old_locale);
- /* No `to' string, ignore the line. */
- return;
- }
- *wp++ = '\0';
-
- /* Test whether this alias conflicts with any available module. */
- if (detect_conflict (from))
- {
- setlocale(LC_ALL, old_locale);
- /* It does conflict, don't add the alias. */
- return;
- }
-
- new_alias = (struct gconv_alias *) malloc (sizeof (struct gconv_alias) + (wp - from));
- if (new_alias != NULL)
- {
- void **inserted;
-
- new_alias->fromname = memcpy ((char *) new_alias
- + sizeof (struct gconv_alias),
- from, wp - from);
- new_alias->toname = new_alias->fromname + (to - from);
-
- inserted = (void **) tsearch (new_alias, &__gconv_alias_db,
- __gconv_alias_compare);
- if (inserted == NULL || *inserted != new_alias)
- /* Something went wrong, free this entry. */
- free (new_alias);
- }
- setlocale(LC_ALL, old_locale);
-}
-
-
-/* Insert a data structure for a new module in the search tree. */
-static inline void
-internal_function
-insert_module (struct gconv_module *newp, int tobefreed)
-{
- struct gconv_module **rootp = &__gconv_modules_db;
-
- while (*rootp != NULL)
- {
- struct gconv_module *root = *rootp;
- int cmpres;
-
- cmpres = strcmp (newp->from_string, root->from_string);
- if (cmpres == 0)
- {
- /* Both strings are identical. Insert the string at the
- end of the `same' list if it is not already there. */
- while (strcmp (newp->from_string, root->from_string) != 0
- || strcmp (newp->to_string, root->to_string) != 0)
- {
- rootp = &root->same;
- root = *rootp;
- if (root == NULL)
- break;
- }
-
- if (root != NULL)
- {
- /* This is a no new conversion. But maybe the cost is
- better. */
- if (newp->cost_hi < root->cost_hi
- || (newp->cost_hi == root->cost_hi
- && newp->cost_lo < root->cost_lo))
- {
- newp->left = root->left;
- newp->right = root->right;
- newp->same = root->same;
- *rootp = newp;
-
- free (root);
- }
- else if (tobefreed)
- free (newp);
- return;
- }
-
- break;
- }
- else if (cmpres < 0)
- rootp = &root->left;
- else
- rootp = &root->right;
- }
-
- /* Plug in the new node here. */
- *rootp = newp;
-}
-
-
-/* Add new module. */
-static void
-internal_function
-add_module (char *rp, const char *directory, size_t dir_len, void **modules,
- size_t *nmodules, int modcounter)
-{
- /* We expect now
- 1. `from' name
- 2. `to' name
- 3. filename of the module
- 4. an optional cost value
- */
- struct gconv_alias fake_alias;
- struct gconv_module *new_module;
- char *from, *to, *module, *wp;
- int need_ext;
- int cost_hi;
- char old_locale[20], *old_locale_p;
- char *old;
- size_t len;
- char *new;
-
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
-
- while (isspace (*rp))
- ++rp;
- from = rp;
- while (*rp != '\0' && !isspace (*rp))
- {
- *rp = toupper (*rp);
- ++rp;
- }
- if (*rp == '\0')
- {
- setlocale(LC_ALL, old_locale);
- return;
- }
- *rp++ = '\0';
- to = wp = rp;
- while (isspace (*rp))
- {
- setlocale(LC_ALL, old_locale);
- ++rp;
- }
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (*rp == '\0')
- {
- setlocale(LC_ALL, old_locale);
- return;
- }
- *wp++ = '\0';
- do
- ++rp;
- while (isspace (*rp));
- module = wp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = *rp++;
- if (*rp == '\0')
- {
- /* There is no cost, use one by default. */
- *wp++ = '\0';
- cost_hi = 1;
- }
- else
- {
- /* There might be a cost value. */
- char *endp;
-
- *wp++ = '\0';
- cost_hi = strtol (rp, &endp, 10);
- if (rp == endp || cost_hi < 1)
- /* No useful information. */
- cost_hi = 1;
- }
-
- if (module[0] == '\0')
- {
- setlocale(LC_ALL, old_locale);
- /* No module name given. */
- return;
- }
- if (module[0] == '/')
- dir_len = 0;
-
- /* See whether we must add the ending. */
- need_ext = 0;
- if (wp - module < (ptrdiff_t) sizeof (gconv_module_ext)
- || memcmp (wp - sizeof (gconv_module_ext), gconv_module_ext,
- sizeof (gconv_module_ext)) != 0)
- /* We must add the module extension. */
- need_ext = sizeof (gconv_module_ext) - 1;
-
- /* See whether we have already an alias with this name defined. */
- old = from;
- len = strnlen (old, to - from);
- new = (char *) alloca (len + 1);
- new[len] = '\0';
- fake_alias.fromname = (char *) memcpy (new, old, len);
-
- if (tfind (&fake_alias, &__gconv_alias_db, __gconv_alias_compare) != NULL)
- {
- setlocale(LC_ALL, old_locale);
- /* This module duplicates an alias. */
- return;
- }
-
- new_module = (struct gconv_module *) calloc (1,
- sizeof (struct gconv_module)
- + (wp - from)
- + dir_len + need_ext);
- if (new_module != NULL)
- {
- char *tmp;
-
- new_module->from_string = tmp = (char *) (new_module + 1);
- tmp = memcpy (tmp, from, to - from);
- tmp += (to - from);
-
- new_module->to_string = tmp;
- tmp = memcpy (tmp, to, module - to);
- tmp += (module - to);
-
- new_module->cost_hi = cost_hi;
- new_module->cost_lo = modcounter;
-
- new_module->module_name = tmp;
-
- if (dir_len != 0)
- {
- tmp = memcpy (tmp, directory, dir_len);
- tmp += dir_len;
- }
-
- tmp = memcpy (tmp, module, wp - module);
- tmp += (wp - module);
-
- if (need_ext)
- memcpy (tmp - 1, gconv_module_ext, sizeof (gconv_module_ext));
-
- /* Now insert the new module data structure in our search tree. */
- insert_module (new_module, 1);
- }
- setlocale(LC_ALL, old_locale);
-}
-
-
-/* Read the next configuration file. */
-static void
-internal_function
-read_conf_file (const char *filename, const char *directory, size_t dir_len,
- void **modules, size_t *nmodules)
-{
- FILE *fp = fopen (filename, "r");
- char *line = NULL;
- size_t line_len = 0;
- static int modcounter;
- char old_locale[20], *old_locale_p;
-
- /* Don't complain if a file is not present or readable, simply silently
- ignore it. */
- if (fp == NULL)
- return;
-
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
-
- /* Process the known entries of the file. Comments start with `#' and
- end with the end of the line. Empty lines are ignored. */
- while (!feof (fp))
- {
- char *rp, *endp, *word;
- ssize_t n = __getdelim (&line, &line_len, '\n', fp);
- if (n < 0)
- /* An error occurred. */
- break;
-
- rp = line;
- /* Terminate the line (excluding comments or newline) by an NUL byte
- to simplify the following code. */
- endp = strchr (rp, '#');
- if (endp != NULL)
- *endp = '\0';
- else
- if (rp[n - 1] == '\n')
- rp[n - 1] = '\0';
-
- while (isspace (*rp))
- ++rp;
-
- /* If this is an empty line go on with the next one. */
- if (rp == endp)
- continue;
-
- word = rp;
- while (*rp != '\0' && !isspace (*rp))
- ++rp;
-
- if (rp - word == sizeof ("alias") - 1
- && memcmp (word, "alias", sizeof ("alias") - 1) == 0)
- add_alias (rp, *modules);
- else if (rp - word == sizeof ("module") - 1
- && memcmp (word, "module", sizeof ("module") - 1) == 0)
- add_module (rp, directory, dir_len, modules, nmodules, modcounter++);
- /* else */
- /* Otherwise ignore the line. */
- }
-
- free (line);
-
- fclose (fp);
-
- setlocale(LC_ALL, old_locale);
-}
-
-
-/* Determine the directories we are looking for data in. */
-void
-__gconv_get_path (void)
-{
- struct path_elem *result;
- __LOCK_INIT(static, path_lock);
-
-#ifdef HAVE_DD_LOCK
- __lock_acquire(path_lock);
-#endif
-
- /* Make sure there wasn't a second thread doing it already. */
- result = (struct path_elem *) __gconv_path_elem;
- if (result == NULL)
- {
- /* Determine the complete path first. */
- char *gconv_path;
- size_t gconv_path_len;
- char *elem;
- char *oldp;
- char *cp;
- int nelems;
- char *cwd;
- size_t cwdlen;
-
- if (__gconv_path_envvar == NULL)
- {
- char * old = default_gconv_path;
- size_t len = strlen (old) + 1;
- char *new = (char *) alloca (len);
-
- /* No user-defined path. Make a modifiable copy of the
- default path. */
- gconv_path = (char *) memcpy (new, old, len);
- gconv_path_len = sizeof (default_gconv_path);
- cwd = NULL;
- cwdlen = 0;
- }
- else
- {
- /* Append the default path to the user-defined path. */
- size_t user_len = strlen (__gconv_path_envvar);
- char *tmp;
-
- gconv_path_len = user_len + 1 + sizeof (default_gconv_path);
- gconv_path = alloca (gconv_path_len);
- tmp = memcpy (gconv_path, __gconv_path_envvar,
- user_len);
- tmp += user_len;
- memcpy (tmp, ":", 1);
- tmp += 1;
- memcpy (tmp,
- default_gconv_path, sizeof (default_gconv_path));
-
- cwd = getcwd (NULL, 0);
- cwdlen = strlen (cwd);
- }
- assert (default_gconv_path[0] == '/');
-
- /* In a first pass we calculate the number of elements. */
- oldp = NULL;
- cp = strchr (gconv_path, ':');
- nelems = 1;
- while (cp != NULL)
- {
- if (cp != oldp + 1)
- ++nelems;
- oldp = cp;
- cp = strchr (cp + 1, ':');
- }
-
- /* Allocate the memory for the result. */
- result = (struct path_elem *) malloc ((nelems + 1)
- * sizeof (struct path_elem)
- + gconv_path_len + nelems
- + (nelems - 1) * (cwdlen + 1));
- if (result != NULL)
- {
- char *strspace = (char *) &result[nelems + 1];
- int n = 0;
-
- /* Separate the individual parts. */
- __gconv_max_path_elem_len = 0;
- elem = strtok_r (gconv_path, ":", &gconv_path);
- assert (elem != NULL);
- do
- {
- result[n].name = strspace;
- if (elem[0] != '/')
- {
- assert (cwd != NULL);
- strspace = memcpy (strspace, cwd, cwdlen);
- strspace += cwdlen;
- *strspace++ = '/';
- }
- strspace = strcpy (strspace, elem);
- while(*strspace != '\0') strspace++;
-
- if (strspace[-1] != '/')
- *strspace++ = '/';
-
- result[n].len = strspace - result[n].name;
- if (result[n].len > __gconv_max_path_elem_len)
- __gconv_max_path_elem_len = result[n].len;
-
- *strspace++ = '\0';
- ++n;
- }
- while ((elem = strtok_r (NULL, ":", &gconv_path)) != NULL);
-
- result[n].name = NULL;
- result[n].len = 0;
- }
-
- __gconv_path_elem = result ?: (struct path_elem *) &empty_path_elem;
-
- if (cwd != NULL)
- free (cwd);
- }
-
-#ifdef HAVE_DD_LOCK
- __lock_release(path_lock);
-#endif
-}
-
-
-/* Read all configuration files found in the user-specified and the default
- path. */
-void
-__gconv_read_conf (void)
-{
- void *modules = NULL;
- size_t nmodules = 0;
- int save_errno = errno;
- size_t cnt;
- char *filename;
- char *tmp;
- const char *elem;
- size_t elem_len;
-
- /* First see whether we should use the cache. */
- if (__gconv_load_cache () == 0)
- {
- /* Yes, we are done. */
- __set_errno (save_errno);
- return;
- }
-
-#ifndef STATIC_GCONV
- /* Find out where we have to look. */
- if (__gconv_path_elem == NULL)
- __gconv_get_path ();
-
- for (cnt = 0; __gconv_path_elem[cnt].name != NULL; ++cnt)
- {
- elem = __gconv_path_elem[cnt].name;
- elem_len = __gconv_path_elem[cnt].len;
-
- /* No slash needs to be inserted between elem and gconv_conf_filename;
- elem already ends in a slash. */
- filename = alloca (elem_len + sizeof (gconv_conf_filename));
- tmp = memcpy (filename, elem, elem_len);
- tmp += elem_len;
- memcpy (tmp, gconv_conf_filename, sizeof (gconv_conf_filename));
-
- /* Read the next configuration file. */
- read_conf_file (filename, elem, elem_len, &modules, &nmodules);
- }
-#endif
-
- /* Add the internal modules. */
- for (cnt = 0; cnt < sizeof (builtin_modules) / sizeof (builtin_modules[0]);
- ++cnt)
- {
- struct gconv_alias fake_alias;
-
- fake_alias.fromname = (char *) builtin_modules[cnt].from_string;
-
- if (tfind (&fake_alias, &__gconv_alias_db, __gconv_alias_compare)
- != NULL)
- /* It'll conflict so don't add it. */
- continue;
-
- insert_module (&builtin_modules[cnt], 0);
- }
-
- /* Add aliases for builtin conversions. */
- cnt = sizeof (builtin_aliases) / sizeof (builtin_aliases[0]);
- while (cnt > 0)
- {
- char * old = builtin_aliases[--cnt];
- size_t len = strlen (old) + 1;
- char *new = (char *) alloca (len);
- char *copy = (char *) memcpy (new, old, len);
-
- add_alias (copy, modules);
- }
-
- /* Restore the error number. */
- __set_errno (save_errno);
-}
-
-
-
-/* Free all resources if necessary. */
-static void __attribute__ ((unused))
-free_mem (void)
-{
- if (__gconv_path_elem != NULL && __gconv_path_elem != &empty_path_elem)
- free ((void *) __gconv_path_elem);
-}
-
-text_set_element (__libc_subfreeres, free_mem);
diff --git a/newlib/libc/sys/linux/iconv/gconv_db.c b/newlib/libc/sys/linux/iconv/gconv_db.c
deleted file mode 100644
index 749995ee3..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_db.c
+++ /dev/null
@@ -1,803 +0,0 @@
-/* Provide access to the collection of available transformation modules.
- Copyright (C) 1997,98,99,2000,2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <limits.h>
-#include <search.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/param.h>
-#include <dirent.h>
-
-#include <dlfcn.h>
-#include <gconv_int.h>
-#include <gconv_charset.h>
-
-
-/* Simple data structure for alias mapping. We have two names, `from'
- and `to'. */
-void *__gconv_alias_db;
-
-/* Array with available modules. */
-struct gconv_module *__gconv_modules_db;
-
-/* We modify global data. */
-__LOCK_INIT(static, lock);
-
-
-/* Function for searching alias. */
-int
-__gconv_alias_compare (const void *p1, const void *p2)
-{
- const struct gconv_alias *s1 = (const struct gconv_alias *) p1;
- const struct gconv_alias *s2 = (const struct gconv_alias *) p2;
- return strcmp (s1->fromname, s2->fromname);
-}
-
-
-/* To search for a derivation we create a list of intermediate steps.
- Each element contains a pointer to the element which precedes it
- in the derivation order. */
-struct derivation_step
-{
- const char *result_set;
- size_t result_set_len;
- int cost_lo;
- int cost_hi;
- struct gconv_module *code;
- struct derivation_step *last;
- struct derivation_step *next;
-};
-
-#define NEW_STEP(result, hi, lo, module, last_mod) \
- ({ struct derivation_step *newp = alloca (sizeof (struct derivation_step)); \
- newp->result_set = result; \
- newp->result_set_len = strlen (result); \
- newp->cost_hi = hi; \
- newp->cost_lo = lo; \
- newp->code = module; \
- newp->last = last_mod; \
- newp->next = NULL; \
- newp; })
-
-
-/* If a specific transformation is used more than once we should not need
- to start looking for it again. Instead cache each successful result. */
-struct known_derivation
-{
- const char *from;
- const char *to;
- struct __gconv_step *steps;
- size_t nsteps;
-};
-
-/* Compare function for database of found derivations. */
-static int
-derivation_compare (const void *p1, const void *p2)
-{
- const struct known_derivation *s1 = (const struct known_derivation *) p1;
- const struct known_derivation *s2 = (const struct known_derivation *) p2;
- int result;
-
- result = strcmp (s1->from, s2->from);
- if (result == 0)
- result = strcmp (s1->to, s2->to);
- return result;
-}
-
-/* The search tree for known derivations. */
-static void *known_derivations;
-
-/* Look up whether given transformation was already requested before. */
-static int
-internal_function
-derivation_lookup (const char *fromset, const char *toset,
- struct __gconv_step **handle, size_t *nsteps)
-{
- struct known_derivation key = { fromset, toset, NULL, 0 };
- struct known_derivation **result;
-
- result = tfind (&key, &known_derivations, derivation_compare);
-
- if (result == NULL)
- return __GCONV_NOCONV;
-
- *handle = (*result)->steps;
- *nsteps = (*result)->nsteps;
-
- /* Please note that we return GCONV_OK even if the last search for
- this transformation was unsuccessful. */
- return __GCONV_OK;
-}
-
-/* Add new derivation to list of known ones. */
-static void
-internal_function
-add_derivation (const char *fromset, const char *toset,
- struct __gconv_step *handle, size_t nsteps)
-{
- struct known_derivation *new_deriv;
- size_t fromset_len = strlen (fromset) + 1;
- size_t toset_len = strlen (toset) + 1;
-
- new_deriv = (struct known_derivation *)
- malloc (sizeof (struct known_derivation) + fromset_len + toset_len);
- if (new_deriv != NULL)
- {
- char *tmp;
- new_deriv->from = (char *) (new_deriv + 1);
- tmp = memcpy (new_deriv + 1, fromset, fromset_len);
- tmp += fromset_len;
-
- new_deriv->to = memcpy (tmp,
- toset, toset_len);
-
- new_deriv->steps = handle;
- new_deriv->nsteps = nsteps;
-
- if (tsearch (new_deriv, &known_derivations, derivation_compare)
- == NULL)
- /* There is some kind of memory allocation problem. */
- free (new_deriv);
- }
- /* Please note that we don't complain if the allocation failed. This
- is not tragically but in case we use the memory debugging facilities
- not all memory will be freed. */
-}
-
-static void
-free_derivation (void *p)
-{
- struct known_derivation *deriv = (struct known_derivation *) p;
- size_t cnt;
-
- for (cnt = 0; cnt < deriv->nsteps; ++cnt)
- if (deriv->steps[cnt].__counter > 0
- && deriv->steps[cnt].__end_fct != NULL)
- deriv->steps[cnt].__end_fct (&deriv->steps[cnt]);
-
- /* Free the name strings. */
- free ((char *) deriv->steps[0].__from_name);
- free ((char *) deriv->steps[deriv->nsteps - 1].__to_name);
-
- free ((struct __gconv_step *) deriv->steps);
- free (deriv);
-}
-
-
-/* Decrement the reference count for a single step in a steps array. */
-void
-internal_function
-__gconv_release_step (struct __gconv_step *step)
-{
- if (--step->__counter == 0)
- {
- /* Call the destructor. */
- if (step->__end_fct != NULL)
- step->__end_fct (step);
-
-#ifndef STATIC_GCONV
- /* Skip builtin modules; they are not reference counted. */
- if (step->__shlib_handle != NULL)
- {
- /* Release the loaded module. */
- __gconv_release_shlib (step->__shlib_handle);
- step->__shlib_handle = NULL;
- }
-#endif
- }
-}
-
-static int
-internal_function
-gen_steps (struct derivation_step *best, const char *toset,
- const char *fromset, struct __gconv_step **handle, size_t *nsteps)
-{
- size_t step_cnt = 0;
- struct __gconv_step *result;
- struct derivation_step *current;
- int status = __GCONV_NOMEM;
-
- /* First determine number of steps. */
- for (current = best; current->last != NULL; current = current->last)
- ++step_cnt;
-
- result = (struct __gconv_step *) malloc (sizeof (struct __gconv_step)
- * step_cnt);
- if (result != NULL)
- {
- int failed = 0;
-
- status = __GCONV_OK;
- *nsteps = step_cnt;
- current = best;
- while (step_cnt-- > 0)
- {
- result[step_cnt].__from_name = (step_cnt == 0
- ? strdup (fromset)
- : (char *)current->last->result_set);
- result[step_cnt].__to_name = (step_cnt + 1 == *nsteps
- ? strdup (current->result_set)
- : result[step_cnt + 1].__from_name);
-
- result[step_cnt].__counter = 1;
- result[step_cnt].__data = NULL;
-
-#ifndef STATIC_GCONV
- if (current->code->module_name[0] == '/')
- {
- /* Load the module, return handle for it. */
- struct __gconv_loaded_object *shlib_handle =
- __gconv_find_shlib (current->code->module_name);
-
- if (shlib_handle == NULL)
- {
- failed = 1;
- break;
- }
-
- result[step_cnt].__shlib_handle = shlib_handle;
- result[step_cnt].__modname = shlib_handle->name;
- result[step_cnt].__fct = shlib_handle->fct;
- result[step_cnt].__init_fct = shlib_handle->init_fct;
- result[step_cnt].__end_fct = shlib_handle->end_fct;
-
- /* Call the init function. */
- if (result[step_cnt].__init_fct != NULL)
- {
- status = result[step_cnt].__init_fct (&result[step_cnt]);
-
- if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
- {
- failed = 1;
- /* Make sure we unload this modules. */
- --step_cnt;
- result[step_cnt].__end_fct = NULL;
- break;
- }
- }
- }
- else
-#endif
- /* It's a builtin transformation. */
- __gconv_get_builtin_trans (current->code->module_name,
- &result[step_cnt]);
-
- current = current->last;
- }
-
- if (__builtin_expect (failed, 0) != 0)
- {
- /* Something went wrong while initializing the modules. */
- while (++step_cnt < *nsteps)
- __gconv_release_step (&result[step_cnt]);
- free (result);
- *nsteps = 0;
- *handle = NULL;
- if (status == __GCONV_OK)
- status = __GCONV_NOCONV;
- }
- else
- *handle = result;
- }
- else
- {
- *nsteps = 0;
- *handle = NULL;
- }
-
- return status;
-}
-
-
-#ifndef STATIC_GCONV
-static int
-internal_function
-increment_counter (struct __gconv_step *steps, size_t nsteps)
-{
- /* Increment the user counter. */
- size_t cnt = nsteps;
- int result = __GCONV_OK;
-
- while (cnt-- > 0)
- {
- struct __gconv_step *step = &steps[cnt];
-
- if (step->__counter++ == 0)
- {
- /* Skip builtin modules. */
- if (step->__modname != NULL)
- {
- /* Reopen a previously used module. */
- step->__shlib_handle = __gconv_find_shlib (step->__modname);
- if (step->__shlib_handle == NULL)
- {
- /* Oops, this is the second time we use this module
- (after unloading) and this time loading failed!? */
- --step->__counter;
- while (++cnt < nsteps)
- __gconv_release_step (&steps[cnt]);
- result = __GCONV_NOCONV;
- break;
- }
-
- /* The function addresses defined by the module may
- have changed. */
- step->__fct = step->__shlib_handle->fct;
- step->__init_fct = step->__shlib_handle->init_fct;
- step->__end_fct = step->__shlib_handle->end_fct;
- }
-
- if (step->__init_fct != NULL)
- step->__init_fct (step);
- }
- }
- return result;
-}
-#endif
-
-
-/* The main function: find a possible derivation from the `fromset' (either
- the given name or the alias) to the `toset' (again with alias). */
-static int
-internal_function
-find_derivation (const char *toset, const char *toset_expand,
- const char *fromset, const char *fromset_expand,
- struct __gconv_step **handle, size_t *nsteps)
-{
- struct derivation_step *first, *current, **lastp, *solution = NULL;
- int best_cost_hi = INT_MAX;
- int best_cost_lo = INT_MAX;
- int result;
-
- /* Look whether an earlier call to `find_derivation' has already
- computed a possible derivation. If so, return it immediately. */
- result = derivation_lookup (fromset_expand ?: fromset, toset_expand ?: toset,
- handle, nsteps);
- if (result == __GCONV_OK)
- {
-#ifndef STATIC_GCONV
- result = increment_counter (*handle, *nsteps);
-#endif
- return result;
- }
-
- /* The task is to find a sequence of transformations, backed by the
- existing modules - whether builtin or dynamically loadable -,
- starting at `fromset' (or `fromset_expand') and ending at `toset'
- (or `toset_expand'), and with minimal cost.
-
- For computer scientists, this is a shortest path search in the
- graph where the nodes are all possible charsets and the edges are
- the transformations listed in __gconv_modules_db.
-
- For now we use a simple algorithm with quadratic runtime behaviour.
- A breadth-first search, starting at `fromset' and `fromset_expand'.
- The list starting at `first' contains all nodes that have been
- visited up to now, in the order in which they have been visited --
- excluding the goal nodes `toset' and `toset_expand' which get
- managed in the list starting at `solution'.
- `current' walks through the list starting at `first' and looks
- which nodes are reachable from the current node, adding them to
- the end of the list [`first' or `solution' respectively] (if
- they are visited the first time) or updating them in place (if
- they have have already been visited).
- In each node of either list, cost_lo and cost_hi contain the
- minimum cost over any paths found up to now, starting at `fromset'
- or `fromset_expand', ending at that node. best_cost_lo and
- best_cost_hi represent the minimum over the elements of the
- `solution' list. */
-
- if (fromset_expand != NULL)
- {
- first = NEW_STEP (fromset_expand, 0, 0, NULL, NULL);
- first->next = NEW_STEP (fromset, 0, 0, NULL, NULL);
- lastp = &first->next->next;
- }
- else
- {
- first = NEW_STEP (fromset, 0, 0, NULL, NULL);
- lastp = &first->next;
- }
-
- for (current = first; current != NULL; current = current->next)
- {
- /* Now match all the available module specifications against the
- current charset name. If any of them matches check whether
- we already have a derivation for this charset. If yes, use the
- one with the lower costs. Otherwise add the new charset at the
- end.
-
- The module database is organized in a tree form which allows
- searching for prefixes. So we search for the first entry with a
- matching prefix and any other matching entry can be found from
- this place. */
- struct gconv_module *node;
-
- /* Maybe it is not necessary anymore to look for a solution for
- this entry since the cost is already as high (or higher) as
- the cost for the best solution so far. */
- if (current->cost_hi > best_cost_hi
- || (current->cost_hi == best_cost_hi
- && current->cost_lo >= best_cost_lo))
- continue;
-
- node = __gconv_modules_db;
- while (node != NULL)
- {
- int cmpres = strcmp (current->result_set, node->from_string);
- if (cmpres == 0)
- {
- /* Walk through the list of modules with this prefix and
- try to match the name. */
- struct gconv_module *runp;
-
- /* Check all the modules with this prefix. */
- runp = node;
- do
- {
- const char *result_set = (strcmp (runp->to_string, "-") == 0
- ? (toset_expand ?: toset)
- : runp->to_string);
- int cost_hi = runp->cost_hi + current->cost_hi;
- int cost_lo = runp->cost_lo + current->cost_lo;
- struct derivation_step *step;
-
- /* We managed to find a derivation. First see whether
- we have reached one of the goal nodes. */
- if (strcmp (result_set, toset) == 0
- || (toset_expand != NULL
- && strcmp (result_set, toset_expand) == 0))
- {
- /* Append to the `solution' list if there
- is no entry with this name. */
- for (step = solution; step != NULL; step = step->next)
- if (strcmp (result_set, step->result_set) == 0)
- break;
-
- if (step == NULL)
- {
- step = NEW_STEP (result_set,
- cost_hi, cost_lo,
- runp, current);
- step->next = solution;
- solution = step;
- }
- else if (step->cost_hi > cost_hi
- || (step->cost_hi == cost_hi
- && step->cost_lo > cost_lo))
- {
- /* A better path was found for the node,
- on the `solution' list. */
- step->code = runp;
- step->last = current;
- step->cost_hi = cost_hi;
- step->cost_lo = cost_lo;
- }
-
- /* Update best_cost accordingly. */
- if (cost_hi < best_cost_hi
- || (cost_hi == best_cost_hi
- && cost_lo < best_cost_lo))
- {
- best_cost_hi = cost_hi;
- best_cost_lo = cost_lo;
- }
- }
- else if (cost_hi < best_cost_hi
- || (cost_hi == best_cost_hi
- && cost_lo < best_cost_lo))
- {
- /* Append at the end of the `first' list if there
- is no entry with this name. */
- for (step = first; step != NULL; step = step->next)
- if (strcmp (result_set, step->result_set) == 0)
- break;
-
- if (step == NULL)
- {
- *lastp = NEW_STEP (result_set,
- cost_hi, cost_lo,
- runp, current);
- lastp = &(*lastp)->next;
- }
- else if (step->cost_hi > cost_hi
- || (step->cost_hi == cost_hi
- && step->cost_lo > cost_lo))
- {
- /* A better path was found for the node,
- on the `first' list. */
- step->code = runp;
- step->last = current;
-
- /* Update the cost for all steps. */
- for (step = first; step != NULL;
- step = step->next)
- /* But don't update the start nodes. */
- if (step->code != NULL)
- {
- struct derivation_step *back;
- int hi, lo;
-
- hi = step->code->cost_hi;
- lo = step->code->cost_lo;
-
- for (back = step->last; back->code != NULL;
- back = back->last)
- {
- hi += back->code->cost_hi;
- lo += back->code->cost_lo;
- }
-
- step->cost_hi = hi;
- step->cost_lo = lo;
- }
-
- /* Likewise for the nodes on the solution list.
- Also update best_cost accordingly. */
- for (step = solution; step != NULL;
- step = step->next)
- {
- step->cost_hi = (step->code->cost_hi
- + step->last->cost_hi);
- step->cost_lo = (step->code->cost_lo
- + step->last->cost_lo);
-
- if (step->cost_hi < best_cost_hi
- || (step->cost_hi == best_cost_hi
- && step->cost_lo < best_cost_lo))
- {
- best_cost_hi = step->cost_hi;
- best_cost_lo = step->cost_lo;
- }
- }
- }
- }
-
- runp = runp->same;
- }
- while (runp != NULL);
-
- break;
- }
- else if (cmpres < 0)
- node = node->left;
- else
- node = node->right;
- }
- }
-
- if (solution != NULL)
- {
- /* We really found a way to do the transformation. */
-
- /* Choose the best solution. This is easy because we know that
- the solution list has at most length 2 (one for every possible
- goal node). */
- if (solution->next != NULL)
- {
- struct derivation_step *solution2 = solution->next;
-
- if (solution2->cost_hi < solution->cost_hi
- || (solution2->cost_hi == solution->cost_hi
- && solution2->cost_lo < solution->cost_lo))
- solution = solution2;
- }
-
- /* Now build a data structure describing the transformation steps. */
- result = gen_steps (solution, toset_expand ?: toset,
- fromset_expand ?: fromset, handle, nsteps);
- }
- else
- {
- /* We haven't found a transformation. Clear the result values. */
- *handle = NULL;
- *nsteps = 0;
- }
-
- /* Add result in any case to list of known derivations. */
- add_derivation (fromset_expand ?: fromset, toset_expand ?: toset,
- *handle, *nsteps);
-
- return result;
-}
-
-
-/* Control of initialization. */
-__libc_once_define (static, once);
-
-
-static const char *
-do_lookup_alias (const char *name)
-{
- struct gconv_alias key;
- struct gconv_alias **found;
-
- key.fromname = (char *) name;
- found = tfind (&key, &__gconv_alias_db, __gconv_alias_compare);
- return found != NULL ? (*found)->toname : NULL;
-}
-
-
-int
-internal_function
-__gconv_compare_alias (const char *name1, const char *name2)
-{
- int result;
-
- /* Ensure that the configuration data is read. */
- __libc_once (once, __gconv_read_conf);
-
- if (__gconv_compare_alias_cache (name1, name2, &result) != 0)
- result = strcmp (do_lookup_alias (name1) ?: name1,
- do_lookup_alias (name2) ?: name2);
-
- return result;
-}
-
-
-int
-internal_function
-__gconv_find_transform (const char *toset, const char *fromset,
- struct __gconv_step **handle, size_t *nsteps,
- int flags)
-{
- const char *fromset_expand;
- const char *toset_expand;
- int result;
-
- /* Ensure that the configuration data is read. */
- __libc_once (once, __gconv_read_conf);
-
- /* Acquire the lock. */
-#ifdef HAVE_DD_LOCK
- __lock_acquire(lock);
-#endif
-
- result = __gconv_lookup_cache (toset, fromset, handle, nsteps, flags);
- if (result != __GCONV_NODB)
- {
- /* We have a cache and could resolve the request, successful or not. */
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
- return result;
- }
-
- /* If we don't have a module database return with an error. */
- if (__gconv_modules_db == NULL)
- {
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
- return __GCONV_NOCONV;
- }
-
- /* See whether the names are aliases. */
- fromset_expand = do_lookup_alias (fromset);
- toset_expand = do_lookup_alias (toset);
-
- if (__builtin_expect (flags & GCONV_AVOID_NOCONV, 0)
- /* We are not supposed to create a pseudo transformation (means
- copying) when the input and output character set are the same. */
- && (strcmp (toset, fromset) == 0
- || (toset_expand != NULL && strcmp (toset_expand, fromset) == 0)
- || (fromset_expand != NULL
- && (strcmp (toset, fromset_expand) == 0
- || (toset_expand != NULL
- && strcmp (toset_expand, fromset_expand) == 0)))))
- {
- /* Both character sets are the same. */
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
- return __GCONV_NOCONV;
- }
-
- result = find_derivation (toset, toset_expand, fromset, fromset_expand,
- handle, nsteps);
-
- /* Release the lock. */
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
-
- /* The following code is necessary since `find_derivation' will return
- GCONV_OK even when no derivation was found but the same request
- was processed before. I.e., negative results will also be cached. */
- return (result == __GCONV_OK
- ? (*handle == NULL ? __GCONV_NOCONV : __GCONV_OK)
- : result);
-}
-
-
-/* Release the entries of the modules list. */
-int
-internal_function
-__gconv_close_transform (struct __gconv_step *steps, size_t nsteps)
-{
- int result = __GCONV_OK;
- size_t cnt;
-
- /* Acquire the lock. */
-#ifdef HAVE_DD_LOCK
- __lock_acquire(lock);
-#endif
-
-
-#ifndef STATIC_GCONV
- cnt = nsteps;
- while (cnt-- > 0)
- __gconv_release_step (&steps[cnt]);
-#endif
-
- /* If we use the cache we free a bit more since we don't keep any
- transformation records around, they are cheap enough to
- recreate. */
- __gconv_release_cache (steps, nsteps);
-
- /* Release the lock. */
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
-
- return result;
-}
-
-
-/* Free the modules mentioned. */
-static void
-internal_function
-free_modules_db (struct gconv_module *node)
-{
- if (node->left != NULL)
- free_modules_db (node->left);
- if (node->right != NULL)
- free_modules_db (node->right);
- do
- {
- struct gconv_module *act = node;
- node = node->same;
- if (act->module_name[0] == '/')
- free (act);
- }
- while (node != NULL);
-}
-
-
-/* Free all resources if necessary. */
-static void __attribute__ ((unused))
-free_mem (void)
-{
- if (__gconv_alias_db != NULL)
- tdestroy (__gconv_alias_db, free);
-
- if (__gconv_modules_db != NULL)
- free_modules_db (__gconv_modules_db);
-
- if (known_derivations != NULL)
- tdestroy (known_derivations, free_derivation);
-}
-
-text_set_element (__libc_subfreeres, free_mem);
diff --git a/newlib/libc/sys/linux/iconv/gconv_dl.c b/newlib/libc/sys/linux/iconv/gconv_dl.c
deleted file mode 100644
index ee725149f..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_dl.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Handle loading/unloading of shared object for transformation.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <search.h>
-#include <stdlib.h>
-#include <string.h>
-#include <bits/libc-lock.h>
-#include <sys/param.h>
-#include <ltdl.h>
-
-#include <gconv_int.h>
-
-
-#ifdef DEBUG
-/* For debugging purposes. */
-static void print_all (void);
-#endif
-
-
-/* This is a tuning parameter. If a transformation module is not used
- anymore it gets not immediately unloaded. Instead we wait a certain
- number of load attempts for further modules. If none of the
- subsequent load attempts name the same object it finally gets unloaded.
- Otherwise it is still available which hopefully is the frequent case.
- The following number is the number of unloading attempts we wait
- before unloading. */
-#define TRIES_BEFORE_UNLOAD 2
-
-/* Array of loaded objects. This is shared by all threads so we have
- to use semaphores to access it. */
-static void *loaded;
-
-/* Comparison function for searching `loaded_object' tree. */
-static int
-known_compare (const void *p1, const void *p2)
-{
- const struct __gconv_loaded_object *s1 =
- (const struct __gconv_loaded_object *) p1;
- const struct __gconv_loaded_object *s2 =
- (const struct __gconv_loaded_object *) p2;
-
- return strcmp (s1->name, s2->name);
-}
-
-/* Open the gconv database if necessary. A non-negative return value
- means success. */
-struct __gconv_loaded_object *
-internal_function
-__gconv_find_shlib (const char *name)
-{
- struct __gconv_loaded_object *found;
- void *keyp;
-
-
-
- /* Search the tree of shared objects previously requested. Data in
- the tree are `loaded_object' structures, whose first member is a
- `const char *', the lookup key. The search returns a pointer to
- the tree node structure; the first member of the is a pointer to
- our structure (i.e. what will be a `loaded_object'); since the
- first member of that is the lookup key string, &FCT_NAME is close
- enough to a pointer to our structure to use as a lookup key that
- will be passed to `known_compare' (above). */
-
- keyp = tfind (&name, &loaded, known_compare);
- if (keyp == NULL)
- {
- /* This name was not known before. */
- size_t namelen = strlen (name) + 1;
-
- found = malloc (sizeof (struct __gconv_loaded_object) + namelen);
- if (found != NULL)
- {
- /* Point the tree node at this new structure. */
- found->name = (char *) memcpy (found + 1, name, namelen);
- found->counter = -TRIES_BEFORE_UNLOAD - 1;
- found->handle = NULL;
-
- if (__builtin_expect (tsearch (found, &loaded, known_compare)
- == NULL, 0))
- {
- /* Something went wrong while inserting the entry. */
- free (found);
- found = NULL;
- }
- }
- }
- else
- found = *(struct __gconv_loaded_object **) keyp;
-
- /* Try to load the shared object if the usage count is 0. This
- implies that if the shared object is not loadable, the handle is
- NULL and the usage count > 0. */
- if (found != NULL)
- {
- if (found->counter < -TRIES_BEFORE_UNLOAD)
- {
- assert (found->handle == NULL);
- found->handle = __libc_dlopen (found->name);
- if (found->handle != NULL)
- {
- found->fct = __libc_dlsym (found->handle, "gconv");
- if (found->fct == NULL)
- {
- /* Argh, no conversion function. There is something
- wrong here. */
- __gconv_release_shlib (found);
- found = NULL;
- }
- else
- {
- found->init_fct = __libc_dlsym (found->handle, "gconv_init");
- found->end_fct = __libc_dlsym (found->handle, "gconv_end");
-
- /* We have succeeded in loading the shared object. */
- found->counter = 1;
- }
- }
- else
- /* Error while loading the shared object. */
- found = NULL;
- }
- else if (found->handle != NULL)
- found->counter = MAX (found->counter + 1, 1);
- }
-
- return found;
-}
-
-
-/* This is very ugly but the tsearch functions provide no way to pass
- information to the walker function. So we use a global variable.
- It is MT safe since we use a lock. */
-static struct __gconv_loaded_object *release_handle;
-
-static void
-do_release_shlib (void *nodep, VISIT value, int level)
-{
- struct __gconv_loaded_object *obj = *(struct __gconv_loaded_object **) nodep;
-
-
-
- if (value != preorder && value != leaf)
- return;
-
- if (obj == release_handle)
- {
- /* This is the object we want to unload. Now decrement the
- reference counter. */
- assert (obj->counter > 0);
- --obj->counter;
- }
- else if (obj->counter <= 0 && obj->counter >= -TRIES_BEFORE_UNLOAD
- && --obj->counter < -TRIES_BEFORE_UNLOAD && obj->handle != NULL)
- {
- /* Unload the shared object. */
- __libc_dlclose (obj->handle);
- obj->handle = NULL;
- }
-}
-
-
-/* Notify system that a shared object is not longer needed. */
-void
-internal_function
-__gconv_release_shlib (struct __gconv_loaded_object *handle)
-{
- /* Urgh, this is ugly but we have no other possibility. */
- release_handle = handle;
-
- /* Process all entries. Please note that we also visit entries
- with release counts <= 0. This way we can finally unload them
- if necessary. */
- twalk (loaded, (void *) do_release_shlib);
-}
-
-
-/* We run this if we debug the memory allocation. */
-static void
-do_release_all (void *nodep)
-{
- struct __gconv_loaded_object *obj = (struct __gconv_loaded_object *) nodep;
-
-
- /* Unload the shared object. */
- if (obj->handle != NULL)
- __libc_dlclose (obj->handle);
-
- free (obj);
-}
-
-static void __attribute__ ((unused))
-free_mem (void)
-{
- tdestroy (loaded, do_release_all);
-}
-text_set_element (__libc_subfreeres, free_mem);
-
-
-#ifdef DEBUG
-static void
-do_print (const void *nodep, VISIT value, int level)
-{
- struct __gconv_loaded_object *obj = *(struct __gconv_loaded_object **) nodep;
-
- printf ("%10s: \"%s\", %d\n",
- value == leaf ? "leaf" :
- value == preorder ? "preorder" :
- value == postorder ? "postorder" : "endorder",
- obj->name, obj->counter);
-}
-
-static void
-print_all (void)
-{
- __twalk (loaded, do_print);
-}
-#endif
diff --git a/newlib/libc/sys/linux/iconv/gconv_int.h b/newlib/libc/sys/linux/iconv/gconv_int.h
deleted file mode 100644
index bcd50a2c6..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_int.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _GCONV_INT_H
-#define _GCONV_INT_H 1
-
-#include "gconv.h"
-#include <libc-symbols.h>
-
-__BEGIN_DECLS
-
-
-/* Type to represent search path. */
-struct path_elem
-{
- const char *name;
- size_t len;
-};
-
-/* Variable with search path for `gconv' implementation. */
-extern struct path_elem *__gconv_path_elem;
-/* Maximum length of a single path element. */
-extern size_t __gconv_max_path_elem_len;
-
-
-/* Structure for alias definition. Simply two strings. */
-struct gconv_alias
-{
- char *fromname;
- char *toname;
-};
-
-
-/* How many character should be conveted in one call? */
-#define GCONV_NCHAR_GOAL 8160
-
-
-/* Structure describing one loaded shared object. This normally are
- objects to perform conversation but as a special case the db shared
- object is also handled. */
-struct __gconv_loaded_object
-{
- /* Name of the object. It must be the first structure element. */
- const char *name;
-
- /* Reference counter for the db functionality. If no conversion is
- needed we unload the db library. */
- int counter;
-
- /* The handle for the shared object. */
- void *handle;
-
- /* Pointer to the functions the module defines. */
- __gconv_fct fct;
- __gconv_init_fct init_fct;
- __gconv_end_fct end_fct;
-};
-
-
-/* Description for an available conversion module. */
-struct gconv_module
-{
- const char *from_string;
- const char *to_string;
-
- int cost_hi;
- int cost_lo;
-
- const char *module_name;
-
- struct gconv_module *left; /* Prefix smaller. */
- struct gconv_module *same; /* List of entries with identical prefix. */
- struct gconv_module *right; /* Prefix larger. */
-};
-
-
-/* Internal data structure to represent transliteration module. */
-struct trans_struct
-{
- const char *name;
- struct trans_struct *next;
-
- const char **csnames;
- size_t ncsnames;
- __gconv_trans_fct trans_fct;
- __gconv_trans_context_fct trans_context_fct;
- __gconv_trans_init_fct trans_init_fct;
- __gconv_trans_end_fct trans_end_fct;
-};
-
-
-/* Flags for `gconv_open'. */
-enum
-{
- GCONV_AVOID_NOCONV = 1 << 0
-};
-
-
-/* Global variables. */
-
-/* Database of alias names. */
-extern void *__gconv_alias_db;
-
-/* Array with available modules. */
-extern size_t __gconv_nmodules;
-extern struct gconv_module *__gconv_modules_db;
-
-/* Value of the GCONV_PATH environment variable. */
-extern const char *__gconv_path_envvar;
-
-
-/* The gconv functions expects the name to be in upper case and complete,
- including the trailing slashes if necessary. */
-#define norm_add_slashes(str,suffix) \
- ({ \
- const char *cp = (str); \
- char *result; \
- char *tmp; \
- size_t cnt = 0; \
- size_t suffix_len = (suffix) == NULL ? 0 : strlen (suffix); \
- \
- while (*cp != '\0') \
- if (*cp++ == '/') \
- ++cnt; \
- \
- tmp = result = alloca (cp - (str) + 3 + suffix_len); \
- cp = (str); \
- while (*cp != '\0') \
- *tmp++ = __toupper_l (*cp++, &_nl_C_locobj); \
- if (cnt < 2) \
- { \
- *tmp++ = '/'; \
- if (cnt < 1) \
- { \
- *tmp++ = '/'; \
- if (suffix != NULL) \
- { \
- tmp = memcpy (tmp, suffix, suffix_len); \
- tmp += suffix_len; \
- } \
- } \
- } \
- *tmp = '\0'; \
- result; \
- })
-
-
-/* Return in *HANDLE decriptor for transformation from FROMSET to TOSET. */
-extern int __gconv_open (const char *toset, const char *fromset,
- __gconv_t *handle, int flags)
- internal_function;
-
-/* Free resources associated with transformation descriptor CD. */
-extern int __gconv_close (__gconv_t cd)
- internal_function;
-
-/* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF
- according to rules described by CD and place up to *OUTBYTESLEFT
- bytes in buffer starting at *OUTBUF. Return number of non-identical
- conversions in *IRREVERSIBLE if this pointer is not null. */
-extern int __gconv (__gconv_t cd, const unsigned char **inbuf,
- const unsigned char *inbufend, unsigned char **outbuf,
- unsigned char *outbufend, size_t *irreversible)
- internal_function;
-
-/* Return in *HANDLE a pointer to an array with *NSTEPS elements describing
- the single steps necessary for transformation from FROMSET to TOSET. */
-extern int __gconv_find_transform (const char *toset, const char *fromset,
- struct __gconv_step **handle,
- size_t *nsteps, int flags)
- internal_function;
-
-/* Search for transformation in cache data. */
-extern int __gconv_lookup_cache (const char *toset, const char *fromset,
- struct __gconv_step **handle, size_t *nsteps,
- int flags)
- internal_function;
-
-/* Compare the two name for whether they are after alias expansion the
- same. This function uses the cache and fails if none is
- loaded. */
-extern int __gconv_compare_alias_cache (const char *name1, const char *name2,
- int *result) internal_function;
-
-/* Free data associated with a step's structure. */
-extern void __gconv_release_step (struct __gconv_step *step)
- internal_function;
-
-/* Read all the configuration data and cache it. */
-extern void __gconv_read_conf (void);
-
-/* Try to read module cache file. */
-extern int __gconv_load_cache (void) internal_function;
-
-/* Determine the directories we are looking in. */
-extern void __gconv_get_path (void);
-
-/* Comparison function to search alias. */
-extern int __gconv_alias_compare (const void *p1, const void *p2);
-
-/* Clear reference to transformation step implementations which might
- cause the code to be unloaded. */
-extern int __gconv_close_transform (struct __gconv_step *steps,
- size_t nsteps)
- internal_function;
-
-/* Free all resources allocated for the transformation record when
- using the cache. */
-extern void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
- internal_function;
-
-/* Load shared object named by NAME. If already loaded increment reference
- count. */
-extern struct __gconv_loaded_object *__gconv_find_shlib (const char *name)
- internal_function;
-
-/* Release shared object. If no further reference is available unload
- the object. */
-extern void __gconv_release_shlib (struct __gconv_loaded_object *handle)
- internal_function;
-
-/* Fill STEP with information about builtin module with NAME. */
-extern void __gconv_get_builtin_trans (const char *name,
- struct __gconv_step *step)
- internal_function;
-
-/* Try to load transliteration step module. */
-extern int __gconv_translit_find (struct trans_struct *trans)
- internal_function;
-
-/* Transliteration using the locale's data. */
-extern int __gconv_transliterate (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- void *trans_data,
- __const unsigned char *inbufstart,
- __const unsigned char **inbufp,
- __const unsigned char *inbufend,
- unsigned char **outbufstart,
- size_t *irreversible);
-
-
-/* Builtin transformations. */
-#ifdef _LIBC
-# define __BUILTIN_TRANS(Name) \
- extern int Name (struct __gconv_step *step, \
- struct __gconv_step_data *data, \
- const unsigned char **inbuf, \
- const unsigned char *inbufend, \
- unsigned char **outbufstart, size_t *irreversible, \
- int do_flush, int consume_incomplete)
-
-__BUILTIN_TRANS (__gconv_transform_ascii_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_ascii);
-__BUILTIN_TRANS (__gconv_transform_utf8_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_utf8);
-__BUILTIN_TRANS (__gconv_transform_ucs2_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_ucs2);
-__BUILTIN_TRANS (__gconv_transform_ucs2reverse_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_ucs2reverse);
-__BUILTIN_TRANS (__gconv_transform_internal_ucs4);
-__BUILTIN_TRANS (__gconv_transform_ucs4_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_ucs4le);
-__BUILTIN_TRANS (__gconv_transform_ucs4le_internal);
-__BUILTIN_TRANS (__gconv_transform_internal_utf16);
-__BUILTIN_TRANS (__gconv_transform_utf16_internal);
-# undef __BUITLIN_TRANS
-
-#endif
-
-__END_DECLS
-
-#endif /* gconv_int.h */
diff --git a/newlib/libc/sys/linux/iconv/gconv_open.c b/newlib/libc/sys/linux/iconv/gconv_open.c
deleted file mode 100644
index 5c10d601e..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_open.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/* Find matching transformation algorithms and initialize steps.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gconv_int.h>
-
-int
-internal_function
-__gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
- int flags)
-{
- struct __gconv_step *steps;
- size_t nsteps;
- __gconv_t result = NULL;
- size_t cnt = 0;
- int res;
- int conv_flags = 0;
- const char *errhand;
- const char *ignore;
- struct trans_struct *trans = NULL;
- char old_locale[20], *old_locale_p;
- char *old, *new;
- size_t len;
-
- /* Find out whether any error handling method is specified. */
- errhand = strchr (toset, '/');
- if (errhand != NULL)
- errhand = strchr (errhand + 1, '/');
- if (__builtin_expect (errhand != NULL, 1))
- {
- if (*++errhand == '\0')
- errhand = NULL;
- else
- {
- /* Make copy without the error handling description. */
- char *newtoset = (char *) alloca (errhand - toset + 1);
- char *tok;
- char *ptr;
-
- newtoset[errhand - toset] = '\0';
- toset = memcpy (newtoset, toset, errhand - toset);
-
- /* Find the appropriate transliteration handlers. */
- old = (char *)(errhand);
- len = strlen (old) + 1;
- new = (char *) alloca (len);
- tok = (char *) memcpy (new, old, len);
-
- tok = strtok_r (tok, ",", &ptr);
-
- /* Set locale to default C locale. */
- old_locale_p = setlocale(LC_ALL, "C");
- strncpy(old_locale, old_locale_p, 20);
-
- while (tok != NULL)
- {
- if (strcasecmp (tok, "TRANSLIT") == 0)
- {
- /* It's the builtin transliteration handling. We only
- support it for working on the internal encoding. */
- static const char *internal_trans_names[1] = { "INTERNAL" };
- struct trans_struct *lastp = NULL;
- struct trans_struct *runp;
-
- for (runp = trans; runp != NULL; runp = runp->next)
- if (runp->trans_fct == __gconv_transliterate)
- break;
- else
- lastp = runp;
-
- if (runp == NULL)
- {
- struct trans_struct *newp;
-
- newp = (struct trans_struct *) alloca (sizeof (*newp));
- memset (newp, '\0', sizeof (*newp));
-
- /* We leave the `name' field zero to signal that
- this is an internal transliteration step. */
- newp->csnames = internal_trans_names;
- newp->ncsnames = 1;
- newp->trans_fct = __gconv_transliterate;
-
- if (lastp == NULL)
- trans = newp;
- else
- lastp->next = newp;
- }
- }
- else if (strcasecmp (tok, "IGNORE") == 0)
- /* Set the flag to ignore all errors. */
- conv_flags |= __GCONV_IGNORE_ERRORS;
- else
- {
- /* `tok' is possibly a module name. We'll see later
- whether we can find it. But first see that we do
- not already a module of this name. */
- struct trans_struct *lastp = NULL;
- struct trans_struct *runp;
-
- for (runp = trans; runp != NULL; runp = runp->next)
- if (runp->name != NULL
- && strcasecmp (tok, runp->name) == 0)
- break;
- else
- lastp = runp;
-
- if (runp == NULL)
- {
- struct trans_struct *newp;
-
- newp = (struct trans_struct *) alloca (sizeof (*newp));
- memset (newp, '\0', sizeof (*newp));
- newp->name = tok;
-
- if (lastp == NULL)
- trans = newp;
- else
- lastp->next = newp;
- }
- }
-
- tok = strtok_r (NULL, ",", &ptr);
- }
- }
- }
-
- /* For the source character set we ignore the error handler specification.
- XXX Is this really always the best? */
- ignore = strchr (fromset, '/');
- if (ignore != NULL && (ignore = strchr (ignore + 1, '/')) != NULL
- && *++ignore != '\0')
- {
- char *newfromset = (char *) alloca (ignore - fromset + 1);
-
- newfromset[ignore - fromset] = '\0';
- fromset = memcpy (newfromset, fromset, ignore - fromset);
- }
-
- res = __gconv_find_transform (toset, fromset, &steps, &nsteps, flags);
- if (res == __GCONV_OK)
- {
- /* Find the modules. */
- struct trans_struct *lastp = NULL;
- struct trans_struct *runp;
-
- for (runp = trans; runp != NULL; runp = runp->next)
- {
- if (runp->name == NULL
- || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
- lastp = runp;
- else
- /* This means we haven't found the module. Remove it. */
- (lastp == NULL ? trans : lastp->next) = runp->next;
- }
-
- /* Allocate room for handle. */
- result = (__gconv_t) malloc (sizeof (struct __gconv_info)
- + (nsteps
- * sizeof (struct __gconv_step_data)));
- if (result == NULL)
- res = __GCONV_NOMEM;
- else
- {
- size_t n;
-
- /* Remember the list of steps. */
- result->__steps = steps;
- result->__nsteps = nsteps;
-
- /* Clear the array for the step data. */
- memset (result->__data, '\0',
- nsteps * sizeof (struct __gconv_step_data));
-
- /* Call all initialization functions for the transformation
- step implementations. */
- for (cnt = 0; cnt < nsteps; ++cnt)
- {
- size_t size;
-
- /* Would have to be done if we would not clear the whole
- array above. */
-#if 0
- /* Reset the counter. */
- result->__data[cnt].__invocation_counter = 0;
-
- /* It's a regular use. */
- result->__data[cnt].__internal_use = 0;
-#endif
-
- /* We use the `mbstate_t' member in DATA. */
- result->__data[cnt].__statep = &result->__data[cnt].__state;
-
- /* Now see whether we can use any of the transliteration
- modules for this step. */
- for (runp = trans; runp != NULL; runp = runp->next)
- for (n = 0; n < runp->ncsnames; ++n)
- if (strcasecmp (steps[cnt].__from_name, runp->csnames[n]) == 0)
- {
- void *data = NULL;
-
- /* Match! Now try the initializer. */
- if (runp->trans_init_fct == NULL
- || (runp->trans_init_fct (&data,
- steps[cnt].__to_name)
- == __GCONV_OK))
- {
- /* Append at the end of the list. */
- struct __gconv_trans_data *newp;
- struct __gconv_trans_data **lastp;
-
- newp = (struct __gconv_trans_data *)
- malloc (sizeof (struct __gconv_trans_data));
- if (newp == NULL)
- {
- res = __GCONV_NOMEM;
- goto bail;
- }
-
- newp->__trans_fct = runp->trans_fct;
- newp->__trans_context_fct = runp->trans_context_fct;
- newp->__trans_end_fct = runp->trans_end_fct;
- newp->__data = data;
- newp->__next = NULL;
-
- lastp = &result->__data[cnt].__trans;
- while (*lastp != NULL)
- lastp = &(*lastp)->__next;
-
- *lastp = newp;
- }
- break;
- }
-
- /* If this is the last step we must not allocate an
- output buffer. */
- if (cnt < nsteps - 1)
- {
- result->__data[cnt].__flags = conv_flags;
-
- /* Allocate the buffer. */
- size = (GCONV_NCHAR_GOAL * steps[cnt].__max_needed_to);
-
- result->__data[cnt].__outbuf = (char *) malloc (size);
- if (result->__data[cnt].__outbuf == NULL)
- {
- res = __GCONV_NOMEM;
- goto bail;
- }
-
- result->__data[cnt].__outbufend =
- result->__data[cnt].__outbuf + size;
- }
- else
- {
- /* Handle the last entry. */
- result->__data[cnt].__flags = conv_flags | __GCONV_IS_LAST;
-
- break;
- }
- }
- }
-
- if (res != __GCONV_OK)
- {
- /* Something went wrong. Free all the resources. */
- int serrno;
- bail:
- serrno = errno;
-
- if (result != NULL)
- {
- while (cnt-- > 0)
- {
- struct __gconv_trans_data *transp;
-
- transp = result->__data[cnt].__trans;
- while (transp != NULL)
- {
- struct __gconv_trans_data *curp = transp;
- transp = transp->__next;
-
- if (__builtin_expect (curp->__trans_end_fct != NULL, 0))
- curp->__trans_end_fct (curp->__data);
-
- free (curp);
- }
-
- free (result->__data[cnt].__outbuf);
- }
-
- free (result);
- result = NULL;
- }
-
- __gconv_close_transform (steps, nsteps);
-
- __set_errno (serrno);
- }
- }
-
- *handle = result;
- setlocale(LC_ALL, old_locale);
- return res;
-}
diff --git a/newlib/libc/sys/linux/iconv/gconv_simple.c b/newlib/libc/sys/linux/iconv/gconv_simple.c
deleted file mode 100644
index a4a99ea81..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_simple.c
+++ /dev/null
@@ -1,1327 +0,0 @@
-/* Simple transformations functions.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <byteswap.h>
-#include <dlfcn.h>
-#include <endian.h>
-#include <errno.h>
-#include <gconv.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#include <sys/param.h>
-
-#define BUILTIN_ALIAS(s1, s2) /* nothing */
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT) \
- extern int Fct (struct __gconv_step *, struct __gconv_step_data *, \
- __const unsigned char **, __const unsigned char *, \
- unsigned char **, size_t *, int, int);
-#include "gconv_builtin.h"
-
-
-#ifndef EILSEQ
-# define EILSEQ EINVAL
-#endif
-
-
-/* Transform from the internal, UCS4-like format, to UCS4. The
- difference between the internal ucs4 format and the real UCS4
- format is, if any, the endianess. The Unicode/ISO 10646 says that
- unless some higher protocol specifies it differently, the byte
- order is big endian.*/
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_ucs4_loop
-#define TO_LOOP internal_ucs4_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_internal_ucs4
-
-
-static inline int
-internal_ucs4_loop (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- /* Sigh, we have to do some real work. */
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
-
- *inptrp = inptr;
- *outptrp = outptr;
-#elif __BYTE_ORDER == __BIG_ENDIAN
- /* Simply copy the data. */
- *inptrp = inptr + n_convert * 4;
- *outptrp = memcpy (outptr, inptr, n_convert * 4);
- *outptrp += n_convert * 4;
-#else
-# error "This endianess is not supported."
-#endif
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-
-#ifndef _STRING_ARCH_unaligned
-static inline int
-internal_ucs4_loop_unaligned (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
-
-# if __BYTE_ORDER == __LITTLE_ENDIAN
- /* Sigh, we have to do some real work. */
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4, outptr += 4)
- {
- outptr[0] = inptr[3];
- outptr[1] = inptr[2];
- outptr[2] = inptr[1];
- outptr[3] = inptr[0];
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-# elif __BYTE_ORDER == __BIG_ENDIAN
- /* Simply copy the data. */
- *inptrp = inptr + n_convert * 4;
- *outptrp = memcpy (outptr, inptr, n_convert * 4);
- *outptrp += n_convert * 4;
-# else
-# error "This endianess is not supported."
-# endif
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-#endif
-
-
-static inline int
-internal_ucs4_loop_single (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- mbstate_t *state = step_data->__statep;
- size_t cnt = state->__count & 7;
-
- while (*inptrp < inend && cnt < 4)
- state->__value.__wchb[cnt++] = *(*inptrp)++;
-
- if (__builtin_expect (cnt < 4, 0))
- {
- /* Still not enough bytes. Store the ones in the input buffer. */
- state->__count &= ~7;
- state->__count |= cnt;
-
- return __GCONV_INCOMPLETE_INPUT;
- }
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[3];
- (*outptrp)[1] = state->__value.__wchb[2];
- (*outptrp)[2] = state->__value.__wchb[1];
- (*outptrp)[3] = state->__value.__wchb[0];
-
- *outptrp += 4;
-#elif __BYTE_ORDER == __BIG_ENDIAN
- /* XXX unaligned */
- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
-#else
-# error "This endianess is not supported."
-#endif
-
- /* Clear the state buffer. */
- state->__count &= ~7;
-
- return __GCONV_OK;
-}
-
-#include <iconv/skeleton.c>
-
-
-/* Transform from UCS4 to the internal, UCS4-like format. Unlike
- for the other direction we have to check for correct values here. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP ucs4_internal_loop
-#define TO_LOOP ucs4_internal_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_ucs4_internal
-
-
-static inline int
-ucs4_internal_loop (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- int flags = step_data->__flags;
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- {
- uint32_t inval;
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- inval = bswap_32 (*(const uint32_t *) inptr);
-#else
- inval = *(const uint32_t *) inptr;
-#endif
-
- if (__builtin_expect (inval > 0x7fffffff, 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (irreversible == NULL)
- /* We are transliterating, don't try to correct anything. */
- return __GCONV_ILLEGAL_INPUT;
-
- if (flags & __GCONV_IGNORE_ERRORS)
- {
- /* Just ignore this character. */
- ++*irreversible;
- continue;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
- return __GCONV_ILLEGAL_INPUT;
- }
-
- *((uint32_t *) outptr)++ = inval;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-
-#ifndef _STRING_ARCH_unaligned
-static inline int
-ucs4_internal_loop_unaligned (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- int flags = step_data->__flags;
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- {
- if (__builtin_expect (inptr[0] > 0x80, 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (irreversible == NULL)
- /* We are transliterating, don't try to correct anything. */
- return __GCONV_ILLEGAL_INPUT;
-
- if (flags & __GCONV_IGNORE_ERRORS)
- {
- /* Just ignore this character. */
- ++*irreversible;
- continue;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
- return __GCONV_ILLEGAL_INPUT;
- }
-
-# if __BYTE_ORDER == __LITTLE_ENDIAN
- outptr[3] = inptr[0];
- outptr[2] = inptr[1];
- outptr[1] = inptr[2];
- outptr[0] = inptr[3];
-# else
- outptr[0] = inptr[0];
- outptr[1] = inptr[1];
- outptr[2] = inptr[2];
- outptr[3] = inptr[3];
-# endif
- outptr += 4;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-#endif
-
-
-static inline int
-ucs4_internal_loop_single (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- mbstate_t *state = step_data->__statep;
- int flags = step_data->__flags;
- size_t cnt = state->__count & 7;
-
- while (*inptrp < inend && cnt < 4)
- state->__value.__wchb[cnt++] = *(*inptrp)++;
-
- if (__builtin_expect (cnt < 4, 0))
- {
- /* Still not enough bytes. Store the ones in the input buffer. */
- state->__count &= ~7;
- state->__count |= cnt;
-
- return __GCONV_INCOMPLETE_INPUT;
- }
-
- if (__builtin_expect (((unsigned char *) state->__value.__wchb)[0] > 0x80,
- 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (!(flags & __GCONV_IGNORE_ERRORS))
- {
- *inptrp -= cnt - (state->__count & 7);
- return __GCONV_ILLEGAL_INPUT;
- }
- }
- else
- {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[3];
- (*outptrp)[1] = state->__value.__wchb[2];
- (*outptrp)[2] = state->__value.__wchb[1];
- (*outptrp)[3] = state->__value.__wchb[0];
-#elif __BYTE_ORDER == __BIG_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[0];
- (*outptrp)[1] = state->__value.__wchb[1];
- (*outptrp)[2] = state->__value.__wchb[2];
- (*outptrp)[3] = state->__value.__wchb[3];
-#endif
-
- *outptrp += 4;
- }
-
- /* Clear the state buffer. */
- state->__count &= ~7;
-
- return __GCONV_OK;
-}
-
-#include <iconv/skeleton.c>
-
-
-/* Similarly for the little endian form. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_ucs4le_loop
-#define TO_LOOP internal_ucs4le_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_internal_ucs4le
-
-
-static inline int
-internal_ucs4le_loop (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
-
-#if __BYTE_ORDER == __BIG_ENDIAN
- /* Sigh, we have to do some real work. */
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
-
- *inptrp = inptr;
- *outptrp = outptr;
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
- /* Simply copy the data. */
- *inptrp = inptr + n_convert * 4;
- *outptrp = memcpy (outptr, inptr, n_convert * 4);
- *outptrp += n_convert * 4;
-#else
-# error "This endianess is not supported."
-#endif
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-
-#ifndef _STRING_ARCH_unaligned
-static inline int
-internal_ucs4le_loop_unaligned (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
-
-# if __BYTE_ORDER == __BIG_ENDIAN
- /* Sigh, we have to do some real work. */
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4, outptr += 4)
- {
- outptr[0] = inptr[3];
- outptr[1] = inptr[2];
- outptr[2] = inptr[1];
- outptr[3] = inptr[0];
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-# elif __BYTE_ORDER == __LITTLE_ENDIAN
- /* Simply copy the data. */
- *inptrp = inptr + n_convert * 4;
- *outptrp = memcpy (outptr, inptr, n_convert * 4);
- *outptrp += n_convert * 4;
-# else
-# error "This endianess is not supported."
-# endif
-
- /* Determine the status. */
- if (*inptrp + 4 > inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-#endif
-
-
-static inline int
-internal_ucs4le_loop_single (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- mbstate_t *state = step_data->__statep;
- size_t cnt = state->__count & 7;
-
- while (*inptrp < inend && cnt < 4)
- state->__value.__wchb[cnt++] = *(*inptrp)++;
-
- if (__builtin_expect (cnt < 4, 0))
- {
- /* Still not enough bytes. Store the ones in the input buffer. */
- state->__count &= ~7;
- state->__count |= cnt;
-
- return __GCONV_INCOMPLETE_INPUT;
- }
-
-#if __BYTE_ORDER == __BIG_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[3];
- (*outptrp)[1] = state->__value.__wchb[2];
- (*outptrp)[2] = state->__value.__wchb[1];
- (*outptrp)[3] = state->__value.__wchb[0];
-
- *outptrp += 4;
-#else
- /* XXX unaligned */
- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
-#endif
-
- /* Clear the state buffer. */
- state->__count &= ~7;
-
- return __GCONV_OK;
-}
-
-#include <iconv/skeleton.c>
-
-
-/* And finally from UCS4-LE to the internal encoding. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP ucs4le_internal_loop
-#define TO_LOOP ucs4le_internal_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_ucs4le_internal
-
-
-static inline int
-ucs4le_internal_loop (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- int flags = step_data->__flags;
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- {
- uint32_t inval;
-
-#if __BYTE_ORDER == __BIG_ENDIAN
- inval = bswap_32 (*(const uint32_t *) inptr);
-#else
- inval = *(const uint32_t *) inptr;
-#endif
-
- if (__builtin_expect (inval > 0x7fffffff, 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (irreversible == NULL)
- /* We are transliterating, don't try to correct anything. */
- return __GCONV_ILLEGAL_INPUT;
-
- if (flags & __GCONV_IGNORE_ERRORS)
- {
- /* Just ignore this character. */
- ++*irreversible;
- continue;
- }
-
- return __GCONV_ILLEGAL_INPUT;
- }
-
- *((uint32_t *) outptr)++ = inval;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-
-#ifndef _STRING_ARCH_unaligned
-static inline int
-ucs4le_internal_loop_unaligned (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- int flags = step_data->__flags;
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
- int result;
- size_t cnt;
-
- for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- {
- if (__builtin_expect (inptr[3] > 0x80, 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (irreversible == NULL)
- /* We are transliterating, don't try to correct anything. */
- return __GCONV_ILLEGAL_INPUT;
-
- if (flags & __GCONV_IGNORE_ERRORS)
- {
- /* Just ignore this character. */
- ++*irreversible;
- continue;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
- return __GCONV_ILLEGAL_INPUT;
- }
-
-# if __BYTE_ORDER == __BIG_ENDIAN
- outptr[3] = inptr[0];
- outptr[2] = inptr[1];
- outptr[1] = inptr[2];
- outptr[0] = inptr[3];
-# else
- outptr[0] = inptr[0];
- outptr[1] = inptr[1];
- outptr[2] = inptr[2];
- outptr[3] = inptr[3];
-# endif
-
- outptr += 4;
- }
-
- *inptrp = inptr;
- *outptrp = outptr;
-
- /* Determine the status. */
- if (*inptrp == inend)
- result = __GCONV_EMPTY_INPUT;
- else if (*outptrp + 4 > outend)
- result = __GCONV_FULL_OUTPUT;
- else
- result = __GCONV_INCOMPLETE_INPUT;
-
- return result;
-}
-#endif
-
-
-static inline int
-ucs4le_internal_loop_single (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible)
-{
- mbstate_t *state = step_data->__statep;
- int flags = step_data->__flags;
- size_t cnt = state->__count & 7;
-
- while (*inptrp < inend && cnt < 4)
- state->__value.__wchb[cnt++] = *(*inptrp)++;
-
- if (__builtin_expect (cnt < 4, 0))
- {
- /* Still not enough bytes. Store the ones in the input buffer. */
- state->__count &= ~7;
- state->__count |= cnt;
-
- return __GCONV_INCOMPLETE_INPUT;
- }
-
- if (__builtin_expect (((unsigned char *) state->__value.__wchb)[3] > 0x80,
- 0))
- {
- /* The value is too large. We don't try transliteration here since
- this is not an error because of the lack of possibilities to
- represent the result. This is a genuine bug in the input since
- UCS4 does not allow such values. */
- if (!(flags & __GCONV_IGNORE_ERRORS))
- return __GCONV_ILLEGAL_INPUT;
- }
- else
- {
-#if __BYTE_ORDER == __BIG_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[3];
- (*outptrp)[1] = state->__value.__wchb[2];
- (*outptrp)[2] = state->__value.__wchb[1];
- (*outptrp)[3] = state->__value.__wchb[0];
-#elif __BYTE_ORDER == __BIG_ENDIAN
- (*outptrp)[0] = state->__value.__wchb[0];
- (*outptrp)[1] = state->__value.__wchb[1];
- (*outptrp)[2] = state->__value.__wchb[2];
- (*outptrp)[3] = state->__value.__wchb[3];
-#endif
-
- *outptrp += 4;
- }
-
- /* Clear the state buffer. */
- state->__count &= ~7;
-
- return __GCONV_OK;
-}
-
-#include <iconv/skeleton.c>
-
-
-/* Convert from ISO 646-IRV to the internal (UCS4-like) format. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 1
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP ascii_internal_loop
-#define TO_LOOP ascii_internal_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_ascii_internal
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- if (__builtin_expect (*inptr > '\x7f', 0)) \
- { \
- /* The value is too large. We don't try transliteration here since \
- this is not an error because of the lack of possibilities to \
- represent the result. This is a genuine bug in the input since \
- ASCII does not allow such values. */ \
- if (! ignore_errors_p ()) \
- { \
- /* This is no correct ANSI_X3.4-1968 character. */ \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
- ++*irreversible; \
- ++inptr; \
- } \
- else \
- /* It's an one byte sequence. */ \
- *((uint32_t *) outptr)++ = *inptr++; \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from the internal (UCS4-like) format to ISO 646-IRV. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 1
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_ascii_loop
-#define TO_LOOP internal_ascii_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_internal_ascii
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- if (__builtin_expect (*((const uint32_t *) inptr) > 0x7f, 0)) \
- { \
- UNICODE_TAG_HANDLER (*((const uint32_t *) inptr), 4); \
- STANDARD_ERR_HANDLER (4); \
- } \
- else \
- /* It's an one byte sequence. */ \
- *outptr++ = *((const uint32_t *) inptr)++; \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from the internal (UCS4-like) format to UTF-8. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 1
-#define MAX_NEEDED_TO 6
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_utf8_loop
-#define TO_LOOP internal_utf8_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_internal_utf8
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define MAX_NEEDED_OUTPUT MAX_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint32_t wc = *((const uint32_t *) inptr); \
- \
- if (wc < 0x80) \
- /* It's an one byte sequence. */ \
- *outptr++ = (unsigned char) wc; \
- else if (__builtin_expect (wc <= 0x7fffffff, 1)) \
- { \
- size_t step; \
- char *start; \
- \
- for (step = 2; step < 6; ++step) \
- if ((wc & (~(uint32_t)0 << (5 * step + 1))) == 0) \
- break; \
- \
- if (__builtin_expect (outptr + step > outend, 0)) \
- { \
- /* Too long. */ \
- result = __GCONV_FULL_OUTPUT; \
- break; \
- } \
- \
- start = outptr; \
- *outptr = (unsigned char) (~0xff >> step); \
- outptr += step; \
- --step; \
- do \
- { \
- start[step] = 0x80 | (wc & 0x3f); \
- wc >>= 6; \
- } \
- while (--step > 0); \
- start[0] |= wc; \
- } \
- else \
- { \
- STANDARD_ERR_HANDLER (4); \
- } \
- \
- inptr += 4; \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from UTF-8 to the internal (UCS4-like) format. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 6
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP utf8_internal_loop
-#define TO_LOOP utf8_internal_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_utf8_internal
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_INPUT MAX_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint32_t ch; \
- uint32_t cnt; \
- uint32_t i; \
- \
- /* Next input byte. */ \
- ch = *inptr; \
- \
- if (ch < 0x80) \
- { \
- /* One byte sequence. */ \
- cnt = 1; \
- ++inptr; \
- } \
- else \
- { \
- if (ch >= 0xc2 && ch < 0xe0) \
- { \
- /* We expect two bytes. The first byte cannot be 0xc0 or 0xc1, \
- otherwise the wide character could have been represented \
- using a single byte. */ \
- cnt = 2; \
- ch &= 0x1f; \
- } \
- else if (__builtin_expect ((ch & 0xf0) == 0xe0, 1)) \
- { \
- /* We expect three bytes. */ \
- cnt = 3; \
- ch &= 0x0f; \
- } \
- else if (__builtin_expect ((ch & 0xf8) == 0xf0, 1)) \
- { \
- /* We expect four bytes. */ \
- cnt = 4; \
- ch &= 0x07; \
- } \
- else if (__builtin_expect ((ch & 0xfc) == 0xf8, 1)) \
- { \
- /* We expect five bytes. */ \
- cnt = 5; \
- ch &= 0x03; \
- } \
- else if (__builtin_expect ((ch & 0xfe) == 0xfc, 1)) \
- { \
- /* We expect six bytes. */ \
- cnt = 6; \
- ch &= 0x01; \
- } \
- else \
- { \
- int skipped; \
- \
- if (! ignore_errors_p ()) \
- { \
- /* This is an illegal encoding. */ \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
- /* Search the end of this ill-formed UTF-8 character. This \
- is the next byte with (x & 0xc0) != 0x80. */ \
- skipped = 0; \
- do \
- { \
- ++inptr; \
- ++skipped; \
- } \
- while (inptr < inend && (*inptr & 0xc0) == 0x80 && skipped < 5); \
- \
- continue; \
- } \
- \
- if (__builtin_expect (inptr + cnt > inend, 0)) \
- { \
- /* We don't have enough input. But before we report that check \
- that all the bytes are correct. */ \
- for (i = 1; inptr + i < inend; ++i) \
- if ((inptr[i] & 0xc0) != 0x80) \
- break; \
- \
- if (__builtin_expect (inptr + i == inend, 1)) \
- { \
- result = __GCONV_INCOMPLETE_INPUT; \
- break; \
- } \
- \
- if (ignore_errors_p ()) \
- { \
- /* Ignore it. */ \
- inptr += i; \
- ++*irreversible; \
- continue; \
- } \
- \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
- /* Read the possible remaining bytes. */ \
- for (i = 1; i < cnt; ++i) \
- { \
- uint32_t byte = inptr[i]; \
- \
- if ((byte & 0xc0) != 0x80) \
- /* This is an illegal encoding. */ \
- break; \
- \
- ch <<= 6; \
- ch |= byte & 0x3f; \
- } \
- \
- /* If i < cnt, some trail byte was not >= 0x80, < 0xc0. \
- If cnt > 2 and ch < 2^(5*cnt-4), the wide character ch could \
- have been represented with fewer than cnt bytes. */ \
- if (i < cnt || (cnt > 2 && (ch >> (5 * cnt - 4)) == 0)) \
- { \
- /* This is an illegal encoding. */ \
- if (ignore_errors_p ()) \
- { \
- inptr += i; \
- ++*irreversible; \
- continue; \
- } \
- \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
- inptr += cnt; \
- } \
- \
- /* Now adjust the pointers and store the result. */ \
- *((uint32_t *) outptr)++ = ch; \
- }
-#define LOOP_NEED_FLAGS
-
-#define STORE_REST \
- { \
- /* We store the remaining bytes while converting them into the UCS4 \
- format. We can assume that the first byte in the buffer is \
- correct and that it requires a larger number of bytes than there \
- are in the input buffer. */ \
- wint_t ch = **inptrp; \
- size_t cnt; \
- \
- state->__count = inend - *inptrp; \
- \
- if (ch >= 0xc2 && ch < 0xe0) \
- { \
- /* We expect two bytes. The first byte cannot be 0xc0 or \
- 0xc1, otherwise the wide character could have been \
- represented using a single byte. */ \
- cnt = 2; \
- ch &= 0x1f; \
- } \
- else if (__builtin_expect ((ch & 0xf0) == 0xe0, 1)) \
- { \
- /* We expect three bytes. */ \
- cnt = 3; \
- ch &= 0x0f; \
- } \
- else if (__builtin_expect ((ch & 0xf8) == 0xf0, 1)) \
- { \
- /* We expect four bytes. */ \
- cnt = 4; \
- ch &= 0x07; \
- } \
- else if (__builtin_expect ((ch & 0xfc) == 0xf8, 1)) \
- { \
- /* We expect five bytes. */ \
- cnt = 5; \
- ch &= 0x03; \
- } \
- else \
- { \
- /* We expect six bytes. */ \
- cnt = 6; \
- ch &= 0x01; \
- } \
- \
- /* The first byte is already consumed. */ \
- --cnt; \
- while (++(*inptrp) < inend) \
- { \
- ch <<= 6; \
- ch |= **inptrp & 0x3f; \
- --cnt; \
- } \
- \
- /* Shift for the so far missing bytes. */ \
- ch <<= cnt * 6; \
- \
- /* Store the value. */ \
- state->__value.__wch = ch; \
- }
-
-#define UNPACK_BYTES \
- { \
- wint_t wch = state->__value.__wch; \
- size_t ntotal; \
- inlen = state->__count; \
- \
- if (state->__value.__wch <= 0x7ff) \
- { \
- bytebuf[0] = 0xc0; \
- ntotal = 2; \
- } \
- else if (__builtin_expect (state->__value.__wch <= 0xffff, 1)) \
- { \
- bytebuf[0] = 0xe0; \
- ntotal = 3; \
- } \
- else if (__builtin_expect (state->__value.__wch < 0x1fffff, 1)) \
- { \
- bytebuf[0] = 0xf0; \
- ntotal = 4; \
- } \
- else if (__builtin_expect (state->__value.__wch < 0x3ffffff, 1)) \
- { \
- bytebuf[0] = 0xf8; \
- ntotal = 5; \
- } \
- else \
- { \
- bytebuf[0] = 0xfc; \
- ntotal = 6; \
- } \
- \
- do \
- { \
- if (--ntotal < inlen) \
- bytebuf[ntotal] = 0x80 | (wch & 0x3f); \
- wch >>= 6; \
- } \
- while (ntotal > 1); \
- \
- bytebuf[0] |= wch; \
- }
-
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from UCS2 to the internal (UCS4-like) format. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 2
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP ucs2_internal_loop
-#define TO_LOOP ucs2_internal_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_ucs2_internal
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint16_t u1 = *((const uint16_t *) inptr); \
- \
- if (__builtin_expect (u1 >= 0xd800 && u1 < 0xe000, 0)) \
- { \
- /* Surrogate characters in UCS-2 input are not valid. Reject \
- them. (Catching this here is not security relevant.) */ \
- if (! ignore_errors_p ()) \
- { \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- inptr += 2; \
- ++*irreversible; \
- continue; \
- } \
- \
- *((uint32_t *) outptr)++ = u1; \
- inptr += 2; \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from the internal (UCS4-like) format to UCS2. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 2
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_ucs2_loop
-#define TO_LOOP internal_ucs2_loop /* This is not used. */
-#define FUNCTION_NAME __gconv_transform_internal_ucs2
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint32_t val = *((const uint32_t *) inptr); \
- \
- if (__builtin_expect (val >= 0x10000, 0)) \
- { \
- UNICODE_TAG_HANDLER (val, 4); \
- STANDARD_ERR_HANDLER (4); \
- } \
- else if (__builtin_expect (val >= 0xd800 && val < 0xe000, 0)) \
- { \
- /* Surrogate characters in UCS-4 input are not valid. \
- We must catch this, because the UCS-2 output might be \
- interpreted as UTF-16 by other programs. If we let \
- surrogates pass through, attackers could make a security \
- hole exploit by synthesizing any desired plane 1-16 \
- character. */ \
- if (! ignore_errors_p ()) \
- { \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- inptr += 4; \
- ++*irreversible; \
- continue; \
- } \
- else \
- { \
- *((uint16_t *) outptr)++ = val; \
- inptr += 4; \
- } \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from UCS2 in other endianness to the internal (UCS4-like) format. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 2
-#define MIN_NEEDED_TO 4
-#define FROM_DIRECTION 1
-#define FROM_LOOP ucs2reverse_internal_loop
-#define TO_LOOP ucs2reverse_internal_loop/* This is not used.*/
-#define FUNCTION_NAME __gconv_transform_ucs2reverse_internal
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint16_t u1 = bswap_16 (*((const uint16_t *) inptr)); \
- \
- if (__builtin_expect (u1 >= 0xd800 && u1 < 0xe000, 0)) \
- { \
- /* Surrogate characters in UCS-2 input are not valid. Reject \
- them. (Catching this here is not security relevant.) */ \
- if (! ignore_errors_p ()) \
- { \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- inptr += 2; \
- ++*irreversible; \
- continue; \
- } \
- \
- *((uint32_t *) outptr)++ = u1; \
- inptr += 2; \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
-
-
-/* Convert from the internal (UCS4-like) format to UCS2 in other endianness. */
-#define DEFINE_INIT 0
-#define DEFINE_FINI 0
-#define MIN_NEEDED_FROM 4
-#define MIN_NEEDED_TO 2
-#define FROM_DIRECTION 1
-#define FROM_LOOP internal_ucs2reverse_loop
-#define TO_LOOP internal_ucs2reverse_loop/* This is not used.*/
-#define FUNCTION_NAME __gconv_transform_internal_ucs2reverse
-#define ONE_DIRECTION 1
-
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define LOOPFCT FROM_LOOP
-#define BODY \
- { \
- uint32_t val = *((const uint32_t *) inptr); \
- if (__builtin_expect (val >= 0x10000, 0)) \
- { \
- UNICODE_TAG_HANDLER (val, 4); \
- STANDARD_ERR_HANDLER (4); \
- } \
- else if (__builtin_expect (val >= 0xd800 && val < 0xe000, 0)) \
- { \
- /* Surrogate characters in UCS-4 input are not valid. \
- We must catch this, because the UCS-2 output might be \
- interpreted as UTF-16 by other programs. If we let \
- surrogates pass through, attackers could make a security \
- hole exploit by synthesizing any desired plane 1-16 \
- character. */ \
- if (! ignore_errors_p ()) \
- { \
- result = __GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- inptr += 4; \
- ++*irreversible; \
- continue; \
- } \
- else \
- { \
- *((uint16_t *) outptr)++ = bswap_16 (val); \
- inptr += 4; \
- } \
- }
-#define LOOP_NEED_FLAGS
-#include <iconv/loop.c>
-#include <iconv/skeleton.c>
diff --git a/newlib/libc/sys/linux/iconv/gconv_trans.c b/newlib/libc/sys/linux/iconv/gconv_trans.c
deleted file mode 100644
index dcc1004e1..000000000
--- a/newlib/libc/sys/linux/iconv/gconv_trans.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Transliteration using the locale's data.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <search.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <dirent.h>
-#include <ltdl.h>
-
-#include "gconv_int.h"
-#include "localeinfo.h"
-
-int
-__gconv_transliterate (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- void *trans_data __attribute__ ((unused)),
- const unsigned char *inbufstart,
- const unsigned char **inbufp,
- const unsigned char *inbufend,
- unsigned char **outbufstart, size_t *irreversible)
-{
- return 0;
-}
-
-
-/* Structure to represent results of found (or not) transliteration
- modules. */
-struct known_trans
-{
- /* This structure must remain the first member. */
- struct trans_struct info;
-
- char *fname;
- void *handle;
- int open_count;
-};
-
-
-/* Tree with results of previous calls to __gconv_translit_find. */
-static void *search_tree;
-
-/* We modify global data. */
-__LOCK_INIT(static, lock);
-
-/* Compare two transliteration entries. */
-static int
-trans_compare (const void *p1, const void *p2)
-{
- const struct known_trans *s1 = (const struct known_trans *) p1;
- const struct known_trans *s2 = (const struct known_trans *) p2;
-
- return strcmp (s1->info.name, s2->info.name);
-}
-
-
-/* Open (maybe reopen) the module named in the struct. Get the function
- and data structure pointers we need. */
-static int
-open_translit (struct known_trans *trans)
-{
- __gconv_trans_query_fct queryfct;
-
- trans->handle = __libc_dlopen (trans->fname);
- if (trans->handle == NULL)
- /* Not available. */
- return 1;
-
- /* Find the required symbol. */
- queryfct = __libc_dlsym (trans->handle, "gconv_trans_context");
- if (queryfct == NULL)
- {
- /* We cannot live with that. */
- close_and_out:
- __libc_dlclose (trans->handle);
- trans->handle = NULL;
- return 1;
- }
-
- /* Get the context. */
- if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames)
- != 0)
- goto close_and_out;
-
- /* Of course we also have to have the actual function. */
- trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans");
- if (trans->info.trans_fct == NULL)
- goto close_and_out;
-
- /* Now the optional functions. */
- trans->info.trans_init_fct =
- __libc_dlsym (trans->handle, "gconv_trans_init");
- trans->info.trans_context_fct =
- __libc_dlsym (trans->handle, "gconv_trans_context");
- trans->info.trans_end_fct =
- __libc_dlsym (trans->handle, "gconv_trans_end");
-
- trans->open_count = 1;
-
- return 0;
-}
-
-
-int
-internal_function
-__gconv_translit_find (struct trans_struct *trans)
-{
- struct known_trans **found;
- const struct path_elem *runp;
- int res = 1;
-
- /* We have to have a name. */
- assert (trans->name != NULL);
-
- /* Acquire the lock. */
-#ifdef HAVE_DD_LOCK
- __lock_acquire(lock);
-#endif
-
- /* See whether we know this module already. */
- found = tfind (trans, &search_tree, trans_compare);
- if (found != NULL)
- {
- /* Is this module available? */
- if ((*found)->handle != NULL)
- {
- /* Maybe we have to reopen the file. */
- if ((*found)->handle != (void *) -1)
- /* The object is not unloaded. */
- res = 0;
- else if (open_translit (*found) == 0)
- {
- /* Copy the data. */
- *trans = (*found)->info;
- (*found)->open_count++;
- res = 0;
- }
- }
- }
- else
- {
- size_t name_len = strlen (trans->name) + 1;
- int need_so = 0;
- struct known_trans *newp;
-
- /* We have to continue looking for the module. */
- if (__gconv_path_elem == NULL)
- __gconv_get_path ();
-
- /* See whether we have to append .so. */
- if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0)
- need_so = 1;
-
- /* Create a new entry. */
- newp = (struct known_trans *) malloc (sizeof (struct known_trans)
- + (__gconv_max_path_elem_len
- + name_len + 3)
- + name_len);
- if (newp != NULL)
- {
- char *cp;
-
- /* Clear the struct. */
- memset (newp, '\0', sizeof (struct known_trans));
-
- /* Store a copy of the module name. */
- newp->info.name = cp = (char *) (newp + 1);
- cp = memcpy (cp, trans->name, name_len);
- cp += name_len;
-
- newp->fname = cp;
-
- /* Search in all the directories. */
- for (runp = __gconv_path_elem; runp->name != NULL; ++runp)
- {
- strcpy ((char *) newp->fname, runp->name);
- while(newp->fname != '\0') newp->fname++;
-
- cp = memcpy (newp->fname,
- trans->name, name_len);
- cp += name_len;
- if (need_so)
- memcpy (cp, ".so", sizeof (".so"));
-
- if (open_translit (newp) == 0)
- {
- /* We found a module. */
- res = 0;
- break;
- }
- }
-
- if (res)
- newp->fname = NULL;
-
- /* In any case we'll add the entry to our search tree. */
- if (tsearch (newp, &search_tree, trans_compare) == NULL)
- {
- /* Yickes, this should not happen. Unload the object. */
- res = 1;
- /* XXX unload here. */
- }
- }
- }
-
-#ifdef HAVE_DD_LOCK
- __lock_release(lock);
-#endif
-
- return res;
-}
diff --git a/newlib/libc/sys/linux/iconv/hash-string.h b/newlib/libc/sys/linux/iconv/hash-string.h
deleted file mode 100644
index ae4bcfb3e..000000000
--- a/newlib/libc/sys/linux/iconv/hash-string.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Implements a string hashing function.
- Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(Args) Args
-# else
-# define PARAMS(Args) ()
-# endif
-#endif
-
-/* We assume to have `unsigned long int' value with at least 32 bits. */
-#define HASHWORDBITS 32
-
-
-/* Defines the so called `hashpjw' function by P.J. Weinberger
- [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
- 1986, 1987 Bell Telephone Laboratories, Inc.] */
-static unsigned long int hash_string PARAMS ((const char *__str_param));
-
-static inline unsigned long int
-hash_string (str_param)
- const char *str_param;
-{
- unsigned long int hval, g;
- const char *str = str_param;
-
- /* Compute the hash value for the given string. */
- hval = 0;
- while (*str != '\0')
- {
- hval <<= 4;
- hval += (unsigned long int) *str++;
- g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
- if (g != 0)
- {
- hval ^= g >> (HASHWORDBITS - 8);
- hval ^= g;
- }
- }
- return hval;
-}
diff --git a/newlib/libc/sys/linux/iconv/iconv.c b/newlib/libc/sys/linux/iconv/iconv.c
deleted file mode 100644
index d0f5528f5..000000000
--- a/newlib/libc/sys/linux/iconv/iconv.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Convert characters in input buffer using conversion descriptor to
- output buffer.
- Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h> /* for NULL */
-#include <errno.h>
-#include <iconv.h>
-
-#include <gconv_int.h>
-
-#include <assert.h>
-
-
-size_t
-iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
- size_t *outbytesleft)
-{
- __gconv_t gcd = (__gconv_t) cd;
- char *outstart = outbuf ? *outbuf : NULL;
- size_t irreversible;
- int result;
-
- if (__builtin_expect (inbuf == NULL || *inbuf == NULL, 0))
- {
- if (outbuf == NULL || *outbuf == NULL)
- result = __gconv (gcd, NULL, NULL, NULL, NULL, &irreversible);
- else
- result = __gconv (gcd, NULL, NULL, (unsigned char **) outbuf,
- (unsigned char *) (outstart + *outbytesleft),
- &irreversible);
- }
- else
- {
- const char *instart = *inbuf;
-
- result = __gconv (gcd, (const unsigned char **) inbuf,
- (const unsigned char *) (*inbuf + *inbytesleft),
- (unsigned char **) outbuf,
- (unsigned char *) (*outbuf + *outbytesleft),
- &irreversible);
-
- *inbytesleft -= *inbuf - instart;
- }
- if (outstart != NULL)
- *outbytesleft -= *outbuf - outstart;
-
- switch (__builtin_expect (result, __GCONV_OK))
- {
- case __GCONV_ILLEGAL_DESCRIPTOR:
- __set_errno (EBADF);
- irreversible = (size_t) -1L;
- break;
-
- case __GCONV_ILLEGAL_INPUT:
- __set_errno (EILSEQ);
- irreversible = (size_t) -1L;
- break;
-
- case __GCONV_FULL_OUTPUT:
- __set_errno (E2BIG);
- irreversible = (size_t) -1L;
- break;
-
- case __GCONV_INCOMPLETE_INPUT:
- __set_errno (EINVAL);
- irreversible = (size_t) -1L;
- break;
-
- case __GCONV_EMPTY_INPUT:
- case __GCONV_OK:
- /* Nothing. */
- break;
-
- default:
- assert (!"Nothing like this should happen");
- }
-
- return irreversible;
-}
diff --git a/newlib/libc/sys/linux/iconv/iconv.h b/newlib/libc/sys/linux/iconv/iconv.h
deleted file mode 100644
index 5a795dc5d..000000000
--- a/newlib/libc/sys/linux/iconv/iconv.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _ICONV_H
-#define _ICONV_H 1
-
-#include <features.h>
-#define __need_size_t
-#include <stddef.h>
-
-
-__BEGIN_DECLS
-
-/* Identifier for conversion method from one codeset to another. */
-typedef void *iconv_t;
-
-
-/* Allocate descriptor for code conversion from codeset FROMCODE to
- codeset TOCODE. */
-extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode)
- __THROW;
-
-/* Convert at most *INBYTESLEFT bytes from *INBUF according to the
- code conversion algorithm specified by CD and place up to
- *OUTBYTESLEFT bytes in buffer at *OUTBUF. */
-extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
- size_t *__restrict __inbytesleft,
- char **__restrict __outbuf,
- size_t *__restrict __outbytesleft);
-
-/* Free resources allocated for descriptor CD for code conversion. */
-extern int iconv_close (iconv_t __cd) __THROW;
-
-__END_DECLS
-
-#endif /* iconv.h */
diff --git a/newlib/libc/sys/linux/iconv/iconv_charmap.c b/newlib/libc/sys/linux/iconv/iconv_charmap.c
deleted file mode 100644
index 141c8eca2..000000000
--- a/newlib/libc/sys/linux/iconv/iconv_charmap.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/* Convert using charmaps and possibly iconv().
- Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <iconv.h>
-#include <libintl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-
-#include "iconv_prog.h"
-
-
-/* Prototypes for a few program-wide used functions. */
-extern void *xmalloc (size_t __n);
-extern void *xcalloc (size_t __n, size_t __s);
-
-
-struct convtable
-{
- int term[256 / 8];
- union
- {
- struct convtable *sub;
- struct charseq *out;
- } val[256];
-};
-
-
-static inline struct convtable *
-allocate_table (void)
-{
- return (struct convtable *) xcalloc (1, sizeof (struct convtable));
-}
-
-
-static inline int
-is_term (struct convtable *tbl, unsigned int idx)
-{
- return tbl->term[idx / 8] & (1 << (idx % 8));
-}
-
-
-static inline void
-clear_term (struct convtable *tbl, unsigned int idx)
-{
- tbl->term[idx / 8] &= ~(1 << (idx % 8));
-}
-
-
-static inline void
-set_term (struct convtable *tbl, unsigned int idx)
-{
- tbl->term[idx / 8] |= 1 << (idx % 8);
-}
-
-
-/* Generate the conversion table. */
-static struct convtable *use_from_charmap (struct charmap_t *from_charmap,
- const char *to_code);
-static struct convtable *use_to_charmap (const char *from_code,
- struct charmap_t *to_charmap);
-static struct convtable *use_both_charmaps (struct charmap_t *from_charmap,
- struct charmap_t *to_charmap);
-
-/* Prototypes for the functions doing the actual work. */
-static int process_block (struct convtable *tbl, char *addr, size_t len,
- FILE *output);
-static int process_fd (struct convtable *tbl, int fd, FILE *output);
-static int process_file (struct convtable *tbl, FILE *input, FILE *output);
-
-
-int
-charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
- const char *to_code, struct charmap_t *to_charmap,
- int argc, int remaining, char *argv[], FILE *output)
-{
- struct convtable *cvtbl;
- int status = EXIT_SUCCESS;
-
- /* We have three different cases to handle:
-
- - both, from_charmap and to_charmap, are available. This means we
- can assume that the symbolic names match and use them to create
- the mapping.
-
- - only from_charmap is available. In this case we can only hope that
- the symbolic names used are of the <Uxxxx> form in which case we
- can use a UCS4->"to_code" iconv() conversion for the second step.
-
- - only to_charmap is available. This is similar, only that we would
- use iconv() for the "to_code"->UCS4 conversion.
-
- We first create a table which maps input bytes into output bytes.
- Once this is done we can handle all three of the cases above
- equally. */
- if (from_charmap != NULL)
- {
- if (to_charmap == NULL)
- cvtbl = use_from_charmap (from_charmap, to_code);
- else
- cvtbl = use_both_charmaps (from_charmap, to_charmap);
- }
- else
- {
- assert (to_charmap != NULL);
- cvtbl = use_to_charmap (from_code, to_charmap);
- }
-
- /* If we couldn't generate a table stop now. */
- if (cvtbl == NULL)
- return EXIT_FAILURE;
-
- /* We can now start the conversion. */
- if (remaining == argc)
- {
- if (process_file (cvtbl, stdin, output) != 0)
- status = EXIT_FAILURE;
- }
- else
- do
- {
- struct stat st;
- char *addr;
- int fd;
-
- if (verbose)
- printf ("%s:\n", argv[remaining]);
- if (strcmp (argv[remaining], "-") == 0)
- fd = 0;
- else
- {
- fd = open (argv[remaining], O_RDONLY);
-
- if (fd == -1)
- {
- error (0, errno, _("cannot open input file `%s'"),
- argv[remaining]);
- status = EXIT_FAILURE;
- continue;
- }
- }
-
-#ifdef _POSIX_MAPPED_FILES
- /* We have possibilities for reading the input file. First try
- to mmap() it since this will provide the fastest solution. */
- if (fstat (fd, &st) == 0
- && ((addr = mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE,
- fd, 0)) != MAP_FAILED))
- {
- /* Yes, we can use mmap(). The descriptor is not needed
- anymore. */
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno,
- _("error while closing input `%s'"), argv[remaining]);
-
- if (process_block (cvtbl, addr, st.st_size, output) < 0)
- {
- /* Something went wrong. */
- status = EXIT_FAILURE;
-
- /* We don't need the input data anymore. */
- munmap ((void *) addr, st.st_size);
-
- /* We cannot go on with producing output since it might
- lead to problem because the last output might leave
- the output stream in an undefined state. */
- break;
- }
-
- /* We don't need the input data anymore. */
- munmap ((void *) addr, st.st_size);
- }
- else
-#endif /* _POSIX_MAPPED_FILES */
- {
- /* Read the file in pieces. */
- if (process_fd (cvtbl, fd, output) != 0)
- {
- /* Something went wrong. */
- status = EXIT_FAILURE;
-
- /* We don't need the input file anymore. */
- close (fd);
-
- /* We cannot go on with producing output since it might
- lead to problem because the last output might leave
- the output stream in an undefined state. */
- break;
- }
-
- /* Now close the file. */
- close (fd);
- }
- }
- while (++remaining < argc);
-
- /* All done. */
- return status;
-}
-
-
-static void
-add_bytes (struct convtable *tbl, struct charseq *in, struct charseq *out)
-{
- int n = 0;
- unsigned int byte;
-
- assert (in->nbytes > 0);
-
- byte = ((unsigned char *) in->bytes)[n];
- while (n + 1 < in->nbytes)
- {
- if (is_term (tbl, byte) || tbl->val[byte].sub == NULL)
- {
- /* Note that we simply ignore a definition for a byte sequence
- which is also the prefix for a longer one. */
- clear_term (tbl, byte);
- tbl->val[byte].sub =
- (struct convtable *) xcalloc (1, sizeof (struct convtable));
- }
-
- tbl = tbl->val[byte].sub;
-
- byte = ((unsigned char *) in->bytes)[++n];
- }
-
- /* Only add the new sequence if there is none yet and the byte sequence
- is not part of an even longer one. */
- if (! is_term (tbl, byte) && tbl->val[byte].sub == NULL)
- {
- set_term (tbl, byte);
- tbl->val[byte].out = out;
- }
-}
-
-
-static struct convtable *
-use_from_charmap (struct charmap_t *from_charmap, const char *to_code)
-{
- /* We iterate over all entries in the from_charmap and for those which
- have a known UCS4 representation we use an iconv() call to determine
- the mapping to the to_code charset. */
- struct convtable *rettbl;
- iconv_t cd;
- void *ptr = NULL;
- const void *key;
- size_t keylen;
- void *data;
-
- cd = iconv_open (to_code, "WCHAR_T");
- if (cd == (iconv_t) -1)
- /* We cannot do anything. */
- return NULL;
-
- rettbl = allocate_table ();
-
- while (iterate_table (&from_charmap->char_table, &ptr, &key, &keylen, &data)
- >= 0)
- {
- struct charseq *in = (struct charseq *) data;
-
- if (in->ucs4 != UNINITIALIZED_CHAR_VALUE)
- {
- /* There is a chance. Try the iconv module. */
- wchar_t inbuf[1] = { in->ucs4 };
- unsigned char outbuf[64];
- char *inptr = (char *) inbuf;
- size_t inlen = sizeof (inbuf);
- char *outptr = (char *) outbuf;
- size_t outlen = sizeof (outbuf);
-
- (void) iconv (cd, &inptr, &inlen, &outptr, &outlen);
-
- if (outptr != (char *) outbuf)
- {
- /* We got some output. Good, use it. */
- struct charseq *newp;
-
- outlen = sizeof (outbuf) - outlen;
- assert ((char *) outbuf + outlen == outptr);
-
- newp = (struct charseq *) xmalloc (sizeof (struct charseq)
- + outlen);
- newp->name = in->name;
- newp->ucs4 = in->ucs4;
- newp->nbytes = outlen;
- memcpy (newp->bytes, outbuf, outlen);
-
- add_bytes (rettbl, in, newp);
- }
-
- /* Clear any possible state left behind. */
- (void) iconv (cd, NULL, NULL, NULL, NULL);
- }
- }
-
- iconv_close (cd);
-
- return rettbl;
-}
-
-
-static struct convtable *
-use_to_charmap (const char *from_code, struct charmap_t *to_charmap)
-{
- /* We iterate over all entries in the to_charmap and for those which
- have a known UCS4 representation we use an iconv() call to determine
- the mapping to the from_code charset. */
- struct convtable *rettbl;
- iconv_t cd;
- void *ptr = NULL;
- const void *key;
- size_t keylen;
- void *data;
-
- /* Note that the conversion we use here is the reverse direction. Without
- exhaustive search we cannot figure out which input yields the UCS4
- character we are looking for. Therefore we determine it the other
- way round. */
- cd = iconv_open (from_code, "WCHAR_T");
- if (cd == (iconv_t) -1)
- /* We cannot do anything. */
- return NULL;
-
- rettbl = allocate_table ();
-
- while (iterate_table (&to_charmap->char_table, &ptr, &key, &keylen, &data)
- >= 0)
- {
- struct charseq *out = (struct charseq *) data;
-
- if (out->ucs4 != UNINITIALIZED_CHAR_VALUE)
- {
- /* There is a chance. Try the iconv module. */
- wchar_t inbuf[1] = { out->ucs4 };
- unsigned char outbuf[64];
- char *inptr = (char *) inbuf;
- size_t inlen = sizeof (inbuf);
- char *outptr = (char *) outbuf;
- size_t outlen = sizeof (outbuf);
-
- (void) iconv (cd, &inptr, &inlen, &outptr, &outlen);
-
- if (outptr != (char *) outbuf)
- {
- /* We got some output. Good, use it. */
- struct charseq *newp;
-
- outlen = sizeof (outbuf) - outlen;
- assert ((char *) outbuf + outlen == outptr);
-
- newp = (struct charseq *) xmalloc (sizeof (struct charseq)
- + outlen);
- newp->name = out->name;
- newp->ucs4 = out->ucs4;
- newp->nbytes = outlen;
- memcpy (newp->bytes, outbuf, outlen);
-
- add_bytes (rettbl, newp, out);
- }
-
- /* Clear any possible state left behind. */
- (void) iconv (cd, NULL, NULL, NULL, NULL);
- }
- }
-
- iconv_close (cd);
-
- return rettbl;
-}
-
-
-static struct convtable *
-use_both_charmaps (struct charmap_t *from_charmap,
- struct charmap_t *to_charmap)
-{
- /* In this case we iterate over all the entries in the from_charmap,
- determine the internal name, and find an appropriate entry in the
- to_charmap (if it exists). */
- struct convtable *rettbl = allocate_table ();
- void *ptr = NULL;
- const void *key;
- size_t keylen;
- void *data;
-
- while (iterate_table (&from_charmap->char_table, &ptr, &key, &keylen, &data)
- >= 0)
- {
- struct charseq *in = (struct charseq *) data;
- struct charseq *out = charmap_find_value (to_charmap, key, keylen);
-
- if (out != NULL)
- add_bytes (rettbl, in, out);
- }
-
- return rettbl;
-}
-
-
-static int
-process_block (struct convtable *tbl, char *addr, size_t len, FILE *output)
-{
- size_t n = 0;
-
- while (n < len)
- {
- struct convtable *cur = tbl;
- unsigned char *curp = (unsigned char *) addr;
- unsigned int byte = *curp;
- int cnt;
- struct charseq *out;
-
- while (! is_term (cur, byte))
- if (cur->val[byte].sub == NULL)
- {
- /* This is a invalid sequence. Skip the first byte if we are
- ignoring errors. Otherwise punt. */
- if (! omit_invalid)
- {
- error (0, 0, _("illegal input sequence at position %Zd"), n);
- return -1;
- }
-
- n -= curp - (unsigned char *) addr;
-
- byte = *(curp = (unsigned char *) ++addr);
- if (++n >= len)
- /* All converted. */
- return 0;
-
- cur = tbl;
- }
- else
- {
- cur = cur->val[byte].sub;
-
- if (++n >= len)
- {
- error (0, 0, _("\
-incomplete character or shift sequence at end of buffer"));
- return -1;
- }
-
- byte = *++curp;
- }
-
- /* We found a final byte. Write the output bytes. */
- out = cur->val[byte].out;
- for (cnt = 0; cnt < out->nbytes; ++cnt)
- fputc_unlocked (out->bytes[cnt], output);
-
- addr = (char *) curp + 1;
- ++n;
- }
-
- return 0;
-}
-
-
-static int
-process_fd (struct convtable *tbl, int fd, FILE *output)
-{
- /* we have a problem with reading from a desriptor since we must not
- provide the iconv() function an incomplete character or shift
- sequence at the end of the buffer. Since we have to deal with
- arbitrary encodings we must read the whole text in a buffer and
- process it in one step. */
- static char *inbuf = NULL;
- static size_t maxlen = 0;
- char *inptr = NULL;
- size_t actlen = 0;
-
- while (actlen < maxlen)
- {
- ssize_t n = read (fd, inptr, maxlen - actlen);
-
- if (n == 0)
- /* No more text to read. */
- break;
-
- if (n == -1)
- {
- /* Error while reading. */
- error (0, errno, _("error while reading the input"));
- return -1;
- }
-
- inptr += n;
- actlen += n;
- }
-
- if (actlen == maxlen)
- while (1)
- {
- ssize_t n;
-
- /* Increase the buffer. */
- maxlen += 32768;
- inbuf = realloc (inbuf, maxlen);
- if (inbuf == NULL)
- error (0, errno, _("unable to allocate buffer for input"));
- inptr = inbuf + actlen;
-
- do
- {
- n = read (fd, inptr, maxlen - actlen);
-
- if (n == 0)
- /* No more text to read. */
- break;
-
- if (n == -1)
- {
- /* Error while reading. */
- error (0, errno, _("error while reading the input"));
- return -1;
- }
-
- inptr += n;
- actlen += n;
- }
- while (actlen < maxlen);
-
- if (n == 0)
- /* Break again so we leave both loops. */
- break;
- }
-
- /* Now we have all the input in the buffer. Process it in one run. */
- return process_block (tbl, inbuf, actlen, output);
-}
-
-
-static int
-process_file (struct convtable *tbl, FILE *input, FILE *output)
-{
- /* This should be safe since we use this function only for `stdin' and
- we haven't read anything so far. */
- return process_fd (tbl, fileno (input), output);
-}
diff --git a/newlib/libc/sys/linux/iconv/iconv_close.c b/newlib/libc/sys/linux/iconv/iconv_close.c
deleted file mode 100644
index 038acc69e..000000000
--- a/newlib/libc/sys/linux/iconv/iconv_close.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Release any resource associated with given conversion descriptor.
- Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <iconv.h>
-
-#include <gconv_int.h>
-
-
-int
-iconv_close (iconv_t cd)
-{
- if (__builtin_expect (cd == (iconv_t *) -1L, 0))
- {
- __set_errno (EBADF);
- return -1;
- }
-
- return __gconv_close ((__gconv_t) cd) ? -1 : 0;
-}
diff --git a/newlib/libc/sys/linux/iconv/iconv_open.c b/newlib/libc/sys/linux/iconv/iconv_open.c
deleted file mode 100644
index ac44af80c..000000000
--- a/newlib/libc/sys/linux/iconv/iconv_open.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Get descriptor for character set conversion.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <iconv.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gconv_int.h>
-#include "gconv_charset.h"
-
-
-iconv_t
-iconv_open (const char *tocode, const char *fromcode)
-{
- char *tocode_conv;
- char *fromcode_conv;
- size_t tocode_len;
- size_t fromcode_len;
- __gconv_t cd;
- int res;
-
- /* Normalize the name. We remove all characters beside alpha-numeric,
- '_', '-', '/', and '.'. */
- tocode_len = strlen (tocode);
- tocode_conv = alloca (tocode_len + 3);
- strip (tocode_conv, tocode);
- tocode = tocode_conv[2] == '\0' ? upstr (tocode_conv, tocode) : tocode_conv;
-
- fromcode_len = strlen (fromcode);
- fromcode_conv = alloca (fromcode_len + 3);
- strip (fromcode_conv, fromcode);
- fromcode = (fromcode_conv[2] == '\0'
- ? upstr (fromcode_conv, fromcode) : fromcode_conv);
-
- res = __gconv_open (tocode, fromcode, &cd, 0);
-
- if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
- {
- /* We must set the error number according to the specs. */
- if (res == __GCONV_NOCONV || res == __GCONV_NODB)
- __set_errno (EINVAL);
-
- return (iconv_t) -1;
- }
-
- return (iconv_t) cd;
-}
diff --git a/newlib/libc/sys/linux/iconv/iconvconfig.c b/newlib/libc/sys/linux/iconv/iconvconfig.c
deleted file mode 100644
index 8ad6c93e2..000000000
--- a/newlib/libc/sys/linux/iconv/iconvconfig.c
+++ /dev/null
@@ -1,1176 +0,0 @@
-/* Generate fastloading iconv module configuration files.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <argp.h>
-#include <assert.h>
-#include <error.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <libintl.h>
-#include <locale.h>
-#include <mcheck.h>
-#include <search.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/cdefs.h>
-#include <sys/uio.h>
-
-#include "iconvconfig.h"
-
-/* Get libc version number. */
-#include "../version.h"
-
-#define PACKAGE _libc_intl_domainname
-
-
-/* The hashing function we use. */
-#include "../intl/hash-string.h"
-
-
-/* Types used. */
-struct module
-{
- char *fromname;
- struct Strent *fromname_strent;
- char *filename;
- struct Strent *filename_strent;
- const char *directory;
- struct Strent *directory_strent;
- struct module *next;
- int cost;
- struct Strent *toname_strent;
- char toname[0];
-};
-
-struct alias
-{
- char *fromname;
- struct Strent *froment;
- struct module *module;
- struct Strent *toent;
- char toname[0];
-};
-
-struct name
-{
- const char *name;
- struct Strent *strent;
- int module_idx;
- uint32_t hashval;
-};
-
-struct name_info
-{
- const char *canonical_name;
- struct Strent *canonical_strent;
-
- struct module *from_internal;
- struct module *to_internal;
-
- struct other_conv_list
- {
- int dest_idx;
- struct other_conv
- {
- gidx_t module_idx;
- struct module *module;
- struct other_conv *next;
- } other_conv;
- struct other_conv_list *next;
- } *other_conv_list;
-};
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-/* Short description of program. */
-static const char doc[] = N_("\
-Create fastloading iconv module configuration file.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[DIR...]");
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- NULL, NULL, args_doc, doc, NULL, more_help
-};
-
-
-/* The function doing the actual work. */
-static int handle_dir (const char *dir);
-
-/* Add all known builtin conversions and aliases. */
-static void add_builtins (void);
-
-/* Create list of all aliases without circular aliases. */
-static void get_aliases (void);
-
-/* Create list of all modules. */
-static void get_modules (void);
-
-/* Get list of all the names and thereby indexing them. */
-static void generate_name_list (void);
-
-/* Collect information about all the names. */
-static void generate_name_info (void);
-
-/* Write the output file. */
-static int write_output (void);
-
-
-/* Search tree of the modules we know. */
-static void *modules;
-
-/* Search tree of the aliases we know. */
-static void *aliases;
-
-/* Search tree for name to index mapping. */
-static void *names;
-
-/* Number of names we know about. */
-static int nnames;
-
-/* List of all aliases. */
-static struct alias **alias_list;
-static size_t nalias_list;
-static size_t nalias_list_max;
-
-/* List of all modules. */
-static struct module **module_list;
-static size_t nmodule_list;
-static size_t nmodule_list_max;
-
-/* Names and information about them. */
-static struct name_info *name_info;
-static size_t nname_info;
-
-/* Number of translations not from or to INTERNAL. */
-static size_t nextra_modules;
-
-
-/* Names and aliases for the builtin transformations. */
-static struct
-{
- const char *from;
- const char *to;
-} builtin_alias[] =
- {
-#define BUILTIN_ALIAS(alias, real) \
- { .from = alias, .to = real },
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT)
-#include <gconv_builtin.h>
- };
-#undef BUILTIN_ALIAS
-#undef BUILTIN_TRANSFORMATION
-#define nbuiltin_alias (sizeof (builtin_alias) / sizeof (builtin_alias[0]))
-
-static struct
-{
- const char *from;
- const char *to;
- const char *module;
- int cost;
-} builtin_trans[] =
- {
-#define BUILTIN_ALIAS(alias, real)
-#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \
- MinT, MaxT) \
- { .from = From, .to = To, .module = Name, .cost = Cost },
-#include <gconv_builtin.h>
- };
-#define nbuiltin_trans (sizeof (builtin_trans) / sizeof (builtin_trans[0]))
-
-
-/* Filename extension for the modules. */
-#ifndef MODULE_EXT
-# define MODULE_EXT ".so"
-#endif
-static const char gconv_module_ext[] = MODULE_EXT;
-
-
-extern void *xmalloc (size_t n) __attribute_malloc__;
-extern void *xcalloc (size_t n, size_t m) __attribute_malloc__;
-extern void *xrealloc (void *p, size_t n);
-
-
-/* C string table handling. */
-struct Strtab;
-struct Strent;
-
-/* Create new C string table object in memory. */
-extern struct Strtab *strtabinit (void);
-
-/* Free resources allocated for C string table ST. */
-extern void strtabfree (struct Strtab *st);
-
-/* Add string STR (length LEN is != 0) to C string table ST. */
-extern struct Strent *strtabadd (struct Strtab *st, const char *str,
- size_t len);
-
-/* Finalize string table ST and store size in *SIZE and return a pointer. */
-extern void *strtabfinalize (struct Strtab *st, size_t *size);
-
-/* Get offset in string table for string associated with SE. */
-extern size_t strtaboffset (struct Strent *se);
-
-/* String table we construct. */
-static struct Strtab *strtab;
-
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- int status = 0;
- char *path;
- char *tp;
- const char *old = GCONV_PATH;
- size_t len = strlen (old) + 1;
- char *new = alloca(len);
-
- /* Enable memory use testing. */
- /* mcheck_pedantic (NULL); */
- mtrace ();
-
- /* Set locale via LC_ALL. */
- setlocale (LC_ALL, "");
-
- /* Set the text message domain. */
- textdomain (_libc_intl_domainname);
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- /* Initialize the string table. */
- strtab = strtabinit ();
-
- /* Handle all directories mentioned. */
- while (remaining < argc)
- status |= handle_dir (argv[remaining++]);
-
- /* In any case also handle the standard directory. */
- path = memcpy (new, old, len);
- tp = strtok (path, ":");
- while (tp != NULL)
- {
- status |= handle_dir (tp);
-
- tp = strtok (NULL, ":");
- }
-
- /* Add the builtin transformations and aliases without overwriting
- anything. */
- add_builtins ();
-
- /* Store aliases in an array. */
- get_aliases ();
-
- /* Get list of all modules. */
- get_modules ();
-
- /* Generate list of all the names we know to handle in some way. */
- generate_name_list ();
-
- /* Now we know all the names we will handle, collect information
- about them. */
- generate_name_info ();
-
- /* Write the output file, but only if we haven't seen any error. */
- if (status == 0)
- status = write_output ();
- else
- error (1, 0, _("no output file produced because warning were issued"));
-
- return status;
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- return strdup (gettext ("\
-Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"));
- default:
- break;
- }
- return (char *) text;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "iconvconfig (GNU %s) %s\n", PACKAGE, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Free Software Foundation, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2002");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-static int
-alias_compare (const void *p1, const void *p2)
-{
- const struct alias *a1 = (const struct alias *) p1;
- const struct alias *a2 = (const struct alias *) p2;
-
- return strcmp (a1->fromname, a2->fromname);
-}
-
-
-static void
-new_alias (const char *fromname, size_t fromlen, const char *toname,
- size_t tolen)
-{
- struct alias *newp;
- void **inserted;
-
- newp = (struct alias *) xmalloc (sizeof (struct alias) + fromlen + tolen);
-
- newp->fromname = memcpy (newp->toname, toname, tolen);
- newp->fromname += tolen;
- memcpy (newp->fromname, fromname, fromlen);
- newp->module = NULL;
-
- inserted = (void **) tsearch (newp, &aliases, alias_compare);
- if (inserted == NULL)
- error (EXIT_FAILURE, errno, gettext ("while inserting in search tree"));
- if (*inserted != newp)
- /* Something went wrong, free this entry. */
- free (newp);
- else
- {
- newp->froment = strtabadd (strtab, newp->fromname, fromlen);
- newp->toent = strtabadd (strtab, newp->toname, tolen);
- }
-}
-
-
-/* Add new alias. */
-static void
-add_alias (char *rp)
-{
- /* We now expect two more string. The strings are normalized
- (converted to UPPER case) and strored in the alias database. */
- char *from;
- char *to;
- char *wp;
-
- while (isspace (*rp))
- ++rp;
- from = wp = rp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (*rp == '\0')
- /* There is no `to' string on the line. Ignore it. */
- return;
- *wp++ = '\0';
- to = ++rp;
- while (isspace (*rp))
- ++rp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (to == wp)
- /* No `to' string, ignore the line. */
- return;
- *wp++ = '\0';
-
- assert (strlen (from) + 1 == to - from);
- assert (strlen (to) + 1 == wp - to);
-
- new_alias (from, to - from, to, wp - to);
-}
-
-
-static void
-append_alias (const void *nodep, VISIT value, int level)
-{
- if (value != leaf && value != postorder)
- return;
-
- if (nalias_list_max == nalias_list)
- {
- nalias_list_max += 50;
- alias_list = (struct alias **) xrealloc (alias_list,
- (nalias_list_max
- * sizeof (struct alias *)));
- }
-
- alias_list[nalias_list++] = *(struct alias **) nodep;
-}
-
-
-static void
-get_aliases (void)
-{
- twalk (aliases, append_alias);
-}
-
-
-static int
-module_compare (const void *p1, const void *p2)
-{
- const struct module *m1 = (const struct module *) p1;
- const struct module *m2 = (const struct module *) p2;
- int result;
-
- result = strcmp (m1->fromname, m2->fromname);
- if (result == 0)
- result = strcmp (m1->toname, m2->toname);
-
- return result;
-}
-
-
-/* Create new module record. */
-static void
-new_module (const char *fromname, size_t fromlen, const char *toname,
- size_t tolen, const char *directory,
- const char *filename, size_t filelen, int cost, size_t need_ext)
-{
- struct module *new_module;
- size_t dirlen = strlen (directory) + 1;
- char *tmp;
- void **inserted;
-
- new_module = (struct module *) xmalloc (sizeof (struct module)
- + fromlen + tolen + filelen
- + need_ext);
-
- new_module->fromname = memcpy (new_module->toname, toname, tolen);
- new_module->fromname += tolen;
-
- new_module->filename = memcpy (new_module->fromname, fromname, fromlen);
- new_module->filename += fromlen;
-
- new_module->cost = cost;
- new_module->next = NULL;
-
- tmp = memcpy (new_module->filename, filename, filelen);
- tmp += filelen;
-
- if (need_ext)
- {
- memcpy (tmp - 1, gconv_module_ext, need_ext + 1);
- filelen += need_ext;
- }
- new_module->directory = directory;
-
- /* Now insert the new module data structure in our search tree. */
- inserted = (void **) tsearch (new_module, &modules, module_compare);
- if (inserted == NULL)
- error (EXIT_FAILURE, errno, "while inserting in search tree");
- if (*inserted != new_module)
- free (new_module);
- else
- {
- new_module->fromname_strent = strtabadd (strtab, new_module->fromname,
- fromlen);
- new_module->toname_strent = strtabadd (strtab, new_module->toname,
- tolen);
- new_module->filename_strent = strtabadd (strtab, new_module->filename,
- filelen);
- new_module->directory_strent = strtabadd (strtab, directory, dirlen);
- }
-}
-
-
-/* Add new module. */
-static void
-internal_function
-add_module (char *rp, const char *directory)
-{
- /* We expect now
- 1. `from' name
- 2. `to' name
- 3. filename of the module
- 4. an optional cost value
- */
- char *from;
- char *to;
- char *module;
- char *wp;
- int need_ext;
- int cost;
-
- while (isspace (*rp))
- ++rp;
- from = rp;
- while (*rp != '\0' && !isspace (*rp))
- {
- *rp = toupper (*rp);
- ++rp;
- }
- if (*rp == '\0')
- return;
- *rp++ = '\0';
- to = wp = rp;
- while (isspace (*rp))
- ++rp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = toupper (*rp++);
- if (*rp == '\0')
- return;
- *wp++ = '\0';
- do
- ++rp;
- while (isspace (*rp));
- module = wp;
- while (*rp != '\0' && !isspace (*rp))
- *wp++ = *rp++;
- if (*rp == '\0')
- {
- /* There is no cost, use one by default. */
- *wp++ = '\0';
- cost = 1;
- }
- else
- {
- /* There might be a cost value. */
- char *endp;
-
- *wp++ = '\0';
- cost = strtol (rp, &endp, 10);
- if (rp == endp || cost < 1)
- /* No useful information. */
- cost = 1;
- }
-
- if (module[0] == '\0')
- /* No module name given. */
- return;
-
- /* See whether we must add the ending. */
- need_ext = 0;
- if (wp - module < sizeof (gconv_module_ext)
- || memcmp (wp - sizeof (gconv_module_ext), gconv_module_ext,
- sizeof (gconv_module_ext)) != 0)
- /* We must add the module extension. */
- need_ext = sizeof (gconv_module_ext) - 1;
-
- assert (strlen (from) + 1 == to - from);
- assert (strlen (to) + 1 == module - to);
- assert (strlen (module) + 1 == wp - module);
-
- new_module (from, to - from, to, module - to, directory, module, wp - module,
- cost, need_ext);
-}
-
-
-/* Read the config file and add the data for this directory to that. */
-static int
-handle_dir (const char *dir)
-{
- char *infile;
- FILE *fp;
- char *line = NULL;
- size_t linelen = 0;
- size_t dirlen = strlen (dir);
- char *tmp;
-
- if (dir[dirlen - 1] != '/')
- {
- char *newp = (char *) xmalloc (dirlen + 2);
- dir = memcpy (newp, dir, dirlen);
- newp[dirlen++] = '/';
- newp[dirlen] = '\0';
- }
-
- infile = (char *) alloca (dirlen + sizeof "gconv-modules");
- tmp = mempcpy (infile, dir, dirlen);
- tmp += dirlen;
- strcpy (tmp, "gconv-modules");
-
- fp = fopen (infile, "r");
- if (fp == NULL)
- {
- error (0, errno, "cannot open `%s'", infile);
- return 1;
- }
-
- /* No threads present. */
- __fsetlocking (fp, FSETLOCKING_BYCALLER);
-
- while (!feof_unlocked (fp))
- {
- char *rp, *endp, *word;
- ssize_t n = __getdelim (&line, &linelen, '\n', fp);
-
- if (n < 0)
- /* An error occurred. */
- break;
-
- rp = line;
- /* Terminate the line (excluding comments or newline) with a NUL
- byte to simplify the following code. */
- endp = strchr (rp, '#');
- if (endp != NULL)
- *endp = '\0';
- else
- if (rp[n - 1] == '\n')
- rp[n - 1] = '\0';
-
- while (isspace (*rp))
- ++rp;
-
- /* If this is an empty line go on with the next one. */
- if (rp == endp)
- continue;
-
- word = rp;
- while (*rp != '\0' && !isspace (*rp))
- ++rp;
-
- if (rp - word == sizeof ("alias") - 1
- && memcmp (word, "alias", sizeof ("alias") - 1) == 0)
- add_alias (rp);
- else if (rp - word == sizeof ("module") - 1
- && memcmp (word, "module", sizeof ("module") - 1) == 0)
- add_module (rp, dir);
- /* else */
- /* Otherwise ignore the line. */
- }
-
- free (line);
-
- fclose (fp);
-
- return 0;
-}
-
-
-static void
-append_module (const void *nodep, VISIT value, int level)
-{
- struct module *mo;
-
- if (value != leaf && value != postorder)
- return;
-
- mo = *(struct module **) nodep;
-
- if (nmodule_list > 0
- && strcmp (module_list[nmodule_list - 1]->fromname, mo->fromname) == 0)
- {
- /* Same name. */
- mo->next = module_list[nmodule_list - 1];
- module_list[nmodule_list - 1] = mo;
-
- return;
- }
-
- if (nmodule_list_max == nmodule_list)
- {
- nmodule_list_max += 50;
- module_list = (struct module **) xrealloc (module_list,
- (nmodule_list_max
- * sizeof (struct module *)));
- }
-
- module_list[nmodule_list++] = mo;
-}
-
-
-static void
-get_modules (void)
-{
- twalk (modules, append_module);
-}
-
-
-static void
-add_builtins (void)
-{
- size_t cnt;
-
- /* Add all aliases. */
- for (cnt = 0; cnt < nbuiltin_alias; ++cnt)
- new_alias (builtin_alias[cnt].from,
- strlen (builtin_alias[cnt].from) + 1,
- builtin_alias[cnt].to,
- strlen (builtin_alias[cnt].to) + 1);
-
- /* add the builtin transformations. */
- for (cnt = 0; cnt < nbuiltin_trans; ++cnt)
- new_module (builtin_trans[cnt].from,
- strlen (builtin_trans[cnt].from) + 1,
- builtin_trans[cnt].to,
- strlen (builtin_trans[cnt].to) + 1,
- "", builtin_trans[cnt].module,
- strlen (builtin_trans[cnt].module) + 1,
- builtin_trans[cnt].cost, 0);
-}
-
-
-static int
-name_compare (const void *p1, const void *p2)
-{
- const struct name *n1 = (const struct name *) p1;
- const struct name *n2 = (const struct name *) p2;
-
- return strcmp (n1->name, n2->name);
-}
-
-
-static struct name *
-new_name (const char *str, struct Strent *strent)
-{
- struct name *newp = (struct name *) xmalloc (sizeof (struct name));
-
- newp->name = str;
- newp->strent = strent;
- newp->module_idx = -1;
- newp->hashval = hash_string (str);
-
- ++nnames;
-
- return newp;
-}
-
-
-static void
-generate_name_list (void)
-{
- size_t i;
-
- /* A name we always need. */
- tsearch (new_name ("INTERNAL", strtabadd (strtab, "INTERNAL",
- sizeof ("INTERNAL"))),
- &names, name_compare);
-
- for (i = 0; i < nmodule_list; ++i)
- {
- struct module *runp;
-
- if (strcmp (module_list[i]->fromname, "INTERNAL") != 0)
- tsearch (new_name (module_list[i]->fromname,
- module_list[i]->fromname_strent),
- &names, name_compare);
-
- for (runp = module_list[i]; runp != NULL; runp = runp->next)
- if (strcmp (runp->toname, "INTERNAL") != 0)
- tsearch (new_name (runp->toname, runp->toname_strent),
- &names, name_compare);
- }
-}
-
-
-static int
-name_to_module_idx (const char *name, int add)
-{
- struct name **res;
- struct name fake_name = { .name = name };
- int idx;
-
- res = (struct name **) tfind (&fake_name, &names, name_compare);
- if (res == NULL)
- abort ();
-
- idx = (*res)->module_idx;
- if (idx == -1 && add)
- /* No module index assigned yet. */
- idx = (*res)->module_idx = nname_info++;
-
- return idx;
-}
-
-
-static void
-generate_name_info (void)
-{
- size_t i;
- int idx;
-
- name_info = (struct name_info *) xcalloc (nmodule_list + 1,
- sizeof (struct name_info));
-
- /* First add a special entry for the INTERNAL name. This must have
- index zero. */
- idx = name_to_module_idx ("INTERNAL", 1);
- name_info[0].canonical_name = "INTERNAL";
- name_info[0].canonical_strent = strtabadd (strtab, "INTERNAL",
- sizeof ("INTERNAL"));
- assert (nname_info == 1);
-
- for (i = 0; i < nmodule_list; ++i)
- {
- struct module *runp;
-
- for (runp = module_list[i]; runp != NULL; runp = runp->next)
- if (strcmp (runp->fromname, "INTERNAL") == 0)
- {
- idx = name_to_module_idx (runp->toname, 1);
- name_info[idx].from_internal = runp;
- assert (name_info[idx].canonical_name == NULL
- || strcmp (name_info[idx].canonical_name,
- runp->toname) == 0);
- name_info[idx].canonical_name = runp->toname;
- name_info[idx].canonical_strent = runp->toname_strent;
- }
- else if (strcmp (runp->toname, "INTERNAL") == 0)
- {
- idx = name_to_module_idx (runp->fromname, 1);
- name_info[idx].to_internal = runp;
- assert (name_info[idx].canonical_name == NULL
- || strcmp (name_info[idx].canonical_name,
- runp->fromname) == 0);
- name_info[idx].canonical_name = runp->fromname;
- name_info[idx].canonical_strent = runp->fromname_strent;
- }
- else
- {
- /* This is a transformation not to or from the INTERNAL
- encoding. */
- int from_idx = name_to_module_idx (runp->fromname, 1);
- int to_idx = name_to_module_idx (runp->toname, 1);
- struct other_conv_list *newp;
-
- newp = (struct other_conv_list *)
- xmalloc (sizeof (struct other_conv_list));
- newp->other_conv.module_idx = to_idx;
- newp->other_conv.module = runp;
- newp->other_conv.next = NULL; /* XXX Allow multiple module sequence */
- newp->dest_idx = to_idx;
- newp->next = name_info[from_idx].other_conv_list;
- name_info[from_idx].other_conv_list = newp;
- assert (name_info[from_idx].canonical_name == NULL
- || strcmp (name_info[from_idx].canonical_name,
- runp->fromname) == 0);
- name_info[from_idx].canonical_name = runp->fromname;
- name_info[from_idx].canonical_strent = runp->fromname_strent;
-
- ++nextra_modules;
- }
- }
-
- /* Now add the module index information for all the aliases. */
- for (i = 0; i < nalias_list; ++i)
- {
- struct name fake_name = { .name = alias_list[i]->toname };
- struct name **tonamep;
-
- tonamep = (struct name **) tfind (&fake_name, &names, name_compare);
- if (tonamep != NULL)
- {
- struct name *newp = new_name (alias_list[i]->fromname,
- alias_list[i]->froment);
- newp->module_idx = (*tonamep)->module_idx;
- tsearch (newp, &names, name_compare);
- }
- }
-}
-
-
-static int
-is_prime (unsigned long int candidate)
-{
- /* No even number and none less than 10 will be passed here. */
- unsigned long int divn = 3;
- unsigned long int sq = divn * divn;
-
- while (sq < candidate && candidate % divn != 0)
- {
- ++divn;
- sq += 4 * divn;
- ++divn;
- }
-
- return candidate % divn != 0;
-}
-
-
-static uint32_t
-next_prime (uint32_t seed)
-{
- /* Make it definitely odd. */
- seed |= 1;
-
- while (!is_prime (seed))
- seed += 2;
-
- return seed;
-}
-
-
-/* Format of the output file.
-
- Offset Length Description
- 0000 4 Magic header bytes
- 0004 4 Offset of string table (stoff)
- 0008 4 Offset of name hashing table (hoff)
- 000C 4 Hashing table size (hsize)
- 0010 4 Offset of module table (moff)
- 0014 4 Offset of other conversion module table (ooff)
-
- stoff ??? String table
-
- hoff 8*hsize Array of tuples
- string table offset
- module index
-
- moff ??? Array of tuples
- canonical name offset
- from-internal module dir name offset
- from-internal module name off
- to-internal module dir name offset
- to-internal module name offset
- offset into other conversion table
-
- ooff ??? One or more of
- number of steps/modules
- one or more of tuple
- canonical name offset for output
- module dir name offset
- module name offset
- (following last entry with step count 0)
-*/
-static int
-write_output (void)
-{
- int fd;
- char *string_table;
- size_t string_table_size;
- struct gconvcache_header header;
- struct hash_entry *hash_table;
- size_t hash_size;
- struct module_entry *module_table;
- char *extra_table;
- char *cur_extra_table;
- size_t n;
- int idx;
- struct iovec iov[6];
- static const gidx_t null_word;
- size_t total;
- char tmpfname[sizeof (GCONV_MODULES_CACHE) + strlen (".XXXXXX")];
-
- /* Function to insert the names. */
- static void name_insert (const void *nodep, VISIT value, int level)
- {
- struct name *name;
- unsigned int idx;
- unsigned int hval2;
-
- if (value != leaf && value != postorder)
- return;
-
- name = *(struct name **) nodep;
- idx = name->hashval % hash_size;
- hval2 = 1 + name->hashval % (hash_size - 2);
-
- while (hash_table[idx].string_offset != 0)
- if ((idx += hval2) >= hash_size)
- idx -= hash_size;
-
- hash_table[idx].string_offset = strtaboffset (name->strent);
-
- assert (name->module_idx != -1);
- hash_table[idx].module_idx = name->module_idx;
- }
-
- /* Open the output file. */
- strcpy (stpcpy (tmpfname, GCONV_MODULES_CACHE), ".XXXXXX");
- fd = mkstemp (tmpfname);
- if (fd == -1)
- return 1;
-
- /* Create the string table. */
- string_table = strtabfinalize (strtab, &string_table_size);
-
- /* Create the hashing table. We know how many strings we have.
- Creating a perfect hash table is not reasonable here. Therefore
- we use open hashing and a table size which is the next prime 40%
- larger than the number of strings. */
- hash_size = next_prime (nnames * 1.4);
- hash_table = (struct hash_entry *) xcalloc (hash_size,
- sizeof (struct hash_entry));
- /* Fill the hash table. */
- twalk (names, name_insert);
-
- /* Create the section for the module list. */
- module_table = (struct module_entry *) xcalloc (sizeof (struct module_entry),
- nname_info);
-
- /* Allocate memory for the non-INTERNAL conversions. The allocated
- memory can be more than is actually needed. */
- extra_table = (char *) xcalloc (sizeof (struct extra_entry)
- + sizeof (gidx_t)
- + sizeof (struct extra_entry_module),
- nextra_modules);
- cur_extra_table = extra_table;
-
- /* Fill in the module information. */
- for (n = 0; n < nname_info; ++n)
- {
- module_table[n].canonname_offset =
- strtaboffset (name_info[n].canonical_strent);
-
- if (name_info[n].from_internal == NULL)
- {
- module_table[n].fromdir_offset = 0;
- module_table[n].fromname_offset = 0;
- }
- else
- {
- module_table[n].fromdir_offset =
- strtaboffset (name_info[n].from_internal->directory_strent);
- module_table[n].fromname_offset =
- strtaboffset (name_info[n].from_internal->filename_strent);
- }
-
- if (name_info[n].to_internal == NULL)
- {
- module_table[n].todir_offset = 0;
- module_table[n].toname_offset = 0;
- }
- else
- {
- module_table[n].todir_offset =
- strtaboffset (name_info[n].to_internal->directory_strent);
- module_table[n].toname_offset =
- strtaboffset (name_info[n].to_internal->filename_strent);
- }
-
- if (name_info[n].other_conv_list != NULL)
- {
- struct other_conv_list *other = name_info[n].other_conv_list;
-
- /* Store the reference. We add 1 to distinguish the entry
- at offset zero from the case where no extra modules are
- available. The file reader has to account for the
- offset. */
- module_table[n].extra_offset = 1 + cur_extra_table - extra_table;
-
- do
- {
- struct other_conv *runp;
- struct extra_entry *extra;
-
- /* Allocate new entry. */
- extra = (struct extra_entry *) cur_extra_table;
- cur_extra_table += sizeof (struct extra_entry);
- extra->module_cnt = 0;
-
- runp = &other->other_conv;
- do
- {
- cur_extra_table += sizeof (struct extra_entry_module);
- extra->module[extra->module_cnt].outname_offset =
- runp->next == NULL
- ? other->dest_idx : runp->next->module_idx;
- extra->module[extra->module_cnt].dir_offset =
- strtaboffset (runp->module->directory_strent);
- extra->module[extra->module_cnt].name_offset =
- strtaboffset (runp->module->filename_strent);
- ++extra->module_cnt;
-
- runp = runp->next;
- }
- while (runp != NULL);
-
- other = other->next;
- }
- while (other != NULL);
-
- /* Final module_cnt is zero. */
- *((gidx_t *) cur_extra_table) = 0;
- cur_extra_table += sizeof (gidx_t);
- }
- }
-
- header.magic = GCONVCACHE_MAGIC;
-
- iov[0].iov_base = &header;
- iov[0].iov_len = sizeof (struct gconvcache_header);
- total = iov[0].iov_len;
-
- header.string_offset = total;
- iov[1].iov_base = string_table;
- iov[1].iov_len = string_table_size;
- total += iov[1].iov_len;
-
- idx = 2;
- if ((string_table_size & (sizeof (gidx_t) - 1)) != 0)
- {
- iov[2].iov_base = (void *) &null_word;
- iov[2].iov_len = (sizeof (gidx_t)
- - (string_table_size & (sizeof (gidx_t) - 1)));
- total += iov[2].iov_len;
- ++idx;
- }
-
- header.hash_offset = total;
- header.hash_size = hash_size;
- iov[idx].iov_base = hash_table;
- iov[idx].iov_len = hash_size * sizeof (struct hash_entry);
- total += iov[idx].iov_len;
- ++idx;
-
- header.module_offset = total;
- iov[idx].iov_base = module_table;
- iov[idx].iov_len = nname_info * sizeof (struct module_entry);
- total += iov[idx].iov_len;
- ++idx;
-
- assert (cur_extra_table - extra_table
- <= ((sizeof (struct extra_entry) + sizeof (gidx_t)
- + sizeof (struct extra_entry_module))
- * nextra_modules));
- header.otherconv_offset = total;
- iov[idx].iov_base = extra_table;
- iov[idx].iov_len = cur_extra_table - extra_table;
- total += iov[idx].iov_len;
- ++idx;
-
- if (TEMP_FAILURE_RETRY (writev (fd, iov, idx)) != total
- /* The file was created with mode 0600. Make it world-readable. */
- || fchmod (fd, 0644) != 0
- /* Rename the file, possibly replacing an old one. */
- || rename (tmpfname, GCONV_MODULES_CACHE) != 0)
- {
- int save_errno = errno;
- close (fd);
- unlink (tmpfname);
- error (EXIT_FAILURE, save_errno,
- gettext ("cannot generate output file"));
- }
-
- close (fd);
-
- return 0;
-}
diff --git a/newlib/libc/sys/linux/iconv/iconvconfig.h b/newlib/libc/sys/linux/iconv/iconvconfig.h
deleted file mode 100644
index c52ceaefe..000000000
--- a/newlib/libc/sys/linux/iconv/iconvconfig.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include <stdint.h>
-
-
-typedef uint16_t gidx_t;
-
-
-struct gconvcache_header
-{
- uint32_t magic;
- gidx_t string_offset;
- gidx_t hash_offset;
- gidx_t hash_size;
- gidx_t module_offset;
- gidx_t otherconv_offset;
-};
-
-struct hash_entry
-{
- gidx_t string_offset;
- gidx_t module_idx;
-};
-
-struct module_entry
-{
- gidx_t canonname_offset;
- gidx_t fromdir_offset;
- gidx_t fromname_offset;
- gidx_t todir_offset;
- gidx_t toname_offset;
- gidx_t extra_offset;
-};
-
-struct extra_entry
-{
- gidx_t module_cnt;
- struct extra_entry_module
- {
- gidx_t outname_offset;
- gidx_t dir_offset;
- gidx_t name_offset;
- } module[0];
-};
-
-
-#define GCONVCACHE_MAGIC 0x20010324
-
-
-#define GCONV_MODULES_CACHE GCONV_DIR "/gconv-modules.cache"
diff --git a/newlib/libc/sys/linux/iconv/loadinfo.h b/newlib/libc/sys/linux/iconv/loadinfo.h
deleted file mode 100644
index 1de6cfd24..000000000
--- a/newlib/libc/sys/linux/iconv/loadinfo.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _LOADINFO_H
-#define _LOADINFO_H 1
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-#ifndef internal_function
-# define internal_function
-#endif
-
-/* Tell the compiler when a conditional or integer expression is
- almost always true or almost always false. */
-#ifndef HAVE_BUILTIN_EXPECT
-# define __builtin_expect(expr, val) (expr)
-#endif
-
-/* Encoding of locale name parts. */
-#define CEN_REVISION 1
-#define CEN_SPONSOR 2
-#define CEN_SPECIAL 4
-#define XPG_NORM_CODESET 8
-#define XPG_CODESET 16
-#define TERRITORY 32
-#define CEN_AUDIENCE 64
-#define XPG_MODIFIER 128
-
-#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
-#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
-
-
-struct loaded_l10nfile
-{
- const char *filename;
- int decided;
-
- const void *data;
-
- struct loaded_l10nfile *next;
- struct loaded_l10nfile *successor[1];
-};
-
-
-/* Normalize codeset name. There is no standard for the codeset
- names. Normalization allows the user to use any of the common
- names. The return value is dynamically allocated and has to be
- freed by the caller. */
-extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
- size_t name_len));
-
-extern struct loaded_l10nfile *
-_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
- const char *dirlist, size_t dirlist_len, int mask,
- const char *language, const char *territory,
- const char *codeset,
- const char *normalized_codeset,
- const char *modifier, const char *special,
- const char *sponsor, const char *revision,
- const char *filename, int do_allocate));
-
-
-extern const char *_nl_expand_alias PARAMS ((const char *name));
-
-/* normalized_codeset is dynamically allocated and has to be freed by
- the caller. */
-extern int _nl_explode_name PARAMS ((char *name, const char **language,
- const char **modifier,
- const char **territory,
- const char **codeset,
- const char **normalized_codeset,
- const char **special,
- const char **sponsor,
- const char **revision));
-
-extern char *_nl_find_language PARAMS ((const char *name));
-
-#endif /* loadinfo.h */
diff --git a/newlib/libc/sys/linux/iconv/localeinfo.h b/newlib/libc/sys/linux/iconv/localeinfo.h
deleted file mode 100644
index 026463ffb..000000000
--- a/newlib/libc/sys/linux/iconv/localeinfo.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Declarations for internal libc locale interfaces
- Copyright (C) 1995, 96, 97, 98, 99,2000,2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _LOCALEINFO_H
-#define _LOCALEINFO_H 1
-
-#include <stddef.h>
-#include <langinfo.h>
-#include <limits.h>
-#include <time.h>
-#include <stdint.h>
-#include <sys/types.h>
-
-/* This has to be changed whenever a new locale is defined. */
-#define __LC_LAST 13
-
-#include "loadinfo.h" /* For loaded_l10nfile definition. */
-
-/* Magic number at the beginning of a locale data file for CATEGORY. */
-#define LIMAGIC(category) ((unsigned int) (0x20000828 ^ (category)))
-
-/* Two special weight constants for the collation data. */
-#define IGNORE_CHAR 2
-
-/* We use a special value for the usage counter in `locale_data' to
- signal that this data must never be removed anymore. */
-#define MAX_USAGE_COUNT (UINT_MAX - 1)
-#define UNDELETABLE UINT_MAX
-
-/* Structure describing locale data in core for a category. */
-struct locale_data
-{
- const char *name;
- const char *filedata; /* Region mapping the file data. */
- off_t filesize; /* Size of the file (and the region). */
- int mmaped; /* If nonzero the data is mmaped. */
-
- unsigned int usage_count; /* Counter for users. */
-
- int use_translit; /* Nonzero if the mb*towv*() and wc*tomb()
- functions should use transliteration. */
- const char *options; /* Extra options from the locale name,
- not used in the path to the locale data. */
-
- unsigned int nstrings; /* Number of strings below. */
- union locale_data_value
- {
- const uint32_t *wstr;
- const char *string;
- unsigned int word;
- }
- values __flexarr; /* Items, usually pointers into `filedata'. */
-};
-
-/* We know three kinds of collation sorting rules. */
-enum coll_sort_rule
-{
- illegal_0__,
- sort_forward,
- sort_backward,
- illegal_3__,
- sort_position,
- sort_forward_position,
- sort_backward_position,
- sort_mask
-};
-
-/* We can map the types of the entries into a few categories. */
-enum value_type
-{
- none,
- string,
- stringarray,
- byte,
- bytearray,
- word,
- stringlist,
- wordarray,
- wstring,
- wstringarray,
- wstringlist
-};
-
-
-/* Definitions for `era' information from LC_TIME. */
-#define ERA_NAME_FORMAT_MEMBERS 4
-#define ERA_M_NAME 0
-#define ERA_M_FORMAT 1
-#define ERA_W_NAME 2
-#define ERA_W_FORMAT 3
-
-
-/* Structure to access `era' information from LC_TIME. */
-struct era_entry
-{
- uint32_t direction; /* Contains '+' or '-'. */
- int32_t offset;
- int32_t start_date[3];
- int32_t stop_date[3];
- const char *era_name;
- const char *era_format;
- const wchar_t *era_wname;
- const wchar_t *era_wformat;
- int absolute_direction;
- /* absolute direction:
- +1 indicates that year number is higher in the future. (like A.D.)
- -1 indicates that year number is higher in the past. (like B.C.) */
-};
-
-
-/* LC_CTYPE specific:
- Hardwired indices for standard wide character translation mappings. */
-enum
-{
- __TOW_toupper = 0,
- __TOW_tolower = 1
-};
-
-
-/* LC_CTYPE specific:
- Access a wide character class with a single character index.
- _ISCTYPE (c, desc) = iswctype (btowc (c), desc).
- c must be an `unsigned char'. desc must be a nonzero wctype_t. */
-#define _ISCTYPE(c, desc) \
- (((((const uint32_t *) (desc)) - 8)[(c) >> 5] >> ((c) & 0x1f)) & 1)
-
-
-/* For each category declare the variable for the current locale data. */
-#define DEFINE_CATEGORY(category, category_name, items, a) \
-extern struct locale_data *_nl_current_##category;
-#include "categories.def"
-#undef DEFINE_CATEGORY
-
-extern const char *const _nl_category_names[__LC_LAST];
-extern const size_t _nl_category_name_sizes[__LC_LAST];
-extern struct locale_data * *const _nl_current[__LC_LAST];
-
-/* Extract the current CATEGORY locale's string for ITEM. */
-#define _NL_CURRENT(category, item) \
- (_nl_current_##category->values[_NL_ITEM_INDEX (item)].string)
-
-/* Extract the current CATEGORY locale's string for ITEM. */
-#define _NL_CURRENT_WSTR(category, item) \
- ((wchar_t *) (_nl_current_##category->values[_NL_ITEM_INDEX (item)].wstr))
-
-/* Extract the current CATEGORY locale's word for ITEM. */
-#define _NL_CURRENT_WORD(category, item) \
- (_nl_current_##category->values[_NL_ITEM_INDEX (item)].word)
-
-/* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY. */
-#define _NL_CURRENT_DEFINE(category) \
- extern struct locale_data _nl_C_##category; \
- struct locale_data *_nl_current_##category = &_nl_C_##category
-
-/* Load the locale data for CATEGORY from the file specified by *NAME.
- If *NAME is "", use environment variables as specified by POSIX,
- and fill in *NAME with the actual name used. The directories
- listed in LOCALE_PATH are searched for the locale files. */
-extern struct locale_data *_nl_find_locale (const char *locale_path,
- size_t locale_path_len,
- int category, const char **name);
-
-/* Try to load the file described by FILE. */
-extern void _nl_load_locale (struct loaded_l10nfile *file, int category);
-
-/* Free all resource. */
-extern void _nl_unload_locale (struct locale_data *locale);
-
-/* Free the locale and give back all memory if the usage count is one. */
-extern void _nl_remove_locale (int locale, struct locale_data *data);
-
-
-/* Return `era' entry which corresponds to TP. Used in strftime. */
-extern struct era_entry *_nl_get_era_entry (const struct tm *tp);
-
-/* Return `era' cnt'th entry . Used in strptime. */
-extern struct era_entry *_nl_select_era_entry (int cnt);
-
-/* Return `alt_digit' which corresponds to NUMBER. Used in strftime. */
-extern const char *_nl_get_alt_digit (unsigned int number);
-
-/* Similar, but now for wide characters. */
-extern const wchar_t *_nl_get_walt_digit (unsigned int number);
-
-/* Parse string as alternative digit and return numeric value. */
-extern int _nl_parse_alt_digit (const char **strp);
-
-/* Postload processing. */
-extern void _nl_postload_ctype (void);
-extern void _nl_postload_time (void);
-
-
-#endif /* localeinfo.h */
diff --git a/newlib/libc/sys/linux/iconv/loop.c b/newlib/libc/sys/linux/iconv/loop.c
deleted file mode 100644
index 7d3bf472d..000000000
--- a/newlib/libc/sys/linux/iconv/loop.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/* Conversion loop frame work.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file provides a frame for the reader loop in all conversion modules.
- The actual code must (of course) be provided in the actual module source
- code but certain actions can be written down generically, with some
- customization options which are these:
-
- MIN_NEEDED_INPUT minimal number of input bytes needed for the next
- conversion.
- MIN_NEEDED_OUTPUT minimal number of bytes produced by the next round
- of conversion.
-
- MAX_NEEDED_INPUT you guess it, this is the maximal number of input
- bytes needed. It defaults to MIN_NEEDED_INPUT
- MAX_NEEDED_OUTPUT likewise for output bytes.
-
- LOOPFCT name of the function created. If not specified
- the name is `loop' but this prevents the use
- of multiple functions in the same file.
-
- BODY this is supposed to expand to the body of the loop.
- The user must provide this.
-
- EXTRA_LOOP_DECLS extra arguments passed from converion loop call.
-
- INIT_PARAMS code to define and initialize variables from params.
- UPDATE_PARAMS code to store result in params.
-*/
-
-#include <assert.h>
-#include <machine/endian.h>
-#include <gconv.h>
-#include <stdint.h>
-#include <string.h>
-#include <wchar.h>
-#include <sys/param.h> /* For MIN. */
-#define __need_size_t
-#include <stddef.h>
-
-
-/* We have to provide support for machines which are not able to handled
- unaligned memory accesses. Some of the character encodings have
- representations with a fixed width of 2 or 4 bytes. But if we cannot
- access unaligned memory we still have to read byte-wise. */
-#undef FCTNAME2
-#if defined _STRING_ARCH_unaligned || !defined DEFINE_UNALIGNED
-/* We can handle unaligned memory access. */
-# define get16(addr) *((__const uint16_t *) (addr))
-# define get32(addr) *((__const uint32_t *) (addr))
-
-/* We need no special support for writing values either. */
-# define put16(addr, val) *((uint16_t *) (addr)) = (val)
-# define put32(addr, val) *((uint32_t *) (addr)) = (val)
-
-# define FCTNAME2(name) name
-#else
-/* Distinguish between big endian and little endian. */
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define get16(addr) \
- (((__const unsigned char *) (addr))[1] << 8 \
- | ((__const unsigned char *) (addr))[0])
-# define get32(addr) \
- (((((__const unsigned char *) (addr))[3] << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[0])
-
-# define put16(addr, val) \
- ({ uint16_t __val = (val); \
- ((unsigned char *) (addr))[0] = __val; \
- ((unsigned char *) (addr))[1] = __val >> 8; \
- (void) 0; })
-# define put32(addr, val) \
- ({ uint32_t __val = (val); \
- ((unsigned char *) (addr))[0] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[1] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[2] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[3] = __val; \
- (void) 0; })
-# else
-# define get16(addr) \
- (((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1])
-# define get32(addr) \
- (((((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[3])
-
-# define put16(addr, val) \
- ({ uint16_t __val = (val); \
- ((unsigned char *) (addr))[1] = __val; \
- ((unsigned char *) (addr))[0] = __val >> 8; \
- (void) 0; })
-# define put32(addr, val) \
- ({ uint32_t __val = (val); \
- ((unsigned char *) (addr))[3] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[2] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[1] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[0] = __val; \
- (void) 0; })
-# endif
-
-# define FCTNAME2(name) name##_unaligned
-#endif
-#define FCTNAME(name) FCTNAME2(name)
-
-
-/* We need at least one byte for the next round. */
-#ifndef MIN_NEEDED_INPUT
-# error "MIN_NEEDED_INPUT definition missing"
-#endif
-
-/* Let's see how many bytes we produce. */
-#ifndef MAX_NEEDED_INPUT
-# define MAX_NEEDED_INPUT MIN_NEEDED_INPUT
-#endif
-
-/* We produce at least one byte in the next round. */
-#ifndef MIN_NEEDED_OUTPUT
-# error "MIN_NEEDED_OUTPUT definition missing"
-#endif
-
-/* Let's see how many bytes we produce. */
-#ifndef MAX_NEEDED_OUTPUT
-# define MAX_NEEDED_OUTPUT MIN_NEEDED_OUTPUT
-#endif
-
-/* Default name for the function. */
-#ifndef LOOPFCT
-# define LOOPFCT loop
-#endif
-
-/* Make sure we have a loop body. */
-#ifndef BODY
-# error "Definition of BODY missing for function" LOOPFCT
-#endif
-
-
-/* If no arguments have to passed to the loop function define the macro
- as empty. */
-#ifndef EXTRA_LOOP_DECLS
-# define EXTRA_LOOP_DECLS
-#endif
-
-
-/* To make it easier for the writers of the modules, we define a macro
- to test whether we have to ignore errors. */
-#define ignore_errors_p() \
- (irreversible != NULL && (flags & __GCONV_IGNORE_ERRORS))
-
-
-/* Error handling with transliteration/transcription function use and
- ignoring of errors. Note that we cannot use the do while (0) trick
- since `break' and `continue' must reach certain points. */
-#define STANDARD_ERR_HANDLER(Incr) \
- { \
- struct __gconv_trans_data *trans; \
- \
- result = __GCONV_ILLEGAL_INPUT; \
- \
- if (irreversible == NULL) \
- /* This means we are in call from __gconv_transliterate. In this \
- case we are not doing any error recovery outself. */ \
- break; \
- \
- /* First try the transliteration methods. */ \
- for (trans = step_data->__trans; trans != NULL; trans = trans->__next) \
- { \
- result = trans->__trans_fct (step, step_data, trans->__data, *inptrp, \
- &inptr, inend, &outptr, irreversible); \
- if (result != __GCONV_ILLEGAL_INPUT) \
- break; \
- } \
- /* If any of them recognized the input continue with the loop. */ \
- if (result != __GCONV_ILLEGAL_INPUT) \
- continue; \
- \
- /* Next see whether we have to ignore the error. If not, stop. */ \
- if (! ignore_errors_p ()) \
- break; \
- \
- /* When we come here it means we ignore the character. */ \
- ++*irreversible; \
- inptr += Incr; \
- continue; \
- }
-
-
-/* Handling of Unicode 3.1 TAG characters. Unicode recommends
- "If language codes are not relevant to the particular processing
- operation, then they should be ignored."
- This macro is usually called right before STANDARD_ERR_HANDLER (Incr). */
-#define UNICODE_TAG_HANDLER(Character, Incr) \
- { \
- /* TAG characters are those in the range U+E0000..U+E007F. */ \
- if (((Character) >> 7) == (0xe0000 >> 7)) \
- { \
- inptr += Incr; \
- continue; \
- } \
- }
-
-
-/* The function returns the status, as defined in gconv.h. */
-static inline int
-FCTNAME (LOOPFCT) (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, const unsigned char *outend,
- size_t *irreversible EXTRA_LOOP_DECLS)
-{
-#ifdef LOOP_NEED_STATE
- mbstate_t *state = step_data->__statep;
-#endif
-#ifdef LOOP_NEED_FLAGS
- int flags = step_data->__flags;
-#endif
-#ifdef LOOP_NEED_DATA
- void *data = step->__data;
-#endif
- int result = __GCONV_EMPTY_INPUT;
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
-
-#ifdef INIT_PARAMS
- INIT_PARAMS;
-#endif
-
- while (inptr != inend)
- {
- /* `if' cases for MIN_NEEDED_OUTPUT ==/!= 1 is made to help the
- compiler generating better code. They will be optimized away
- since MIN_NEEDED_OUTPUT is always a constant. */
- if ((MIN_NEEDED_OUTPUT != 1
- && __builtin_expect (outptr + MIN_NEEDED_OUTPUT > outend, 0))
- || (MIN_NEEDED_OUTPUT == 1
- && __builtin_expect (outptr >= outend, 0)))
- {
- /* Overflow in the output buffer. */
- result = __GCONV_FULL_OUTPUT;
- break;
- }
- if (MIN_NEEDED_INPUT > 1
- && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0))
- {
- /* We don't have enough input for another complete input
- character. */
- result = __GCONV_INCOMPLETE_INPUT;
- break;
- }
-
- /* Here comes the body the user provides. It can stop with
- RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the
- input characters vary in size), GCONV_ILLEGAL_INPUT, or
- GCONV_FULL_OUTPUT (if the output characters vary in size). */
- BODY
- }
-
- /* Update the pointers pointed to by the parameters. */
- *inptrp = inptr;
- *outptrp = outptr;
-#ifdef UPDATE_PARAMS
- UPDATE_PARAMS;
-#endif
-
- return result;
-}
-
-
-/* Include the file a second time to define the function to handle
- unaligned access. */
-#if !defined DEFINE_UNALIGNED && !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
-# undef get16
-# undef get32
-# undef put16
-# undef put32
-# undef unaligned
-
-# define DEFINE_UNALIGNED
-# include "loop.c"
-# undef DEFINE_UNALIGNED
-#endif
-
-
-#if MAX_NEEDED_INPUT > 1
-# define SINGLE(fct) SINGLE2 (fct)
-# define SINGLE2(fct) fct##_single
-static inline int
-SINGLE(LOOPFCT) (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
- size_t *irreversible EXTRA_LOOP_DECLS)
-{
- mbstate_t *state = step_data->__statep;
-#ifdef LOOP_NEED_FLAGS
- int flags = step_data->__flags;
-#endif
-#ifdef LOOP_NEED_DATA
- void *data = step->__data;
-#endif
- int result = __GCONV_OK;
- unsigned char bytebuf[MAX_NEEDED_INPUT];
- const unsigned char *inptr = *inptrp;
- unsigned char *outptr = *outptrp;
- size_t inlen;
-
-#ifdef INIT_PARAMS
- INIT_PARAMS;
-#endif
-
-#ifdef UNPACK_BYTES
- UNPACK_BYTES
-#else
- /* Add the bytes from the state to the input buffer. */
- for (inlen = 0; inlen < (size_t) (state->__count & 7); ++inlen)
- bytebuf[inlen] = state->__value.__wchb[inlen];
-#endif
-
- /* Are there enough bytes in the input buffer? */
- if (__builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
- {
- *inptrp = inend;
-#ifdef STORE_REST
- inptr = bytebuf;
- inptrp = &inptr;
- inend = &bytebuf[inlen];
-
- STORE_REST
-#else
- /* We don't have enough input for another complete input
- character. */
- while (inptr < inend)
- state->__value.__wchb[inlen++] = *inptr++;
-#endif
-
- return __GCONV_INCOMPLETE_INPUT;
- }
-
- /* Enough space in output buffer. */
- if ((MIN_NEEDED_OUTPUT != 1 && outptr + MIN_NEEDED_OUTPUT > outend)
- || (MIN_NEEDED_OUTPUT == 1 && outptr >= outend))
- /* Overflow in the output buffer. */
- return __GCONV_FULL_OUTPUT;
-
- /* Now add characters from the normal input buffer. */
- do
- bytebuf[inlen++] = *inptr++;
- while (inlen < MAX_NEEDED_INPUT && inptr < inend);
-
- inptr = bytebuf;
- inend = &bytebuf[inlen];
-
- do
- {
- BODY
- }
- while (0);
-
- /* Now we either have produced an output character and consumed all the
- bytes from the state and at least one more, or the character is still
- incomplete, or we have some other error (like illegal input character,
- no space in output buffer). */
- if (__builtin_expect (inptr != bytebuf, 1))
- {
- /* We found a new character. */
- assert (inptr - bytebuf > (state->__count & 7));
-
- *inptrp += inptr - bytebuf - (state->__count & 7);
- *outptrp = outptr;
-
- result = __GCONV_OK;
-
- /* Clear the state buffer. */
- state->__count &= ~7;
- }
- else if (result == __GCONV_INCOMPLETE_INPUT)
- {
- /* This can only happen if we have less than MAX_NEEDED_INPUT bytes
- available. */
- assert (inend != &bytebuf[MAX_NEEDED_INPUT]);
-
- *inptrp += inend - bytebuf - (state->__count & 7);
-#ifdef STORE_REST
- inptrp = &inptr;
-
- STORE_REST
-#else
- /* We don't have enough input for another complete input
- character. */
- while (inptr < inend)
- state->__value.__wchb[inlen++] = *inptr++;
-#endif
- }
-
- return result;
-}
-# undef SINGLE
-# undef SINGLE2
-#endif
-
-
-/* We remove the macro definitions so that we can include this file again
- for the definition of another function. */
-#undef MIN_NEEDED_INPUT
-#undef MAX_NEEDED_INPUT
-#undef MIN_NEEDED_OUTPUT
-#undef MAX_NEEDED_OUTPUT
-#undef LOOPFCT
-#undef BODY
-#undef LOOPFCT
-#undef EXTRA_LOOP_DECLS
-#undef INIT_PARAMS
-#undef UPDATE_PARAMS
-#undef UNPACK_BYTES
-#undef LOOP_NEED_STATE
-#undef LOOP_NEED_FLAGS
-#undef LOOP_NEED_DATA
-#undef get16
-#undef get32
-#undef put16
-#undef put32
-#undef unaligned
diff --git a/newlib/libc/sys/linux/iconv/skeleton.c b/newlib/libc/sys/linux/iconv/skeleton.c
deleted file mode 100644
index cde8533c5..000000000
--- a/newlib/libc/sys/linux/iconv/skeleton.c
+++ /dev/null
@@ -1,696 +0,0 @@
-/* Skeleton for a conversion module.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file can be included to provide definitions of several things
- many modules have in common. It can be customized using the following
- macros:
-
- DEFINE_INIT define the default initializer. This requires the
- following symbol to be defined.
-
- CHARSET_NAME string with official name of the coded character
- set (in all-caps)
-
- DEFINE_FINI define the default destructor function.
-
- MIN_NEEDED_FROM minimal number of bytes needed for the from-charset.
- MIN_NEEDED_TO likewise for the to-charset.
-
- MAX_NEEDED_FROM maximal number of bytes needed for the from-charset.
- This macro is optional, it defaults to MIN_NEEDED_FROM.
- MAX_NEEDED_TO likewise for the to-charset.
-
- DEFINE_DIRECTION_OBJECTS
- two objects will be defined to be used when the
- `gconv' function must only distinguish two
- directions. This is implied by DEFINE_INIT.
- If this macro is not defined the following
- macro must be available.
-
- FROM_DIRECTION this macro is supposed to return a value != 0
- if we convert from the current character set,
- otherwise it return 0.
-
- EMIT_SHIFT_TO_INIT this symbol is optional. If it is defined it
- defines some code which writes out a sequence
- of characters which bring the current state into
- the initial state.
-
- FROM_LOOP name of the function implementing the conversion
- from the current characters.
- TO_LOOP likewise for the other direction
-
- ONE_DIRECTION optional. If defined to 1, only one conversion
- direction is defined instead of two. In this
- case, FROM_DIRECTION should be defined to 1, and
- FROM_LOOP and TO_LOOP should have the same value.
-
- SAVE_RESET_STATE in case of an error we must reset the state for
- the rerun so this macro must be defined for
- stateful encodings. It takes an argument which
- is nonzero when saving.
-
- RESET_INPUT_BUFFER If the input character sets allow this the macro
- can be defined to reset the input buffer pointers
- to cover only those characters up to the error.
-
- FUNCTION_NAME if not set the conversion function is named `gconv'.
-
- PREPARE_LOOP optional code preparing the conversion loop. Can
- contain variable definitions.
- END_LOOP also optional, may be used to store information
-
- EXTRA_LOOP_ARGS optional macro specifying extra arguments passed
- to loop function.
- */
-
-#include <assert.h>
-#include <gconv.h>
-#include <string.h>
-#define __need_size_t
-#define __need_NULL
-#include <stddef.h>
-
-#include <wchar.h>
-
-#ifndef STATIC_GCONV
-# include <dlfcn.h>
-#endif
-
-# define DL_CALL_FCT(fct, args) fct args
-
-/* The direction objects. */
-#if DEFINE_DIRECTION_OBJECTS || DEFINE_INIT
-static int from_object;
-static int to_object;
-
-# ifndef FROM_DIRECTION
-# define FROM_DIRECTION (step->__data == &from_object)
-# endif
-#else
-# ifndef FROM_DIRECTION
-# error "FROM_DIRECTION must be provided if direction objects are not used"
-# endif
-#endif
-
-
-/* How many bytes are needed at most for the from-charset. */
-#ifndef MAX_NEEDED_FROM
-# define MAX_NEEDED_FROM MIN_NEEDED_FROM
-#endif
-
-/* Same for the to-charset. */
-#ifndef MAX_NEEDED_TO
-# define MAX_NEEDED_TO MIN_NEEDED_TO
-#endif
-
-
-/* Define macros which can access unaligned buffers. These macros are
- supposed to be used only in code outside the inner loops. For the inner
- loops we have other definitions which allow optimized access. */
-#ifdef _STRING_ARCH_unaligned
-/* We can handle unaligned memory access. */
-# define get16u(addr) *((__const uint16_t *) (addr))
-# define get32u(addr) *((__const uint32_t *) (addr))
-
-/* We need no special support for writing values either. */
-# define put16u(addr, val) *((uint16_t *) (addr)) = (val)
-# define put32u(addr, val) *((uint32_t *) (addr)) = (val)
-#else
-/* Distinguish between big endian and little endian. */
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define get16u(addr) \
- (((__const unsigned char *) (addr))[1] << 8 \
- | ((__const unsigned char *) (addr))[0])
-# define get32u(addr) \
- (((((__const unsigned char *) (addr))[3] << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[0])
-
-# define put16u(addr, val) \
- ({ uint16_t __val = (val); \
- ((unsigned char *) (addr))[0] = __val; \
- ((unsigned char *) (addr))[1] = __val >> 8; \
- (void) 0; })
-# define put32u(addr, val) \
- ({ uint32_t __val = (val); \
- ((unsigned char *) (addr))[0] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[1] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[2] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[3] = __val; \
- (void) 0; })
-# else
-# define get16u(addr) \
- (((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1])
-# define get32u(addr) \
- (((((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[3])
-
-# define put16u(addr, val) \
- ({ uint16_t __val = (val); \
- ((unsigned char *) (addr))[1] = __val; \
- ((unsigned char *) (addr))[0] = __val >> 8; \
- (void) 0; })
-# define put32u(addr, val) \
- ({ uint32_t __val = (val); \
- ((unsigned char *) (addr))[3] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[2] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[1] = __val; \
- __val >>= 8; \
- ((unsigned char *) (addr))[0] = __val; \
- (void) 0; })
-# endif
-#endif
-
-
-/* For conversions from a fixed width character set to another fixed width
- character set we can define RESET_INPUT_BUFFER in a very fast way. */
-#if !defined RESET_INPUT_BUFFER && !defined SAVE_RESET_STATE
-# if MIN_NEEDED_FROM == MAX_NEEDED_FROM && MIN_NEEDED_TO == MAX_NEEDED_TO
-/* We have to use these `if's here since the compiler cannot know that
- (outbuf - outerr) is always divisible by MIN_NEEDED_TO. */
-# define RESET_INPUT_BUFFER \
- if (MIN_NEEDED_FROM % MIN_NEEDED_TO == 0) \
- *inptrp -= (outbuf - outerr) * (MIN_NEEDED_FROM / MIN_NEEDED_TO); \
- else if (MIN_NEEDED_TO % MIN_NEEDED_FROM == 0) \
- *inptrp -= (outbuf - outerr) / (MIN_NEEDED_TO / MIN_NEEDED_FROM); \
- else \
- *inptrp -= ((outbuf - outerr) / MIN_NEEDED_TO) * MIN_NEEDED_FROM
-# endif
-#endif
-
-
-/* The default init function. It simply matches the name and initializes
- the step data to point to one of the objects above. */
-#if DEFINE_INIT
-# ifndef CHARSET_NAME
-# error "CHARSET_NAME not defined"
-# endif
-
-extern int gconv_init (struct __gconv_step *step);
-int
-gconv_init (struct __gconv_step *step)
-{
- /* Determine which direction. */
- if (strcmp (step->__from_name, CHARSET_NAME) == 0)
- {
- step->__data = &from_object;
-
- step->__min_needed_from = MIN_NEEDED_FROM;
- step->__max_needed_from = MAX_NEEDED_FROM;
- step->__min_needed_to = MIN_NEEDED_TO;
- step->__max_needed_to = MAX_NEEDED_TO;
- }
- else if (__builtin_expect (strcmp (step->__to_name, CHARSET_NAME), 0) == 0)
- {
- step->__data = &to_object;
-
- step->__min_needed_from = MIN_NEEDED_TO;
- step->__max_needed_from = MAX_NEEDED_TO;
- step->__min_needed_to = MIN_NEEDED_FROM;
- step->__max_needed_to = MAX_NEEDED_FROM;
- }
- else
- return __GCONV_NOCONV;
-
-#ifdef SAVE_RESET_STATE
- step->__stateful = 1;
-#else
- step->__stateful = 0;
-#endif
-
- return __GCONV_OK;
-}
-#endif
-
-
-/* The default destructor function does nothing in the moment and so
- we don't define it at all. But we still provide the macro just in
- case we need it some day. */
-#if DEFINE_FINI
-#endif
-
-
-/* If no arguments have to passed to the loop function define the macro
- as empty. */
-#ifndef EXTRA_LOOP_ARGS
-# define EXTRA_LOOP_ARGS
-#endif
-
-
-/* This is the actual conversion function. */
-#ifndef FUNCTION_NAME
-# define FUNCTION_NAME gconv
-#endif
-
-/* The macros are used to access the function to convert single characters. */
-#define SINGLE(fct) SINGLE2 (fct)
-#define SINGLE2(fct) fct##_single
-
-
-extern int FUNCTION_NAME (struct __gconv_step *step,
- struct __gconv_step_data *data,
- const unsigned char **inptrp,
- const unsigned char *inend,
- unsigned char **outbufstart, size_t *irreversible,
- int do_flush, int consume_incomplete);
-int
-FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
- const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outbufstart, size_t *irreversible, int do_flush,
- int consume_incomplete)
-{
- struct __gconv_step *next_step = step + 1;
- struct __gconv_step_data *next_data = data + 1;
- __gconv_fct fct;
- int status;
-
- fct = (data->__flags & __GCONV_IS_LAST) ? NULL : next_step->__fct;
-
- /* If the function is called with no input this means we have to reset
- to the initial state. The possibly partly converted input is
- dropped. */
- if (__builtin_expect (do_flush, 0))
- {
- /* This should never happen during error handling. */
- assert (outbufstart == NULL);
-
- status = __GCONV_OK;
-
-#ifdef EMIT_SHIFT_TO_INIT
- if (do_flush == 1)
- {
- /* We preserve the initial values of the pointer variables. */
- unsigned char *outbuf = data->__outbuf;
- unsigned char *outstart = outbuf;
- unsigned char *outend = data->__outbufend;
-
-# ifdef PREPARE_LOOP
- PREPARE_LOOP
-# endif
-
-# ifdef SAVE_RESET_STATE
- SAVE_RESET_STATE (1);
-# endif
-
- /* Emit the escape sequence to reset the state. */
- EMIT_SHIFT_TO_INIT;
-
- /* Call the steps down the chain if there are any but only if we
- successfully emitted the escape sequence. This should only
- fail if the output buffer is full. If the input is invalid
- it should be discarded since the user wants to start from a
- clean state. */
- if (status == __GCONV_OK)
- {
- if (data->__flags & __GCONV_IS_LAST)
- /* Store information about how many bytes are available. */
- data->__outbuf = outbuf;
- else
- {
- /* Write out all output which was produced. */
- if (outbuf > outstart)
- {
- const unsigned char *outerr = outstart;
- int result;
-
- result = DL_CALL_FCT (fct, (next_step, next_data,
- &outerr, outbuf, NULL,
- irreversible, 0,
- consume_incomplete));
-
- if (result != __GCONV_EMPTY_INPUT)
- {
- if (__builtin_expect (outerr != outbuf, 0))
- {
- /* We have a problem. Undo the conversion. */
- outbuf = outstart;
-
- /* Restore the state. */
-# ifdef SAVE_RESET_STATE
- SAVE_RESET_STATE (0);
-# endif
- }
-
- /* Change the status. */
- status = result;
- }
- }
-
- if (status == __GCONV_OK)
- /* Now flush the remaining steps. */
- status = DL_CALL_FCT (fct, (next_step, next_data, NULL,
- NULL, NULL, irreversible, 1,
- consume_incomplete));
- }
- }
- }
- else
-#endif
- {
- /* Clear the state object. There might be bytes in there from
- previous calls with CONSUME_INCOMPLETE == 1. But don't emit
- escape sequences. */
- memset (data->__statep, '\0', sizeof (*data->__statep));
-
- if (! (data->__flags & __GCONV_IS_LAST))
- /* Now flush the remaining steps. */
- status = DL_CALL_FCT (fct, (next_step, next_data, NULL, NULL,
- NULL, irreversible, do_flush,
- consume_incomplete));
- }
- }
- else
- {
- /* We preserve the initial values of the pointer variables. */
- const unsigned char *inptr = *inptrp;
- unsigned char *outbuf = (__builtin_expect (outbufstart == NULL, 1)
- ? data->__outbuf : *outbufstart);
- unsigned char *outend = data->__outbufend;
- unsigned char *outstart;
- /* This variable is used to count the number of characters we
- actually converted. */
- size_t lirreversible = 0;
- size_t *lirreversiblep = irreversible ? &lirreversible : NULL;
-#if defined _STRING_ARCH_unaligned \
- || MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \
- || MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0
-# define unaligned 0
-#else
- int unaligned;
-# define GEN_unaligned(name) GEN_unaligned2 (name)
-# define GEN_unaligned2(name) name##_unaligned
-#endif
-
-#ifdef PREPARE_LOOP
- PREPARE_LOOP
-#endif
-
-#if MAX_NEEDED_FROM > 1 || MAX_NEEDED_TO > 1
- /* If the function is used to implement the mb*towc*() or wc*tomb*()
- functions we must test whether any bytes from the last call are
- stored in the `state' object. */
- if (((MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1)
- || (MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
- || (MAX_NEEDED_TO > 1 && !FROM_DIRECTION))
- && consume_incomplete && (data->__statep->__count & 7) != 0)
- {
- /* Yep, we have some bytes left over. Process them now.
- But this must not happen while we are called from an
- error handler. */
- assert (outbufstart == NULL);
-
-# if MAX_NEEDED_FROM > 1
- if (MAX_NEEDED_TO == 1 || FROM_DIRECTION)
- status = SINGLE(FROM_LOOP) (step, data, inptrp, inend, &outbuf,
- outend, lirreversiblep
- EXTRA_LOOP_ARGS);
-# endif
-# if MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1 && !ONE_DIRECTION
- else
-# endif
-# if MAX_NEEDED_TO > 1 && !ONE_DIRECTION
- status = SINGLE(TO_LOOP) (step, data, inptrp, inend, &outbuf,
- outend, lirreversiblep EXTRA_LOOP_ARGS);
-# endif
-
- if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
- return status;
- }
-#endif
-
-#if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
- /* The following assumes that encodings, which have a variable length
- what might unalign a buffer even though it is a aligned in the
- beginning, either don't have the minimal number of bytes as a divisor
- of the maximum length or have a minimum length of 1. This is true
- for all known and supported encodings. */
- unaligned = ((FROM_DIRECTION
- && ((uintptr_t) inptr % MIN_NEEDED_FROM != 0
- || ((data->__flags & __GCONV_IS_LAST)
- && (uintptr_t) outbuf % MIN_NEEDED_TO != 0)))
- || (!FROM_DIRECTION
- && (((data->__flags & __GCONV_IS_LAST)
- && (uintptr_t) outbuf % MIN_NEEDED_FROM != 0)
- || (uintptr_t) inptr % MIN_NEEDED_TO != 0)));
-#endif
-
- while (1)
- {
- struct __gconv_trans_data *trans;
-
- /* Remember the start value for this round. */
- inptr = *inptrp;
- /* The outbuf buffer is empty. */
- outstart = outbuf;
-
-#ifdef SAVE_RESET_STATE
- SAVE_RESET_STATE (1);
-#endif
-
- if (__builtin_expect (!unaligned, 1))
- {
- if (FROM_DIRECTION)
- /* Run the conversion loop. */
- status = FROM_LOOP (step, data, inptrp, inend, &outbuf, outend,
- lirreversiblep EXTRA_LOOP_ARGS);
- else
- /* Run the conversion loop. */
- status = TO_LOOP (step, data, inptrp, inend, &outbuf, outend,
- lirreversiblep EXTRA_LOOP_ARGS);
- }
-#if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
- else
- {
- if (FROM_DIRECTION)
- /* Run the conversion loop. */
- status = GEN_unaligned (FROM_LOOP) (step, data, inptrp, inend,
- &outbuf, outend,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- else
- /* Run the conversion loop. */
- status = GEN_unaligned (TO_LOOP) (step, data, inptrp, inend,
- &outbuf, outend,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- }
-#endif
-
- /* If we were called as part of an error handling module we
- don't do anything else here. */
- if (__builtin_expect (outbufstart != NULL, 0))
- {
- *outbufstart = outbuf;
- return status;
- }
-
- /* Give the transliteration module the chance to store the
- original text and the result in case it needs a context. */
- for (trans = data->__trans; trans != NULL; trans = trans->__next)
- if (trans->__trans_context_fct != NULL)
- DL_CALL_FCT (trans->__trans_context_fct,
- (trans->__data, inptr, *inptrp, outstart, outbuf));
-
- /* We finished one use of the loops. */
- ++data->__invocation_counter;
-
- /* If this is the last step leave the loop, there is nothing
- we can do. */
- if (__builtin_expect (data->__flags & __GCONV_IS_LAST, 0))
- {
- /* Store information about how many bytes are available. */
- data->__outbuf = outbuf;
-
- /* Remember how many non-identical characters we
- converted in a irreversible way. */
- *irreversible += lirreversible;
-
- break;
- }
-
- /* Write out all output which was produced. */
- if (__builtin_expect (outbuf > outstart, 1))
- {
- const unsigned char *outerr = data->__outbuf;
- int result;
-
- result = DL_CALL_FCT (fct, (next_step, next_data, &outerr,
- outbuf, NULL, irreversible, 0,
- consume_incomplete));
-
- if (result != __GCONV_EMPTY_INPUT)
- {
- if (__builtin_expect (outerr != outbuf, 0))
- {
-#ifdef RESET_INPUT_BUFFER
- RESET_INPUT_BUFFER;
-#else
- /* We have a problem with the in on of the functions
- below. Undo the conversion upto the error point. */
- size_t nstatus;
-
- /* Reload the pointers. */
- *inptrp = inptr;
- outbuf = outstart;
-
- /* Restore the state. */
-# ifdef SAVE_RESET_STATE
- SAVE_RESET_STATE (0);
-# endif
-
- if (__builtin_expect (!unaligned, 1))
- {
- if (FROM_DIRECTION)
- /* Run the conversion loop. */
- nstatus = FROM_LOOP (step, data, inptrp, inend,
- &outbuf, outerr,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- else
- /* Run the conversion loop. */
- nstatus = TO_LOOP (step, data, inptrp, inend,
- &outbuf, outerr,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- }
-# if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
- else
- {
- if (FROM_DIRECTION)
- /* Run the conversion loop. */
- nstatus = GEN_unaligned (FROM_LOOP) (step, data,
- inptrp, inend,
- &outbuf,
- outerr,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- else
- /* Run the conversion loop. */
- nstatus = GEN_unaligned (TO_LOOP) (step, data,
- inptrp, inend,
- &outbuf, outerr,
- lirreversiblep
- EXTRA_LOOP_ARGS);
- }
-# endif
-
- /* We must run out of output buffer space in this
- rerun. */
- assert (outbuf == outerr);
- assert (nstatus == __GCONV_FULL_OUTPUT);
-
- /* If we haven't consumed a single byte decrement
- the invocation counter. */
- if (__builtin_expect (outbuf == outstart, 0))
- --data->__invocation_counter;
-#endif /* reset input buffer */
- }
-
- /* Change the status. */
- status = result;
- }
- else
- /* All the output is consumed, we can make another run
- if everything was ok. */
- if (status == __GCONV_FULL_OUTPUT)
- {
- status = __GCONV_OK;
- outbuf = data->__outbuf;
- }
- }
-
- if (status != __GCONV_OK)
- break;
-
- /* Reset the output buffer pointer for the next round. */
- outbuf = data->__outbuf;
- }
-
-#ifdef END_LOOP
- END_LOOP
-#endif
-
- /* If we are supposed to consume all character store now all of the
- remaining characters in the `state' object. */
-#if MAX_NEEDED_FROM > 1 || MAX_NEEDED_TO > 1
- if (((MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1)
- || (MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
- || (MAX_NEEDED_TO > 1 && !FROM_DIRECTION))
- && __builtin_expect (consume_incomplete, 0)
- && status == __GCONV_INCOMPLETE_INPUT)
- {
-# ifdef STORE_REST
- mbstate_t *state = data->__statep;
-
- STORE_REST
-# else
- size_t cnt;
-
- /* Make sure the remaining bytes fit into the state objects
- buffer. */
- assert (inend - *inptrp < 4);
-
- for (cnt = 0; *inptrp < inend; ++cnt)
- data->__statep->__value.__wchb[cnt] = *(*inptrp)++;
- data->__statep->__count &= ~7;
- data->__statep->__count |= cnt;
-# endif
- }
-#endif
- }
-
- return status;
-}
-
-#undef DEFINE_INIT
-#undef CHARSET_NAME
-#undef DEFINE_FINI
-#undef MIN_NEEDED_FROM
-#undef MIN_NEEDED_TO
-#undef MAX_NEEDED_FROM
-#undef MAX_NEEDED_TO
-#undef DEFINE_DIRECTION_OBJECTS
-#undef FROM_DIRECTION
-#undef EMIT_SHIFT_TO_INIT
-#undef FROM_LOOP
-#undef TO_LOOP
-#undef SAVE_RESET_STATE
-#undef RESET_INPUT_BUFFER
-#undef FUNCTION_NAME
-#undef PREPARE_LOOP
-#undef END_LOOP
-#undef ONE_DIRECTION
-#undef STORE_REST
diff --git a/newlib/libc/sys/linux/iconv/strtab.c b/newlib/libc/sys/linux/iconv/strtab.c
deleted file mode 100644
index 0f5e2b632..000000000
--- a/newlib/libc/sys/linux/iconv/strtab.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/* C string table handling.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <inttypes.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/cdefs.h>
-#include <sys/param.h>
-
-
-struct Strent
-{
- const char *string;
- size_t len;
- struct Strent *next;
- struct Strent *left;
- struct Strent *right;
- size_t offset;
- char reverse[0];
-};
-
-
-struct memoryblock
-{
- struct memoryblock *next;
- char memory[0];
-};
-
-
-struct Strtab
-{
- struct Strent *root;
- struct memoryblock *memory;
- char *backp;
- size_t left;
- size_t total;
-
- struct Strent null;
-};
-
-
-/* Cache for the pagesize. We correct this value a bit so that `malloc'
- is not allocating more than a page. */
-static size_t ps;
-
-
-extern void *xmalloc (size_t n) __attribute_malloc__;
-
-/* Prototypes for our functions that are used from iconvconfig.c. If
- you change these, change also iconvconfig.c. */
-/* Create new C string table object in memory. */
-extern struct Strtab *strtabinit (void);
-
-/* Free resources allocated for C string table ST. */
-extern void strtabfree (struct Strtab *st);
-
-/* Add string STR (length LEN is != 0) to C string table ST. */
-extern struct Strent *strtabadd (struct Strtab *st, const char *str,
- size_t len);
-
-/* Finalize string table ST and store size in *SIZE and return a pointer. */
-extern void *strtabfinalize (struct Strtab *st, size_t *size);
-
-/* Get offset in string table for string associated with SE. */
-extern size_t strtaboffset (struct Strent *se);
-
-
-struct Strtab *
-strtabinit (void)
-{
- struct Strtab *ret;
-
- if (ps == 0)
- {
- ps = sysconf (_SC_PAGESIZE) - 2 * sizeof (void *);
- assert (sizeof (struct memoryblock) < ps);
- }
-
- ret = (struct Strtab *) calloc (1, sizeof (struct Strtab));
- if (ret != NULL)
- {
- ret->null.len = 1;
- ret->null.string = "";
- }
- return ret;
-}
-
-
-static void
-morememory (struct Strtab *st, size_t len)
-{
- struct memoryblock *newmem;
-
- if (len < ps)
- len = ps;
- newmem = (struct memoryblock *) malloc (len);
- if (newmem == NULL)
- abort ();
-
- newmem->next = st->memory;
- st->memory = newmem;
- st->backp = newmem->memory;
- st->left = len - offsetof (struct memoryblock, memory);
-}
-
-
-void
-strtabfree (struct Strtab *st)
-{
- struct memoryblock *mb = st->memory;
-
- while (mb != NULL)
- {
- void *old = mb;
- mb = mb->next;
- free (old);
- }
-
- free (st);
-}
-
-
-static struct Strent *
-newstring (struct Strtab *st, const char *str, size_t len)
-{
- struct Strent *newstr;
- size_t align;
- int i;
-
- /* Compute the amount of padding needed to make the structure aligned. */
- align = ((__alignof__ (struct Strent)
- - (((uintptr_t) st->backp)
- & (__alignof__ (struct Strent) - 1)))
- & (__alignof__ (struct Strent) - 1));
-
- /* Make sure there is enough room in the memory block. */
- if (st->left < align + sizeof (struct Strent) + len)
- {
- morememory (st, sizeof (struct Strent) + len);
- align = 0;
- }
-
- /* Create the reserved string. */
- newstr = (struct Strent *) (st->backp + align);
- newstr->string = str;
- newstr->len = len;
- newstr->next = NULL;
- newstr->left = NULL;
- newstr->right = NULL;
- newstr->offset = 0;
- for (i = len - 2; i >= 0; --i)
- newstr->reverse[i] = str[len - 2 - i];
- newstr->reverse[len - 1] = '\0';
- st->backp += align + sizeof (struct Strent) + len;
- st->left -= align + sizeof (struct Strent) + len;
-
- return newstr;
-}
-
-
-/* XXX This function should definitely be rewritten to use a balancing
- tree algorith (AVL, red-black trees). For now a simple, correct
- implementation is enough. */
-static struct Strent **
-searchstring (struct Strent **sep, struct Strent *newstr)
-{
- int cmpres;
-
- /* More strings? */
- if (*sep == NULL)
- {
- *sep = newstr;
- return sep;
- }
-
- /* Compare the strings. */
- cmpres = memcmp ((*sep)->reverse, newstr->reverse,
- MIN ((*sep)->len, newstr->len) - 1);
- if (cmpres == 0)
- /* We found a matching string. */
- return sep;
- else if (cmpres > 0)
- return searchstring (&(*sep)->left, newstr);
- else
- return searchstring (&(*sep)->right, newstr);
-}
-
-
-/* Add new string. The actual string is assumed to be permanent. */
-struct Strent *
-strtabadd (struct Strtab *st, const char *str, size_t len)
-{
- struct Strent *newstr;
- struct Strent **sep;
-
- /* Compute the string length if the caller doesn't know it. */
- if (len == 0)
- len = strlen (str) + 1;
-
- /* Make sure all "" strings get offset 0. */
- if (len == 1)
- return &st->null;
-
- /* Allocate memory for the new string and its associated information. */
- newstr = newstring (st, str, len);
-
- /* Search in the array for the place to insert the string. If there
- is no string with matching prefix and no string with matching
- leading substring, create a new entry. */
- sep = searchstring (&st->root, newstr);
- if (*sep != newstr)
- {
- /* This is not the same entry. This means we have a prefix match. */
- if ((*sep)->len > newstr->len)
- {
- struct Strent *subs;
-
- for (subs = (*sep)->next; subs; subs = subs->next)
- if (subs->len == newstr->len)
- {
- /* We have an exact match with a substring. Free the memory
- we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- return subs;
- }
-
- /* We have a new substring. This means we don't need the reverse
- string of this entry anymore. */
- st->backp -= newstr->len;
- st->left += newstr->len;
-
- newstr->next = (*sep)->next;
- (*sep)->next = newstr;
- }
- else if ((*sep)->len != newstr->len)
- {
- /* When we get here it means that the string we are about to
- add has a common prefix with a string we already have but
- it is longer. In this case we have to put it first. */
- st->total += newstr->len - (*sep)->len;
- newstr->next = *sep;
- newstr->left = (*sep)->left;
- newstr->right = (*sep)->right;
- *sep = newstr;
- }
- else
- {
- /* We have an exact match. Free the memory we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- newstr = *sep;
- }
- }
- else
- st->total += newstr->len;
-
- return newstr;
-}
-
-
-static void
-copystrings (struct Strent *nodep, char **freep, size_t *offsetp)
-{
- struct Strent *subs;
-
- if (nodep->left != NULL)
- copystrings (nodep->left, freep, offsetp);
-
- /* Process the current node. */
- nodep->offset = *offsetp;
- *freep = (char *) memcpy (*freep, nodep->string, nodep->len);
- *freep += nodep->len;
- *offsetp += nodep->len;
-
- for (subs = nodep->next; subs != NULL; subs = subs->next)
- {
- assert (subs->len < nodep->len);
- subs->offset = nodep->offset + nodep->len - subs->len;
- }
-
- if (nodep->right != NULL)
- copystrings (nodep->right, freep, offsetp);
-}
-
-
-void *
-strtabfinalize (struct Strtab *st, size_t *size)
-{
- size_t copylen;
- char *endp;
- char *retval;
-
- /* Fill in the information. */
- endp = retval = (char *) xmalloc (st->total + 1);
-
- /* Always put an empty string at the beginning so that a zero offset
- can mean error. */
- *endp++ = '\0';
-
- /* Now run through the tree and add all the string while also updating
- the offset members of the elfstrent records. */
- copylen = 1;
- copystrings (st->root, &endp, &copylen);
- assert (copylen == st->total + 1);
- assert (endp = retval + st->total + 1);
- *size = copylen;
-
- return retval;
-}
-
-
-size_t
-strtaboffset (struct Strent *se)
-{
- return se->offset;
-}