2000-04-09 Ulrich Drepper <drepper@redhat.com>
Implement handling of restartable conversion functions according to
ISO C.
* iconv/gconv.h (__gconv_fct): Add additional parameter.
* iconv/gconv_int.h (__BUILTIN_TRANS): Likewise.
* iconv/gconv.c: Pass additional parameter to conversion function.
* iconv/gconv_simple.c (internal_ucs4_loop_single): New function.
(internal_ucs4le_loop_single): New function.
(__gconv_transform_ascii_internal): Define ONE_DIRECTION.
(__gconv_transform_internal_ascii): Likewise.
(__gconv_transform_internal_utf8): Likewise.
(__gconv_transform_utf8_internal): Likewise.
(__gconv_transform_ucs2_internal): Likewise.
(__gconv_transform_internal_ucs2): Likewise.
(__gconv_transform_ucs2reverse_internal): Likewise.
(__gconv_transform_internal_ucs2reverse): Likewise.
(internal_ucs4le_loop_unaligned): Before return
__GCONV_INCOMPLETE_INPUT check that the remaining bytes really form
a valid character. Otherwise return __GCONV_ILLEGAL_INPUT.
(__gconv_transform_utf8_internal): Define STORE_REST and UNPACK_BYTES.
* iconv/loop.c: Fit in definition of function to convert one character
for processing of left-over bytes from the state object.
* iconv/skeleton.c (gconv): Rename inbuf to inptrp and inbufend to
inend to match names in loop functions.
(RESET_INPUT_BUFFER): Change apprpriately.
(gconv): If needed, call function to process bytes from the state
object. Similar at the end: store left over bytes if input is
incomplete.
Take extra argument and add new argument to all calls of the
conversion function.
* iconvdata/iso-2022-cn.c: Adjust numeric values used to store
information in the state object to not conflict with length count.
* iconvdata/iso-2022-jp.c: Likewise.
* iconvdata/iso-2022-kr.c: Likewise.
* iconvdata/unicode.c: Adjust for change change in parameters of
skeleton function.
* iconvdata/utf-16.c: Likewise.
* libio/iofwide.c: Add new parameter to all calls of conversion
function.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowc.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
* iconvdata/gbgbk.c: Always define MAX_NEEDED_OUTPUT and
MAX_NEEDED_INPUT.
2000-04-05 Cristian Gafton <gafton@redhat.com>
* ctype/ctype.h (__isctype_l): Define even if not __OPTIMIZE__
because it is used in generic code.
* wctype/wctrans.c: Define __ctype32_toupper and __ctype32_tolower.
* wcsmbs/wcwidth.h: Declare __ctype32_b.
* intl/gettext.c: Include <locale.h>.
* intl/ngettext.c: Likewise.
2000-04-05 Jakub Jelinek <jakub@redhat.com>
* resolv/inet_ntop.c (inet_ntop4, inet_ntop6, inet_ntop): Use
socklen_t type for size.
* sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Rewrite for new
init function interface.
* sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Don't include
sys/ucontext.h.
(__jmp_buf): Declare the whole type structure here, don't use
ucontext.
* iconv/skeleton.c (put16u): Fix typo.
Reported by Bruno Haible <haible@ilog.fr>.
2000-04-04 Ulrich Drepper <drepper@redhat.com>
* iconv/skeleton.c (FUNCTION_NAME): Reorder initialization of
unaligned so that it compiles for system which need unaligned
access handling.
* iconv/skeleton.c: Define access macros with u suffix. Adjust
#if expression for use of unaligned function to the one used in
the definition of these functions.
* iconv/gconv_simple.c (internal_ucs4_loop_unaligned): New function.
(internal_ucs4le_loop_unaligned): New function.
Ralf Baechle <ralf@uni-koblenz.de>
2000-03-28 Ulrich Drepper <drepper@redhat.com>
* iconvdata/TESTS: Use UCS-2BE instead of UCS2.
* iconv/loop.c: Define get16, get32, put16, and put32 macros to
allow as well reading from/writing to unaligned addresses on machines
which don't support this in hardware. Use FCTNAME macro to define
function name. Include the file a second time for platforms which
need special unaligned handling.
* iconv/skeleton.c: Define get16u, get32u, put16u, and put32u macros
to access potentially unaligned addresses. These macros are intended
to be used only outside the loops.
(unaligned): New definition. In case the machine can handle unaligned
access define as zero. Otherwise as a variable which is initialized
as nonzero in case the buffer passed in at runtime is unaligned with
respect to the character set encoding involved.
Call aligned or unaligned looop functions according to unaligned
variable.
* iconvdata/8bit-gap.c: Use get16, get32, put16, and put32 instead
of direct casting pointer to potentially handle unaligned memory
accesses.
* iconvdata/8bit-generic.c: Likewise.
* iconvdata/ansi_x3.110.c: Likewise.
* iconvdata/big5.c: Likewise.
* iconvdata/euc-cn.c: Likewise.
* iconvdata/euc-jp.c: Likewise.
* iconvdata/euc-kr.c: Likewise.
* iconvdata/euc-tw.c: Likewise.
* iconvdata/gbk.c: Likewise.
* iconvdata/iso-2022-cn.c: Likewise.
* iconvdata/iso-2022-jp.c: Likewise.
* iconvdata/iso-2022-kr.c: Likewise.
* iconvdata/iso646.c: Likewise.
* iconvdata/iso_6937-2.c: Likewise.
* iconvdata/iso_6937.c: Likewise.
* iconvdata/johab.c: Likewise.
* iconvdata/sjis.c: Likewise.
* iconvdata/t.61.c: Likewise.
* iconvdata/uhc.c: Likewise.
* iconvdata/unicode.c: Likewise.
* iconvdata/utf-16.c: Likewise.
* locale/programs/simple-hash.c: Little optimizations. Remove K&R
prototypes.
* malloc/Versions [libc] (GLIBC_2.2): Add mcheck_check_all.
* malloc/mcheck.c (mcheck_check_all): Renamed from check_all and made
public.
* malloc/mcheck.h (mcheck_check_all): Declare.
* stdio-common/Makefile (tests): Add tst-obprintf.
2000-03-23 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_int.h (__gconv_transform_ucs2little_internal,
__gconv_transform_internal_ucs2little): Remove declarations.
* iconv/gconv_simple.c (__gconv_transform_ucs2_internal,
__gconv_transform_internal_ucs2): Never need to bswap_16.
(__gconv_transform_ucs2reverse_internal,
__gconv_transform_internal_ucs2reverse): Always need to bswap_16.
2000-03-14 Ulrich Drepper <drepper@redhat.com>
* iconv/skeleton.c: Increment __invocation_counter in inner loop
since modules depend on it counting the number of times the conversion
function got called.
* iconv/gconv_open.c: Optimize loop to setup step data structure.
* iconv/gconv.h: Pretty print.
2000-03-04 Ulrich Drepper <drepper@redhat.com>
* posix/wordexp-test.c: Correct one of the tests added in the last
change. Really get the root passwd entry to check again ~root.
2000-02-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/start.c: Initialize __errno and add comment
explaining why. Remove K&R compatibility.
* sysdeps/powerpc/fpu/s_isnan.c: Avoid using asm statement to
declare aliases.
* sysdeps/powerpc/Makefile: Always pass flags to compile for ppc
and not rs6000.
[$(subdir)=misc] (sysdep_routines): Add gprsave0, gprrest0,
gprsave1 , and gprrest1.
Don't pass special flags to compiler for init and gmon-start if
this is no ELF platform.
* sysdeps/mach/hurd/bits/statfs.h: Define _STATFS_F_NAMELEN.
* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: Likewise.
* sysdeps/posix/fpathconf.c: Don't unconditionally use f_namelen
in statfs. Check feature macro and use f_name_max or NAME_MAX
instead.
* sysdeps/posix/pathconf.c: Likewise.
* dlfcn/dlfcn.h: Remove DL_CALL_FCT definition here.
* sysdeps/generic/bits/dlfcn.h: Define DL_CALL_FCT here.
* sysdeps/mips/bits/dlfcn.h: Define DL_CALL_FCT here.
* iconv/skeleton.c: If DL_CALL_FCT is not yet defined, add dumy
definition here.
* sysdeps/generic/libc-start.c: Fix typo in comment.
* include/set-hooks.h: Allow systems to not define
symbol_set_define.
* configure.in: Unify machine names rs6000 and powerpc.
2000-02-13 Ulrich Drepper <drepper@redhat.com>
* iconvdata/Makefile (modules): Add UTF-16.
(distribute): Add utf-16.c.
* iconvdata/gconv-modules: Add entries for UTF-16, UTF-16BE, and
UTF-16LE.
* iconvdata/utf-16.c: New file.
* iconv/gconv_builtin.h: Remove UTF-16 entries here.
* iconv/gconv_simple.c: Remove conversion functions to and from UTF-16.
* iconv/skeleton.c: Increment __invocation_coounter after every call
to the loops.
1999-12-21 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/getmsg.c: New file.
* sysdeps/unix/sysv/linux/i386/getpmsg.c: New file.
* sysdeps/unix/sysv/linux/i386/putmsg.c: New file.
* sysdeps/unix/sysv/linux/i386/putpmsg.c: New file.
* sysdeps/unix/sysv/linux/m68k/getmsg.c: New file.
* sysdeps/unix/sysv/linux/m68k/getpmsg.c: New file.
* sysdeps/unix/sysv/linux/m68k/putmsg.c: New file.
* sysdeps/unix/sysv/linux/m68k/putpmsg.c: New file.
* sysdeps/unix/sysv/linux/mips/getmsg.c: New file.
* sysdeps/unix/sysv/linux/mips/getpmsg.c: New file.
* sysdeps/unix/sysv/linux/mips/putmsg.c: New file.
* sysdeps/unix/sysv/linux/mips/putpmsg.c: New file.
* sysdeps/unix/sysv/linux/powerpc/getmsg.c: New file.
* sysdeps/unix/sysv/linux/powerpc/getpmsg.c: New file.
* sysdeps/unix/sysv/linux/powerpc/putmsg.c: New file.
* sysdeps/unix/sysv/linux/powerpc/putpmsg.c: New file.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add getpmsg and
putpmsg.
1999-12-20 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/lxstat64.c: Include "kernel-features.h"
before testing for __ASSUME_STAT64_SYSCALL.
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/xstat64.c: Likewise.
1999-12-20 Andreas Schwab <schwab@suse.de>
* manual/install.texi (Running make install): Clearify that
install_root should be an absolute file name.
* iconv/gconv.c (__gconv): Deal with outbuf being NULL.
* iconv/iconv.c (iconv): Allow omitting output buffer if no input
buffer is given to place conversion descriptor in initial state.
* iconvdata/gconv-modules: Correct aliases CSPC850MULTILINGUAL and
CSPC862LATINHEBREW.
* iconvdata/gconv-modules: Add aliases GB2312 and csGB2312
(according to IANA registry).
Reported by Bruno Haible <haible@ilog.fr>.
* iconvdata/johab.c: Correct completely broken conversion to JOHAB.
1999-12-07 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv_db.c (gen_steps): Set __counter initialy to 1.
(increment_counter): New function. Broken out of find_derivation.
(find_derivation): No need for a lock. Increment counter only when
the derivation was already available.
* iconv/gconv_dl.c: Add debugging functions.
(known_compare): We have to use strcmp.
1999-11-25 H.J. Lu <hjl@gnu.org>
* stdlib/exit.c (exit): Run funtions only if
__exit_funcs->idx > 0.
1999-11-25 Ulrich Drepper <drepper@cygnus.com>
* manual/charset.texi (iconv Examples): Add iconv call to flush
state. Reported by Andrew Clausen <clausen@alphalink.com.au>.
1999-11-25 Andreas Jaeger <aj@suse.de>
* manual/install.texi (Running make install): Better describe
update from libc5.
Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
1999-11-25 Andreas Jaeger <aj@suse.de>
* include/sys/mman.h: Remove K&R compatibility.
1999-11-15 Andreas Jaeger <aj@suse.de>
* misc/sys/mman.h: Use __REDIRECT for mmap, correct prototype to
use __off64_t.
1999-11-25 Ulrich Drepper <drepper@cygnus.com>
* iconv/iconv_prog.c (process_block): For stateful charsets write
out byte sequence to get to initial state at the end of the file.
which was reported to not work (which proofed to be wrong).
1999-10-19 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu/s_nextafterl.c: Add __nextafterl and nextafterl
aliases.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Don't handle -Inf special.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r): Check
for -Inf and return NaN.
* math/gen-libm-test.pl: Fix program name in help message.
* math/libm-test.inc (check_complex): It's Imaginary, not Complex.
* math/libm-test.inc (gamma_test): Result of gamma(-inf) is +inf.
* sysdeps/i386/Implies: Correct order of libm directories.
1999-08-22 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv_int.h (GCONV_AVOID_NOCONV): New definition.
(__gconv_find_transform): Update prototype.
(__gconv_open): Likewise.
* iconv/gconv_open.c: Take extra parameter and pass it to
__gconv_find_transform.
* iconv/gconv_db.c (__gconv_find_transform): Take extra parameter with
flags. If GCONV_AVOID_NOCONV flag is set don't return copying
transformation.
* iconv/iconv_open.c: Pass extra parameter to __gconv_open.
* wcsmbs/wcsmbsload.c: Likewise.
* intl/dcgettext.c (_nl_find_msg): Rewrite to use gconv instead of
iconv for glibc.
* intl/gettextP.h: Likewise.
* intl/loadmsgcat.c: Likewise.
* posix/regexbug1.c: New file.
* posix/Makefile (tests): Add regexbug1.
* sysdeps/gnu/Makefile (libdl-routines): Add eval.
1999-07-06 Zack Weinberg <zack@rabi.columbia.edu>
* dlfcn: New directory. Move the following files from elf:
dladdr.c, dlclose.c, dlerror.c, dlfcn.h, dlopen.c,
dlopenold.c, dlsym.c, dlvsym.c.
* dlfcn/Makefile: New file.
* dlfcn/Versions: New file.
* dlfcn/dlsym.c: All ELF-specific code split out to new
function _dl_sym.
* dlfcn/dlvsym.c: All ELF-specific code split out to new
function _dl_vsym.
* elf/dl-sym.c: New file. _dl_sym and _dl_vsym are
implemented here.
* dlfcn/dladdr.c: Remove all references to ELF data structures
or headers.
* dlfcn/dlclose.c: Likewise.
* dlfcn/dlerror.c: Likewise.
* dlfcn/dlopen.c: Likewise.
* dlfcn/dlopenold.c: Likewise.
* Makeconfig (dlfcn): New variable - set to `dlfcn' if elf is
yes, empty otherwise.
(libdl): Set to dlfcn/libdl.so or libdl.a if elf is yes,
depending on build-shared.
(subdirs): Add $(dlfcn).
(rpath-dirs): Add dlfcn.
* elf/Makefile: Remove all references to libdl or its
components, except the ones relating to the test cases.
(routines): Add dl-sym.
* elf/Versions (libc): Add _dl_sym and _dl_vsym for GLIBC_2.2.
(libdl): Delete.
* elf/dl-close.c (_dl_close): Change argument to void *.
* elf/dl-open.c (_dl_open): Change return type to void *.
* elf/eval.c: Removed.
* elf/ldsodefs.h: Move prototypes of _dl_catch_error,
_dlerror_run, _dl_open, _dl_close, _dl_addr, and
_dl_mcount_wrapper_check to include/dlfcn.h. Delete
_CALL_DL_FCT macro.
* include/dlfcn.h: Also prototype _dl_sym and _dl_vsym here.
Include real header from dlfcn directory.
* include/ldsodefs.h: Removed.
* grp/initgroups.c: Use DL_CALL_FCT not _CALL_DL_FCT.
* nss/getXXbyYY_r.c: Likewise.
* nss/getXXent_r.c: Likewise.
* iconv/gconv.c: Likewise. Don't include ldsodefs.h.
* iconv/gconv_db.c: Likewise. Don't include ldsodefs.h.
* iconv/skeleton.c: Don't include ldsodefs.h.
* nss/nsswitch.h: Don't include ldsodefs.h. Include dlfcn.h.
1999-07-07 Ulrich Drepper <drepper@cygnus.com>
* Versions.def (ld.so): Add GLIBC_2.1.1.
* elf/Makefile (routines): Add dl-origin.
(tests): Add origtest. Add dependencies for the program.
* elf/Versions (ld.so) [GLIBC_2.1.1]: Add _dl_origin_path,
_dl_platformlen, _dl_dst_count and _dl_dst_substitute.
* elf/dl-deps.c (expand_dst): New macro. Expand DSTs in filename.
(_dl_map_object_deps): Use expand_dst to expand DSTs in DT_NEEDED,
DT_AUXILIARY, and DT_FILTER filenames.
* elf/dl-load.c (expand_dynamic_string_token): Explode into
two functions and three macros.
(_dl_dst_count, _dl_dst_substitute): New functions.
* elf/dl-dst.h: New file.
* elf/dl-open.c (_dl_open): Take extra parameter with address of
caller. Pass address in args structure.
(dl_open_worker): Recognize and expand DSTs in filename.
* elf/ldsodefs.h (_dl_open): Adapt prototype.
* elf/dlopen.c (dlopen_doit): Pass caller address to _dl_open.
(__dlopen_check): Pass caller address to dlopen_doit in args.
* elf/dlopendoit.c: Likewise.
* iconv/gconv_dl.c: Adapt call of _dl_open.
* nss/nsswitch.c: Likewise.
* elf/origtest.c: New file.
* sysdeps/generic/dl-origin.h: Moved to...
* sysdeps/generic/dl-origin.c: ...here.
* sysdeps/unix/sysv/linux/dl-origin.h: Moved to...
* sysdeps/unix/sysv/linux/dl-origin.c: ...here.
1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* string/bits/string2.h (memset): Revert to previous version if
unaligned writes are not available.
1999-04-30 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/bits/string.h (__memset_gc): Help generating
better code in presence of the asm.
1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* stdlib/fmtmsg.c (keywords): Increase array size for faster
indexing.
* locale/localeinfo.h (_nl_category_names): Increase array element
size for faster indexing.
* locale/setlocale.c (_nl_category_names): Adjusted.
1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* iconv/gconv_conf.c (add_alias): Remove wrong cast.
* iconv/gconv_db.c (__gconv_find_transform): If conversion is
known to not exist don't try to load shared objects.
Patch by Petr Vandrovec Ing. VTEI <VANDROVE@vc.cvut.cz>.