diff -durpN glibc-2.1/BUGS glibc-2.1.1/BUGS --- glibc-2.1/BUGS Thu Feb 4 01:51:49 1999 +++ glibc-2.1.1/BUGS Tue Apr 20 00:58:10 1999 @@ -1,7 +1,7 @@ List of known bugs (certainly very incomplete) ---------------------------------------------- -Time-stamp: <1999-02-03T17:51:49-0800 drepper> +Time-stamp: <1999-04-19T17:58:10-0700 drepper> This following list contains those bugs which I'm aware of. Please make sure that bugs you report are not listed here. If you can fix one @@ -26,6 +26,9 @@ Severity: [ *] to [***] [ **] There are problems with signal handling when using LinuxThreads. + +[ **] The RPC code is not 64 bit clean. This is getting slowly fixed + but expect incompatible changes on 64 bit platforms like Alpha. [ *] The precision of the `sinhl' and/or `asinhl' function do not seem to be the best. diff -durpN glibc-2.1/ChangeLog glibc-2.1.1/ChangeLog --- glibc-2.1/ChangeLog Thu Feb 4 18:56:26 1999 +++ glibc-2.1.1/ChangeLog Tue May 25 01:17:59 1999 @@ -1,4614 +1,1598 @@ -1999-02-04 Ulrich Drepper - - * stdlib/strtoll.c: Add alias __strtoq_internal. - * stdlib/strtoull.c: Add alias __strtouq_internal. - - * wcsmbs/mbrtowc.c: Correct logic testing for converted NUL - character. Patch by Owen Taylor . - -1999-02-03 Mark Kettenis - - * sysdeps/mach/hurd/utimes.c (__utimes): Deal with TVP being NULL. - -1999-02-03 Ulrich Drepper - - * version.h (VERSION): Bump to 2.1. - (RELEASE): Change to stable. - - * elf/dlsym.c (dlsym_doit): If no symbol for RTLD_NEXT is found - initialize ref element of args object so that dlsym does not dump - a core. - * elf/dlvsym.c (dlvsym_doit): Likewise. - -1999-02-03 Jakub Jelinek - - * sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Set branch - prediction correctly. - - * sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Signal - takes a pointer to __sigcontext_t. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Do a nop after retl. - * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove fork.S. - -1999-02-02 Andreas Schwab - - * manual/time.texi (General Time String Parsing): Fix typos. Fix - column widths of table. - -1999-01-31 Mark Kettenis - - * sysdeps/mach/hurd/times.c: New file. - -1999-02-02 Ulrich Drepper - - * nscd/nscd_getpw_r.c (nscd_getpw_r): Mark as internal and take - extra argument with length of key string. - (__nscd_getpwnam_r): Call nscd_getpw_r with extra argument. - (__nscd_getpwuid_r): Create key string on stack. - * nscd/nscd_getgr_r.c: Mark local functions as internal. - * nscd/nscd_gethst_r.c: Likewise. - - * elf/dl-load.c: Use alloca, not __alloca. - - * sysdeps/unix/sysv/linux/reboot.c: Make sure first parameter is - correctly passed to the kernel even on 64bit platforms. - Patch by Bruce Elliott . - - * localedata/locales/it_CH: New file. - Contributed by Giacomo Amabile Catenazzi . - -1999-01-31 Andreas Jaeger - - * manual/install.texi (Configuring and compiling): Building in the - source directory works, change paragraph stating the opposite. - -1999-01-29 Andreas Schwab - - * locale/programs/locale-spec.c: Fix last change. - -1999-01-31 Ulrich Drepper - - * math/libm-test.c (fdim_test): Fix typo in message. - Patch by Paul Kimoto . - -1999-01-31 Philip Blundell - - * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: If the kernel - doesn't have vfork, resort to using fork. - * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise. - -1999-01-30 Ulrich Drepper - - * sysdeps/sparc/sparc32/__longjmp.S: Include bits/setjmp.h not - jmp_buf.h. Patch by David S. Miller . - - * sysdeps/libm-i387/s_fdim.S: Reverse arguments of instruction - changed in last patch. - * sysdeps/libm-i387/s_fdimf.S: Likewise. - * sysdeps/libm-i387/s_fdiml.S: Likewise. - -1999-01-29 Richard Henderson - - * scripts/config.sub: Recognize alpha{pca5[67],ev[67]}. - - * sysdeps/generic/elf/backtracesyms.c (__backtrace_symbols): - Format pointer differences as longs. - - * sysdeps/alpha/fpu/s_floor.c, sysdeps/alpha/fpu/s_floorf.c: - Copy commentary from bits/mathinclude.h. Kill unused defines. - - * sysdeps/alpha/atomicity.h: New file. - -1999-01-29 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.112. - - * scripts/versions.awk: Quote { in regexp. - - * sunrpc/clnt_tcp.c (clnttcp_call): Resolve 32-64 comparison - conflict for 64 bit platforms. - Patch by trott@rottmann.hi.shuttle.de. - - * sysdeps/unix/sparc/vfork.S: Correct comment. - * sysdeps/unix/sparc/fork.S: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove vfork. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: No special case for - child necessary. - * sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file. - * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file. - Patches by Jakub Jelinek . - - * sysdeps/libm-i387/s_fdim.S: Change fsubp to fsubrp for picky gas. - * sysdeps/libm-i387/s_fdimf.S: Likewise. - * sysdeps/libm-i387/s_fdiml.S: Likewise. - - * sysdeps/alpha/fpu/s_floor.c (__floor): Don't depend on inlining, - duplicate the code. - * sysdeps/alpha/fpu/s_floorf.c (__floorf): Likewise. - - * sysdeps/i386/Versions: Exports functions from libgcc since this - is what was done in glibc 2.0. - * sysdeps/m68k/Versions: Likewise. New file. - -1999-01-28 Andreas Schwab - - * sysdeps/wordsize-32/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C, - UINT8_C, UINT16_C, UINT32_C, UINT64_C): Remove casts, they must be - integer constants. Use ## directly instead of __CONCAT so that - the suffix string is not expanded as a macro. - * sysdeps/wordsize-64/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C, - UINT8_C, UINT16_C, UINT32_C, UINT64_C): Likewise. - (INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST64_MIN, - INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST16_MIN, INT_FAST32_MIN, - INT_FAST64_MIN, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX, - UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX, INTMAX_MIN, - INTMAX_MAX, UINTMAX_MAX): Define as long constants, not long long. - -1999-01-28 Andreas Schwab - - * locale/mb_cur_max.c (__ctype_get_mb_cur_max): Correct return - type to size_t. - * locale/broken_cur_max.c (__ctype_get_mb_cur_max): Likewise. - * stdlib/stdlib.h (__ctype_get_mb_cur_max): Likewise. - -1999-01-27 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/vfork.S: Deleted. - -1999-01-28 David S. Miller - - * sysdeps/sparc/sparc32/__longjmp.S: Rewrite without bogus sanity - checks and aborts, to make longjmp based thread schemes work again. - -1999-01-28 Ulrich Drepper - - * sysdeps/unix/sysv/sysv4/solaris2/configure.in: New file. - * sysdeps/unix/sysv/sysv4/solaris2/configure: New file. - * sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: New file. - Patch by Jeff Bailey . - - * locale/setlocale.c (free_mem): Don't try to free C locale data - and use setdata instead of doing it by hand. - - * iconv/gconv_conf.c (add_alias): Check that so such alias is - currently stored. - - * iconv/gconv_db.c (free_derivation): Free names if charsets for - first and last step. - - * iconv/gconv_dl.c: Unload all modules when debugging memory use. - - * locale/loadlocale.c (_nl_unload_locale): Free locale name. - - * intl/finddomain.c (free_mem): Also free filename. - * locale/findlocale.c (free_mem): Likewise. - (_nl_find_locale): Duplicate loc_name with strdupa not strdup. - * locale/setlocale.c (free_mem): New function. Free current locale - data and set current locale to "C". - - * libio/genops.c (_IO_un_link): Move #ifdef introduced in last - change in right place. - - * sysdeps/unix/sysv/linux/sys/timex.h: Add MAXTC from kernel - header. Suggested by Thomas Quinot . - -1999-01-28 Andreas Jaeger - - * libio/getc_u.c (__getc_unlocked): Avoid compiler warning. - -1999-01-28 Ulrich Drepper - - * libio/genops.c (_IO_un_link, _IO_link_in): Don't use locking if - _IO_MTSAFE_IO is not defined. - - * iconv/gconv_db.c (free_modules_db): Don't free memory of - internal modules. - - * iconv/gconv_db.c (free_mem): Don't free module tree if there is none. - -1999-01-27 Ulrich Drepper - - * locale/programs/locale-spec.c (locale_special): Take care of - possible trigraph sequence. - Patch by Zack Weinberg . - - * time/strptime.c (strptime_internal, case 's'): Initialize secs - to zero. Patch by Bruce Elliott . - -1999-01-27 Andreas Schwab - - * elf/Makefile (extra-objs): Add test modules objects. - -1999-01-27 Ulrich Drepper - - * wctype/wcextra.c: Declare __ctype32_b. - - * manual/string.texi: Add optimization examples for strcat and strchr. - -1999-01-26 Ulrich Drepper - - * libio/Makefile (routines): Remove fgetc. - * libio/fgetc.c: Removed. - * libio/getc.c: Add fgetc alias. - * libio/Versions [GLIBC_2.1]: Add fgetc_unlocked. - * libio/getc_u.c: Rename function to __getc_unlocked and make - getc_unlocked and fgetc_unlocked weak aliases. - * libio/stdio.h: Add prototype for fgetc_unlocked. - - * sysdeps/gnu/bits/utmp.h: Don't prepend exit_status elements with - __ since utmp.h is not mentioned in any standard. - - * sysdeps/unix/sysv/linux/i386/clone.S: When not using PIC don't - use jecxz since the label might be far away. - - * sysdeps/unix/sysv/linux/sigaction.c: Update comment to say the - __libc_missing_rt_sigs is defined here. - * sysdeps/unix/sysv/linux/sigpending.c: Only declare - __libc_missing_rt_sigs. - * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. - * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. - -1999-01-25 Ulrich Drepper - - * scripts/config.guess: Changes for ARM/Linux. - * scripts/config.sub: Likewise. - - * elf/Makefile: Define libdl variable as name of libdl library and - use it in all dependencies. - -1999-01-26 Geoff Keating - - * nss/nss_db/db-netgrp.c (_nss_db_setnetgrent): Suppress warning - about potentially uninitialized `flags'. - * nss/nss_db/db-alias.c (internal_setent): Likewise. - -1999-01-25 Andreas Jaeger - - * elf/failobj.c: Provide prototype for xyzzy. - -1999-01-25 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/clone.S: Correct error check again. - -1999-01-24 Roland McGrath - - * sysdeps/mach/hurd/ioctl.c: Include . - (__ioctl): Use IOC_MSGID macro. - -1999-01-24 Ulrich Drepper - - * libio/iofopen.c (_IO_fopen): Pass correct value as fourth - parameter to _IO_file_fopen. - * libio/iofopen64.c (_IO_fopen64): Likewise. - - * po/sv.po: Update from translation team. - - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add __vfork - as alias. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. - -1999-01-24 Andreas Jaeger - - * ctype/ctype.h (toupper,tolower): Use __inline instead of inline, - define inline functions only when optimizing for speed and - __USE_EXTERN_INLINES is set. - -1999-01-24 Ulrich Drepper - - * scripts/config.sub: Update from latest autoconf release. - * scripts/config.guess: Likewise. - - * sysdeps/i386/i786/Implies: New file. - -1999-01-24 Andreas Jaeger - - * manual/install.texi (Running make install): Change for Linux 2.2. - -1999-01-24 Andreas Jaeger - - * manual/process.texi (Creating a Process): Fix typos. - -1999-01-24 Roland McGrath - - * sysdeps/mach/hurd/dl-sysdep.c (__getcwd): Fail with ENOSYS, don't - call abort. Suggested by Mark Kettenis . - -1999-01-23 Roland McGrath - - * sysdeps/unix/sysv/linux/sys/mtio.h: Moved to... - * sysdeps/gnu/sys/mtio.h: ...here. - (_IOT_mtop, _IOT_mtget, _IOT_mtpos, _IOT_mtconfiginfo): New macros. - * sysdeps/gnu/Dist: Add sys/mtio.h. - * sysdeps/unix/sysv/linux/Dist: Remove sys/mtio.h. - * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] - (sysdep_headers): Don't add sys/mtio.h here. - * sysdeps/gnu/Makefile [$(subdir) = misc] (sysdep_headers): Add it - here instead. - - Revamp Hurd ioctl typing magic to handle `struct' keyword in the - ioctl command macros, so we can use Unix-compatible headers that - make use of the _IO* macros. - * sysdeps/mach/hurd/bits/ioctls.h (_IOC_ENCODE_TYPE, - _IOC_ENCODE_TYPE_1, _IOC_ENCODE_TYPE_2, _IOTBASE_struct): New macros. - (_IOR, _IOW, _IOWR): Use them _IOC_ENCODE_TYPE(t) instead of _IOT_##t. - (_IOT_int, _IOT_char, _IOT_short): Renamed to _IOT__IOTBASE_*. - (numerous ioctl command macros): Restore `struct' keyword. - -1999-01-24 Ulrich Drepper - - * ctype/ctype.c (toupper): Correct variable names from last change. - (tolower): Likewise. - -1999-01-23 Ulrich Drepper - - * sunrpc/rpc_main.c (open_output): Allow better translation of - error message. - (close_output): Likewise. - * locale/programs/localedef.c: Unify messages. - * malloc/obstack.c: Likewise. - Suggested by Vladimir Michl . - - * grp/putgrent.c (putgrent): Don't insert extra colon. - Patch by Michael Schaefer . - - * nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has - at least two bytes (not one). Correct buflen parameter type. - * nss/nss_files/files-alias.c (get_next_alias): Make sure buffer - has at least two bytes. Use fgets_unlocked instead of fgets. - - * ctype/ctype.h: Don't user __tolower directly for tolower - implementation. Use inline function which tests for the range - first. Make _tolower equivalent to old tolower macros. - Likewise for toupper. - * ctype/ctype.c: Change tolower/toupper definition accordingly. - - * argp/argp-help.c: Use _tolower instead of tolower if possible. - * inet/ether_aton_r.c: Likewise. - * inet/ether_line.c: Likewise. - * inet/rcmd.c: Likewise. - * intl/l10nflist.c: Likewise. - * locale/programs/ld-collate.c: Likewise. - * locale/programs/linereader.c: Likewise. - * locale/programs/localedef.c: Likewise. - * nis/nss_nis/nis-alias.c: Likewise. - * nis/nss_nis/nis-network.c: Likewise. - * posix/regex.c: Likewise. - * resolv/inet_net_pton.c: Likewise. - * stdio-common/printf_fp.c: Likewise. - * stdio-common/vfscanf.c: Likewise. - * sysdeps/generic/strcasestr.c: Likewise. - - * math/bits/mathcalls.h: Fix typo. - -1999-01-23 Roland McGrath - - * sysdeps/gnu/errlist.awk: Add comment. - -1999-01-23 Ulrich Drepper - - * csu/Versions: Add __register_frame_info_table. - -1998-12-29 Geoff Keating - - * sunrpc/Versions: Include _authenticate, it's defined in a user - header (in fact, it's the whole contents of rpc/svc_auth.h). - -1999-01-23 Ulrich Drepper - - * io/ftw.c (process_entry): Initialize flag since not all gcc - versions are smart enough to see that this is no problem. - - * elf/dl-open.c (_dl_init_paths): Check malloc result. - - * csu/Versions: Add __frame_state_for. - -1999-01-22 Ulrich Drepper - - * sysdeps/gnu/errlist.awk: Mark ENOTSUP as alias for EOPNOTSUPP. - - * iconv/gconv_conf.c (add_alias): Convert names to uppercase before - adding into search tree. - (add_module): Likewise. - * iconv/iconv_open.c: Likewise. - * iconv/gconv_db.c: Change all __strcasecmp to strcmp. - * iconv/skeleton.c (gconv_init): Likewise. - -1999-01-20 Andreas Schwab - - * elf/Makefile: Make dependencies between test modules explicit. - (preloadtest-preloads): New variable. - ($(objpfx)preloadtest.out): Use it. - (preloadtest-ENV): Use it. - -1999-01-22 Andreas Schwab - - * sysdeps/unix/sysv/linux/arm/Dist: Undo last change. Not needed. - -1999-01-22 Roland McGrath - - * sysdeps/mach/hurd/Makefile ($(common-objpfx)stamp-errnos): Depend on - $(common-objpfx)errnos.d. - - * sysdeps/mach/hurd/Makefile: Fix errnos.h -> bits/errno.h in rules. - - * manual/errno.texi (Error Codes): Fix ENOSYS description. - Add ENOTSUP. - -1999-01-21 Ulrich Drepper - - * elf/Makefile: Add missing dependency for preloadtest binary. - -1999-01-21 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.111. - - * elf/Makefile (distribute): Add test module sources. - - * sysdeps/unix/sysv/linux/sys/sysmacros.h: Pretty print. - * sysdeps/unix/sysv/linux/Dist: Remove sys/sysmacros.h. - * sysdeps/unix/sysv/linux/Makefile: Remove sys/sysmacros.h. - * posix/Makefile (headers): Add sys/sysmacros.h. - * posix/sys/types.h: Include sys/sysmacros.h for __USE_BSD. - * sysdeps/generic/sys/sysmacros.h: New file. - * sysdeps/mach/hurd/xmknod.c: Include sys/types.h and remove minor and - major definition. - - * elf/dl-close.c: Rewrite the way adding to the global scope works - to handle error cases better than the last change. - The l_global flag is now only set when the object is actually - counted in the global scope list. - * elf/dl-deps.c: Likewise. - * elf/dl-open.c: Likewise. - -1999-01-20 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/sigaction.c: New file. - - * sysdeps/unix/sysv/linux/arm/vfork.S: New file. - * sysdeps/unix/sysv/linux/arm/Dist: Add vfork.S. - - * sysdeps/unix/sysv/linux/arm/clone.S: Optimise a little, support - 26-bit machines correctly and fix check for returned errors. - -1999-01-21 Ulrich Drepper - - * sysdeps/unix/sysv/linux/i386/clone.S: Micro-optimization. - - * sysdeps/unix/sysv/linux/i386/vfork.S: Add back the first - implementation now that the syscall is back in 2.2.0. - - * elf/Makefile: Change rule to make test module so that they are - compiled using -fPIC. - * elf/testobj1.c: Add missing prototype. - * elf/testobj1_1.c: Likewise. - * elf/testobj2.c: Likewise. - * elf/testobj3.c: Likewise. - * elf/testobj4.c: Likewise. - * elf/testobj5.c: Likewise. - * elf/testobj6.c: Likewise. - -1999-01-20 Ulrich Drepper - - * elf/Makefile (tests): Add loadfail. - Add rules to build failobj.so. - * elf/loadfail.c: New file. Test of failing to load object with - RTLD_GLOBAL set. - * elf/failobj.c: New file. Object which will fail to load. - - * elf/dl-close.c (_dl_close): Fix last patch (cnt is unsigned). - - * elf/dl-close.c: Handle failed loads which would have gone in the - global scope correctly. - - * elf/testobj1.c: Include stdlib.h to get NULL defined. - * elf/testobj2.c: Likewise. - * elf/testobj3.c: Likewise. - * elf/testobj4.c: Likewise. - * elf/testobj5.c: Likewise. - - * iconvdata/Makefile (modules): Add SAMI-WS2 and ISO-IR-197. - * iconvdata/gconv-modules: Add entries for above charsets. - * iconvdata/iso-ir-197.c: New file. - * iconvdata/sami-ws2.c: New file. - - * sysdeps/unix/sysv/linux/vfork.c: Once again use generic version. - -1999-01-18 Andreas Schwab - - * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.d): Fix - generation of dependency list to make it work with newer versions - of gcc. - -1999-01-18 Andreas Schwab - - * Makerules (build-module): New macro, moved from... - * elf/Makefile (build-module): ... here. - * iconvdata/Makefile (build-module): ... and here. - -1999-01-20 Ulrich Drepper - - * sysdeps/alpha/Versions: Add __atan2 for libm and GLIBC_2.0. - - * elf/Makefile (tests): Add preloadtest. Add rules to build more test - modules and the preloadtest binary. - * elf/loadtest.c (TEST_ROUNDS): Increase to 1000. - (testobjs): Add more modules. - (tests): Add entries for new modules. - * elf/preloadtest.c: New file. Test for LD_PRELOAD. - * elf/testobj1.c: Add 'preload' function. - * elf/testobj2.c: Likewise. - * elf/testobj3.c: Likewise. - * elf/testobj4.c: New file. - * elf/testobj5.c: New file. - * elf/testobj6.c: New file. - -1999-01-19 Ulrich Drepper - - * elf/dl-object.c (_dl_new_object): Micro-optimization. - - * elf/restest1.c: New file. Symbol resolution test. - * elf/testobj1_1.c: New file. Module used in this test. - * elf/Makefile: Add rules for restest1 generation and execution. - - * elf/dl-object.c (_dl_new_object): l_local_scope really gets - assigned the local scope. - - * posix/test-vfork.c (main): Improve test to check for correct - exit code. - - * sysdeps/unix/sysv/linux/i386/vfork.S: Rewrite to use clone. - - * sysdeps/unix/sysv/linux/bits/sched.h: Define CLONE_VFORK. - - * timezone/zdump.c: Update from tzcode1999a. - * timezone/zic.c: Likewise. - -1999-01-19 Andreas Jaeger - - * math/tgmath.h: Rename nextafterx to nexttoward. - -1999-01-19 Ulrich Drepper - - * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Add baud rates > - 460800. - * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise. - * sysdeps/unix/sysv/linux/bits/termios.h: Likewise. - * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise. - - * math/Makefile (libm-calls): Rename s_nextafterx to s_nexttoward. - * math/Versions: Likewise. - * math/bits/mathcalls.h: Likewise. - * manual/arith.texi: Likewise. - * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. - * sysdeps/libm-ieee754/s_nextafterx.c: Replaced by... - * sysdeps/libm-ieee754/s_nexttoward.c: New file. - * sysdeps/libm-ieee754/s_nextafterxf.c: Replaced by... - * sysdeps/libm-ieee754/s_nexttowardf.c: New file. - * sysdeps/libm-ieee754/s_nextafterxl.c: Replaced by... - * sysdeps/libm-ieee754/s_nexttowardl.c: New file. - - * time/Makefile (routines): Removed strfxtime. - * time/Versions: Likewise. - * time/strfxtime.c: Removed. - * time/time.h: Remove _LOCALTIME, _NO_LEAP_SECONDS, struct tmx, - mkxtime, and strfxtime. - -1999-01-18 Ulrich Drepper - - * iconv/gconv_conf.c (add_module): Complete rewrite. Use cleverer - data structures and avoid creating intermediate representations - first. Rewrite also all helper functions. - * iconv/gconv_db.c (find_derivation): Use new data structure for - module database. - * iconv/Versions: Remove __gconv_nmodules. - * iconv/iconv_prog.c: Rewrite generation of charset name list to - use new data structure. - * iconv/gconv_int.h (struct gconv_module): Add new elements for - database data structure. - (__gconv_modules_db): Update type. - (__gconv_transform_dummy): Removed. - * iconv/gconv_builtin.h: Remove dummy transformation. - * iconv/gconv_simple.c: Remove __gconv_transform_dummy. - - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove - __syscall_vfork, add vfork. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. - -1999-01-18 Andreas Jaeger - - * posix/test-vfork.c: Include for wait declaration. - -1999-01-16 Andreas Schwab - - * manual/ctype.texi: Fix cross refs and typos. - * manual/charset.texi: Likewise. - -1999-01-18 Ulrich Drepper - - * Rules: Add dummy.c and dummy.o to common-generated. - Patch by Andreas Schwab. - -1999-01-18 10:07 -0500 Zack Weinberg - - * manual/libc-texinfo.sh: Use tsort.awk. - * manual/tsort.awk: New file. - * manual/Makefile (minimal-dist): Add tsort.awk. - (distribute): Remove generated files: summary.texi, - stamp-summary, chapters.texi, top-menu.texi, and texis. - -1999-01-15 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/vfork.S: Test return value after - fork syscall. - -1999-01-17 Ulrich Drepper - - * wctype/wcfuncs.c: Declare __ctype32_b. - - * elf/Makefile (test-modules): Add test-modules. - - * stdlib/canonicalize.c (canonicalize): Update write pointer after - realloc. Minor optimizations. - -1999-01-16 Ulrich Drepper - - * po/no.po: Update from norwegian translation team. - - * iconvdata/iso-2022-jp.c: Correct handling of G2 set. - Patch by Shinya Hanataka . - - * elf/Makefile (tests): Add loadtest. - Add rules to generate test modules. - * Makeconfig (+link): Add $(LDFLAGS-$(@F)) to command line. - * elf/loadtest.c: New file. - * elf/testobj1.c: New file. - * elf/testobj2.c: New file. - * elf/testobj3.c: New file. - - * elf/dl-close.c: Correct removing module from global list. - - * elf/dl-open.c: Add debugging code. - - * include/string.h: Add __rawmemchr prototype. - * string/Makefile (routines): Add rawmemchr. - * string/Versions [GLIBC_2.1]: Add __rawmemchr and rawmemchr. - * string/string.h: Add prototype for rawmemchr. - * string/bits/string2.h: Optimize strchr with rawmemchr. - * sysdeps/generic/rawmemchr.c: New file. - * sysdeps/i386/rawmemchr.c: New file. - * sysdeps/i386/i486/bits/string.h: Add rawmemchr inline code. - Optimize strchr with rawmemchr. - - * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _LFS_LARGEFILE, - _LFS64_LARGEFILE, and _LFS64_STDIO for Unix98. - -1999-01-14 Andreas Jaeger - - * nis/nis_error.c (nis_errlist): Fix capitilasation. - -1999-01-15 Ulrich Drepper - - * posix/Makefile (tests): Add test-vfork. - * posix/test-vfork.c: New file by Andreas Schwab. - - * manual/charset.texi: More misspelling fixes. - Reported by Tom Tromey . - Improve mbsinit example. - - * sysdeps/unix/sysv/linux/vfork.c: Removed. - * sysdeps/unix/sysv/linux/i386/vfork.S: New file. - -1999-01-14 Ulrich Drepper - - * Make-dist: If file is generated but still distributed the later - is correct. - - * sysdeps/unix/sysv/linux/arm/Dist: Add sys/user.h. - - * manual/Makefile (examples): Filter out the example code from - add-ons. - - * version.h (VERSION): Bump to 2.0.110. - - * nis/nis_error.c (nis_errlist): Fix typo in string. - - * misc/regexp.h: Add restrict to function declarations. - -1998-12-30 Andreas Jaeger - - Patche by Ralf Baechle : - * sysdeps/mips/sys/regdef.h: New file, enhanced versions of - deleted linux specific files. - -1998-12-29 Andreas Jaeger - - * sysdeps/unix/sysv/linux/mips/bits/siginfo.h: New file. - -1999-01-14 Andreas Jaeger - - * misc/regexp.h (compile): Correct end-of-line check, fix typo in - docu. Reported by Kalle Olavi Niemitalo . - -1999-01-14 Ulrich Drepper - - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add vfork. - Patch by Richard Henderson . - -1999-01-13 Ulrich Drepper - - * manual/nss.texi (NSS Module Interface): Document requirement on errno - value after unsuccessful call of module function. - - * sysdeps/unix/sysv/linux/syscalls.list: Add __syscall_fork alias. - * sysdeps/unix/sysv/linux/vfork.c: Use vfork syscall if available, - otherwise use fork. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add vfork. - * sysdeps/unix/sysv/linux/sparc32/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc64/syscalls.list: Likewise. - - * sysdeps/unix/sysv/linux/i386/sysdep.h: Correct handling of - INLINE_SYSCALL for syscall without parameters. - -1999-01-13 Andreas Schwab - - * sysdeps/unix/make-syscalls.sh: Set shared-only-routines for - versioned syscalls. - - * Rules: Remove rules for empty.* again. - -1999-01-13 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/vfork.S: New file. - -1999-01-13 Ulrich Drepper - - * sysdeps/i386/bits/string.h: Correct several bugs in various - functions which never worked. - Patch by Maciej W. Rozycki . - -1999-01-12 Ulrich Drepper - - * manual/charset.texi: Add many corrections. - Patch by Benjamin Kosnik . - -1999-01-12 Andreas Jaeger - - * manual/charset.texi: Fix some typos. - -1999-01-12 Ulrich Drepper - - * login/programs/pt_chown.c (main): Update copyright year. - -1999-01-11 Ulrich Drepper - - * sysdeps/posix/tempname.c: Open files with mode 0600. - - * ctype/Versions [GLIBC_2.0]: Export __ctype32_b. - * include/wctype.h: Declare __iswctype. - * stdio-common/vfscanf.c (__vfscanf): Use __iswspace instead of - iswspace. - * wctype/Makefile (routines): Add wcextra_l. - * wctype/wcextra.c (iswblank): Implement function here and don't use - __iswctype. - (__iswblank_l): Move definition to... - * wctype/wcextra_l.c: ...here. New file. - * wctype/wcfuncs.c: Really implement functions and don't call - __iswctype or __towctrans. - * wctype/wctype.h: Change isw* and tow* macros. Don't call - __iswctype or __towctrans. Instead optimize constant argument case. - - * iconv/gconv.h: Fix typos. - - * iconv/skeleton.c: Fix typos. Optimize init function a bit. - Correctly emit escape sequence to return to initial state in - conversion function. - - * iconvdata/iso-2022-jp.c (gconv_init): Correctly initialize - max_needed_to element. - - * manual/mbyte.texi: Removed. This is now described in charset.texi. - * manual/charset.texi: New file. - * manual/Makefile (chapters): Replace mbyte by charset. - * manual/ctype.texi: Document wide character functions. - * manual/intro.texi: Fix reference to mbyte chapter. - * manual/lang.texi: Likewise. - * manual/locale.texi: Likewise. - * manual/stdio.texi: Likewise. - * manual/string.texi: Fix @node line for new charset chapter. - * manual/libc.texinfo (UPDATED): Updated. Also update copyright years. - * manual/memory.texi (savestring): Optimize code to give a good - example. - - * manual/filesys.texi: Fix wording. Patches by Jim Meyering. - - * nscd/nscd_getgr_r.c: Include stdint.h to get uintptr_t definition. - * nscd/nscd_getpw_r.c: Likewise. - * nscd/nscd_gethst_r.c: Likewise. - - * stdlib/stdtold_l.c: Always include xlocale.h. - -1999-01-11 Geoffrey Keating - - * stdlib/fpioconst.h (LDBL_MAX_10_EXP_LOG): Define to be same as - DBL_MAX_10_EXP_LOG if there is no long double. - (_fpioconst_pow10): Always use size as LDBL_MAX_10_EXP_LOG to match - printf_fp.c. - -1999-01-10 Andreas Jaeger - - * timezone/Makefile ($(testdata)/GB): Changed to ... - ($(testdata)/Europe/London): ... for tst-timezone test. - ($(objpfx)tst-timezone.out): Change GB to Europe/London. - - * timezone/tst-timezone.c (main): Enable DST switching test, - change GB to Europe/London. - -1999-01-10 Philip Blundell - - * socket/Makefile (headers): Remove bits/sockunion.h. - -1999-01-09 Philip Blundell - - * socket/sys/socket.h: Don't include . - * sysdeps/generic/bits/sockunion.h: Deleted. - * sysdeps/unix/sysv/linux/bits/sockunion.h: Likewise. - -1999-01-08 H.J. Lu - - * io/fts.c (fts_close): Don't access memory after having it freed. - -1998-01-08 Andreas Schwab - - * manual/Makefile (stamp-summary): Remove space after -t option - for compatibility with non-GNU sort programs. - -1999-01-08 Andreas Schwab - - * manual/search.texi (Comparison Functions): Fix compare_doubles - example. - -1999-01-07 Andreas Schwab - - * Makerules (do-tests-clean): Remove reference to obsolete - variable tests-static. - -1999-01-07 Ulrich Drepper - - * sysdeps/unix/sysv/linux/ntp_adjtime.c: Removed. It's an alias - for adjtimex. - * sysdeps/unix/sysv/linux/Dist: Add ntp_gettime.c. - * sysdeps/unix/sysv/linux/Makefile [subdir=time] (sysdep_routines): - Remove ntp_adjtime. - * sysdeps/unix/sysv/linux/syscalls.list: Add alias ntp_adjtime to - adjtimex. - * sysdeps/unix/sysv/linux/sys/timex.h: Correct prototype for - ntp_adjtime. - - * sysdeps/i386/i686/mempcpy.S: Fix typos. - - * sysdeps/i386/i686/memset.S: New file. - * sysdeps/i386/i686/bzero.S: New file. - * sysdeps/i386/i686/strcmp.S: New file. - * sysdeps/i386/i686/memcpy.S: New file. - - * sysdeps/unix/sysv/linux/Makefile [subdir=time] (sysdep_routines): - Add ntp_adjtime and ntp_gettime. - * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add ntp_adjtime and - ntp_gettime. - -1998-12-29 Ulrich Windl - - * manual/time.texi (Precision Time): Add documentation for - ntp_gettime and ntp_adjtime. - -1998-12-28 Ulrich Windl - - * sysdeps/unix/sysv/linux/ntp_gettime.c: Created new file - - * sysdeps/unix/sysv/linux/ntp_adjtime.c: Created new file - - * sysdeps/unix/sysv/linux/sys/timex.h (struct ntptimeval): Added. - Add prototypes for ntp_adjtime and ntp_gettime. - -1999-01-07 Ulrich Drepper - - * sysdeps/i386/bits/select.h (__FD_ZERO): Remove early clobbers - from c and D register output. - -1999-01-07 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Fix bug in last change. - -1999-01-07 Ulrich Drepper - - * sysdeps/unix/sysv/linux/alpha/bits/types.h: Correct type for - __fsfilcnt_t. Patch by Bruce Elliott . - -1999-01-05 Andreas Schwab - - * manual/conf.texi: Remove pointers from first @node. Move old - @node spec inside comment. - * manual/lang.texi: Likewise. - * manual/libc-texinfo.sh: Also find `@node.*Top' in a comment. - * manual/stdio.texi: Fix typo. - -1999-01-04 Andreas Schwab - - * wcsmbs/btowc.c: Accept all values in the range [SCHAR_MIN - .. UCHAR_MAX]. Local var buf renamed to result and its type - changed from char[] to wchar_t to get proper alignment. - - * posix/fnmatch.c: Also cast the arguments of the other ctype - functions to unsigned char. - -1999-01-07 Ulrich Drepper - - * Rules: Add rules for empty.{o,os,op} back. - -1999-01-05 Ulrich Drepper - - * Makerules (common-mostlyclean): Add missing parentheses. - - * Rules: Add back rules for empty.o generation. - -1999-01-05 Philip Blundell - - * sysdeps/unix/sysv/linux/net/if_arp.h: Add new ARPHRD definitions - from latest (2.2.0pre4) kernel. - -1999-01-05 Scott Bambrough - - * sysdeps/unix/sysv/linux/arm/sys/user.h : New file. Fixes problem - on ARM platforms with programs that include and - . Solution suggested by Geoff Keating earlier with - fix for same problem on the PowerPC platform. - -1999-01-04 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/register-dump.h: Correct widths of - register values. - * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: New file. - -1999-01-04 Ulrich Drepper - - * csu/version.c (banner): Update date. - * catgets/gencat.c: Update year in copyright message text. - * db2/makedb.c: Likewise. - * debug/catchsegv.sh: Likewise. - * elf/ldd.bash.in: Likewise. - * elf/sprof.c: Likewise. - * iconv/iconv_prog.c: Likewise. - * locale/programs/locale.c: Likewise. - * locale/programs/localedef.c: Likewise. - * login/programs/utmpd.c: Likewise. - * malloc/mtrace.pl: Likewise. - * nscd/nscd.c: Likewise. - * nss/getent.c: Likewise. - * posix/getconf.c: Likewise. - -1999-01-02 Philip Blundell - - * sunrpc/Makefile: Ensure that we really use the right path for cpp. - -1999-01-03 Philip Blundell - - * Makefile (tests-clean): New target to delete test output files. - * Makerules (do-tests-clean): New rule to support the above. - * Rules (subdir_testclean): Likewise. - -1999-01-03 Andreas Schwab - - * iconv/Makefile: Use install-others instead of explicit - dependency on subdir_install. - -1999-01-02 Andreas Schwab - - * iconv/gconv_db.c (find_derivation): Release lock before - returning. - (__gconv_find_transform): Likewise. - -1999-01-01 Andreas Schwab - - * inet/ether_ntoa.c (ether_ntoa): Make `asc' static since that's - what we return. - -1999-01-01 Andreas Schwab - - * Makerules: Remove all references to obsolete variables - tests-static and test-srcs-static. - * Make-dist: Likewise. - * Rules: Likewise. Remove rules to generate obsolete empty.{c,o*}. - -1999-01-03 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/pread.c: Use the i386 implementation. - * sysdeps/unix/sysv/linux/arm/pread64.c: Likewise. - * sysdeps/unix/sysv/linux/arm/pwrite.c: Likewise. - * sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise. - -1998-12-28 Andreas Schwab - - * sysdeps/m68k/dl-machine.h (elf_machine_rela): Reorder expression - to avoid accessing global data in the usual case. - -1999-01-01 Andreas Jaeger - - * wcsmbs/wcstold_l.c: Correct last patch to include wchar.h from - system path. - -1998-12-31 Ulrich Drepper - - * iconvdata/Makefile: Use rpath $ORIGIN for modules which use any of - the conversion libraries. - - * include/features.h: Mention latest extensions in _POSIX_C_SOURCE - description. - - * libio/genops.c (list_all_lock): New variable. - (_IO_un_link, _IO_link_in): Acquire lock before modifying _IO_list_all. - [PR libc/911]. - - * sysdeps/i386/i686/strtok.s: Add missing cld. - - * sysdeps/i386/i686/mempcpy.S: New file. - -1998-12-30 Geoff Keating - - Suppress parentheses warnings: - * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c - (DL_FIND_ARG_COMPONENTS): here, - * sysdeps/powerpc/dl-machine.c: here, - * sysdeps/powerpc/fclrexcpt.c (feclearexcept): here, - * sysdeps/powerpc/fesetround.c (fesetround): here, - * sysdeps/powerpc/feupdateenv.c (feupdateenv): here, - * sysdeps/powerpc/fraiseexcpt.c (feraiseexcept): here, - * sysdeps/powerpc/fsetexcptflg.c (fesetexceptflag): here, - * sysdeps/powerpc/s_rint.c (__rint): here, - * sysdeps/powerpc/s_rintf.c (__rintf): here, - * sysdeps/powerpc/w_sqrt.c (__sqrt): here, - * sysdeps/powerpc/w_sqrtf.c (__sqrtf): and here. - -1998-12-30 Geoff Keating - - * wcsmbs/wcstold.c [__NO_LONG_DOUBLE_MATH]: Include wchar.h. - * wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Likewise. Also define - appropropriate prototypes, correct procedure names. - -1998-12-30 Geoff Keating - - * sysdeps/generic/crypt-entry.c: Prototype __crypt_r, suppress - warning. - (__crypt_r): Add __restrict. - * sysdeps/generic/crypt.h: Remove internal routine. Add __restrict. - -1998-12-31 Ulrich Drepper - - * stdlib/longlong.h: Add missing #else in SPARC definitions. - -1998-12-30 Andreas Jaeger - - Patches by Ralf Baechle : - * sysdeps/unix/sysv/linux/mips/sgidefs.h: Removed. - * sysdeps/unix/sysv/linux/mips/sys/asm.h: Removed. - * sysdeps/unix/sysv/linux/mips/sys/regdef.h: Removed. - * sysdeps/unix/sysv/linux/mips/sys/fpregdef.h: Removed. - * sysdeps/unix/sysv/linux/mips/regdef.h: Removed. - * sysdeps/unix/sysv/linux/mips/fpregdef.h: Removed. - - * sysdeps/unix/sysv/linux/mips/Makefile: Remove delete files. - * sysdeps/unix/sysv/linux/mips/Dist: Remove deleted files. - - * sysdeps/mips/sys/fpregdef.h: New files, enhanced versions of deleted - linux specific files. - * sysdeps/mips/sys/asm.h: Likewise. - * sysdeps/mips/sgidefs.h: Likewise. - * sysdeps/mips/fpregdef.h: Likewise. - * sysdeps/mips/regdef.h: Likewise. - - * sysdeps/mips/Makefile: Add new headers. - * sysdeps/mips/Dist: Add new files. - - * sysdeps/mips/fpu_control.h (_FPU_DEFAULT): Change value. - -1998-12-28 Andreas Schwab - - * iconvdata/Makefile: Remove variable assignments and rules that - are now auto-generated. Include $(objpfx)iconv-rules instead. - Btw, that removes a few typos. - (charmaps): New variable. - ($(objpfx)iconv-rules): New target. - (gen-8bit-modules): Renamed from sed-generated-headers, remove .h - suffixes. - (gen-8bit-gap-modules): Renamed from awk-generated-headers, remove - .h suffixes. - (gen-special-modules): New variable. - (generated-modules): New variable. - (headers): Use it. - (before-compile): Likewise. - (generated): Likewise, and add iconv-rules. - * iconvdata/euc-cn.c: Renamed from euccn.c. - * iconvdata/euc-jp.c: Renamed from eucjp.c. - * iconvdata/euc-kr.c: Renamed from euckr.c. - * iconvdata/euc-tw.c: Renamed from euctw.c. - * iconvdata/iso_6937.c: Renamed from iso6937.c. - * iconvdata/iso_6937-2.c: Renamed from iso6937-2.c. - * iconvdata/t.61.c: Renamed from t61.c. - * iconvdata/Makefile (distribute): Adjusted for those renames. - Remove $(objpfx) from names. - -1998-12-28 Andreas Schwab - - * sysdeps/generic/hp-timing.h: Fix comment. - * sysdeps/generic/dl-hash.h: Likewise. - * sysdeps/i386/i686/hp-timing.h: Likewise. - -1998-12-28 Andreas Schwab - - * posix/fnmatch.c (fnmatch): Always pass unsigned char values to - FOLD macro. - -1998-12-28 Andreas Schwab - - * nss/db-Makefile ($(VAR_DB)/shadow.db): Fix last change. - -1998-12-29 Andreas Jaeger - - * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Sync with - current Linux 2.1.132 kernel sources. - -1998-12-28 Andreas Jaeger - - Patches by Ralf Baechle for Linux/MIPS: - * sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change - pread/pwrite and llseek calls. - - * sysdeps/unix/sysv/linux/mips/sysdep.S: New file. - -1998-12-29 Wolfram Gloger - - * malloc/thread-m.h [_LIBC] : Fix for NO_THREADS case. - -1998-12-28 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.109. - - * Makefile (distribute): Add INTERFACE and CONFORMANCE. - * elf/Makefile (distribute): Add hp-timing.h. - * sysdeps/i386/i686/Dist: New file. - - * mach/Versions: Add mach_msg_send and mach_msg_receive. - Patch by UCHIYAMA Yasushi . - - * sysdeps/unix/sysv/linux/netipx/ipx.h (SIOCIPXNCPCONN): New macro - from latest kernel. - - * stdlib/fpioconst.c: If __NO_LONG_DOUBLE_MATH don't define constants - beyond range of double. - * stdlib/fpioconst.h (_fpioconst_pow10): Reduce size according to - fpioconst.c change. - * stdlib/strtold.c: Fall back on double functions if - __NO_LONG_DOUBLE_MATH. - * stdlib/strtold_l.c: Likewise. - * wcsmbs/wcstold.c: Likewise. - * wcsmbs/wcstold_l.c: Likewise. - * sysdeps/ieee754/ldbl2mpn.c: Don't generate code if - __NO_LONG_DOUBLE_MATH. - * sysdeps/ieee754/mpn2ldbl.c: Likewise. - -1998-12-28 Geoff Keating - - * sysdeps/powerpc/bits/endian.h: Use #warning, not #error, if - the endianness can't be determined, for makedepend. - -1998-12-27 Ulrich Drepper - - * elf/dl-lookup.c (_dl_num_relocations): New variable. - (do_lookup): Increment _dl_num_relocations for every call. - * elf/rtld.c (print_statistics): New function. - (_dl_debug_statistics): New variable. Set when statistics are asked - for. - (rtld_total_time, relocate_time, load_time): New variables. Used - in print_statistics. - (_dl_start): Record start and end time of startup. Call - print_statistics if needed. - (dk_main): Record times for relocations and loading. - (process_dl_debug): Recognize statistics. - - Low-level, low-overhead, high-precision timing functionality. - * sysdeps/generic/hp-timing.h: New file. - * sysdeps/i386/i686/Makefile: New file. - * sysdeps/i386/i686/hp-timing.h: New file. - * sysdeps/i386/i686/hp-timing.c: New file. - - * sysdeps/i386/dl-machine.h (elf_machine_rel): Reverse order of OR - clauses to avoid accessing global variables during rtld relocation. - - * sunrpc/rpc_main.c: Unify messages. - - * sysdeps/unix/sysv/linux/arm/Dist: Add ioperm.c and sys/io.h. - -1998-12-27 Roland McGrath - - * sysdeps/mach/hurd/bits/statfs.h (struct statfs, struct statfs64): - Remove __ from member names; rename __unused to f_spare. - -1998-12-21 Mark Kettenis - - Implement fstatvfs and statvfs on the Hurd. - * sysdeps/mach/hurd/bits/statfs.h: New file. - * sysdeps/mach/hurd/bits/statvfs.h: New file. - * sysdeps/mach/hurd/fstatvfs.c: New file. - * sysdeps/mach/hurd/statvfs.c: New file. - - * sysdeps/generic/fstatfs64.c: Changed into stub. - Moved previous contents to... - * sysdeps/unix/sysv/linux/fstatfs64.c: ...here. - * sysdeps/generic/fstatvfs64.c: Likewise. - * sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise. - * sysdeps/generic/statfs64.c: Likewise. - * sysdeps/unix/sysv/linux/statfs64.c: Likewise. - * sysdeps/generic/statvfs64.c: Likewise. - * sysdeps/unix/sysv/linux/statvfs64.c: Likewise. - -1998-12-25 Ulrich Drepper - - * elf/dl-hash.h: Move to... - * sysdeps/generic/dl-hash.h: ...here. Correct parameter type (must - be unsigned char). Remove conditional from inner loop and rearrange - binary operations (12-22% performance increase). - * sysdeps/i386/i686/dl-hash.h: New file. Another 10% faster than - optimized generic version. - -1998-12-23 Ulrich Drepper - - * elf/dl-lookup.c (do_lookup): If looking up an unversioned symbol - but the object file only contains versioned definitions than - accept the definition if there is exactly one even if the version - number is not the default version. This helps dlsym() to find - newly introduced symbols. - - * locale/programs/ld-collate.c: Unify messages and correct typos. - * locale/programs/ld-monetary.c: Likewise. - * locale/programs/ld-numeric.c: Likewise. - * locale/programs/ld-time.c: Likewise. - * manual/errno.texi: Likewise. - * nis/nis_error.c: Likewise. - * nis/nis_print.c: Likewise. - * nis/nss_nisplus/nisplus-publickey.c: Likewise. - * sunrpc/rpc_main.c: Likewise. - -1998-12-20 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Add - implementation. - * sysdeps/unix/sysv/linux/arm/syscalls.list: Remove wrappers for - now-inlined calls. - -1998-12-22 Philip Blundell - - * sysdeps/unix/sysv/linux/arm/ioperm.c: New file. - Implementation of inb, outb etc for ARM systems. - * sysdeps/unix/sysv/linux/arm/sys/io.h: Likewise. - * sysdeps/unix/sysv/linux/arm/Versions: Add appropriate - entries for the above. - -1998-12-21 Ulrich Drepper - - * nss/db-Makefile (shadow.db): Create file with correct protections. - Based on a patch by Joel Klecker . - - * inet/gethstbynm_r.c: Remove NEED__RES definition since we do this - anyway for digits_dots.c. - * nss/getXXbyYY.c: Initialize _res before using digits_dots.c - functions. - * nss/getXXbyYY_r.c: Likewise. - -1998-12-19 Andreas Schwab - - * sunrpc/key_call.c (getkeyserv_handle): Use __fcntl instead of - fcntl. - -1998-12-20 Andreas Schwab - - * locale/weight.h (get_weight): Extract string elements as - unsigned values. - -1998-12-06 Mark Kettenis - - Reverse the change of 1998-04-22. Providing a struct dirent with - different members when __USE_FILE_OFFSET64 is defined is asking - for trouble. Instead add the necessary LFS magic to the 4.4BSD - header. - * sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Add LFS definitions. - * sysdeps/mach/hurd/bits/dirent.h: Removed. - * sysdeps/mach/hurd/readdir64.c: Removed. - * sysdeps/mach/hurd/readdir64_r.c: Removed. - -1998-12-20 Roland McGrath - - * sysdeps/generic/bits/mman.h [__USE_MISC] (MAP_ANONYMOUS): Define as - alias for MAP_ANON. - - * stdio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr): - Remove decls. They don't exist at all on the Hurd. - - * sunrpc/svc_unix.c, sunrpc/clnt_unix.c: Avoid using `struct cmsghdr' - and `struct ucred' #ifndef SCM_CREDENTIALS. - - * sunrpc/publickey.c (getsecretkey): Use `&errno' instead of - `__errno_location ()'; means the same, works for Hurd. - - * sysdeps/mach/hurd/Makefile (subdirs): Don't elide sunrpc. - -1998-12-18 Ulrich Drepper - - * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Include - features.h and stddef.h. - * sysdeps/unix/sysv/sysv4/solaris2/bits/sigstack.h (struct - sigaltstack): Move ss_size field at the end. - Patches by Jeff Bailey . - - * time/getdate.c (check_mday): tm_mon contains values from 0 to 11, - not 1 to 12. - - * manual/texinfo.tex: Update to latest version. - - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add ipc. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. - Patch by Cristian Gafton . - -1998-12-17 Ulrich Drepper - - * iconvdata/gconv-modules: Add remaining aliases from Internet - standards. - - * iconv/gconv_int.h (gconv_module): Add new element from_regex_mem. - * iconv/gconv_conf.c (module_compare): Make s1 and s2 const. - (detect_conflict): New function. - (add_alias): Call detect_conflict to see whether there is already - a module for the new name. - (add_module): Make sure there is no alias for the new name. - (read_conf_file): Call add_alias with new argument. - (__gconv_read_conf): Don't destroy module tree immediately after - walking it. We need it to test the internal conversions for - conflicts. - * iconv/gconv_db.c (find_derivation): Don't allocate memory for - regular expression. There is now room in the module descriptor. - (free_mem): Don't free memory for regular expression. - - * sysdeps/unix/sysv/linux/bits/socket.h: Add AF_IRDA, PF_IRDA and - MSG_TRYHARD. - - * sunrpc/clnt_unix.c (clntunix_destroy): Use __close not close. - * libio/oldtmpfile.c: Likewise. - * libio/oldiofdopen.c: Use __fcntl instead fcntl. - * sysdeps/posix/profil.c: Use __sigaction instead of sigaction. - - * iconvdata/iso646.c (gconv_init): Return correct error value if we - run out of memory. - * iconvdata/iso-2022-jp.c: Likewise. - - * iconv/gconv_db.c (gen_steps): Respect error return value from - init functions and abort. - - * iconvdata/iso646.c: Recognize NF_Z_62-010_1973 as charset name. - -1998-12-17 H.J. Lu - - * sunrpc/rpc/xdr.h (XDR_DESTROY): Add ';'. - (xdr_destroy): Likewise. - -1998-12-17 Ulrich Drepper - - * login/login.c: Determine pts/3 as terminal name if path is - /dev/pts/3. This is consistent with getlogin. [PR libc/906] - -1998-12-16 Andreas Schwab - - * sysdeps/posix/tempname.c (__path_search): Add casts for format - string. - -1998-12-16 Andreas Schwab - - * sunrpc/rpc/xdr.h (XDR_DESTROY, xdr_destroy): Avoid dangling else - problem. - (IXDR_PUT_INT32): Fully parenthesize parameters. - (IXDR_GET_LONG, IXDR_PUT_LONG): Mark GCC extension. Fully - parenthesize parameter. - -1998-12-16 Ulrich Drepper - - * iconvdata/gconv-modules: Add some of the charset name aliases - used in Internet standards. - -1998-12-16 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.107. - - * sysdeps/i386/i486/bits/string.h: Pretty printing. - -1998-12-16 Thorsten Kukuk - - * sunrpc/rpc/xdr.h: Revert patch from 1998-12-14, partly revert - patch from 1998-12-01. - -1998-12-16 Roland McGrath - - * sysdeps/mach/hurd/bits/local_lim.h (SYMLOOP_MAX): Define this #ifdef - __USE_BSD as well as #ifdef __USE_GNU, so MAXSYMLINKS can use it. - Reported by UCHIYAMA Yasushi - -1998-12-16 Ulrich Drepper - - * iconvdata/ibm866.c: New file. - * iconvdata/cp1258.c: New file. - * iconvdata/cp1258.h: New file. - * iconvdata/mac-uk.c: New file. - * iconvdata/gconv-modules: Add rules for new modules. - * iconvdata/Makefile: Likewise. - - * sysdeps/gnu/bits/ipc.h: Move libc internal bits to... - * include/bits/ipc.h: ..here. New file. - -1998-12-16 Andreas Jaeger - - * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Don't change - read-only struct termios_p* but change k_termios member directly. - -1998-12-15 H.J. Lu - - * sysdeps/posix/tempname.c (__path_search): Fix the maximum - string length. - -1998-12-15 Ulrich Drepper - - * sysdeps/unix/sysv/linux/msgctl.c: Use INLINE_SYSCALL. - * sysdeps/unix/sysv/linux/msgget.c: Likewise. - * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. - * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. - * sysdeps/unix/sysv/linux/semctl.c: Likewise. - * sysdeps/unix/sysv/linux/semget.c: Likewise. - * sysdeps/unix/sysv/linux/semop.c: Likewise. - * sysdeps/unix/sysv/linux/shmat.c: Likewise. - * sysdeps/unix/sysv/linux/shmctl.c: Likewise. - * sysdeps/unix/sysv/linux/shmdt.c: Likewise. - * sysdeps/unix/sysv/linux/shmget.c: Likewise. - * sysdeps/unix/sysv/linux/syscalls.list: Remove ipc syscall here. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add ipc syscall here. - - * time/strftime.c: Remove 'f' format. - - * time/strptime.c (get_number): Ignore trailing whitespace. - (strptime_internal): Handle 'F' and 'k' formats. - - * sysdeps/posix/tempname.c (__path_search): Add second part of the - patch by Andreas Jaeger. - -1998-12-15 Andreas Jaeger - - * stdio-common/tst-tmpnam.c (main): Use void as parameter to avoid - warnings about unused args. Fix comment. - -1998-12-15 Andreas Jaeger - - * sysdeps/posix/tempname.c (__path_search): Correct last patch. - -1998-12-14 Ulrich Drepper - - * sunrpc/rpc/xdr.h (IXDR_GET_INT32): Case pointer before reading from - it. - (IXDR_PUT_INT32): Likewise for writing. - Patch by Bruce Elliott . - -1998-12-08 H.J. Lu - - * sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Don't clear - the IBAUD0 bit in c_iflag. - - * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Clear the - the IBAUD0 bit in c_iflag. - -1998-12-14 Ulrich Drepper - - * time/Makefile (tests): Add tst-strptime. - * time/tst-strptime.c: New file. - * time/strptime.c: Correct bugs in weekday and yearday computation. - -1998-12-14 Ulrich Drepper - - * time/strptime.c (strptime_internal): Set tm_wday and tm_yday in - any of tm_year, tm_mon, or tm_mday was changed and the value - itself wasn't specified. - - * include/stdio.h: Add new parameter to __path_search. - * libio/oldtmpfile.c: Add 0 as new parameter to __path_search. - * stdio-common/tmpfile.c: Likewise. - * stdio-common/tmpfile64.c: Likewise. - * stdio-common/tmpnam.c: Likewise. - * stdio-common/tmpnam_r.c: Likewise. - * stdio-common/tempnam.c: Add 1 as new parameter to __path_search. - * sysdeps/posix/tempname.c: Add new parameter. If value is nonzero - consider TMPDIR environment variable and dir parameter. Otherwise not. - * stdio-common/Makefile (tests): Add tst-tmpnam. - * stdio-common/tst-tmpnam.c: New file. - - * po/es.po: Update from translation team. - -1998-12-12 Andreas Schwab - - * timezone/Makefile: Protect inclusion of z.* by avoid-generated - and inhibit_timezone_rules instead of no_deps. - * Make-dist: Pass inhibit_timezone_rules=t when making - echo-distinfo. - -1998-12-12 Andreas Schwab - - * manual/Makefile (distribute): Remove dir-add.texinfo. - - * sysdeps/unix/sysv/linux/powerpc/Dist: Add sys/procfs.h and - sys/user.h. - -1998-12-11 Andreas Schwab - - * manual/Makefile (stamp-summary): Use ^L as separator for - sorting. - * manual/arith.texi: Add comments before all @deffoox lines to get - them added to the summary. - * manual/creature.texi: Likewise. - * manual/math.texi: Likewise. - -1998-12-13 Andreas Jaeger - - * math/libm-test.c: Remove macro ISINF. Change all usages of - ISINF to isinf. - -1998-12-13 Ulrich Drepper - - * sysdeps/posix/tempname.c: Use __xstat instead of __stat. - * sysdeps/unix/grantpt.c: Likewise. - * sysdeps/unix/sysv/linux/ptsname.c: Likewise. - * sysvipc/ftok.c: Likewise. - Patch by Franz Sirl . - - * stdlib/test-canon.c: Define PATH_MAX if the system does not. - * string/stratcliff.c: Use MAP_ANON instead of MAP_ANONYMOUS. - Patch by UCHIYAMA Yasushi . - -1998-12-13 Andreas Jaeger - - * sysdeps/alpha/fpu/fsetexcptflg.c: Avoid -Wparentheses warning. - - * sysdeps/libm-ieee754/s_expm1.c (__expm1): Avoid -Wparentheses - warning. - * sysdeps/libm-ieee754/s_log1p.c (__log1p): Likewise. - * sysdeps/libm-ieee754/e_logf.c (__ieee754_logf): Likewise. - * sysdeps/libm-ieee754/s_expm1f.c (__expm1f): Likewise. - * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Likewise. - * sysdeps/libm-ieee754/s_log1pf.c (__log1pf): Likewise. - -1998-12-13 Andreas Jaeger - - * sunrpc/svc_udp.c (svcudp_bufcreate): Declare len as socklen_t. - (svcudp_recv): Likewise. - -1998-12-13 Thorsten Kukuk - - * nis/nss-nisplus.h: Change some mappings of NIS+ errors to - NSS error codes to avoid endless loops. - -1998-12-13 Ulrich Drepper - - * iconvdata/gconv-modules: Correct aliases for ISO-8859-13 and add - aliases for ISO-8859-14. - -1998-12-12 Geoff Keating - - * posix/fnmatch.c (fnmatch): Arguments to FOLD must not have - side-effects. - -1998-12-12 Ulrich Drepper - - * iconvdata/iso-8859-11.h: ISO 8859-11 conversion data. - * iconvdata/iso-8859-11.c: ISO 8859-11 conversion module. - * iconvdata/iso-8859-13.c: Likewise for 8859-13. - * iconvdata/iso-8859-14.c: Likewise for 8859-14. - * iconvdata/iso-8859-15.c: Likewise for 8859-15. - * iconvdata/gconv-modules: Add rules for new modules. - * iconvdata/Makefile: Likewise. - -1998-12-12 Ulrich Drepper - - * stdio-common/printf_fp.c: #ifdef out long double handling code if - __NO_LONG_DOUBLE_MATH is defined to avoid warnings. - * stdio-common/printf_fphex.c: Likewise. - * stdio-common/printf-size.c: Likewise. - -1998-12-12 Ulrich Drepper - - * login/Makefile: Install pt_chown using INSTALL_PROGRAM. - Patch by Maciej W. Rozycki . - -1998-12-11 Ulrich Drepper - - * sysdeps/powerpc/dl-machine.h (elf_machine_matches_host): Mark - static inline, not extern inline. - (elf_machine_dynamic): Likewise. - (elf_machine_lazy_rel): Likewise. - (elf_machine_plt_value): Likewise. - * sysdeps/powerpc/backtrace.c: Include stddef.h to get NULL - definition. - Patchess by Franz Sirl . - - * sysdeps/mips/dl-machine.h (elf_machine_rel): Fixl_addr parameter - type. Reported by job bogan . - - * sysdeps/unix/opendir.c (__opendir): Use __xstat instead of - __stat. - -1998-12-11 Kunihiro Ishiguro - - * inet/netinet/in.h: Change obsolete structure member - ipv6mr_ifindex to new ipv6mr_interface. - -1998-12-11 Ulrich Drepper - - * sysdeps/ieee754/dbl2mpn.c: Changed '#include "ieee754.h"' to - '#include '. ARM port has its own version of 'ieee754.h' - due to its big endian floating point format. - * sysdeps/ieee754/ldbl2mpn.c: Likewise. - * sysdeps/ieee754/mpn2dbl.c: Likewise. - * sysdeps/ieee754/mpn2ldbl.c: Likewise. - * sysdeps/ieee754/mpn2flt.c: Likewise. - Patch by Scott Bambrough . - -1998-12-10 Ulrich Drepper - - * sysdeps/unix/sysv/linux/adjtime.c: Undo last change. - - * posix/PTESTS: Fix typo. - - * po/es.po: Update from translation team. - * po/fr.po: Likewise. - -1998-12-10 Thorsten Kukuk - - * nis/nss_compat/compat-pwd.c: Fix handling of +/- entries. - -1998-12-10 Ulrich Drepper - - * sunrpc/Makefile: Call rpcgen program which -Y parameter so that - it can find the preprocessor. - -1998-12-09 Geoff Keating - - * sysdeps/unix/sysv/linux/sys/procfs.h: Use sys/user.h not - asm/user.h. - * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise. - - * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: New file, - like linux/sys/procfs.h but uses uid_t and gid_t. - * sysdeps/unix/sysv/linux/powerpc/sys/user.h: New file, - don't include . - -1998-12-08 Andreas Schwab - - * posix/runptests.c (main): Check that regcomp did not succeed - unexpectedly. - * posix/runtests.c (run_a_test): Likewise. Return appropriate - exit code. - * posix/TESTS: Regexp "a[b-a]" should not compile. - * posix/PTESTS: Comment out bogus tests GA113(2), GA145(2) and - GA147(2). - -1998-12-09 Andreas Schwab - - * locale/programs/ld-ctype.c (allocate_arrays): Don't crash if - there is no codeset name. - * locale/programs/ld-collate.c (collate_output): Don't crash if a - character has no weight. - -1998-12-10 Ulrich Drepper - - * inet/getnetgrent_r.c (innetgr): Check host and domain name with - strcasecmp, not strcmp. [PR libc/894]. - -1998-12-08 Andreas Jaeger - - * posix/regex.h: Declare re_comp, re_exec if compiling for libc to - get prototypes. - - * wctype/wctype.h: Add prototypes for __iswblank_l and iswblank. - -1998-12-08 Andreas Jaeger - - * sysdeps/unix/sysv/linux/gethostid.c: Include to get - prototype for __gethostbyname_r. - - * include/time.h: Add declarations of internal interfaces. - - * time/tzset.c: Remove declarations of internal interfaces. - * time/gmtime.c: Likewise. - * time/localtime.c: Likewise. - * time/offtime.c: Likewise. - * time/tzfile.c: Likewise. - -1998-12-01 09:47 -0500 Zack Weinberg - - * sysdeps/unix/sysv/linux/sys/timex.h: Copy out - user-space-relevant definitions from linux/timex.h of kernel - 2.1.130 and remove include of kernel header. - - * sysdeps/unix/sysv/linux/adjtime.c: Remove portability crud. - -1998-12-08 Andreas Jaeger - - * posix/regex.c: Get regex.h from system path, not from local - directory. - - * posix/regex.h: Move internal interfaces to ... - * include/regex.h: ...here. - - * posix/unistd.h: Move internal interfaces to ... - * include/unistd.h: ...here. - - * math/math.h: Move internal interfaces to ... - * include/math.h: ...here. - - * posix/glob.h: Move internal interfaces to ... - * include/glob.h: ...here. - - * string/string.h: Move internal interfaces to ... - * include/string.h: ...here. - - * time/sys/time.h: Move internal interfaces to ... - * include/sys/time.h: ...here. - - * resolv/netdb.h: Move internal interfaces to ... - * include/netdb.h: ...here. - -1998-12-08 Ulrich Drepper - - * iconvdata/eucjp.c: Handle Yen in overscore conversion from ISO 10646 - correctly. - * iconvdata/iso-2022-jp.c: Handle Kana in 2022-JP2 correctly - Fix various bugs in conversion routine. - * iconvdata/jis0201.h: Correct variable name. - * iconvdata/jis0208.c: Correct script to generate tables and regenerate - them. - * iconvdata/jis0208.h: Likewise. - * iconvdata/jis0212.c: Likewise. - * iconvdata/sjis.c: Likewise. - Patch by HANATAKA Shinya . - -1998-12-07 Ulrich Drepper - - * sysdeps/unix/sysv/linux/speed.c (IBAUD0): New definition. Bit - set in c_iflag if cfsetispeed is call with SPEED set to zero. - (cfgetispeed): Return zero if prior if IBAUD0 is set. - (cfsetospeed): Clear IBAUD0 bit. - (cfgetispeed): Set IBAUD0 bit if necessary. - * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Clear - the IBAUD0 bit in c_iflag when making the system call. - Work around a Linux kernel bug which silently changes the - PARENB/CREAD/CSIZE bits in c_cflag on pty. - * sysdeps/unix/sysv/linux/speed.c (cfsetispeed): Make a real - function. Don't set speed is SPEED parameter is zero since this - means set it to the output speed. - Based on a patch by H.J. Lu . - - * version.h (VERSION): Bump to 2.0.106. - - * Makeconfig (link-libc-static): Don't use link-libc since this - includes the shared object. Use gnulib only. - - * configure.in: Disable --disable-static. - -1998-12-07 12:06 Ulrich Drepper - - * po/de.po: Update from translation team. - * po/ko.po: Likewise. - -1998-12-07 Richard Henderson - - * sysdeps/unix/sysv/linux/alpha/select.S: Save a4 through - both paths. - -1998-12-05 Roland McGrath - - * sysdeps/mach/hurd/pselect.c: New file. - - * sysdeps/mach/hurd/poll.c: New file. - - * hurd/Makefile (routines): Add hurdselect. - * hurd/hurdselect.c: New file. - (_hurd_select): New function, guts taken from ... - * sysdeps/mach/hurd/select.c (__select): ... here. - Now work by just calling _hurd_select. - * hurd/hurd/fd.h: Declare _hurd_select. - -1998-12-05 Roland McGrath - - * time/strptime.c: Fix unterminated comment in last change. - -1998-12-05 Ulrich Drepper - - * ctype/ctype.h (_ISbit): Protect use of parameter with - parentheses. - * wctype/wctype.h (_ISwbit): Likewise. - - * locale/Versions: Make experimental locale interface available in - GLIBC_2.1. - - * sysdeps/gnu/bits/utmp.h (struct exit_status): Define members - without leading __ only for __USE_GNU. - * sysdeps/gnu/bits/utmpx.h (struct __exit_status): Likewise. - -1998-12-04 Ulrich Drepper - - * argp/argp.h: Add __restrict. - * dirent/dirent.h: Likewise. - * elf/dlfcn.h: Likewise. - * grp/grp.h: Likewise. - * iconv/iconv.h: Likewise. - * inet/aliases.h: Likewise. - * libio/libio.h: Likewise. - * libio/stdio.h: Likewise. - * locale/locale.h: Likewise. - * misc/mntent.h: Likewise. - * posix/wordexp.h: Likewise. - * pwd/pwd.h: Likewise. - * resolv/netdb.h: Likewise. - * rt/aio.h: Likewise. - * stdio-common/printf.h: Likewise. - * stdlib/monetary.h: Likewise. - * stdlib/stdlib.h: Likewise. - * string/argz.h: Likewise. - * string/envz.h: Likewise. - * string/string.h: Likewise. - * time/time.h: Likewise. - -1998-12-04 Zack Weinberg - - * misc/sys/cdefs.h: Only include features.h if _FEATURES_H isn't - defined. gcc's redundant include optimizer isn't clever enough to - prevent a reinclusion here. - Define __restrict to the empty string only if not GCC or - GCC version less than 2.92. - -1998-12-03 Andreas Schwab - - * sysdeps/unix/sysv/linux/configure.in: Fix last change. - -1998-12-03 Mark Kettenis - - * time/strptime.c (strptime_internal): Make use of `%C' format - specifier if it is seen together with the `%y' specifier. - -1998-12-04 Ulrich Drepper - - * po/sk.po: New file. - -1998-12-03 Scott Bambrough - - * sysdeps/arm/dl-machine.h (dl_start_user): Incorrect address - for _dl_main_searchlist passed to _dl_init_next. - -1998-12-02 Andreas Schwab - - * math/libm-test.c: Expand literal tabs in strings. Normalize - whitespace. - -1998-12-02 Andreas Schwab - - * sysdeps/unix/sysv/linux/sys/fsuid.h: Fix spelling. - -1998-12-04 Mark Kettenis - - Provide backwards binary compatibility for the Hurd. - * hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak - alias for geteuids. - * hurd/Versions [GLIBC_2.0]: Add __getuids, - __hurd_file_name_lookup and _hurd_umask. - [GLIBC_2.1]: Add _hurd_proc_init. - * hurd/Makefile [versioning] (routines): Add compat-20. - (shared-only-routines): Likewise. - * hurd/hurdinit.c (_hurd_new_proc_init): Renamed from - _hurd_proc_init. Use it as the default _hurd_proc_init version - for GLIBC_2.1. - * hurd/compat-20.c: New file. - * mach/Versions [GLIBC_2.0]: Add __vm_allocate. - -1998-12-02 Ulrich Drepper - - * elf/elf.h: Add R_MIPS_JALR and adjust R_MIPS_NUM appropriately. - -1998-12-02 Andreas Jaeger - - * inet/Versions: Remove inet6_isipv4mapped. - -1998-12-02 Philip Blundell +1999-05-24 Ulrich Drepper - * inet/in6_addr.c (inet6_isipv4mapped): Obsolete, deleted. + * login/openpty.c (openpty): Make sure pty does not because + controlling TTY. -1998-11-30 Andreas Schwab + * ctype/ctype.h: Don't optimize toupper/tolower for C++. - * manual/time.texi (Formatting Date and Time): Fix typo. +1999-05-23 Roland McGrath -1998-11-30 Andreas Schwab + * hurd/set-host.c (_hurd_set_host_config): Use mode 0644, not 0600. + Do proper error return. - * sysdeps/unix/sysv/linux/configure.in: Only check for symlinks - when configuring natively. Use autoconf macros instead of rolling - our own. Handle defaulted prefix. +1999-05-23 Andreas Jaeger -1998-12-01 Ulrich Drepper + * malloc/malloc.h: Add __THROW for __MALLOC_P to synch with usage + of __P in the rest of glibc; define __MALLOC_PMT and use it. + Reported by Stephan Kulow . - * version.h (VERSION): Bump to 2.0.105. +1999-05-23 Ulrich Drepper - * sysdeps/generic/Dist: Add bits/libc-tsd.h. + * sysdeps/alpha/fpu/bits/fenv.h: Pretty print. - * sysdeps/mach/hurd/Dist: Add bits/libc-tsd.h. + * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Remove unneeded #if. - * sysdeps/unix/sysv/linux/mips/Dist: Add xstatconv.c. +1999-05-22 Andreas Schwab -1998-11-29 1998 H.J. Lu + * sysdeps/m68k/fpu/bits/fenv.h (fenv_t): Prepend __ to member + names to protect from user's macro namespace. + * sysdeps/arm/fpu/bits/fenv.h (fenv_t): Likewise. + * sysdeps/generic/bits/fenv.h (fexcept_t, fenv_t): Likewise. + * sysdeps/i386/fpu/bits/fenv.h (fenv_t): Likewise. + * sysdeps/mips/bits/fenv.h (fenv_t): Likewise. + * sysdeps/m68k/fpu/feholdexcpt.c, sysdeps/m68k/fpu/fesetenv.c: + Adapted. + * sysdeps/arm/fpu/fegetenv.c, sysdeps/arm/fpu/feholdexcpt.c, + sysdeps/arm/fpu/fesetenv.c: Likewise. + * sysdeps/i386/fpu/fclrexcpt.c, sysdeps/i386/fpu/feholdexcpt.c, + sysdeps/i386/fpu/fesetenv.c, sysdeps/i386/fpu/fraiseexcpt.c, + sysdeps/i386/fpu/fsetexcptflg.c: Likewise. + * sysdeps/mips/fesetenv.c: Likewise. - * libio/genops.c (_IO_unbuffer_write): Renamed from - _IO_unbuffer_all. - (_IO_cleanup): Call _IO_unbuffer_write instead of - _IO_unbuffer_all. +1999-05-22 Roland McGrath -1998-12-01 Ulrich Drepper + * sysdeps/generic/bits/sigstack.h (enum SS_*): Remove trailing comma. - * intl/localealias.c: Use *_unlocked version of stdio function if - _LIBC_REENTRANT is defined, not _LIBC. +1999-05-20 Ulrich Drepper -1998-12-01 Andreas Jaeger + * configure.in: Recognize and allow gcc 2.95. - * include/grp.h: Add prototypes for internal functions - __getgrgid_r and __getgrnam_r. +1999-05-19 Jakub Jelinek - * inet/herrno.c: Include for prototype, undef h_errno. + * sysdeps/generic/bits/elfclass.h: Version common to + wordsize-32 and wordsize-64. + * sysdeps/generic/bits/environments.h: Ditto. + * sysdeps/generic/stdint.h: Ditto. + * sysdeps/generic/inttypes.h: Ditto. - * resolv/nsap_addr.c: Include for inet_nsap_addr and - inet_nsap_ntoa prototypes. + * sysdeps/generic/bits/wordsize.h: New file. + * stdlib/Makefile: Add bits/wordsize.h to headers. -1998-12-01 Ulrich Drepper + * sysdeps/sparc/sparc64/bits/wordsize.h: New file. - * sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Pass -I option - to gcc to have it find the correct system header. - Patch by Maciej W. Rozycki . + * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Allow the same exported + headers to be used for 32bit and 64bit ABI compilations. + * sysdeps/sparc/sparc64/fpu/fpu_control.h: Ditto. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Ditto. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Ditto. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Ditto. + * sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: Ditto. - * Makefile (postclean): Add sysd-sorted. - Reported by Maciej W. Rozycki . + * sysdeps/wordsize-64/bits/elfclass.h: Remove. + * sysdeps/wordsize-64/bits/environments.h: Remove. + * sysdeps/wordsize-64/stdint.h: Remove. + * sysdeps/wordsize-64/inttypes.h: Remove. + * sysdeps/wordsize-64/bits/wordsize.h: New file. -1998-12-01 Thorsten Kukuk + * sysdeps/wordsize-32/bits/elfclass.h: Remove. + * sysdeps/wordsize-32/bits/environments.h: Remove. + * sysdeps/wordsize-32/stdint.h: Remove. + * sysdeps/wordsize-32/inttypes.h: Remove. + * sysdeps/wordsize-32/bits/wordsize.h: New file. - * sunrpc/auth_des.c: Use new XDR int32 functions for integers. - * sunrpc/rpc/xdr.h: Add IXDR INT32 functions. - * sunrpc/rpc_hout.c: Remove (u_long) casts in defines to avoid - conflicts with new solaris version. - * sunrpc/rpc_main.c: Fix bug in generating Makefile name (malloc - doesn't zero allocated memory). - * sunrpc/rpc_svcout.c: Local variables now starts with a _ to avoid - conflicts with xdr functions. Solves PR libc/877. - * nis/rpcsvc/nis.x: Use always uint32_t. - * nis/rpcsvc/nis.h: Likewise. - * nis/rpcsvc/nis_object.x: Likewise. +1999-05-19 Jakub Jelinek -1998-12-01 Ulrich Drepper + * sysdeps/sparc/sparc64/memcpy.S (__align_cpy_4, __align_cpy_8, + __align_cpy_16): New functions. + (__align_cpy_2, __align_cpy_1): New aliases to memcpy. - * math/libm-test.c: Various cleanups. Patch by Zack Weinberg. + * sysdeps/sparc/sparc32/Versions: New file. + * sysdeps/sparc/sparc64/Versions: New file. + * sysdeps/sparc/Versions: Remove. - * sysdeps/unix/sysv/linux/alpha/setfpucw.c: Use correct type for - parameter. Patch by Christian Gafton. +1999-05-19 Jakub Jelinek - * string/envz.h: Add prototype for envz_remove. - Reported by Andreas Jaeger. + * sysdeps/unix/sysv/linux/configure.in: + On sparc64-*-linux*, set slibdir to /lib64 if prefix + is /usr, plus set libdir to ${exec_prefix}/lib64. + * sysdeps/unix/sysv/linux/configure: Regenerated. + * config.make.in: Propagate libdir settings from configure + to the Makefiles. + * shlib-versions: sparc64-*-linux* dynamic linker is + /lib64/ld-linux.so.2. -1998-11-30 Mark Kettenis +1999-05-18 Thorsten Kukuk - * mach/Versions [libc, GLIBC_2.0]: Add __spin_lock, - __spin_lock_init, __mutex_lock, __mutex_trylock, - __mutex_unlock. - Remove get_priviliged_ports. Moved to hurd/Versions. + * nis/nis_lookup.c (nis_lookup): If we run out of memory, close + RPC connection. - * hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd - brk implementation see the end of the data segment of the program - instead of the shared library. - Add __hurd_errno_location. This inline function is used in user - programs. - Add _hurd_critical_section_lock, _hurd_critical_section_unlock, - _hurd_fd_get, _hurd_port_free, _hurd_port_get, - _hurd_port_locked_get. These inline functions are used by macros - used in mail.local in the Hurd distribution. - Add get_privileged_ports. Moved here from mach/Versions. - Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry, - __hurd_file_name_split, __hurd_file_name_path_lookup. These are - not used outside libc. +1999-05-18 Jakub Jelinek -1998-11-30 Mark Kettenis + * sysdeps/sparc/sparc64/rawmemchr.S: New file. + * sysdeps/sparc/sparc32/sparcv9/rawmemchr.S: New file. - * hurd/hurdstartup.c: Really include set-hooks.h with <> instead - of "". + * sysdeps/sparc/sparc64/memchr.S: Fix if the second argument + contains garbage in bits 8-63. + * sysdeps/sparc/sparc64/memset.S: Ditto. + * sysdeps/sparc/sparc64/strchr.S: Ditto. -1998-11-29 Thorsten Kukuk +1999-05-18 Ulrich Drepper - * sunrpc/Makefile: Add xdr_intXX_t to routines. - * sunrpc/Versions: Add xdr_int8_t, xdr_uint8_t, xdr_in16_t and - xdr_uint16_t. - * sunrpc/rpc/xdr.h: Add prototypes for new xdr_intXX_t functions. - * sunrpc/xdr.c: Remove xdr_int32_t and xdr_uint32_t. - * sunrpc/xdr_intXX_t.c: New, contains all xdr_intXX_t functions. + * sysdeps/wordsize-64/stdint.h (INTPTR_MAX): Add missing ). - * nis/Depend: New. - * nis/nss_nis/nis-service.c: Include generated prototype for parser. +1999-05-17 David S. Miller -1998-11-30 Andreas Jaeger + * sysdeps/sparc/sparc32/atomicity.h: New file. + * sysdeps/sparc/sparc32/sparcv9/atomicity.h: New file. + * sysdeps/sparc/sparc64/atomicity.h: New file. + * sysdeps/sparc/sparc32/sparcv9/Makefile: Add -Wa,-Av9a to + sysdep-CFLAGS. - * nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes. +1999-05-18 Richard Henderson - * sysdeps/generic/errno-loc.c: Include for prototype, - undefine errno to get variable. + * sysdeps/alpha/memchr.S: Zap high byte of length. Reschedule. - * sysdeps/unix/sysv/linux/i386/setfsuid.c: Include - instead of for prototype. - * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise. +1999-05-04 Zack Weinberg -1998-11-30 Ulrich Drepper + * argp/argp.h, assert/assert.h, misc/sys/cdefs.h, + posix/sys/types.h: Handle the case of __GNUC__=3, + __GNUC_MINOR__=(anything). - * misc/err.h: Correct comments and use protected attribute keywords. - Reported by Joseph Myers . +1999-05-18 Andreas Jaeger -1998-11-29 Roland McGrath + * sysdeps/i386/i486/bits/string.h (rawmemchr): Remove unneccessary + if _FORCE_INLINES. - * malloc/thread-m.h [_LIBC]: Include , and - remove tsd stuff from pthreads/cthreads libc sections. - Use __libc_tsd_define for MALLOC key. - [_LIBC] (tsd_key_t, tsd_key_create): Define to a zero-size type and a - no-op, respectively. - [_LIBC] (tsd_setspecific, tsd_getspecific): Use __libc_tsd_get/set. +1999-05-17 Ulrich Drepper - * elf/dl-error.c: Include . - Use __libc_tsd_define for DL_ERROR key. - (tsd_setspecific, tsd_getspecific): Rewritten using __libc_tsd_get/set. + * elf/Makefile (distribute): Remove dl-origin.h. + Add dl-dst.h and gen-trusted-dirs.awk. - * sysdeps/mach/hurd/bits/libc-tsd.h: New file. - * sysdeps/generic/bits/libc-tsd.h: New file. - * Makefile (distribute): Add bits/libc-tsd.h. +1999-05-17 Andreas Jaeger -1998-10-12 Roland McGrath + * sysdeps/i386/i486/Versions: New file with inline functions from + sysdeps/i386/i486/bits/string.h for now. - * elf/dl-error.c: Remove kludge to check for ld.so load address. - There is no need if weak undefined symbols are not used in ld.so; - see linuxthreads/ChangeLog for changes to files - linuxthreads/sysdeps/pthread/bits/libc-lock.h and - linuxthreads/sysdeps/pthread/bits/libc-tsd.h. + * sysdeps/i386/Versions: Add inline functions from + sysdeps/i386/bits/string.h. -1998-11-30 Andreas Jaeger + * string/Versions: Add inline functions from . - * sysdeps/i386/bits/string.h (__memset_cc): Fix typo (s->__s). + * string/Makefile (routines): Add string-inlines. + * string/string-inlines.c: New file, used for implementation of + extern inline functions. - * sysdeps/i386/i486/bits/string.h: Add prototypes for all new - inline functions. + * sysdeps/i386/i486/bits/string.h: Use _FORCE_INLINES to generate + non inlined versions of functions. + * string/bits/string2.h: Likewise. * sysdeps/i386/bits/string.h: Likewise. -1998-11-30 Andreas Jaeger - - * sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Remove ipc_kludge. - -1998-11-30 Andreas Schwab - - * db2/progs/db_load/db_load.c (main): Avoid -Wparentheses warning. - -1998-09-12 Mark Kettenis - - * sysdeps/mach/hurd/dl-sysdep.c: Do not define - __hurd_threadvar_max. Add comment explaining why we define - __hurd_threadvar_stack_offset and __hurd_threadvar_stack_mask here. - -1998-07-29 Mark Kettenis - - * sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base, - __hurd_sigthread_stack_end, __hurd_sigthread_variables): Define to - prevent inclusion of Hurd signal handling code. - (__libc_write): New function. - (_dl_sysdep_output): Removed. The implementation in - `elf/dl-misc.c' now also works for the Hurd. - -1998-09-12 Mark Kettenis - - * hurd/hurdstartup.c: Do not include hurdmalloc.h; _hurd_startup - does not use any of malloc/realloc/free anymore. Include - set-hooks.h with <> instead of "". - -1998-11-29 Roland McGrath - - * sunrpc/svc_unix.c (__msgread): Move ON local var inside block - within #ifdef SO_PASSCRED. Avoids unused var when no SO_PASSCRED. - * sunrpc/clnt_unix.c (__msgread): Likewise. - -1998-11-28 Roland McGrath - - * hurd/setuids.c: Renamed to ... - * hurd/seteuids.c: this. - (setuids): Renamed to seteuids. - * hurd/getuids.c: Renamed to ... - * hurd/geteuids.c: this. - (__getuids): Renamed to geteuids, no aliases. - * hurd/hurd.h (geteuids, seteuids): Declare them. - * hurd/Versions: Replace getuids; __getuids with geteuids; seteuids. - * hurd/Makefile (routines): Updated. - -1998-11-29 Ulrich Drepper - - * sysdeps/generic/segfault.c (install_handler): Correct test for - SEGFAULT_HANDLER=all. - Patch by Zack Weinberg. - -1998-11-28 23:23 -0500 Zack Weinberg - - * sysdeps/unix/sysv/linux/configure.in: Test for symlinks in - $prefix/include that may be clobbered on installation. - -1998-11-27 Philip Blundell - - Fixes to allow compilation with static NSS: - * nss/Makefile: Make explicit the dependency of getent on - libnss_files.a. - [build_static_nss]: Define $(otherlibs) appropriately. - * nss/Depend: Add a dependency on `resolv'. - -1998-11-27 Andreas Jaeger - - Partial support for MIPS ISO C 9x exception handling: - * sysdeps/mips/fclrexcpt.c: New file. - * sysdeps/mips/ftestexcept.c: New file. - * sysdeps/mips/fgetexcptflg.c: New file. - * sysdeps/mips/fesetround.c: New file. - * sysdeps/mips/fegetround.c: New file. - * sysdeps/mips/fegetenv.c: New file. - * sysdeps/mips/fesetenv.c: New file. - * sysdeps/mips/feupdateenv.c: Likewise. - * sysdeps/mips/bits/fenv.h: New file. - -1998-11-28 Andreas Jaeger - - * sysdeps/unix/sysv/linux/mips/bits/signum.h: Remove inclusion of - and add needed symbols from ; bring - in sync with linux specific version. - - Patches by Ralf Baechle for mips-linux: - - * sysdeps/unix/mips/sysdep.S: Define _errno as weak_alias, rewrite - errno declaration. - - * sysdeps/unix/sysv/linux/mips/ustat.c: Use INLINE_SYSCALL instead - of calling __syscall_*. - * sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise. - - * sysdeps/unix/sysv/linux/mips/syscalls.list: Update entries. - - * sysdeps/unix/sysv/linux/mips/sys/syscall.h: Add missing SYS_* - constants, correct values according to Linux 2.1.130. - - * sysdeps/unix/sysv/linux/mips/pwrite.c: New file. - * sysdeps/unix/sysv/linux/mips/pwrite64.c: New file. - * sysdeps/unix/sysv/linux/mips/pread.c: New file. - * sysdeps/unix/sysv/linux/mips/pread64.c: New file. - - * sysdeps/mips/Makefile (sysdep_routines): Use += instead of a - :=. - - * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Remove ipc_kludge. - - * sysdeps/unix/sysv/linux/mips/xstatconv.c: New file. - - * sysdeps/unix/sysv/linux/mips/xstat.c: Removed. - - * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: New file. - - * sysdeps/unix/sysv/linux/mips/kernel_termios.h: Add copyright - message, change name of include protection, remove inclusion of - . - - * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h - (old_kernel_sigaction): Define. - (struct kernel_sigaction): Rename sa_handler to k_sa_handler. - - * sysdeps/unix/sysv/linux/mips/bits/time.h: Removed, we can use - the general linux version. - * sysdeps/unix/sysv/linux/mips/bits/stat.h (_STAT_VER_KERNEL): Added. - - * sysdeps/unix/sysv/linux/mips/bits/socket.h: Update file. - -1998-09-03 Philip Blundell - - * sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big - endian. - * math/math_private.h: Use __FLOAT_WORD_ORDER rather than - BYTE_ORDER. - * string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by - , make it the same as __BYTE_ORDER. - -1998-11-27 Ulrich Drepper - - * math/math.h: Avoid using long double functions in generic macros - if __NO_LONG_DOUBLE_MATH. - - * sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols - during bootstrapping. - * scripts/config.sub: Add Netwinder specific matches. - Patch by Scott Bambrough . - -1998-11-26 Andreas Schwab - - * Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables - if possible. - ($(common-objpfx)sysd-sorted): Likewise. - -1998-11-27 Andreas Jaeger - - * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of - local variables t1,t2 only if needed. - - * sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler - warnings. - * sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise. - * sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise. - - * sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid - warning. - -1998-11-27 Andreas Jaeger - - * math/math.h: Add brace to correct #if expression. - -1998-11-26 Philip Blundell - - Undo change of 1998-11-12: - * sysdeps/unix/sysv/linux/netlink/netlink.h: Deleted. - * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove - netlink/netlink.h. - * sysdeps/unix/sysv/linux/Dist: Likewise. - -1998-11-22 Thorsten Kukuk - - * nis/nis_print.c (nis_print_entry): Changes to match Solaris output. - -1998-11-26 Ulrich Drepper - - * sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): New defined macro. - (elf_machine_got_rel): Remove scope variable. Use scope from the map. - Don't modify _dl_global_scope_end in the end. - (__dl_runtime_resolv): Also use scope from the map. - * sysdeps/mips/mips64/dl-machine.h: Likewise. - * elf/dl-runtime.c: Don't define fixup and profile_fixup if - ELF_MACHINE_NO_PLT is defined. - * sysdeps/mips/sys/ucontext.h: New file. - Patches by kaz Kojima . - -1998-11-26 Andreas Jaeger - - * sysdeps/generic/pselect.c (__pselect): Change interface, - set/restore sigmask. - - * misc/sys/select.h: Change declaration according to Stevens' Unix - Network Programming. - * include/sys/select.h (__pselect): Likewise. - Reported by [PR libc/872]. - - * include/fpu_control.h: New file, contains __setfpucw - declaration. - - * sysdeps/generic/fpu_control.h: Remove __setfpucw declaration, - it's an internal symbol. - * sysdeps/alpha/fpu/fpu_control.h: Likewise. - * sysdeps/arm/fpu/fpu_control.h: Likewise. - * sysdeps/i386/fpu_control.h: Likewise. - * sysdeps/m68k/fpu_control.h: Likewise. - * sysdeps/powerpc/fpu_control.h: Likewise. - * sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise. - * sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise. - -1998-11-25 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.104. - -1998-11-25 Mark Kettenis - - * libio/bits/stdio.h (fread_unlocked): Add missing parentheses - around parameter n. - -1998-11-24 Andreas Schwab - - * time/tzfile.c (__tzfile_read): Fix comment. - -1998-11-24 Andreas Schwab - - * Makerules (build-shlib): Pass -O1 down to linker to get - optimized shared libraries. - -1998-11-24 Andreas Schwab - - * Makeconfig ($(common-objpfx)sysd-dirs): Cope with no Subdirs - file. Strip "-" from inhibited subdir name. Combine into a - single awk program. - ($(common-objpfx)sysd-sorted): Fix sed command. - -1998-11-25 Roland McGrath - - * sysdeps/mach/hurd/i386/init-first.c (init): Restored as inline fn. - Use constant _HURD_THREADVARS_MAX for temporary array size. - - * Makeconfig ($(common-objpfx)sysd-sorted): Use @ instead of / as sed - s separator, since $(..) might contain a /. - -1998-11-23 Andreas Jaeger - - * configure.in (mips): Fix typo (Replace ,, by ;;). - - * libio/Versions: Clean up entries. - -1998-11-23 Ulrich Drepper - - * sysdeps/i386/fpu/bits/mathinline.h: Add optimizations for lrint - and llrint. - -1998-11-21 Andreas Jaeger - - * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Removed. There are too - many differences between the Linux 2.0 and 2.1 versions of this - file and it's too difficult to convert all calls. The file should - only be needed by the ipfw program which has to take care of the - correct kernel version and include files. - - * sysdeps/unix/sysv/linux/Dist: Remove netinet/ip_fw.h. - * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Likewise. - -1998-11-23 Ulrich Drepper - - * Makeconfig: Don't read sysd-sorted unless sysd-dirs is read. - Patch by Zack Weinberg. - - * math/bits/mathcalls.h: Adjust comments. Remove gamma_r prototype. - - * sysdeps/i386/fpu/bits/mathinline.h: Make log2 only available if - __USE_ISOC9X is defined. Provide rint optimization. - -1998-11-21 H.J. Lu - - * libio/Versions (_IO_popen, _IO_proc_open, _IO_proc_close, - popen, pclose): Add to GLIBC_2.1. - - * libio/Makefile (routines): Add oldiopopen and oldpclose. - (shared-only-routines): Likewise. - - * libio/pclose.c (pclose): Make it default for GLIBC_2.1. - * libio/iopopen.c (_IO_proc_open, _IO_popen, popen, - _IO_proc_close): Likewise. - - * libio/iolibio.h (_IO_new_popen, _IO_old_popen, __new_pclose, - __old_pclose): New prototypes. - - * libio/libioP.h (_IO_new_file_jumps): Removed. - (_IO_old_proc_jumps): Added. - (_IO_new_proc_open, _IO_old_proc_open): New prototypes. - - * libio/oldiopopen.c: New file. - - * libio/oldpclose.c: New file. - -1998-11-22 Thorsten Kukuk - - * nss/Makefile: Build and install getent. - * nss/getent.c: New, get entries from administrative database. - -1998-11-22 Roland McGrath - - * sysdeps/mach/hurd/i386/init-first.c (init): Provide temporary storage - for the per-thread variables of the main user thread to make it - possible to use malloc as soon as _hurd_preinit_hook has been run. - For cthreads, copy values to new stack from there. - For non-cthreads, malloc threadvar array here and copy from temp space. - (init1): No longer initialize threadvars here. - (doinit1): Made static void at top level. - (init): Folded into [PIC] _init or [!PIC] doinit1, since GCC cannot - inline a function that uses dynamic auto arrays. - -1998-11-20 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.103. - - * aclocal.m4 (LIBC_PROG_BINUTILS): Also add AR and RANLIB using the - same method. - * configure.in: Don't define AR and RANLIB here. - - * inet/gethstbyad_r.c: Define NEED__RES_HCONV and POSTPROCESS for - host name res_hconf code. - * inet/gethstbynm_r.c: Likewise. - * nss/getXXbyYY_r.c: Include resolv/res_hconf.h if NEED__RES_HCONF - is defined. Call res_hconf_init if necessary. If POSTPROCESS is - defined execute the code. - * resolv/Makefile (routines): Add res_hconf. - (headers): Add res_hconf.h. - * resolv/res_hconf.c: Pretty print. - * resolv/res_hconf.h: Likewise. - -1998-11-20 Ulrich Drepper - - * sysdeps/generic/bits/byteswap.h: Fix typos in non-GCC - definitions. Reported by Scott Bambrough . - -1998-11-20 1998 Andreas Schwab - - * math/libm-test.c: Raise some epsilons a bit. - -1998-11-20 Andreas Schwab - - * Makeconfig ($(common-objpfx)sysd-sorted): Fix portability problems. - -1998-11-20 Ulrich Drepper - - * Makefile (distribute): Add scripts/gen-sorted.awk. - -1998-11-19 Ulrich Drepper - - * posix/regex.c (regex_compile): Handle extra long class names - correctly. - -1998-11-19 Geoff Keating - - * elf/rtld.c (_dl_start): Handle weak undefined symbols in ld.so - correctly. - -1998-11-19 Ulrich Drepper - - * misc/error.c: Undo last change. - - * ctype/Versions: Add _tolower and _toupper. - -1998-11-19 Thorsten Kukuk - - * sunrpc/svc_unix.c (readunix): Check for POLLERR, POLLHUP and - POLLNVAL. - -1998-11-19 Ulrich Drepper - - * Makeconfig: Add comment to all-subdirs definition. - Add rule to generate sysd-sorted. Include this file and and set - subdirs value to $(sorted-subdirs). - * scripts/gen-sorted.awk: New file. - * Make-dist (+tsrcs): Add Depend. - * nscd/Depend: New file. - * nss/Depend: New file. - * rt/Depend: New file. - -1998-11-18 Ulrich Drepper - - * sysdeps/unix/bsd/poll.c (__poll): Add code to extend sets if any - passed file descriptor exceeds the size determined by - getdtablesize. - - * sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Update - from inline version in bits/socket.h. - - * sysdeps/unix/sysv/linux/bits/socket.h: Define __cmsg_nxthdr as - inline function only is __USE_EXTERN_INLINES is defined. - - * time/strftime.c (my_strftime): Make code a bit clearer. - Patch by Paul Eggert . - - * io/Makefile (CFLAGS-ftw.c): Removed. - - * manual/errno.texi: Change the short text for ENODEV to - "No such device". - -1998-11-18 Andreas Schwab - - * io/Makefile (tests): Make sure that the test program has an - explicit directory part. - -1998-11-18 Andreas Schwab - - * configure.in: Fix last change. - -1998-11-18 Thorsten Kukuk - - * sunrpc/Makefile (routines): Add create_xid. - - * sunrpc/clnt_tcp.c: Use non-guessable xid. - * sunrpc/clnt_udp.c: Likewise. - * sunrpc/clnt_unix.c: Likewise. - * sunrpc/pmap_rmt.c: Likewise. - * sunrpc/create_xid.c: New, create non-guessable xid. - - * sunrpc/svc_tcp.c: Remove patch from 1998-06-15, use poll instead - of select. - * sunrpc/svc_unix.c: Use poll instead of select. - -1998-11-17 Ulrich Drepper - - * sysdeps/unix/sysv/linux/sleep.c (__sleep): Make Unix98 compliant - by removing SIG_IGN handler for SIGCHLD if necessary. - Patch by H.J. Lu . - - * stdio-common/printf_fphex.c (__printf_fphex): Correct printing - of denormalized numbers. - -1998-10-06 Geoff Keating - - * sysdeps/powerpc/dl-machine.h (elf_machine_load_address): Suppress - another parentheses warning, make nano-optimisation. - - * sysdeps/powerpc/dl-machine.h (_dl_runtime_resolve): Preserve - saved LR on stack so _mcount works. - (_dl_prof_resolve): Likewise. - * sysdeps/powerpc/register-dump.h: Print FPRs. Adjust for correct - signal handler calling convention. - * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Adjust for - correct signal handler calling convention---more like x86 linux and - mklinux, less like linux-ppc versions between 2.1 and 2.1.126. - -1998-11-17 Ulrich Drepper - - * configure.in: Correct allowed makeinfo version. - -1998-11-17 Philip Blundell - - * sysdeps/generic/bits/mathdef.h: Fix typo. - -1998-11-17 Geoff Keating - - * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Prototype the syscall - under the right name (squish warning). - * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. - -1998-11-17 Geoff Keating - - * stdio-common/_itoa.c (_itoa): Add redundant parentheses to - prevent warnings. - -1998-11-16 Ulrich Drepper - - * intl/locale.alias: Change `japanese' alias to match X11R6's. - Add `japanese.euc' alias. - - * manual/Makefile (%.info): Set LANGUAGE and LC_ALL explicitly to C - before running makeinfo. - - * math/Makefile (libm-routines): $(strip) entire value. - - * nss/nss_db/db-XXX.c (internal_setent): Rewrite to avoid warning. - -1998-10-24 H.J. Lu - - * libio/libio.h (_IO_cookie_io_functions_t): Protect with __USE_GNU. - (_IO_cookie_file): Likewise. - -1998-11-16 Philip Blundell - - * inet/netinet/icmp6.h: Correct naming of constants. - -1998-11-16 Ulrich Drepper - - * sysdeps/unix/opendir.c: Use o_directory_works differently. Treat - zero value as uninitialized so that variable can go into .bss. - - * dirent/opendir-tst1.c: Print error strings to stdout. - - * sysdeps/unix/sysv/linux/mmap64.c: New file. Empty. - * sysdeps/unix/sysv/linux/syscalls.list: Add mmap with mmap64 alias. - * sysdeps/unix/sysv/linux/arm/mmap.S: Add mmap64 alias. - * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. - * sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise. - -1998-11-16 Andreas Schwab - - * time/tzfile.c (__tzfile_read): Check that types[i].isdst is in - range. - -1998-11-16 Ulrich Drepper - - * libio/bits/stdio.h (fread_unlocked): Do handle zero size and number. - (fwrite_unlocked): Likewise. - -1998-11-16 Andreas Schwab - - * libio/bits/stdio.h (fread_unlocked): Don't evaluate non-constant - twice. Don't bother handling zero size. - (fwrite_unlocked): Likewise. - -1998-11-15 Andreas Schwab - - * configure.in: Fix regex for makeinfo version string. - -1998-11-15 Andreas Schwab - - * sunrpc/rpc_sample.c (write_sample_server): Avoid -Wparentheses - warning. - * sunrpc/rpc_svcout.c (write_program): Likewise. - -1998-11-15 Andreas Schwab - - * time/Makefile (CFLAGS-test_time.c): Add -Wno-format. - -1998-11-16 Ulrich Drepper . - -1998-11-16 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/sysdep.h (INLINE_SYSCALL): Undo - last change. - -1998-11-13 Ulrich Drepper - - * stdio-common/vfscanf.c: Don't return -1 in case of an invalid - format, just stop. - - * version.h (VERSION): Bump to 2.0.102. - - * stdio-common/tstdiomisc.c (t2): Update test case for last scanf - change. - * stdio-common/scanf7.c (main): Likewise. - -1998-11-13 Ulrich Drepper - - * stdio-common/vfscanf.c: Return EOF for invalid format - characters. - - * version.h (VERSION): Bump to 2.0.101. - - * Makerules (Versions.all): Generate this file from all Versions.def - files. - (sysd-versions): Use Versions.all instead of Versions.def. - -1998-11-13 Philip Blundell - - * sysdeps/arm/fpu/bits/setjmp.h (__JMP_BUF_SP): Correct value. - Reported by Scott Bambrough. - -1998-11-11 Andreas Schwab - - * locale/programs/config.h: Define HAVE_STRING_H for xstrdup.c. - -1998-11-13 Ulrich Drepper - - * libio/bits/stdio.h: Correct and improve fread_unlocked and - fwrite_unlocked optimizations. - - * time/tzfile.c (__tzfile_read): Set __tzname based on last names - in time not to last entries in the file. - (__tzfile_compute): Likewise. Fix for PR libc/863. - - * timezone/Makefile: Generate GB timezone data for test. - * timezone/tst-timezone.c: More tests for DST switching time (disabled - for now). - -1998-11-13 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/sysdep.h (INLINE_SYSCALL): Remove - d0 from clobber list. - -1998-11-12 Ulrich Drepper - - * inet/netinet/in.h: Add a few more IPPROTO_* macros. - - * libio/Makefile (headers): Add bits/stdio.h. - * libio/iofread_u.c: Undefine fread_unlocked before definition. - * libio/iofwrite_u.c: Undefine fwrite_unlocked before definition. - * libio/stdio.h: Move optimizations into ... - * libio/bits/stdio.h: ...here. New file. - - * libio/iofread.c: Pretty print. - -1998-11-12 Mark Kettenis - - * sysdeps/gnu/bits/utmpx.h: Protect members of struct - __exit_status with `__'. Rename pad member of struct utmpx to - __unused. - (RUN_LVL): Define unconditionally. - * sysdeps/gnu/bits/utmp.h: Rename pad member of struct utmp to - __unused. - -1998-11-12 Philip Blundell - - * sysdeps/unix/sysv/linux/netlink/netlink.h: New file, support for - Linux AF_NETLINK sockets (needed since the kernel version is - unusable). - * sysdeps/unix/sysv/linux/Makefile: Install it. - * sysdeps/unix/sysv/linux/Dist: Distribute it. - -1998-11-12 Andreas Jaeger - - * timezone/tst-timezone.c (tests): Add entry for America/Chicago - to test for bug in PR libc/863. - -1998-11-12 Ulrich Drepper - - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Cleanup comment. - - * elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Rename macro - parameter lazy to do_lazy to avoid clashing with struct member name. - Reported by Ralf Baechle . - -1998-11-10 H.J. Lu - - * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN - if it is defined in . - -1998-11-09 13:07 -0500 Zack Weinberg - - * include/protocols/routed.h: Include the real header with - a full path from the top of the source tree. - * include/protocols/rwhod.h: Likewise. - * include/protocols/talkd.h: Likewise. - * include/protocols/timed.h: Likewise. - - * timezone/Makefile: Don't include z.ZONE files if no_deps - is set, not if avoid-generated is set. - -1998-11-12 Ulrich Drepper - - * signal/signal.h: Undo last change. Get definition of timespec - if __USE_POSIX199309. - - * string/bits/string2.h (__strpbrk_c2): Add intermediate cast to - size_t to prevent gcc warning when using -Wqual-cast. - (__strpbrk_c3): Likewise. - Suggested by Alan Curry . - -1998-11-11 Roland McGrath - - * hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending, - unblocked signals are set in the startup masks. - - * hurd/hurdsig.c (_hurdsig_init): Take new args, INTARRAY and - INTARRAYSIZE. Initialize main thread's sigstate from INIT_SIG* ints. - - * hurd/hurd/signal.h: Update _hurdsig_init decl. - * hurd/hurdinit.c (_hurd_proc_init): Take new args, INTARRAY and - INTARRAYSIZE, pass them down to _hurdsig_init. - * hurd/hurd.h: Update _hurd_proc_init decl. - -1998-11-10 Ulrich Drepper - - * math/cabs.c: Replace complex by _Complex. - * math/cabsf.c: Likewise. - * math/cabsl.c: Likewise. - * math/cimag.c: Likewise. - * math/cimagf.c: Likewise. - * math/cimagl.c: Likewise. - * math/conj.c: Likewise. - * math/conjf.c: Likewise. - * math/conjl.c: Likewise. - * math/creal.c: Likewise. - * math/crealf.c: Likewise. - * math/creall.c: Likewise. - - * sysdeps/alpha/fpu/bits/mathdef.h: Define ISO C 9X stuff only if - included from math.h and __USE_ISOC9X is defined. - * sysdeps/generic/bits/mathdef.h: Likewise. - * sysdeps/generic/i386/fpu/mathdef.h: Likewise. - * sysdeps/generic/m68k/fpu/mathdef.h: Likewise. - * sysdeps/generic/powerpc/bits/mathdef.h: Likewise. - * sysdeps/generic/sparc/fpu/bits/mathdef.h: Likewise. - -1998-11-10 Andreas Jaeger - - * sysdeps/i386/fpu/bits/mathdef.h: Allow direct inclusion by - . - * sysdeps/alpha/fpu/bits/mathdef.h: Likewise. - * sysdeps/generic/bits/mathdef.h: Likewise. - * sysdeps/m68k/fpu/bits/mathdef.h: Likewise. - * sysdeps/powerpc/bits/mathdef.h: Likewise. - * sysdeps/sparc/fpu/bits/mathdef.h: Likewise. - -1998-11-09 Ulrich Drepper - - * extra-lib.mk: Fix typo in last change. - - * math/complex.h: Include bits/mathdef.h to get __NO_LONG_DOUBLE_MATH - is needed. - Don't define long double functions if __NO_LONG_DOUBLE_MATH is defined. - Don't define `complex' but instead `_Complex'. The later is the - reserved keyword. - * math/bits/cmathcalls.c: Define _Mdouble_complex_ using _Complex, - not complex. - -1998-11-07 Andreas Schwab - - * manual/libc.texinfo: Remove colon from category name. - * manual/Makefile (dir-add.info): Likewise. - -1998-11-07 Andreas Schwab - - * configure.in: Avoid autoconf bug. - -1998-10-28 H.J. Lu - - * posix/getopt.h: Add "__" to arguments in prototypes. - -1998-11-05 H.J. Lu - - * libio/iofgets.c (_IO_fgets): Don't report error - if something was read in and errno is set to - EAGAIN. - * libio/iofgets_u.c (fgets_unlocked): Likewise. - -1998-11-05 Philip Blundell - - * sysdeps/unix/sysv/linux/net/if_packet.h: Don't include kernel - header; it defines too much. Provide a local definition of struct - sockaddr_pkt and a comment advising against its use. - -1998-11-06 Andreas Schwab - - * extra-lib.mk: Avoid empty include list. - -1998-11-04 Andreas Schwab - - * extra-lib.mk: Add support for $(lib)-shared-only-routines. - - * elf/Makefile (libdl-routines): Add dlopenold only if doing - versioning. - (libdl-shared-only-routines): New variable. - -1998-11-06 Paul Eggert - - Don't invoke localtime_r or gmtime_r unless it's the GNU C - library's localtime_r and gmtime_r; there are too many buggy - implementations of localtime_r and gmtime_r out there, and - it's not worth keeping track of all the different bugs. - - * time/mktime.c (__EXTENSIONS__): Remove. - (): No need to include. - * time/strftime.c: Likewise. - - * time/mktime.c (_POSIX_THREAD_SAFE_FUNCTIONS, HAVE_LOCALTIME_R): - Remove. - (my_mktime_localtime_r): Renamed from localtime_r; all uses changed. - Base it on localtime unless _LIBC. - - * time/strftime.c (my_strftime_gmtime_r): Renamed from gmtime_r; - all uses changed. - (my_strftime_localtime_r): Renamed from localtime_r; all uses changed. - Base them on localtime/gmtime if not _LIBC. - -1998-11-07 Ulrich Drepper - - * sysdeps/generic/isastream.c: Always return 0 unless it is an invalid - file descriptor. This makes this function actually usable. - Proposed by Mark Kettenis . - -1998-11-05 Ulrich Drepper - - * math/math.h: Unconditionally include bits/mathdef.h. Declare - long double functions only if __NO_LONG_DOUBLE_MATH is not - defined. - * sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X. - Define __NO_LONG_DOUBLE_MATH. - * sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X. - * sysdeps/i386/fpu/bits/mathdef.h: Likewise. - - * elf/rtld.c: Add a few __builtin_expects where they will improve - a lot. - -1998-11-05 Ulrich Drepper - - * version.h (VERSION): Bump to 2.0.100. - - * sysdeps/i386/fpu/bits/mathinline.h (__pow2): Fix fldl -> fld. - - * sysdeps/libm-i387/s_fma.S: Optimize a bit. - * sysdeps/libm-i387/s_fmaf.S: Likewise. - -1998-11-04 Andreas Schwab - - * libio/genops.c (_IO_least_marker): Add additional parameter - end_p replacing fp->_IO_read_end. - (save_for_backup): Likewise. All callers changed. Use _IO_size_t - and _IO_ssize_t instead of int. - (_IO_switch_to_main_get_area): Remove use of _IO_save_ptr. - (_IO_switch_to_backup_area): Likewise. Fix comments. - (_IO_seekmark): Undo last change. - (_IO_default_pbackfail): Correct use of backup area. - * libio/libio.h (_IO_FILE_complete): Remove _IO_save_ptr. - -1998-11-04 19:47 -0500 Zack Weinberg - - * configure.in: Search for install-info and substitute it. - Determine whether install-info is the buggy Debian version - that doesn't understand INFO-DIR-SECTION. - * config.make.in: Add INSTALL_INFO and OLD_DEBIAN_INSTALL_INFO - to be substituted. - * manual/Makefile: If OLD_DEBIAN_INSTALL_INFO, give - install-info the --section argument it needs to work properly. - (dir-add.texinfo): Delete target. - (dir-add.info): Generate this directly. Sort entries. Put a - colon at the end of the INFO-DIR-SECTION line. - * manual/libc.texinfo: Put a colon at the end of the - @dircategory line. - -1998-11-05 Paul Eggert - - * time/mktime.c (__mktime_internal): Adopt the traditional (and - problematic) notion of what to do when tm_isdst doesn't match. - -1998-11-04 Andreas Schwab - - * posix/PTESTS: Fix spelling. - -1998-11-04 Ulrich Drepper - - * misc/efgcvt_r.c (fcvt_r): Remove code which tries to use libm - functions. Reduce error in computing normalized value by multiplying - factor in loop and compute result in one step. - Reported by Christian Gafton. - - * sysdeps/libm-i387/e_hypot.S: New file. - * sysdeps/libm-i387/e_hypotf.S: New file. - -1998-11-04 Andreas Jaeger - - * elf/dlopenold.c: Compile only if DO_VERSIONING is also defined. - -1998-11-03 H.J. Lu - - * libio/fileops.c (new_do_write): New function. - (_IO_new_do_write): Call new_do_write. - (_IO_new_file_xsputn): Likewise. - - * libio/oldfileops.c (old_do_write): New function. - (_IO_old_do_write): Call old_do_write. - (_IO_old_file_xsputn): Likewise. - -1998-11-04 Ulrich Drepper - - * time/mktime.c (__mktime_internal): Correct last change. We must - stop searching for the right isdst value before stepping to the - initial value. - - * malloc/malloc.c: Make sure calloc really returned zeroed memory. - Patch by Wolfram Gloger . - -1998-11-02 16:12 -0500 Zack Weinberg - - * sysdeps/generic/bits/signum.h: Define signals with their - historical numbers when those are in the 1-15 range and - consistent across platforms. - Define compatibility aliases (SIGIOT, SIGCLD) if __USE_MISC. - Define SIG_DFL, SIG_IGN, SIG_ERR as numeric constants cast - appropriately instead of with fake function declarations - (would cause link errors). - If __USE_UNIX98, define SIG_HOLD. - -1998-10-29 H.J. Lu - - * sysdeps/unix/sysv/linux/bits/sigaction.h (sigaction): Use - union only if __USE_POSIX199309 is defined. - - * misc/sys/select.h (pselect): Declared only if __USE_GNU is - defined. - -1998-11-03 Ulrich Drepper - - * time/mktime.c (__mktime_internal): Handle broken down times - around the time of the DST switches more correctly. - -1998-11-02 Ulrich Drepper - - * elf/Makefile (libdl-routines): Add dlopenold. - * elf/Versions [libdl, GLIBC_2.1]: Add dlopen. - * elf/dl-open.c (_dl_open): Check whether RTLD_LAZY or RTLD_GLOBAL - is set and bounce otherwise. - * elf/dlopen.c: Rename function to __dlopen_check and make version - named dlopen. - * elf/dlopenold.c: New file. - -1998-11-02 Ulrich Drepper - - * elf/Versions [libc, GLIBC_2.01]: Add _dl_global_scope_alloc. - * elf/dl-open.c (_dl_global_scope_alloc): Move definition to - * elf/dl-deps.c: ...here. - * elf/dl-open.c (dl_open_worker): Call _dl_map_object_deps with - new parameter and expect result. Remove code handling RTLD_GLOBAL. - Add return value of _dl_map_object_deps to - _dl_main_searchlist->r_nlist. - * elf/dl-deps.c (_dl_map_object_deps): Change to return value. - If we parameter GLOBAL is nonzero add object and dependencies to - the global scope. - * elf/ldsodefs.h: Adapt prototype for _dl_map_object_deps. - * elf/rtld.c (dl_main): Call _dl_map_object_deps with new parameter. - Mark all objects as in global scope. - * elf/dl-object.c (_dl_new_object): Initialize l_global to zero. - - * sysdeps/unix/sysv/linux/bits/sockunion.h: Add Econet support. - - * sysdeps/unix/sysv/linux/i386/sysdep.h: Add .L prefix to symbols - used in macro magic. - -1998-11-02 Andreas Jaeger - - * sysdeps/unix/sysv/linux/netatalk/at.h: Include - before to make sockaddr_at available to - . - - * posix/glob.h: Remove __P from parameter lists of declarations. - -1998-11-02 Andreas Jaeger - - * time/tzset.c (tz_compute): Remove unused parameter timer. - Change caller. - -1998-11-02 Mark Kettenis - - * sysdeps/generic/bits/types.h (__ipc_pid_t): New typedef. - -1998-11-02 Ulrich Drepper - - * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove - unnecessary test and add cast. - -1998-11-02 Andreas Jaeger - - * posix/getconf.c: Add initializer SYSCONF for CHARCLASS_NAME_MAX. - - * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Remove unused - parameter fd. - * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. +1999-05-17 Ulrich Drepper -1998-11-02 Mark Kettenis + * inet/arpa/tftp.h: Add second packed attribute. - * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access - fds_bits member. - (__FDMASK): Use __fd_mask instead of unsigned long int in cast. +1999-05-16 Wolfram Gloger -1998-10-31 Richard Henderson + * malloc/malloc.c: Cleanup to bring in line with released + stand-alone version `ptmalloc'. Update some comments. + (internal_function): Move fallback definition so that the source + compiles outside of libc, and use it in more places. + (malloc_atfork): Fix when malloc_check is in use. - * math/Makefile (gmp-objs): Add udiv_qrnnd. +1999-05-16 Andreas Schwab - * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL*): New. - (inline_syscall*): New. - * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): New. - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Kill __syscall* bits. + * stdlib/tst-strtod.c: Fix typo. -1998-10-31 Ulrich Drepper +1999-05-16 Andreas Schwab - * aclocal.m4 (LIBC_PROG_FOO_GNU): Name output file using -o to - avoid ld test generating an unwanted file. + * elf/dl-close.c (_dl_close): Add cast to avoid warning about + const incorrectness. - * posix/PTESTS: Remove comment about incorrect test (it is correct). +1999-05-16 Roland McGrath -1998-10-30 Thorsten Kukuk + * sysdeps/generic/bits/termios.h (CRTSCTS): New macro. - * sunrpc/Versions: Add xdr_uint32_t and xdr_int32_t. - * sunrpc/pmap_rmt.c: Initialize clnt_stat variable. - * sunrpc/rpc/auth_des.h: Use uint32_t for time values. - * sunrpc/rpc/xdr.h: Add INT32 support. - * sunrpc/xdr.c: Implement xdr_int32_t and xdr_uint32_t . +1999-05-16 Thorsten Kukuk - * nis/nis_call.c: Changes for new 64bit clean NIS+ interface. - * nis/nis_callback.c: Likewise. - * nis/nis_creategroup.c: Likewise. - * nis/nis_defaults.c: Likewise. - * nis/nis_intern.h: Likewise. + * sunrpc/etc.rpc: Add portmapper, rstat_svc and pcnfs. + * sunrpc/key_call.c: Fix memory leak, close file handle. + * nis/nis_creategroup.c: Use malloc instead of calloc, + set ctime and mtime. + * nis/nis_subr.c: Check for realloc result. + * nis/nis_file.c: Fix memory leak. + * nis/nis_table.c: Pretty print. + * nis/nis_getservlist.c: Likewise. + * nis/nis_ismember.c: Likewise. * nis/nis_lookup.c: Likewise. * nis/nis_ping.c: Likewise. - * nis/nis_print.c: Likewise. - * nis/nis_table.c: Likewise. - * nis/nis_util.c: Likewise. - * nis/nis_xdr.c: Likewise. - * nis/rpcsvc/nis.h: Likewise. - * nis/rpcsvc/nis.x: Likewise. - * nis/rpcsvc/nis_callback.h: Likewise. - * nis/rpcsvc/nis_object.x: Likewise. - * nis/rpcsvc/nislib.h: Likewise. - - * nis/rpcsvc/yp.h: Remove casts to (u_long). - * nis/rpcsvc/yp_prot.h: Likewise. - * nis/rpcsvc/ypupd.h: Likewise. - * nis/ypclnt.c: Change %ld to %d in sprintf. - -1998-10-29 Andreas Schwab - - * manual/locale.texi (Formatting Numbers): Fix strfmon examples. - -1998-10-28 Andreas Schwab - - * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain - 0, __fd_mask is usually not a char. - -1998-10-30 Andreas Jaeger - - * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow - compilation on systems without rt_* syscalls (e.g. on Linux 2.0). - * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. - * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. - * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. - * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise - * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. - * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. - - * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow - compiling on systems without rt_sigaction syscall. - * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): - Likewise. - -1998-10-30 Andreas Jaeger + * nis/nis_removemember.c: Likewise. + * nis/nis_util.c: Likewise, check calloc result. - * time/strptime.c (HERE_D_FMT): Fix typo. - Reported by Claus Heine , PR libc/842. +1999-05-16 Roland McGrath -1998-10-30 Ulrich Drepper + * sysdeps/unix/sysv/linux/sys/socketvar.h: Moved to ... + * sysdeps/generic/sys/socketvar.h: ... here. + * sysdeps/unix/sysv/linux/netinet/in_systm.h: Moved to ... + * sysdeps/generic/netinet/in_systm.h: ... here. + * sysdeps/unix/sysv/linux/Dist: Remove netinet/in_systm.h, + sys/socketvar.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Likewise. + * inet/Makefile (headers): Add netinet/in_systm.h here. + * socket/Makefile (headers): Add sys/socketvar.h here. - * catgets/Makefile (tests): Add rules to run gencat on test1.msg. - (generate): Add test1.cat and test1.h. - (distribute): Add test1.msg. - * catgets/test1.msg: New file. +1999-05-15 Ulrich Drepper - * catgets/gencat.c: Do a better job in initializing dynamic - memory [PR libc/844]. + * stdlib/strtol.c: Optimize inner loop of long long versions. -1998-10-30 18:11 Ulrich Drepper + * sysdeps/gnu/utmpx.h: Add needed type definitions according to + Unix98. Add forward declaration of struct utmp. - * iconv/gconv_conf.c (__gconv_read_conf): Don't define as - internal_function since it is called through a pointer. - * iconv/gconv_db.c (free_derivation): Likewise. - * iconv/gconv_int.h: Adjust prototype od __gconv_read_conf. +1999-05-14 Ulrich Drepper - * posix/wordexp.c: Add internal_function to parse_backtick definition. - * rt/aio_misc.c: Add internal_function to __aio_free_request, - __aio_find_req, __aio_find_req_fd, and __aio_enqueue_request - definitions. - * rt/aio_notify.c: Add internal_function to __aio_notify_only and - __aio_notify definitions. - * wcsmbsload.c: Add internal_function to __wcsmbs_load_conv definition. + * nis/nis_getservlist.c (nis_getservlist): Use malloc instead of + calloc. -1998-10-30 Ulrich Drepper + * nis/nis_checkpoint.c (nis_checkpoint): Fix memory leaks. + * nis/nis_addmember.c (nis_addmember): Fix memory leak. Test + memory allocation results. - * Makerules (build-shlib): Add -O to generate optimized shared - objects. +1999-05-14 Mark Kettenis -1998-10-30 11:15 Ulrich Drepper + * sysdeps/generic/getutmp.c: Include + (getutmp): Rewrite to only copy those members that are really + present in `struct utmp'. + * sysdeps/generic/getutmpx.c: Likewise. - * sysdeps/libm-i387/e_fmod.S: Remove invalid operand size suffix. - * sysdeps/libm-i387/e_fmodf.S: Likewise. - * sysdeps/libm-i387/e_fmodl.S: Likewise. - * sysdeps/libm-i387/s_ilogb.S: Likewise. - * sysdeps/libm-i387/s_ilogbf.S: Likewise. - * sysdeps/libm-i387/s_logb.S: Likewise. - * sysdeps/libm-i387/s_logbf.S: Likewise. - * sysdeps/libm-i387/s_remquo.S: Likewise. - * sysdeps/libm-i387/s_remquof.S: Likewise. - * sysdeps/libm-i387/s_remquol.S: Likewise. - * sysdeps/libm-i387/s_significand.S: Likewise. - * sysdeps/libm-i387/s_significandf.S: Likewise. +1999-05-14 Ulrich Drepper -1998-10-30 Geoff Keating + * nss/getXXbyYY.c: Add free_mem function which disposes all + statically allocated memory when debugging. + * nss/getXXent.c: Likewise. + * nss/nsswitch.c: Likewise. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Really correct - _llseek. +1999-05-13 Ulrich Drepper -1998-10-30 Geoff Keating + * sysdeps/gnu/getutmpx.c: New file. + * sysdeps/gnu/getutmp.c: New file. - * math/libm-test.c: Loosen deltas for sin(0.9)^2+cos(0.9)^2. +1999-05-13 H.J. Lu -1998-10-29 Ulrich Drepper + * login/Versions (getutmpx): Added to GLIBC_2.1.1. + (getutmp): Likewise. - * stdio-common/vfprintf.c (vfprintf): Fix the remaining premature - returns without cleaning up the lock. - (printf_unknown): Add label all_done. + * sysdeps/gnu/Makefile (sysdep_routines): Add getutmp and + getutmpx for login. - * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Keep Linux 2.0 - kernels in mind when reading /proc/self/fd/FD. - * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. + * sysdeps/gnu/utmpx.h (getutmp): Added. + (getutmpx): Likewise. - * nscd/nscd.c (doc): It's "Name Service" not "Name Switch". + * sysdeps/generic/getutmp.c: New file. - * malloc/mtrace.c (tr_where): Replace snprintf call by mempcpy and - _fitoa. + * sysdeps/generic/getutmpx.c: New file. - * sysdeps/unix/sysv/linux/ttyname_r.c (ttyname_r): Try reading - /prof/self/fd/FD first. - * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Likewise. +1999-05-13 Andreas Jaeger - * stdio-common/_itoa.h (_fitoa_word): New inline function. Write - formatted number starting at given position and return pointer to - following byte. - (_fitoa): Likewise, for long long. + * glibcbug.in (BUGGLIBC): Change address to + libc-alpha@sourceware.cygnus.com. -1998-10-29 Roland McGrath +1999-05-12 Andreas Jaeger - * sysdeps/unix/sysv/linux/bits/sem.h, - sysdeps/unix/sysv/linux/bits/ipc.h, - sysdeps/unix/sysv/linux/bits/shm.h, - sysdeps/unix/sysv/linux/bits/msq.h: Moved to ... - * sysdeps/gnu/bits/sem.h, sysdeps/gnu/bits/ipc.h, - sysdeps/gnu/bits/shm.h, sysdeps/gnu/bits/msq.h: ... here, - so the same bits will be used for the Hurd. + * resolv/arpa/nameser.h: Add C++ protectors. -1998-10-29 Ulrich Drepper +1999-05-08 Andreas Jaeger - * sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Allow - compiling on systems without rt_sigaction syscall. + * iconvdata/gconv-modules: Fix alias for CP1255. Reported by + Elad Tsur . -1998-10-12 Philip Blundell +1999-05-11 Ulrich Drepper - * Makeconfig (sysdep-subdirs): Allow Subdirs files to remove - directories as well as add them. + * elf/Versions (ld.so) [GLIBC_2.1.1]: Add _dl_lazy. + * elf/dl-open.c (_dl_open_worker): Only relocate newly loaded objects + lazily if LD_BIND_NOW is not set. + * elf/dl-support.c (_dl_lazy): New variable. + (non_dynamic_init): Set _dl_lazy according to LD_BIND_NOW envvar. + * elf/rtld.c (_dl_lazy): new global variable. + ( dl_main): Remove lazy, replace it by _dl_lazy. -1998-10-28 Philip Blundell +1999-05-06 Andreas Schwab - * sysdeps/unix/sysv/linux/neteconet/ec.h: New file. Support for - AF_ECONET sockets as found in recent Linux 2.1 kernels. - * sysdeps/unix/sysv/linux/Dist: Distribute it. - * sysdeps/unix/sysv/linux/Makefile: Install it. + * locale/setlocale.c (new_composite_name): Check also whether the + first category name differs. -1998-10-27 Andreas Schwab +1999-05-11 Andreas Schwab - * string/bits/string2.h: __USE_GNU already implies __USE_MISC. + * sysdeps/unix/sysv/linux/ftime.c: Use the bsd implementation, not + the generic one. -1998-10-27 Andreas Schwab +1999-05-11 Philip Blundell - * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access - fds_bits member. - * sysdeps/unix/sysv/linux/alpha/bits/types.h (__FDS_BITS): Likewise. - * sysdeps/unix/sysv/linux/bits/types.h (__FDS_BITS): Likewise. - * sysdeps/unix/sysv/linux/mips/bits/types.h (__FDS_BITS): Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h (__FDS_BITS): - Likewise. - * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h (__FDS_BITS): + * sysdeps/generic/bits/socket.h (struct sockaddr_storage): New + structure; storage suitable for any socket address. + * sysdeps/unix/sysv/linux/bits/socket.h (struct sockaddr_storage): Likewise. - * sysdeps/generic/bits/select.h (__FD_ZERO, __FD_SET, __FD_CLR, - __FD_ISSET): Use it. - * sysdeps/i386/bits/select.h (__FD_ZERO, __FD_SET, __FD_CLR, - __FD_ISSET): Likewise. - -1998-10-28 Geoff Keating - - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Tidy up, correct - llseek. - - * sysdeps/unix/sysv/linux/powerpc/pread.c: Do not use the i386 version. - Instead call the system call wrapper function using an 64bit argument. - * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise. - * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise. - * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. - -1998-10-27 Ulrich Drepper - - * signal/signal.h: Don't include for timespec, add - forward declaration. + * sysdeps/unix/sysv/linux/mips/bits/socket.h (struct + sockaddr_storage): Likewise. - * sysdeps/i386/bits/select.h [!__USE_XOPEN]: Add special version - of __FD_* macros which use __fds_bits. - * sysdeps/generic/bits/select.h: Likewise. - Reported by Matt McLean . + * inet/netinet/in.h: Use ULONG_MAX not ~0 to test for a 64-bit + platform. -1998-10-27 Philip Blundell +1999-05-10 Ulrich Drepper - * elf/elf.h: Update ARM definitions. + * hesiod/Versions: Change _nss_hesiod_getpwuid and + _nss_hesiod_getgrgid to _nss_hesiod_getpwuid_r and + _nss_hesiod_getgrgid_r respectively. Fixes pr libc/1115. -1998-10-27 Ulrich Drepper +1999-05-09 Mark Kettenis - * signal/signal.h: Include bits/sigthread.h only for Unix98. + * hurd/get-host.c (_hurd_get_host_config): Return an empty value + if the file is empty. -1998-10-26 Ulrich Drepper +1999-05-07 Ulrich Drepper - * include/libc-symbols.h: If HAVE_BUILTIN_EXPECT is not defined - define __builtin_expect as a macro substituting to the first - argument. - * config.h.in: Define HAVE_BUILTIN_EXPECT. - * configure.in: Add test for __builtin_expect. + * elf/do-lookup.h: Fix typo in comment. - * sysdeps/unix/sysv/linux/bits/types.h: Include - bits/pthreadtypes.h only not for POSIX 199506. - * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/fstatvfs.c (fstatvfs): Set f_frsize to + f_bsize to help some broken programs. -1998-10-26 Mark Kettenis + * stdio-common/tst-printf.c: Add test case for last _itoa problem. - * sysdeps/unix/sysv/linux/Versions: Move shutdown ... - * socket/Versions [libc, GLIBC_2.0]: ... to here. + * stdio-common/vfprintf.c: Fix typo. -1998-10-25 Andreas Jaeger +1999-05-06 Ulrich Drepper - * include/stdio.h: Included for size_t. + * elf/link.h (struct link_map): New field l_phdr_allocated. + * elf/dl-load.c (_dl_map_object_from_fd): Don't depend on having + the program header being part of any loaded segment. If it is not + allocate memory and set l_phdr_allocated flag. + * elf/dl-close.c (_dl_close): Free l_phdr if necessary. - * stdio/stdio.h: Move __path_search, __gen_tempname, __libc_fatal - to ... - * include/stdio.h: ...here. - * libio/stdio.h: Removed __path_search, __gen_tempname, __libc_fatal. + * nss/digits_dots.c: Correct return value interpretation of + inet_ntoa. Fix PR libc/1109. -1998-10-26 11:09 Ulrich Drepper +1999-05-06 Zack Weinberg - * time/Makefile (tests): Add tst-posixtz. - * time/tst-posixtz.c: New file. + * sysdeps/sparc/sparc32/sparcv9/Dist: New file. -1998-10-24 Andreas Schwab +1999-05-06 Thorsten Kukuk - * elf/rtld.c (process_envvars): Accept any non-null value of - LD_BIND_NOW, as mandated by the ABI. + * stdlib/fpioconst.c (__tens): Export also for 64bit platforms. + * stdlib/fpioconst.c: Move #endif before end of struct. -1998-10-24 Andreas Schwab +1999-05-05 Ulrich Drepper - * sysdeps/unix/sysv/linux/pread.c: Rename __syscall_pread64 to - __syscall_pread. - * sysdeps/unix/sysv/linux/pwrite.c: Rename __syscall_pwrite64 to - __syscall_pwrite. - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. Remove - duplicate entries. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove - s_pread64 and s_pwrite64. - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise. + * 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. -1998-10-24 Andreas Schwab + * stdio-common/_itoa.c (_itoa): Fix special 32bit platform case + with specific bases and only few bits set in second word. - * sysdeps/unix/sysv/linux/llseek.c: Use INLINE_SYSCALL. - * sysdeps/unix/sysv/linux/arm/syscalls.list: Rename __sys_llseek - to __syscall__llseek. - * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/i386/syscalls.list: Remove entry for - __sys_llseek. + * timezone/Makefile (install-others): Create target directory + before creating tzfiles. -1998-10-26 Cristian Gafton +1999-05-05 Thorsten Kukuk - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add s_setfsgid - and s_setfsuid. + * nis/nis_file.c (readColdStartFile): Allocate memory only after + the file is opened successfully. -1998-10-26 Ulrich Drepper + * nis/nis_table.c: Fix some memory leaks. - * time/tzset.c (tz_compute): Correct last patch and describe this - in a comment. +1999-05-04 Ulrich Drepper -1998-10-24 Andreas Schwab + * elf/dl-load.c (expand_dynamic_string_token): Rewrite to loose st + variable. - * sysdeps/unix/sysv/linux/m68k/Makefile [subdir=signal]: Remove - rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo, - rt_sigaction and rt_sigpending. - * sysdeps/unix/sysv/linux/m68k/syscalls.list: Remove all entries - for __syscall_* functions. - * sysdeps/unix/sysv/linux/m68k/sysdep.h: Implement INLINE_SYSCALL. + * elf/dl-load.c (expand_dynamic_string_token): Recognize { } + around DST. Correctly ignore ORIGIN IN SUID binaries. -1998-10-26 Roland McGrath +1999-05-03 Ulrich Drepper - * hurd/Versions: Add _hurd_dtable, _hurd_dtablesize, - _hurd_dtable_lock, _hurd_intern_fd. + * sysdeps/generic/strtok_r.c: Use rawmemchr instead of strchr. + * sysdeps/generic/strtok.c: Likewise. - * sysdeps/mach/hurd/Versions: Add cthread_keycreate, - cthread_getspecific, cthread_setspecific, __libc_getspecific. + * string/tester.c: Add test of rawmemchr. - * mach/Versions: Fix typo in last change. + * sysdeps/i386/bits/select.h (__FD_ZERO): Remove memory output + specification. It's not necessary. -1998-10-25 Ulrich Drepper + * elf/Makefile (trusted-dirs.st): Use gen-trusted-dirs.awk. + * elf/gen-trusted-dirs.awk: New file. + * elf/dl-load.c (systems_dirs): Moved into file scope. Initialize + from SYSTEM_DIRS macro. + (system_dirs_len): New variable. Contains lengths of system_dirs + strings. + (fillin_rpath): Rewrite for systems_dirs being a simple string. + Improve string comparisons. Change parameter trusted to be a flag. + Change all callers. + (_dt_init_paths): Improve using new format for system_dirs. - * time/tzset.c (tz_compute): If time to switch to DST is later in - the year switch back in the next year. - Reported by jwitford@hutch.com.au. + * elf/dl-load.c (expand_dynamic_string_token): Don't expand + $ORIGIN for SUID binaries. -1998-10-24 Mark Kettenis + * sysdeps/unix/sysv/linux/arm/Dist: Add sigrestorer.S. - * mach/Versions: Add evc_wait, mach_error, mach_error_string, - mach_error_type, mach_msg_destroy, mig_deallocate_reply_port. - Remove __mach_host_self, __mach_reply_port, __mach_setup_thread, - __mach_port_allocate, __mach_port_allocate_name, - __mach_port_insert_right __mutex_trylock, __mutex_lock, - __mutex_unlock, __swtch, __switch, __task_create, __task_suspend, - __task_set_special_port, __task_terminate, __thread_depress_abort, - __thread_switch, __vm_allocate, __vm_deallocate, __vm_map. These - functions are not used outside libc. +1999-05-02 Andreas Schwab - * sysdeps/mach/hurd/Versions: New file. - [libc, GLIBC_2.0]: Add _cthread_exit_routine and - _cthread_init_routine. These are set by the Hurd cthreads library. - Add __getcwd, __mmap. If we don't add these, the weak definitions in - the dynamic linker will not be replaced by the corresponding shared - library routines once they are loaded. + * sunrpc/Makefile: Generate dependencies for all flavors of + librpcsvc objects. + (rpcgen-cmd): Pass -Y flag here and remove it from the macro + invocations. -1998-10-21 Mark Kettenis +1999-05-02 Andreas Schwab - * sysdeps/mach/hurd/i386/init-first.c: Only define - __libc_enable_secure if PIC is not defined. + * elf/dlopenold.c: Move #if down after includes to get + dependencies right. -1998-10-25 Roland McGrath +1999-05-01 Andreas Schwab - * argp/Versions: Add _argp_unlock_xxx. Lock-savvy functions call this - to recurse into argp. + * sysdeps/generic/bzero.c: Undefine __bzero. -1998-10-25 Ulrich Drepper +1999-05-02 Ulrich Drepper - * include/features.h: Define __USE_POSIS199506 is _POSIX_C_SOURCE is - greater or equal than 199506L. + * sysdeps/unix/sysv/linux/netax25/ax25.h: Update from kernel header. + * sysdeps/unix/sysv/linux/netrom/netrom.h: Likewise. + * sysdeps/unix/sysv/linux/netrose/rose.h: Likewise. + Patch by Craig Small . - * sysdeps/generic/bits/types.h (__fd_set): Define element as fds_bits - only is __USE_XOPEN. Otherwise use __fds_bits. - * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/bits/types.h: Likewise. - * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Likewise. + * sysdeps/posix/getaddrinfo.c (gaih_inet_serv): Change fourth + parameter to struct gaih_servtuple *. Adapt appropriately. + (gaih_inet): Use alloca to allocate room for gaih_inet_serv calls. + This fixes a memory leak. + Reported by Mikolaj J. Habryn . -1998-10-24 H.J. Lu + * sysdeps/unix/sysv/linux/sys/procfs.h: Remove greg_t, gregset_t, + and fpregset_t definition. They are defined in ucontext.h. - * locale/programs/charmap.c (parse_charmap): Accept tok_string - for . +1999-04-14 Scott Bambrough -1998-10-25 H.J. Lu + * sysdeps/unix/sysv/linux/arm/net/ethernet.h: struct ether_addr + and struct ether_header must be packed on the ARM. The default + alignment constraints add padding to the end of the structures. - * locale/programs/ld-ctype.c (ctype_finish): Also check - . +1999-04-14 Scott Bambrough -1998-10-25 Ulrich Drepper + * inet/arpa/tftp.h: struct tftphdr must be packed on the ARM. The + default alignment constraints add padding to the end of the + structure and between members. - * signal/signal.h: Include bits/sigthread.h only if __USE_POSIX199506. +1999-05-02 Ulrich Drepper - * sysdeps/unix/sysv/linux/bits/types.h: Include pthreadtypes.h only - if __USE_POSIX199506 or __USE_UNIX98. + * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use + _dl_cache_libcmp instead of strcmp. -1998-10-24 22:34 -0400 Zack Weinberg + * sysdeps/generic/glob.c (glob_in_dir): It's no error if opendir + fails on a file. + Reported by Sergei Ivanov [PR libc/1032]. - * string/bits/string2.h: Inline strdup+friends only if - __USE_MISC || __USE_GNU (prevents namespace pollution). +1998-03-30 Joel Klecker -1998-10-24 H.J. Lu + * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile + (sysdep-others,install-bin): Add lddlibc4. - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (LOCK_SH, - LOCK_EX, LOCK_NB, LOCK_UN): Protect with __USE_BSD. - * sysdeps/unix/sysv/linux/i386/bits/fcntl.h (LOCK_SH, LOCK_EX, - LOCK_NB, LOCK_UN): Likewise. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (LOCK_SH, LOCK_EX, - LOCK_NB, LOCK_UN): Likewise. - * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (LOCK_SH, LOCK_EX, - LOCK_NB, LOCK_UN): Likewise. - * sysdeps/unix/sysv/linux/bits/fcntl.h (LOCK_SH, LOCK_EX, - LOCK_NB, LOCK_UN): Likewise. +1999-05-02 H.J. Lu -1998-10-24 H.J. Lu + * timezone/zic.c (dolink): Remove the symlink destination first. - * libio/ioseekoff.c (_IO_seekoff): Check the valid dir value. + * catgets/open_catalog.c (__open_catalog): Set catalog->status + to "nonexisting" if failed to open the file. - * libio/rewind.c (rewind): Clear the error. +1999-05-01 Ulrich Drepper -1998-10-24 H.J. Lu + * string/bits/string2.h: Only use __builtin_memset for egcs 1.1 and + gcc3. - * grp/grp.h (getgrent_r, getgrgid_r, getgrnam_r): Add "__" to - "buffer". + * sysdeps/i386/i486/bits/string.h: Don't use and define __memset_gg. + Prevent warnings from multiplication with 0x01010101 by another cast. -1998-10-24 H.J. Lu +1999-04-30 Andreas Schwab - * sysdeps/unix/sysv/linux/alpha/bits/time.h (timeval): Protect - with __need_timeval. - * sysdeps/unix/sysv/linux/mips/bits/time.h (timeval): Likewise. - * sysdeps/unix/sysv/linux/bits/time.h (timeval): Likewise. + * string/bits/string2.h (memset): Revert to previous version if + unaligned writes are not available. -1998-10-24 H.J. Lu +1999-04-30 Ulrich Drepper - * signal/signal.h (timespec, siginfo_t, sigwaitinfo, sigtimedwait, - sigqueue): Protect with __USE_POSIX199309. + * sysdeps/i386/i486/bits/string.h (__memset_gc): Help generating + better code in presence of the asm. -1998-10-24 H.J. Lu +1999-04-30 Andreas Schwab - * time/time.h (timespec): Protect with __USE_POSIX199309 instead of - __USE_POSIX. + * stdlib/fmtmsg.c (keywords): Increase array size for faster + indexing. -1998-10-24 H.J. Lu + * locale/localeinfo.h (_nl_category_names): Increase array element + size for faster indexing. + * locale/setlocale.c (_nl_category_names): Adjusted. - * libio/fileops.c (_IO_new_file_seekoff): Always resync with - the kernel file offset. - * libio/oldfileops.c (_IO_old_file_seekoff): Likewise. +1999-04-30 Andreas Schwab -1998-10-24 H.J. Lu + * iconv/gconv_conf.c (add_alias): Remove wrong cast. - * time/tzfile.c (__tzfile_default): Set num_types to 2. +1999-05-01 Andreas Schwab -1998-10-23 Andreas Jaeger + * sysdeps/m68k/stackinfo.h: New file. - * rt/aio.h: Move __aio_init to... - * include/aio.h: ...here. +1999-04-30 Ulrich Drepper -1998-10-24 Andreas Jaeger + * string/tester.c (test_strchrnul): New function. + (test_memset): Test one more special case. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove duplicate - definition of O_LARGEFILE. + * sysdeps/i386/strchrnul.S: Fix bugs which lead to wrong results in + 25% of all cases. -1998-10-24 Andreas Jaeger + * sysdeps/i386/i486/bits/string.h: Replace __uintXX_t types with + base types. - * sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Use path - as first argument to statfs. + * string/bits/string2.h: Fix bugs I introduced in last change. -1998-10-24 Andreas Jaeger + * sysdeps/i386/i486/bits/string.h (memcmp): Don't introduce partial + register stall. + Extend memset optimization. + Correct i686 version of memchr. - * sysdeps/generic/setenv.c (setenv): Add braces around ambiguous else. +1999-04-30 Roland McGrath -1998-10-24 Andreas Jaeger + * sysdeps/i386/bzero.c: Add #undef __bzero. - * malloc/mtrace.c: Include for strlen. + * hurd/hurdinit.c (_hurd_new_proc_init): Don't do initial SIGTRAP if + EXEC_SIGTRAP was set in the incoming exec flags--that indicates the + exec server simulated a SIGTRAP before we even started up, so gdb is + already happy. -1998-10-24 Roland McGrath +1999-04-30 Ulrich Drepper - * sysdeps/mach/hurd/bits/environments.h: New file. + * nss/digits_dots.c: Always initialize not_ok. - * sysdeps/mach/hurd/dl-sysdep.c (__getcwd): New weak function. +1999-04-30 09:02 -0400 Zack Weinberg - * mach/Versions, hurd/Versions: Add numerous symbols. - Remove libmachuser and libhurduser sections, punt - versioning for those libraries for now. + * string/bits/string2.h (memset): Avoid arithmetic overflow at + compile time, which produces obnoxious warnings. If GCCv2 is + in use, map __bzero to __builtin_memset to enable that + optimization. - * misc/Versions: Add reboot here; it exists on all platforms. - * sysdeps/unix/sysv/linux/Versions: Remove reboot here. +1999-04-29 Ulrich Drepper -1998-10-23 Ulrich Drepper + * string/bits/string2.h: Add more memset optimizations. - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (O_NOFOLLOW): New - macro. - * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. - * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (O_LARGEFILE, - O_NOFOLLOW, O_DIRECT): New macros. - (O_DIRECTORY): Correct definition according to official 2.1.126. - * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (O_DIRECTORY, - O_NOFOLLOW): New macros. + * resolv/inet_addr.c (inet_aton): Optimize switch statement away. -1998-10-24 Roland McGrath + * resolv/inet_pton.c (inet_pton4): Little optimizations. + (inet_pton6): Likewise. - * include/ldsodefs.h: Test HAVE_ELF instead of __ELF__. + * nss/getXXbyYY_r.c: Include assert.h. + * nss/getXXbyYY.c: Likewise. - * sysdeps/mach/hurd/opendir.c (__opendir): Return ENOENT for "". - (__opendir): Add trailing slash to name for open, for ENOTDIR check. +1999-04-29 Andreas Jaeger -1998-10-23 Ulrich Drepper + * termios/tcgetsid.c (tcgetsid): Rename variable to + tiocgsid_does_not_work. - * sysdeps/unix/sysv/linux/i386/Dist: Add setresuid.c, setresgid.c, - setfsuid.c, and setfsgid.c. - * sysdeps/unix/sysv/linux/arm/Dist: Likewise. - * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. +1999-04-29 Ulrich Drepper - * version.h (VERSION): Bump to 2.0.99. + * inet/getnameinfo.c (nrl_domainname): Fix last patch. - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove duplicate - ustat definition. +1999-04-28 Andreas Jaeger - * sysdeps/unix/sysv/linux/i386/Dist: Remove s_pread64.c and - s_pwrite64.c. + * nss/digits_dots.c: Use inet_aton to parse IPv4 numbers. + This allows e.g. gethostbyname to accept "10.1234". + Reported by Alexander V. Lukyanov [PR libc/1096]. - * posix/fnmath.h: Don't redefine __P when used in glibc. - * posix/glob.h: Likewise. + * nss/test-netdb.c (test_hosts): Add test for gethostbyname and + non quad IPv4 numbers. - * inet/rcmd.c (__ivaliduser2): Fix memory leak. - Patch by Dick Streefland . +1999-04-29 Andreas Jaeger - * stdio-common/tst-ungetc.c: Add more test cases. + * resolv/res_hconf.c (_res_hconf_init): Remove unused variable end. - * sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h. - * sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number - definitions to ... - * sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here. New file. - * sysdeps/unix/sysv/linux/fpathconf.c: New file. - * sysdeps/unix/sysv/linux/pathconf.c: New file. - * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here. - * sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise. +1999-04-28 Ulrich Drepper -1998-10-20 Philip Blundell + * argp/argp-ba.c (argp_program_bug_address): Don't initialize with 0. + * argp/argp-parse.c (_argp_hang): Likewise. + * argp/argp-pv.c (argp_program_version): Likewise. + * argp/argp-pvh.c (argp_program_version_hook): Likewise. + * inet/ether_hton.c (ether_hton, startp): Likewise. + * inet/ether_ntoh.c (ether_ntoh, startp): Likewise. + * inet/getnetgrent_r.c (setup, startp): Likewise. + * intl/loadmsgcat.c (_nl_msg_cat_cntr): Likewise. + * intl/localealias.c (string_space, string_space_act, string_space_max, + nmap, maxmap): Likewise. + * libio/iopopen.c (proc_file_chain): Likewise. + * libio/oldiopopen.c (old_proc_file_chain): Likewise. + * locale/lc-collate.c (__collate_table, __collate_extra, + __collate_element_hash, __collate_element_strings, + __collate_element_values): Likewise. + * malloc/mcheck.c (mcheck_used): Likewise. + * malloc/mtrace.c (added_atexit_handler): Likewise. + * malloc/set-freeres.c (already_called): Likewise. + * misc/getpass.c (getpass) [buf, bufsize]: Likewise. + * misc/syslog.c (LogStat, LogTag): Likewise. + * nss/XXX-lookup.c (DATABASE_NAME_SYMBOL): Likewise. + * nss/getXXbyYY_r.c (startp): Likewise. + * posix/getopt.c (optarg, __getopt_initialized): Likewise. + * posix/regex.c (init_syntax_once) [done]: Likewise. + (debug): Likewise. + * string/strfry.c (init): Likewise. + * sunrpc/svc_run.c (svc_top): Likewise. + * posix/euidaccess.c (have_ids): Likewise. + * sysdeps/unix/sysv/linux/poll.c (must_emulate): Likewise. + * sysdeps/unix/sysv/linux/ttyname.c (__ttyname, namelen): Likewise. + * time/getdate.c (getdate_err): Likewise. + * time/tzfile.c (transitions, type_idxs, types, zone_names, leaps): + Likewise. + * time/tzset.c (old_tz, is_initialized): Likewise. - * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include - to define struct pt_regs. - * sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother - including here. + * inet/getnameinfo.c (nrl_domainname): Rewrite to allow initialization + of static data with zero. + * signal/allocrtsig.c (init): Likewise. - * sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to - C_SYMBOL_NAME macro. + * string/Makefile (routines): Add strchrnul. + * string/Versions [GLIBC_2.1.1]: Add strchrnul. + * string/string.c: Add strchrnul prototype. + * include/string.h: Add __strchrnul prototype. + * sysdeps/generic/strchrnul.c: New file. + * sysdeps/i386/strchrnul.S: New file. + * sysdeps/i386/bits/string.c: Add strchrnul optimization. + * sysdeps/i386/i486/bits/string.c: Likewise. + * argp/argp-help.c (argp_args_usage): Use __strchrnul. + * inet/ether_line.c (ether_line): Likewise. + * nscd/nscd_conf.c (nscd_parse_file): Likewise. + * nss/nsswitch.c (nss_parse_file): Likewise. + * posix/execvp.c (execvp): Likewise. + * posix/fnmatch.c (internal_fnmatch): Likewise. + * resolv/res_hconf.c (_res_hconv_init): Likewise. + * resolv/res_init.c (res_init): Likewise. + * stdlib/fmtmsg.c (init): Likewise. + * stdlib/getsubopt.c (getsubopt): Likewise. -1998-10-23 Andreas Jaeger + * catgets/catgets.c (catopen): Only allocate one memory block. + (catclose): Only one free call necessary. - * sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at - end of enumerator list. - * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise. - * posix/wordexp.h: Likewise. + * catgets/open_catalog.c (__open_catalog): Simplify handling of + file descriptor. - * db/db.h: Use __PMT instead of __P in typedefs. - * db/mpool.h: Likewise. - * sysdeps/generic/bits/siginfo.h: Likewise. - * nis/rpcsvc/ypclnt.h: Likewise. + * ctype/ctype-extn.c: Make __toascii_l and __isascii_l alias instead + of real functions. Simplify _tolower and _toupper. -1998-10-23 Ulrich Drepper + * grp/initgroups.c (compat_call): Remove unnecessary use of pointer + variable. - * libio/genops.c (_IO_seekmark): When switching to backup buffer - make sure all characters from the read buffer are read after - switching back to it. + * iconv/gconv.h (struct gconv_info): Change data element from pointer + to array of size 0. + * iconv/gconv_open.c (__gconv_open): Allocate structures accordingly. + * iconv/gconv_close.c (__gconv_close): Don't free data. -1998-10-22 Ulrich Drepper + * iconv/gconv_conf.c (add_alias): Avoid searching in tree twice to + insert new alias. - * configure.in: Add support for Cygnus GNUPro compilers. + * iconv/gconv_db.c (add_derivation): More efficient copying. Check + for error while inserting in tree. -1998-10-22 Andreas Jaeger + * include/time.h: Pretty print. - * stdio/stdio.h: Use __PMT instead of __P in typedefs. + * inet/ruserpass.c: Rewrite use of toktab to avoid string pointers + in table and lots of relocations. + * posix/regex.c (regerror): Rewrite use of re_error_msgid to avoid + string pointers in table and lots of relocations. - * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use __PMT instead - of __P for sa_restorer. - * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. - * sysdeps/unix/sysv/linux/kernel_sigaction.h (struct - kernel_sigaction, old_kernel_sigaction): Likewise. + * intl/finddomain.c: Remove definition of strchr macro. -1998-10-22 Ulrich Drepper + * io/ftw.c (nftw_arr, ftw_arr): Make const. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add __syscall_pread - and __syscall_pwrite aliases. + * locale/loadlocale.c (_nl_load_locale): Optimize string copying. - * sunrpc/rpc/auth.h (AUTH_DH): New macro. Alias for AUTH_DES. + * locale/localeinfo.h (_nl_category_names): Change into an array with + fixed width char string elements. + * locale/setlocale.c (_nl_category_names): Likewise. + (_nl_current): Make global. + * locale/nl_langinfo.c (nldata): Removed. Use _nl_current now. - * sysdeps/unix/sysv/linux/i386/sysdep.h: Drastically simplify and - improve INLINE_SYSCALL using macro assembler magic. + * malloc/Makefile (distribute): Add stackinfo.h. + * sysdeps/generic/stackinfo.h: New file. + * sysdeps/i386/stackinfo.h: New file. + * posix/execl.c: Use stackinfo.h in optimizing alloca use. + * posix/execle.c: Likewise. + * posix/execlp.c: Likewise. -1998-10-22 H.J. Lu + * nis/nis_table.c (__create_ib_request): Always use realloc. - * sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Add - sanity check for n. - * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Likewise. + * posix/execvp.c (execute): Rename to script_execute and keep only + code to execute using shell. + (execvp): Call execv directly and only fall back on script_execute. - * sysdeps/posix/fpathconf.c (__fpathconf): Set errno to - EINVAL if errno == ENODEV. Tested by VSX-PCT. + * resolv/inet_net_pton.c (inet_net_pton_ipv4): Remove digits define + and always use xdigits instead. - * sysdeps/posix/isatty.c (__isatty): Don't reset errno. Tested - by VSX-PCT. + * resolv/res_init.c (res_init): Use rawmemchr instead of strchr + where appropriate. - * posix/execvp.c (execvp): Check "". Tested by VSX-PCT. + * stdlib/fpioconst.h (__tens): New declaration. + (struct mp_power): Remove array, add arrayoff element. + * stdlib/fpioconst.c: Replace definitions of _ten_p* arrays by one + __tens array and add in _fpioconst_pow10 offsets into __tens. + * stdio-common/printf_fp.c: Rewrite to use new __tens array. + * stdlib/strtod.c: Likewise. -1998-10-22 Philip Blundell + * stdlib/a64l.c (a64l_table): Avoid unnecessary elements. - * sysdeps/unix/arm/sysdep.h: Wrap assembler macros in #ifdef - __ASSEMBLER__. + * stdlib/exit.c: Rewrite to use __exit_funcs being as sign for end + of the list. + * stdlib/atexit.c (__exit_funcs): Don't initialize. -1998-10-21 Ulrich Drepper + * stdlib/fmtmsg.c (keywords): Make name element fixed width array. - * sysdeps/unix/sysv/linux/i386/sysdep.h: Remove EXTRAVARS_* macros - and adjust formats. + * sunrpc/clnt_perr.c: Rewrite clnt_sperrno and auth_errmsg to use + a single and an array with offsets. -1998-10-21 14:38 Ulrich Drepper + * sunrpc/des_soft.c (partab): Make it const. - * sysdeps/unix/sysdep.h (INLINE_SYSCALL): New macro. Simply call - __syscall_* function. - * sysdeps/unix/sysv/linux/aio_sigqueue.c: Use INLINE_SYSCALL instead - of calling __syscall_* function. - * sysdeps/unix/sysv/linux/fxstat.c: Likewise. - * sysdeps/unix/sysv/linux/fxstat64.c: Likewise. - * sysdeps/unix/sysv/linux/getcwd.c: Likewise. - * sysdeps/unix/sysv/linux/getdents.c: Likewise. - * sysdeps/unix/sysv/linux/getpriority.c: Likewise. - * sysdeps/unix/sysv/linux/getresgid.c: Likewise. - * sysdeps/unix/sysv/linux/getresuid.c: Likewise. - * sysdeps/unix/sysv/linux/lxstat.c: Likewise. - * sysdeps/unix/sysv/linux/lxstat64.c: Likewise. - * sysdeps/unix/sysv/linux/poll.c: Likewise. - * sysdeps/unix/sysv/linux/pread.c: Likewise. - * sysdeps/unix/sysv/linux/pread64.c: Likewise. - * sysdeps/unix/sysv/linux/ptrace.c: Likewise. - * sysdeps/unix/sysv/linux/pwrite.c: Likewise. - * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. - * sysdeps/unix/sysv/linux/readv.c: Likewise. - * sysdeps/unix/sysv/linux/reboot.c: Likewise. - * sysdeps/unix/sysv/linux/sigaction.c: Likewise. - * sysdeps/unix/sysv/linux/siglist.h: Likewise. - * sysdeps/unix/sysv/linux/sigpending.c: Likewise. - * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. - * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. - * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. - * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. - * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. - * sysdeps/unix/sysv/linux/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sysctl.c: Likewise. - * sysdeps/unix/sysv/linux/ustat.c: Likewise. - * sysdeps/unix/sysv/linux/writev.c: Likewise. - * sysdeps/unix/sysv/linux/xmknod.c: Likewise. - * sysdeps/unix/sysv/linux/xstat.c: Likewise. - * sysdeps/unix/sysv/linux/xstat64.c: Likewise. - * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. - * sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise. - * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setgid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/setuid.c: Likewise. + * sunrpc/key_call.c (trytimeout, tottimeout): Make const. + (__key_encryptsession_pk_LOCAL): Don't initialize with 0. + (__key_decryptsession_pk_LOCAL): Likewise. + (__key_gendes_LOCAL): Likewise. + (MESSENGER): Mark const. + (key_call_private_main): Don't initialize with 0. + (use_keyenvoy): Don't initialize with 0. + (key_call): Rewrite to reverse logic of use_doors variable. - * sysdeps/unix/sysv/linux/i386/sysdep.h: Define INLINE_SYSCALL using - inline assembler. - * sysdeps/unix/sysv/linux/i386/syscalls.list: Remove various - __syscall_* definitions. + * sunrpc/netname.c (OPSYS): Define as array, not pointer. + (startp): Don't initialize with zero. - * sysdeps/unix/sysv/linux/syscalls.list: Move various __syscall_* - definitions to... - * sysdeps/unix/sysv/linux/alpha/syscalls.list: ...here... - * sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here. + * sunrpc/openchild.c (_openchild): Make first argument const. - * sysdeps/unix/sysv/linux/Makefile [subdir=signal] (sysdep_routines): - Move definition to... - * sysdeps/unix/sysv/linux/alpha/Makefile: ...here... - * sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here... - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here. + * sunrpc/pmap_rmt.c (timeout): Mark const. + * sunrpc/xcrypt.c (hex): Likewise. - * sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc] - (sysdep_routines): Remove s_pread64 and s_pwrite64. + * sysdeps/unix/sysv/linux/getcwd.c: Rewrite to allow omitting + initialization of global variables. + * sysdeps/unix/sysv/linux/getpt.c: Likewise. + * sysdeps/unix/sysv/linux/if_index.c: Likewise. + * termios/tcgetsid.c: Likewise. - * sysdeps/unix/sysv/linux/i386/pread.c: New file. - * sysdeps/unix/sysv/linux/i386/pread64.c: New file. - * sysdeps/unix/sysv/linux/i386/pwrite.c: New file. - * sysdeps/unix/sysv/linux/i386/pwrite64.c: New file. - * sysdeps/unix/sysv/linux/i386/s_pread64.S: Removed. - * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Removed. + * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (x86_cap_flags): Change + fxsr to osfxsr. -1998-10-21 Andreas Jaeger + * time/tzfile.c (__tzfile_read): Rewrite to allocate only one memory + block. Add function to free memory if wanted. + * time/tzset.c (tzset_internal): Pass extra argument to __tzfile_read. - * sysdeps/unix/sysv/linux/siglist.h: Fix some typos in these files - and bring them in synch. - * sysdeps/unix/siglist.c: Likewise. - Reported by Vladimir Michl [PR libc/832]. + * wcsmbs/wcsmbsload.c (to_wc, to_mb): Correct initializers. -1998-10-20 Andreas Schwab + * wcsmbs/wmemset.c: Little code optimization. - * sysdeps/unix/sysv/linux/i386/setresuid.c: Allow -1 as arguments. - * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise. +1999-04-23 Paul Eggert - * sysdeps/unix/sysv/linux/i386/setreuid.c: New file. - * sysdeps/unix/sysv/linux/i386/setregid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setreuid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setregid.c: New file. - * sysdeps/unix/sysv/linux/arm/setreuid.c: New file. - * sysdeps/unix/sysv/linux/arm/setregid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: New file. - * sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_setreuid and - s_setregid. - * sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. + * stdlib/strtoull.c: Surround strong_alias and weak_alias with + ifdef _LIBC. -1998-10-20 Andreas Schwab +1999-04-28 Roland McGrath - * sunrpc/rpc_main.c (close_output, close_input): New functions. - (c_output, h_output, s_output, l_output, t_output, svc_output, - clnt_output, mkfile_output): Call them at the end. + * sysdeps/mach/hurd/getdents.c (__getdirentries): Remove + implementation and just always fail with ENOSYS. This entry point is + obsolete. Add link warning to that effect. -1998-10-19 Andreas Schwab +1999-04-27 Roland McGrath - * db/Makefile (LDFLAGS-db1.so): New variable, to avoid duplicating - link command. + * hurd/get-host.c: Include . -1998-10-19 Andreas Schwab +1999-04-28 Ulrich Drepper - * sysdeps/unix/sysv/linux/m68k/setfsuid.c: Add real contents. - * sysdeps/unix/sysv/linux/m68k/syscalls.list: Add s_setfs[ug]id. + * malloc/malloc.c (rEALLOc): Only free memory for size 0 if oldmem + is != NULL. -1998-10-20 Ulrich Drepper +1999-04-28 Andreas Jaeger - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_pread64 and - s_pwrite64. - * sysdeps/unix/sysv/linux/powerpc/pread.c: New file. - * sysdeps/unix/sysv/linux/powerpc/pread64.c: New file. - * sysdeps/unix/sysv/linux/powerpc/pwrite.c: New file. - * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: New file. - Patch by Geoffrey KEATING . + * malloc/malloc.c (REALLOC_ZERO_BYTES_FREES): Define it to follow + ISO C9x and Unix98. -1998-10-18 Zack Weinberg +1999-04-28 Ulrich Drepper - * sysdeps/unix/opendir.c: Check at runtime for kernel support for - O_DIRECTORY. + * libio/iofopncook.c (_IO_cookie_seek): Correct return value. + Patch by Peter Miller . -1998-10-20 H.J. Lu +1999-04-27 Thorsten Kukuk - * sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Fix - argument types. + * sunrpc/pmap_clnt.c: Add own get_myaddress function, which + prefers loopback device. -1998-10-19 Ulrich Drepper +1999-04-28 Ulrich Drepper - * math/tgmath.h: Make nested function calls work. + * posix/fnmatch.c (internal_fnmatch): Finish incomplete + no_leading_period change. - * include/ldsodefs.h: Fix typo. + * posix/testfnm.c: More test cases. - * posix/Makefile (tests): Add tst-preadwrite. - * posix/tst-preadwrite.c: New file. +1999-04-27 Ulrich Drepper - * sysdeps/unix/opendir.c (__opendir): Add back fstat call to make - sure that descriptor is in any case for a directory. + * include/dirent.h: Remove __getdirentries declaration, add __getdents + and __getdents64. + * sysdeps/unix/readdir.c: Use __getdents, not __getdirentries. + * sysdeps/unix/readdir_r.c: Likewise. + * sysdeps/unix/sysv/linux/readdir64.c: Likewise. + * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise. + * sysdeps/unix/sysv/linux/getdents.c: Define __getdents, not + __getdirentries. Remove fourth argument. + * sysdeps/unix/sysv/linux/getdirentries.c: New file. + * sysdeps/unix/sysv/linux/getdirentries64.c: New file. + * sysdeps/unix/sysv/linux/Makefile [subdir=dirent] (sysdep_routines): + Add getdirentries and getdirentries64. + * sysdeps/unix/sysv/linux/Dist: Add getdirentries and getdirentries64. -1998-10-19 18:59 -0400 Zack Weinberg + * posix/fnmatch.c (internal_fnmatch): Correctly reset string + pointer in case of an invalid [[: expression. - * math/tgmath.h (__TGMATH_UNARY_REAL_IMAG): Fix typo: val -> Val. - (atan2): Takes two arguments. + * posix/testfnm.c: Add more test cases. -1998-10-19 Ulrich Drepper +1999-04-27 Roland McGrath - * include/ldsodefs.h: New file. + * hurd/hurdexec.c (_hurd_exec): If SIGKILL present in _hurdsig_traced + set, pass EXEC_SIGTRAP flag in exec RPC. - * iconv/gconv.c: Include ldsodefs.h, not elf/ldsodefs.h. - Remove change to avoid using _CALL_DL_FCT. - * iconv/gconv_db.c: Likewise. - * iconv/gconv_dl.c: Likewise. - * iconv/skeleton.c: Likewise, here for DL_CALL_FCT. - * malloc/mtrace.c: Include ldsodefs.h, not elf/ldsodefs.h. - * nss/nsswitch.c: Likewise. - * nss/nsswitch.h: Likewise. +1999-04-26 Ulrich Drepper -1998-10-19 Philip Blundell + * posix/fnmatch.c (internal_fnmatch): Renamed from fnmatch. Take + extra parameter. Fix several more bugs involving wildcard and + ranges. + (fnmatch): New function. Call internal_fnmatch. - * sunrpc/Makefile (otherlibs): If static NSS is in use, set to the - required libraries. - * login/Makefile (otherlibs): Likewise. - * nscd/Makefile (otherlibs): Likewise. - * Makeconfig (link-libc) [! build_shared]: Add $(otherlibs). + * posix/testfnm.c: More test cases. - * debug/Makefile (install-bin): Only build catchsegv if using ELF. +1999-04-03 Andreas Jaeger - * inet/Makefile: Add -DSTATIC_NSS to CFLAGS. + * manual/install.texi (Configuring and compiling): Explain that + files are changed in the source directory. + Closes PR libc/981. + (Configuring and compiling): Explain situation with PARALLELMFLAGS + in the source directory. -1998-10-19 Philip Blundell +1999-04-24 Andreas Schwab - * sysdeps/unix/sysv/linux/arm/syscalls.list: Added setfsgid - and setfsuid. + * locale/programs/ld-ctype.c: Spelling fixes. + (ctype_finish): Fix argument of error message format. + * locale/programs/ld-messages.c: Spelling fixes. + * locale/programs/ld-monetary.c: Spelling fixes. + * locale/programs/ld-time.c (time_finish): Make sure that name and + format of era_entries are adjacent. + (time_output): Reduce the size of the io vector. -1998-10-19 Andreas Jaeger +1999-04-25 Andreas Schwab - * nscd/connections.c: Fix typos in comments and strings. + * manual/filesys.texi (Attribute Meanings): Move a misplaced + paragraph. - * nscd/nscd.conf: Update according to recent changes to nscd. +1999-04-23 Andreas Schwab - * nscd/cache.c (prune_cache): Remove wrong comment. + * locale/programs/ld-collate.c (collate_output): Convert + undefined_offset to an array index. Fix computation of other + endian extra table. -1998-10-19 13:24 Ulrich Drepper +1999-04-26 Roland McGrath - * locale/programs/ld-collate.c (collate_startup): Clear bit for this - category in copy_posix. - (collate_finish): Don't warn about UNDEFINED not being defined. - * locale/programs/ld-ctype.c (ctype_startup): Clear bit for this - category in copy_posix. - * locale/programs/ld-messages.c (messages_startup): Likewise. - * locale/programs/ld-monetary.c (monetary_startup): Likewise. - * locale/programs/ld-numeric.c (numeric_startup): Likewise. - * locale/programs/ld-time.c (time_startup): Likewise. - * locale/programs/localedef.c: Move copy_def_list_t definition into - locales.h. Define copy_posix variable. - (main): Before processing copy list add ©_posix to copy_list. - * locale/programs/locales.h: Add definition of copy_def_list_t. - * locale/programs/locfile.c: Clear bit for appropriate category in - copy_posix.mask for copy instruction. + * hurd/get-host.c (_hurd_get_host_config): If ENOENT opening file, + return success with empty value. -1998-10-19 Ulrich Drepper +1999-04-26 Ulrich Drepper - * sysdeps/unix/sysv/linux/i386/setresgid.c: Remove #include of - non-existing file with generic implementation. - * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise. + * posix/fnmatch.c: Include string.h also for glibc. + (fnmatch, case '?'): Optimize if cascades a bit. + (fnmatch, case '*'): Correct handling if FNM_PATHNAME is set. -1998-10-19 Philip Blundell + * posix/testfnm.c: Add test cases for * with FNM_PATHNAME errors. - * iconv/gconv_db.c: Include ELF header only if STATIC_GCONV is not - defined. Avoid using _CALL_DL_FCT if it is not defined. - * iconv/gconv.c: Likewise. +1999-04-24 Ulrich Drepper -1998-10-19 Ulrich Drepper + * iconv/gconv_builtin.h: Add definitions for UTF16 builtins. + * iconv/gconv_int.h: Declare UTF16 functions. + * iconv/gconv_simple.c: Add UTF16 conversion functions. - * nscd/connections.c (dbs): Define defualt values for timeouts and - set enabled to 0 by default. - (CACHE_PRUNE_INTERVAL): New constant. Use it instead of magical 15 in - nscd_run. +1999-04-20 Andreas Jaeger - * locale/C-ctype.c (_nl_C_LC_CTYPE_class): Clear ISCNTRL bit for - character >= 0x80. - (_nl_C_LC_CTYPE_class32): Likewise. - Reported by HJ Lu. + * posix/wordexp.c (parse_param): Fix type of offset to allow it to + be used correctly as parameter for parse_dollars/parse_tilde. -1998-10-19 Roland McGrath +1999-04-19 Andreas Schwab - * hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add - _HURD_THREADVAR_DL_ERROR. + * manual/conf.texi (Utility Limits): Remove duplicate description + of BC_DIM_MAX. - * hurd/Makefile (user-interfaces): Add login, password. +1999-04-19 Ulrich Drepper - * sysdeps/mach/hurd/Makefile (+cflags): Append -Wno-parentheses. + * wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Correctly initialize + outbufend for dst==NULL. -1998-08-06 Mark Kettenis +1999-04-18 Ulrich Drepper - [submitted 1998-08-06] - * mach/Machrules: Create target directory and force re-evaluation - of Makefile to prevent `make' from optimizing away most of the - implicit rules and `vpath' directives. + * wcsmbs/mbsrtowcs.c (__mbsrtowcs): Correctly initialize outbufend + for dst==NULL. + Fixes PR libc/1084. -1998-10-19 Roland McGrath + * socket/sys/socket.h: Define SHUT_RD, SHUT_WR, and SHUT_RDWR. + Fixes PR libc/1083. - * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): If _hurd_msgport_thread - is null, short-circuit to __mach_msg. +1999-04-18 Thorsten Kukuk - * sysdeps/mach/hurd/i386/init-first.c (posixland_init): New function, - broken out of init1. - (init1) [PIC]: Call it. - (__libc_init_first) [! PIC]: Call it. + * sunrpc/Makefile: Remove special handling of bootparam.x, + add rpcsvc/bootparam.h to headers. + * sunrpc/rpcsvc/bootparam.h: New, for backward compatibility. + * sunrpc/rpcsvc/bootparam.x: Renamed to... + * sunrpc/rpcsvc/bootparam_prot.x: ...this. - * sysdeps/mach/hurd/i386/init-first.c (init1): Don't call - __libc_init_secure. Instead set __libc_enable_secure here from - the exec flags. - (__libc_enable_secure): New variable it. - * sysdeps/mach/hurd/enbl-secure.c: New file, empty placeholder module. +1999-04-18 Ulrich Drepper -1998-10-19 Roland McGrath + * sysdeps/unix/bsd/poll.c (__poll): Add more compatiblity code to + detect and handle invalid descriptors. - * nscd/nscd-client.h: New file, broken out of "nscd.h". - * nscd/nscd.h: Move defns needed by clients to "nscd-client.h", - and #include that. - * nscd/Makefile (distribute): Add nscd-client.h. - * nscd/nscd_getgr_r.c, nscd/nscd_gethst_r.c, nscd/nscd_getpw_r.c: - Include "nscd-client.h" instead of "nscd.h" +1999-04-17 Thorsten Kukuk -1998-10-18 Ulrich Drepper + * timezone/zic.c (dolink): Append complete path not only filename + to ../ list. - * sysdeps/posix/getcwd.c (__getcwd): Don't stop processing - directory entries when a lstat call fails. - Patch by Colin Plumb . +1999-04-17 Andreas Jaeger - * resolv/nss_dns/dns-host.c: Add missing errnop parameter to the - NSS functions. - * resolv/nss_dns/dns-network.c: Likewise. + * iconvdata/ibm874.c (TABLES, CHARSET_NAME): Follow name change. - * grp/Makefile: Don't search for linuxthreads in add-ons, use - have-thread-library to determine whether threads are available. - * pwd/Makefile: Remove wrong comment. +1999-04-17 Ulrich Drepper - * inet/Makefile: Define CFLAGS-gethstbyad_r.c, CFLAGS-gethstbynm_r.c, - and CFLAGS-gethstbynm2_r.c to -DUSE_NSCD=1. + * iconvdata/gconv-modules: Rename CP874 to IBM874. + * iconvdata/Makefile: Likewise. + * iconvdata/cp874.h: Removed. + * iconvdata/cp874.c: Renamed to... + * iconvdata/ibm874.c: ...this. - * locale/C-messages.c: Define default strings for YESTR and NOSTR. +1999-04-16 Ulrich Drepper - * nss/Versions: Add __nss_hosts_lookup. + * sysdeps/unix/sysv/linux/bits/types.h: Correct + signed/unsigned-ness of blkcnt and fsblkcnt. + * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. - * nss/getXXbyYY.c: Remove unneeded assignment. + * sysdeps/unix/sysv/linux/bits/socket.h: Add SOL_PACKET, SOL_ATM, + SOL_AAL, and SOL_IRDA. - * nss/getXXbyYY_r.c: Include nscd/nscd_proto.h only if needed. +1999-04-15 Andreas Schwab - Almost complete rewrite of the NSCD to make it smaller, faster, - add more functionnality and make it easier to extend. - * nscd/Makfile (routines): Add nscd_gethst_r. - (nscd-modules): Add hstcache, gethstbyad_r, gethstbynm2_r, and cache. - * nscd/cache.c: New file. - * nscd/gethstbyad_r.c: New file. - * nscd/gethstbynm2_r.c: New file. - * nscd/hstcache.c: New file. - * nscd/nscd_gethst_r.c: New file. - * nscd/connections.c: Rewritten. Don't start new thread for every - new connection. Use a fixed set of threads which handle all - connections and also the cache cleanup. - * nscd/grpcache.c: Rewritten to use generic cache handling functions - in cache.c. - * nscd/nscd.c: Recognize new parameter nthreads. Adjust initialization - for rewrite. Remove handle_requests function. - * nscd/nscd.h (NSCD_VERSION): Bump to 2. - Define new data structure for the new unified cache and the host - database entries. - * nscd/nscd_conf.c: Rewrite parsing partly to allow adding of more - databases easily. Recognize check-files and threads definitions. - * nscd/nscd.conf: Add definition of enable-cache and check-files to - passwd and group definitions. Add new set of definitions for hosts. - * nscd/nscd_getgr_r.c: Rewrite for new protocol. - * nscd/nscd_getpw_r.c: Likewise. - * nscd/nscd_proto.h: Add prototype for host database functions. - * nscd/nscd_stat.c: Rewrite to simplify printing of information - for many databases. - * nscd/dbg_log.c: Remove unnecessary variable initializations. - Global variable debug_flag is renamed to dbg_level. - * nscd/dbg_log.h: Declare set_logfile. + * sysdeps/unix/sysv/linux/fstatvfs.c: Set f_frsize to zero. Don't + include "linux_fsinfo.h". + Based on a patch by H.J. Lu . -1998-10-16 Ulrich Drepper +1999-04-16 Thorsten Kukuk - * sysdeps/unix/sysv/linux/bits/fcntl.h: Add dummy definition of - O_LARGEFILE back. + * sunrpc/rpc_cout.c (print_header): Use int32_t pointer, not long. -1998-10-16 Paul Eggert +1999-04-16 Ulrich Drepper - * time/mktime.c: Some systems require to be - included before for localtime_r to be declared - properly. - * time/strftime.c: Likewise. + * nscd/cache.c (prune_cache): Only disable file checking for + future if the file does not exist. + Update file_mtime if cache was flushed. -1998-10-16 Ulrich Drepper +1999-04-15 David S. Miller - * db/Makefile: Add rule to generate shared object with the soname - from glibc 2.0. + * sysdeps/sparc/sparc32/strcat.S: Avoid using register g6. + * sysdeps/sparc/sparc32/strcpy.S: Likewise. - * sysdeps/unix/opendir.c: Use O_DIRECTORY if available. If not - available double check to verify it's a directory. +1999-04-15 Scott Bambrough - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add O_DIRECTORY. - * sysdeps/unix/sysv/linux/mips/bits/fcntl: Likewise. - * sysdeps/unix/sysv/linux/bits/fcntl.h: Remove O_* constants which - are not generally available. - * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: New file. + * sysdeps/unix/sysv/linux/arm/sigaction.c: Fix typo in preventing + compilation of file. - * sysdeps/unix/sysv/linux/i386/setgroups.c: Add range check for values. - * sysdeps/unix/sysv/linux/arm/Makefile: New file. - * sysdeps/unix/sysv/linux/arm/setegid.c: New file. - * sysdeps/unix/sysv/linux/arm/seteuid.c: New file. - * sysdeps/unix/sysv/linux/arm/setfsgid.c: New file. - * sysdeps/unix/sysv/linux/arm/setfsuid.c: New file. - * sysdeps/unix/sysv/linux/arm/setgid.c: New file. - * sysdeps/unix/sysv/linux/arm/setgroups.c: New file. - * sysdeps/unix/sysv/linux/arm/setresgid.c: New file. - * sysdeps/unix/sysv/linux/arm/setresuid.c: New file. - * sysdeps/unix/sysv/linux/arm/setuid.c: New file. - * sysdeps/unix/sysv/linux/i386/setegid.c: New file. - * sysdeps/unix/sysv/linux/i386/seteuid.c: New file. - * sysdeps/unix/sysv/linux/i386/setfsgid.c: New file. - * sysdeps/unix/sysv/linux/i386/setfsuid.c: New file. - * sysdeps/unix/sysv/linux/i386/setgid.c: New file. - * sysdeps/unix/sysv/linux/i386/setgroups.c: New file. - * sysdeps/unix/sysv/linux/i386/setresgid.c: New file. - * sysdeps/unix/sysv/linux/i386/setresuid.c: New file. - * sysdeps/unix/sysv/linux/i386/setuid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setegid.c: New file. - * sysdeps/unix/sysv/linux/m68k/seteuid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setfsgid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setfsuid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setgid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setgroups.c: New file. - * sysdeps/unix/sysv/linux/m68k/setresgid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setresuid.c: New file. - * sysdeps/unix/sysv/linux/m68k/setuid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setfsgid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setfsuid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: New file. - * sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c: New file. +1999-04-15 Ulrich Drepper - * sysdeps/unix/sysv/linux/arm/syscalls.list: Add s_setgid, s_setresuid, - s_setresgid, and s_setuid. - * sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc] - (sysdep_routines): Add setfsgid, setfsuid, setresgid, and setresuid. - * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise. + * Versions.def: Add GLIBC_2.1.1 to libpthread. -1998-10-16 Ulrich Drepper + * iconvdata/Makefile (modules): Add KOI8-U. + (distribute): Add koi8-u.c. + (gen-8bit-gap-modules): Add koi8-u. + * iconvdata/gconv-modules: Add KOI8-U entries. + * iconvdata/koi8-u.c: New file. - * time/mktime.c: Define _POSIX_THREAD_SAFE_FUNCTIONS to get - localtime_t declaration on some systems. +1999-04-13 Thorsten Kukuk -1998-10-16 10:07 Ulrich Drepper + * sunrpc/auth_des.c: 64bit fixes, security fixes. + * sunrpc/auth_none.c: Pretty print. + * sunrpc/auth_unix.c: Likewise. + * sunrpc/authdes_prot.c: Likewise. + * sunrpc/authuxprot.c: Likewise. + * sunrpc/bindrsvprt.c: Likewise. + * sunrpc/clnt_gen.c: Likewise. + * sunrpc/rpc/xdr.h: Likewise. + * sunrpc/rpc/auth_des.h: Add rpc_timeval struct. + * sunrpc/rpc_cmsg.c: Don't use *long pointers. + * sunrpc/rtime.c: Use new rpc_timeval. + * sunrpc/svc_authux.c: Don't use *long pointers. + * sunrpc/svcauth_des.c: Likewise + security fixes. + * sunrpc/xdr_mem.c: Don't use *long pointers. + * sunrpc/xdr_rec.c: Likewise. + * sunrpc/xdr_sizeof.c: Likewise. + * sunrpc/xdr_stdio.c: Likewise. - * iconv/Makefile [! elf]: Define CFLAGS-gconv_simple.c to - -DSTATIC_GCONV. - * iconv/skeleton.c: Include ELF header only of STATIC_GCONV is not - defined. Avoid using DL_CLL_FCT if it is not defined. +1999-04-15 Ulrich Drepper -1998-10-16 10:40 -0400 Zack Weinberg + * sunrpc/clnt_udp.c (clntudp_call): Move initialization of anyup + so that it is redone for each sending. - * resolv/arpa/nameser.h: Include sys/types.h unconditionally. - Include endian.h unconditionally. Remove portability goop - depending on #ifdef linux, #ifdef BSD, #ifdef machine-type. +1999-04-15 Andreas Jaeger -1998-10-16 11:39 -0400 Zack Weinberg + * sunrpc/clnt_udp.c (clntudp_call): Initialize anyup. - * sunrpc/rpc/types.h: Mark file so fixincludes won't modify it. +1999-04-15 Ulrich Drepper -1998-10-15 Ulrich Drepper + * 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 . - * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Remove __kernel_termios - again. Use char[44] to define size of the struct. + * nscd/cache.c (prune_cache): The table might not be unused. In + this case do nothing. - * sysdeps/unix/sysv/linux/arm/Dist: Add bits/armsigctx.h. + * catgets/gencat.c (read_input_file): Don't drop white spaces + between number/identifier and string. + Patch by Dima Barsky . + If no white space at all follows number/identifier remove existing + message with the number/identifier. -1998-10-14 Andreas Schwab +1999-04-14 H.J. Lu - * string/bits/string2.h (strcmp): Don't cache the result of - __builtin_constant_p in variables, otherwise constant folding - can fail in big functions. + * sunrpc/clnt_udp.c (is_network_up): New function. + (clntudp_call): Call is_network_up () to check if any network + interface is up in case of timeout. -1998-10-14 Andreas Schwab +1999-04-14 Andreas Jaeger - * string/bits/string2.h: Add prototypes for the new inline - functions. + * wctype/test_wcfuncs.c: New file, tests towlower and towupper. + * wctype/Makefile (tests): Add test_wcfuncs. -1998-10-15 Ulrich Drepper +1999-04-14 Jakub Jelinek - * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Include termios.h to - have all types defined. - Patch by Matti Aarnio . + * scripts/config.sub: Allow sparcv[6789]-* and sparcv8plus{,a}-* + architectures. + * sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS + instead of CFLAGS. + * sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS + instead of CFLAGS. For gnulib and string directories use + -Wa,-Av9a gcc ASFLAGS. + * sysdeps/sparc/sparc32/sparcv9/memmove.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: New file. + * shlib-versions: Handle sparcv[6789]-* and sparcv8plus{,a}-* + the same way as sparc-*. -1998-10-08 Paul Eggert +1999-04-14 Ulrich Drepper - * time/mktime.c (my_mktime_localtime_r): Renamed from localtime_r. - Define also if HAVE_LOCALTIME_R && defined localtime_r, with - a body that merely expands localtime_r; this works around a - bug in Digital Unix 4.0A and 4.0D. + * locale/programs/locfile.c (locfile_read): Fix typo. + Patch by Kaoru Fukui . -1998-10-14 Ulrich Drepper +1999-04-14 Scott Bambrough - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_ioctl. - * sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: New file. Define - __ioctl to __syscall_ioctl and include Linux version of this file. - * sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Likewise. - * sysdeps/unix/sysv/linux/powerpc/ioctl.c: New file. Redirect - ioctl calls which handle struct termios. - Based on a patch by Dan Jacobowitz . + * sysdeps/unix/sysv/linux/arm/socket.S: Socket calls could not be + restarted after being interrupted by a signal. The parameters on + the stack were corrupted by the signal handler. -1998-10-14 Ulrich Drepper + * sysdeps/unix/sysv/linux/arm/mmap.S: mmap calls could not be + restarted after being interrupted by a signal. The parameters on + the stack were corrupted by the signal handler. - * version.h (VERSION): Bump to 2.0.98. +1999-04-14 Andreas Jaeger - * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Define __kernel_termios - here instead of including kernel_termios.h. + * wctype/wcfuncs.c (towlower): Use __ctype_tolower. + Reported by Kalle Olavi Niemitalo -1998-10-14 Andreas Jaeger +1999-04-12 Tim Waugh - * sysdeps/unix/opendir.c (__opendir): Remove label lose2 which is - unnecessary after the changes of 1998-10-12. + * posix/wordexp-test.c: In field-splitting test cases where + subshells were involved, unset IFS first: some shells (ash) use + IFS even when no expansion is performed. -1998-10-13 Ulrich Drepper +1999-04-13 Andreas Schwab - * sysdeps/unix/sysv/linux/alpha/ioperm.c (inline_outb): Fix output - parameter format string. - (inline_outw): Likewise. + * libio/obprintf.c (_IO_obstack_overflow): Put the write end at + the real end of the chunk, not some random point inbetween. + (_IO_obstack_xsputn): Likewise. Actually copy the data into the + obstack when growing. Use fast version of obstack_blank when + shrinking. + (struct _IO_obstack_file): Use _IO_FILE_plus instead of explicitly + allocating the vtable pointer. + (_IO_obstack_vprintf): Adjust for above change and avoid + unnecessary casts. Use fast version of obstack_blank when + shrinking. + Fixes PR libc/1075. - * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Include - string.h to get memcpy prototype and NULL definition. +1999-04-12 Ulrich Drepper -1998-10-12 Andreas Schwab + * iconvdata/gconv-modules: Fix typo. Add UJIS alias. + Reported by GOTO Masanori . - * misc/sys/cdefs.h (__THROW): New macro. - * argp/argp.h: Use it to replace the kludgey __P in inline - function definitions. - * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. - * stdlib/stdlib.h: Likewise. - * wcsmbs/wchar.h: Likewise. - * libio/stdio.h: Likewise. - * stdio/stdio.h: Likewise. - * sysdeps/wordsize-64/inttypes.h: Likewise. - * sysdeps/wordsize-32/inttypes.h: Likewise. - * string/argz.h: Likewise. - * io/sys/stat.h: Likewise. +1999-04-11 Tim Waugh -1998-10-12 Andreas Schwab + * posix/wordexp.c (wordexp): Fix a leak when an invalid character + is seen, as well as fixing semantics. Don't reset the word count + to zero when an invalid character is seen, but leave it as it was + (this makes a difference with WRDE_APPEND). - * Rules (stdio_lim): New variable. - ($(stdio_lim:h=st)): Use this as intermediate stamp file, depend - on Rules and config.make, use $(move-if-change) to avoid unnessary - recompilations, and cleanup command. - (common-generated): Add bits/stdio_lim.st. + * posix/wordexp-test.c: More test cases. -1998-10-12 Ulrich Drepper + * posix/wordexp.c (parse_param): In words like ${var#pattern}, + always expand pattern when it is needed. Also, handle quoting in + pattern properly. - * sysdeps/unix/sysv/linux/alpha/Makefile (CFLAGS-ioperm.c): New - variable to prevent warnings from use of modern CPU instructions. - Patch by Richard Henderson . +1999-04-12 Philip Blundell - * sysdeps/unix/opendir.c: Test whether NAME is directory before - opening it. + * elf/elf.h: Update ARM definitions to match current gas2. -1998-10-12 Philip Blundell + * sysdeps/arm/bits/endian.h: Support big endian operation. - * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Add missing - semicolon so that profiling works. + * sysdeps/unix/sysv/linux/arm/ioperm.c (_outw, _outb, _outl): + Don't bother range checking the port number. -1998-10-12 Roland McGrath + * sysdeps/unix/sysv/linux/arm/vfork.S: New file. - * sysdeps/generic/glob.c: #undef mempcpy before #define. + * sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Include + the syscall name in assembler output for ease of debugging. - * sysdeps/unix/bsd/clock.c: Use prototype defns. + * sysdeps/unix/sysv/linux/arm/sigaction.c: Don't rely on undefined + compiler behaviour. + * sysdeps/unix/sysv/linux/arm/sigrestorer.S: New file. + * sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = signal] + (sysdep_routines): Add sigrestorer. -1998-10-11 Ulrich Drepper + * string/tester.c (test_strcpy): Add new tests for unaligned + arguments. + * sysdeps/arm/bits/string.h: Delete inline implementations of + strcpy and stpcpy. - * Rules [posix in sysdirs]: Set L_tmpnam to 20. - Patch by Zack Weinberg . +1999-04-11 Ulrich Drepper - * string/bits/string2.h [!_STRING_ARCH_unaligned] - (__mempcpy_small): Add parameter for 1 byte copy and use it. - Reported by Geoff Keating . + * libio/Makefile (CPPFLAGS-.o): Don't define IO_DEBUG. -1998-10-09 Mark Kettenis +1999-04-10 Mark Kettenis - * sysdeps/mach/hurd/bits/posix_opt.h (_XBS5_ILP32_OFF32): Remove, - it is already defined in . + * sysdeps/mach/hurd/Dist: Add clk_tck.c. -1998-10-09 Ulrich Drepper +1999-04-10 Ulrich Drepper - * posix/ptestcases.h: Fix typo. + * iconvdata/Makefile (modules): Add TIS-620. + (distribute): Add tis-620.c. + (gen-8bit-gap-modules): tis-620. + * iconvdata/tis-620.c: New file. + * iconvdata/gconv-modules: Add TIS-620 entries. -1998-10-08 Andreas Schwab + * iconvdata/asmo_449.c: Correct comment. - * posix/regex.c (regcomp): Allocate and prepare a fastmap. - (regexec): Allocate regs.start and regs.end as one block. +1999-04-10 Andreas Jaeger -1998-10-08 Andreas Schwab + * manual/install.texi (Configuring and compiling): Comment out + description of --disable-static since this doesn't work currently + (see change by Ulrich Drepper on 1998-12-07 for configure.in). - * sysdeps/unix/sysv/linux/bits/socket.h: Remove comma at end of - enum decl. +1999-04-10 Ulrich Drepper -1998-10-08 Philip Blundell + * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Rewrite to + use binary search. + Based on a patch by Jakub Jelinek . - * sysdeps/unix/sysv/linux/arm/profil-counter.h: Move definition of - sigcontext union to ... - * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: ... here. New - file. - * sysdeps/unix/sysv/linux/arm/register-dump.h: Add support for - version 2.0 kernels. +1999-04-08 Andreas Jaeger -1998-10-08 Ulrich Drepper + * scripts/test-installation.pl (installation_problem): Skip + libnss1_* libraries from glibc-compat add-on. - * malloc/mtrace.c (tr_reallochook): Produce better output for real - reallocation case. +1999-04-07 H.J. Lu - * signal/sigsetops.c: Make sure __USE_EXTERN_INLINES is defined. - * argp/argp-xinl.c: Likewise. + * io/Versions (__dup2, __pipe): Added to GLIBC_2.0 for + libstdc++ 2.7.2. + * posix/Versions (__waitpid): Likewise. - * sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add missing - Ruffian entry back. - Patch by Christian Gafton. +1999-04-08 Andreas Jaeger -1998-10-08 Paul Eggert + * manual/install.texi (Reporting Bugs): Add section about reported + bugs and correct email address of glibcbug script. - * time/mktime.c (__mktime_internal): When the requested time falls - in a spring-forward gap of size DT, return a time that is DT away - from the requested time, preferring a time whose tm_isdst differs - from the requested value. Bump the max number of probes from 4 to - 6 to account for the extra probes needed to discover a - spring-forward gap in the worst case. +1999-04-01 Thorsten Kukuk -1998-10-07 17:05 Ulrich Drepper + * sunrpc/Versions: Add new xdr functions to GLIBC_2.1.1 + * sunrpc/xdr.c: Add xdr_hyper, xdr_u_hyper, xdr_longlong_t and + xdr_u_longlong_t. Based on patch from Dan Shechter + . + * sunrpc/xdr_intXX_t.c: Implement xdr_int64_t, xdr_uint64_t + * sunrpc/rpc/xdr.h: Add prototypes for new xdr functions. - * sysdeps/unix/sysv/linux/alpha/ioperm.c: Improve the autodetection - of the weird alpha architectures. - Patch by Cristian Gafton . + * nis/nis_lookup.c (nis_lookup): Don't overwrite RPC error code. -1998-02-18 23:31 Richard Henderson +1999-04-07 Andreas Jaeger - * sysdeps/unix/sysv/linux/alpha/ioperm.c: Add support for - RAWHIDE and TSUNAMI. Patch from Jay.Estabrook@digital.com. + * sysdeps/unix/sysv/linux/getdents.c (__getdirentries): Return + directly if getdents returns with error set. -1998-10-07 Ulrich Drepper +1999-04-05 Andreas Jaeger - * elf/dl-open.c (_dl_global_scope_alloc): Make global. - (dl_open_worker): Use realloc, not malloc to resize array. - * elf/rtld.c (_dl_initial_searchlist): New variable. - (_dl_main): Copy content of _dl_main_searchlist to - _dl_initial_searchlist. - * elf/ldsodefs.h: Add declarations for _dl_initial_searchlist and - _dl_global_scope_alloc. - * elf/Versions [libc, GLIBC_2.1]: Add _dl_initial_searchlist. - * elf/dl-close.c (_dl_close): When removing object with global - scope remove allocated searchlist if no dynamically loaded object - is on it anymore. - * elf/dl-support.c (_dl_initial_searchlist): Renamed from fake_scope. - (_dl_global_scope, _dl_main_searchlist): Use _dl_initial_searchlist. + * locale/langinfo.h (THOUSEP): Rename second occurence of + THOUSANDS_SEP to THOUSEP. + Reported by Roman Belenov . - * malloc/mtrace.c (tr_where): Don't print space in location string, - print it afterwards. Print better symbol name information. +1999-04-05 Roland McGrath -1998-10-06 Andreas Schwab + * hurd/STATUS: File removed. Moved items that are still relevant into + TODO list in hurd source. - * manual/filesys.texi (Setting Permissions): Fix example for - reading umask. +1999-03-26 Mark Kettenis -1998-10-07 Andreas Schwab + * sysdeps/mach/hurd/bits/time.h: New file. + * sysdeps/mach/hurd/getrusage.c: New file. + * sysdeps/mach/hurd/clk_tck.c: New file. + * sysdeps/mach/hurd/Versions (libc) [GLIBC_2.1.1]: Add __libc_clk_tck. + * sysdeps/mach/hurd/Makefile [$(subdir) = posix] + (sysdep_routines): Add clk_tck. + * sysdeps/mach/hurd/times.c: Removed, since getrusage is now + implemented. - * elf/sprof.c (load_profdata): Fix typo in error message. +1999-04-02 Ulrich Drepper -1998-10-06 Andreas Schwab + * misc/syslog.c (closelog_internal): Do not reset LogTag here. + (closelog): But instead here. + Patch by Alan Curry [PR libc/1061]. - * sysdeps/m68k/dl-machine.h (RTLD_START): Fix clearing startup - flag. +1999-04-02 Andreas Jaeger -1998-10-04 Roland McGrath + * elf/Makefile (CFLAGS-multiload.c): Change to allow building in + the source directory. Fixes PR libc/1059. - * mach/mach.h: Remove __mach_msg decl; now does it. +1999-04-01 Andreas Jaeger -1998-10-06 Ulrich Drepper + * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Terminate the string. + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. - * version.h (VERSION): Bump to 2.0.97. +1999-04-01 Ulrich Drepper -1998-10-05 Andreas Jaeger + * iconvdata/TESTS: Add ISO-8859-14 and ISO-8859-15. + * iconvdata/testdata/ISO-8859-14: New file. + * iconvdata/testdata/ISO-8859-14..UTF8: New file. + * iconvdata/testdata/ISO-8859-15: New file. + * iconvdata/testdata/ISO-8859-15..UTF8: New file. - * sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): Use __P - in definitions of inline stat functions so that they match the - declaration. - * stdlib/stdlib.h: Likewise. - * wcsmbs/wchar.h: Likewise. - * libio/stdio.h: Likewise. - * stdio/stdio.h: Likewise. - * sysdeps/wordsize-64/inttypes.h: Likewise. - * sysdeps/wordsize-32/inttypes.h: Likewise. - * string/argz.h: Likewise. - * argp/argp.h: Likewise. +1999-03-31 Ulrich Drepper -1998-10-06 Ulrich Drepper + * iconvdata/testdata/CP1258: New file. + * iconvdata/testdata/CP1258..UTF8: New file. + * iconvdata/TESTS: Add CP1258 entry. - * sysdeps/unix/sysv/linux/bits/in.h: Remove ipv6_mreq which is in - netinet/in.h. + * iconvdata/cp874.h (to_ucs4): Add Euro sign. -1998-10-05 Philip Blundell + * timezone/africa: Update from tzdata1999d. + * timezone/europe: Likewise. + * timezone/northamerica: Likewise. - * sysdeps/unix/sysv/linux/bits/in.h: Add various new structures - and constants. Tidy up formatting a little. +1999-03-31 Mark Kettenis - * sysdeps/unix/sysv/linux/bits/socket.h (SOL_IPV6, SOL_ICMPV6): - Move definitions to in.h. + * login/programs/pt_chown.c (main): Save effective user ID before + dropping priviliges and use this to check if the program is + properly installed. -1998-10-02 Andreas Jaeger +1999-03-31 Ulrich Drepper - * sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_PREFER, - SWAP_FLAG_PRIO_MASK,SWAP_FLAG_PRIO_SHIFT): Added. - Remove inclusion of . + * iconvdata/testdata/CP1254: Update for charmap changes. + * iconvdata/testdata/CP1254..UTF8: Likewise. + * iconvdata/testdata/CP1255: Likewise. + * iconvdata/testdata/CP1255..UTF8: Likewise. + * iconvdata/testdata/CP1256: Likewise. + * iconvdata/testdata/CP1256..UTF8: Likewise. + * iconvdata/testdata/CP1257: Likewise. + * iconvdata/testdata/CP1257..UTF8: Likewise. -1998-10-05 Ulrich Drepper + * iconvdata/Makefile (distribute): Remove cp1258.h. + (gen-8bit-gap-modules): Add cp1258. + * iconvdata/cp1258.h: Removed. - * io/sys/stat.h: Use __P in definitions of inline stat functions - so that they match the declaration. +1999-03-30 Ulrich Drepper -1998-10-02 Andreas Jaeger + * timezone/tst-timezone.c (tests): Add more cases. + (check_tzvars): Mark errors clearer. + (main): Likewise. - * sysdeps/unix/sysv/linux/sys/quota.h (Q_RSQUASH): Added. +1999-03-30 20:59 -0500 Zack Weinberg -1998-10-02 Andreas Jaeger + * login/programs/pt_chown.c: Drop privileges if invoked with + arguments. Don't close the master pty. - * sysdeps/unix/sysv/linux/sys/acct.h: Bring in sync with current - linux 2.1 version. +1999-03-30 Ulrich Drepper -1998-10-02 Philip Blundell + * time/tzfile.c (__tzfile_read): Process transitions from the rear. + Minor optimization. - * sysdeps/arm/dl-machine.h: Fix typo in last change. +1999-03-29 Ulrich Drepper - * sysdeps/arm/bits/huge_val.h: New file. + * elf/rtld.c (process_envvars): Do not automatically prevent lazy + relocation for SUID binaries. -1998-10-02 Andreas Jaeger +1999-03-29 Paul Eggert - * sysdeps/unix/sysv/linux/sys/reboot.h (RB_POWER_OFF): Added. + * libio/iopopen.c (_IO_new_proc_open): Don't modify proc_file_chain + while in child process. - * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SYSCALL): Add - define. +1999-03-29 Jakub Jelinek -1998-10-05 Ulrich Drepper + * sysdeps/sparc/sparc32/sparcv8/Makefile: New file. + * sysdeps/sparc/sparc32/sparcv8/rem.S: Delay after write %y. + * sysdeps/sparc/sparc32/sparcv8/sdiv.S: Likewise. + * sysdeps/sparc/sparc32/sparcv8/udiv.S: Likewise. + * sysdeps/sparc/sparc32/sparcv8/urem.S: Likewise. - * sysdeps/posix/getcwd.c (__getcwd): Use temporary variable to - store result of realloc instead of using BUF. + * sysdeps/sparc/sparc32/sparcv9/bcopy.c: New file. + * sysdeps/sparc/sparc32/sparcv9/bzero.c: New file. + * sysdeps/sparc/sparc32/sparcv9/memchr.S: New file. + * sysdeps/sparc/sparc32/sparcv9/memcmp.S: New file. + * sysdeps/sparc/sparc32/sparcv9/memcpy.S: New file. + * sysdeps/sparc/sparc32/sparcv9/memset.S: New file. + * sysdeps/sparc/sparc32/sparcv9/stpcpy.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strcat.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strchr.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strcmp.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strcpy.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strcspn.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strlen.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strncpy.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strpbrk.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strrchr.c: New file. + * sysdeps/sparc/sparc32/sparcv9/strspn.S: New file. + * sysdeps/sparc/sparc32/sparcv9/dotmul.S: New file. + * sysdeps/sparc/sparc32/sparcv9/rem.S: New file. + * sysdeps/sparc/sparc32/sparcv9/sdiv.S: New file. + * sysdeps/sparc/sparc32/sparcv9/udiv.S: New file. + * sysdeps/sparc/sparc32/sparcv9/umul.S: New file. + * sysdeps/sparc/sparc32/sparcv9/urem.S: New file. + * sysdeps/sparc/sparc32/sparcv9/Makefile: New file. + * sysdeps/sparc/sparc32/sparcv9/stpncpy.S: New file. + * sysdeps/sparc/sparc32/sparcv9/strncmp.S: New file. -1998-10-04 Andreas Jaeger + * sysdeps/sparc/sparc32/bcopy.c: New file. + * sysdeps/sparc/sparc32/bzero.c: New file. + * sysdeps/sparc/sparc32/memchr.S: New file. + * sysdeps/sparc/sparc32/memcpy.S: New file. + * sysdeps/sparc/sparc32/memmove.c: New file. + * sysdeps/sparc/sparc32/memset.S: New file. + * sysdeps/sparc/sparc32/stpcpy.S: New file. + * sysdeps/sparc/sparc32/strchr.S: New file. + * sysdeps/sparc/sparc32/strrchr.c: New file. + * sysdeps/sparc/sparc32/strcpy.S: New file. + * sysdeps/sparc/sparc32/strlen.S: New file. + * sysdeps/sparc/sparc32/strcat.S: New file. + * sysdeps/sparc/sparc32/strcmp.S: New file. - * misc/sgtty.h (_SGTTY_H): Correct spelling. - Reported by Rouben Rostamian [PR libc/817]. + * sysdeps/sparc/sparc64/bcopy.c: New file. + * sysdeps/sparc/sparc64/bzero.c: New file. + * sysdeps/sparc/sparc64/memchr.S: New file. + * sysdeps/sparc/sparc64/memcmp.S: New file. + * sysdeps/sparc/sparc64/memcpy.S: New file. + * sysdeps/sparc/sparc64/memset.S: New file. + * sysdeps/sparc/sparc64/stpcpy.S: New file. + * sysdeps/sparc/sparc64/strcat.S: New file. + * sysdeps/sparc/sparc64/strchr.S: New file. + * sysdeps/sparc/sparc64/strcmp.S: New file. + * sysdeps/sparc/sparc64/strcpy.S: New file. + * sysdeps/sparc/sparc64/strcspn.S: New file. + * sysdeps/sparc/sparc64/strlen.S: New file. + * sysdeps/sparc/sparc64/strncpy.S: New file. + * sysdeps/sparc/sparc64/strpbrk.S: New file. + * sysdeps/sparc/sparc64/strrchr.c: New file. + * sysdeps/sparc/sparc64/strspn.S: New file. + * sysdeps/sparc/sparc64/stpncpy.S: New file. + * sysdeps/sparc/sparc64/strncmp.S: New file. -1998-10-04 Andreas Jaeger + * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (ASFLAGS-.os): + Append -fPIC, don't replace. - * manual/memory.texi (Obstacks): Document - obstack_alloc_failed_handler usage. + * configure.in: Recognize sparcv8plus / sparcv9. - * malloc/obstack.h: Enhance comment about - obstack_alloc_failed_handler usage. - * malloc/obstack.c: Likewise. +1999-03-27 Andreas Jaeger -1998-10-05 Ulrich Drepper + * malloc/obstack.h (obstack_free): Explicitly convert __obj to + char * to avoid C++ warning. + Patch by yasushi@cs.washington.edu [PR libc/1035]. - * misc/sys/cdefs.h (__extension__): Define as empty if no gcc or - gcc before 2.8 is used. +1999-03-29 Andreas Jaeger -1998-10-01 Philip Blundell + * manual/filesys.texi (Temporary Files): mktemp and mkstemp are + declared in stdlib.h, correct return value of mkstemp. + Reported by Andries Brouwer . - * sysdeps/arm/machine-gmon.h: Correct args to mcount(). Patch - from Scott Bambrough. + * sysdeps/unix/sysv/linux/net/if_arp.h (ARPHDRD_FC*): New defines + from Linux 2.2.5. - * sysdeps/unix/sysv/linux/arm/register-dump.h: New file. +1999-03-28 Andreas Jaeger - * libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't - include the lock member. + * misc/regexp.h (compile): Cast some pointers to (char *) to avoid + C++ warning. -1998-09-03 Philip Blundell + * ctype/ctype.h (tolower, toupper): Add __THROW declaration to + inline functions. Closes PR libc/1049. - * sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler. +1999-03-25 Andreas Jaeger -1998-10-01 Ulrich Drepper + * timezone/README: Update from tzdata1999c and tzcode1999c. - * timezone/zic.c: Update from tzcode1998h. - * timezone/europe: Update from tzdata1998i. + * timezone/africa: Update from tzdata1999c. + * timezone/antarctica: Likewise. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/europe: Likewise. + * timezone/northamerica: Likewise. * timezone/southamerica: Likewise. + * timezone/zone.tab: Likewise. - * sys/types.h: Protect use of long long by __extension__. - * stdlib/stdlib.h: Likewise. - * string/string.h: Likewise. - * sysdeps/i386/bits/byteswap.h: Likewise. - * sysdeps/geeric/bits/byteswap.h: Likewise. - * sysdeps/i386/fpu/bits/mathinline.h: Likewise. - * sysdeps/unix/sysv/linux/bits/types.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. - * sysdeps/wordsize-32/inttypes.h: Likewise. - * sysdeps/wordsize-32/stdint.h: Likewise. - * wcsmbs/wchar.h: Likewise. - -1998-09-29 Andreas Schwab - - * string/bits/string2.h (__string2_1bptr_p): Don't use a statement - expression. - (__mempcpy, strcpy, __stpcpy, strcmp, strcspn, strspn, strpbrk, - __strsep): Greatly reduce size of expansion by combining common - expressions. - (__mempcpy_small, __strcpy_small, __stpcpy_small): Convert to - inline function. - (__mempcpy_args, __strcpy_args, __stpcpy_args): New macros, used - by the above definitions. + * timezone/zic.c: Update from tzcode1999c. -1998-09-27 Geoff Keating +1999-03-26 Andreas Schwab - * sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: New file, use - correct struct ipc_perm definition. + * Makerules: Add $(common-objpfx)Versions.all to common-generated + outside of ifndef avoid-generated. -1998-09-29 Thorsten Kukuk + * libio/oldiofdopen.c (_IO_old_fdopen): Bring over recent changes + in iofdopen.c. + * libio/oldiofopen.c (_IO_old_fopen): Bring over recent changes in + iofopen.c. + * libio/oldiofclose.c (_IO_old_fclose): Bring over recent changes + in iofclose.c. + * libio/oldfileops.c (_IO_old_file_underflow, _IO_old_file_sync, + _IO_old_file_seekoff): Bring over recent changes in fileops.c. - * nis/ypclnt.c (yp_all): Close UDP socket und give CLIENT handle free. +1999-03-26 Mark Kettenis -1998-09-29 Cristian Gafton + * sysdeps/mach/hurd/Makefile: Only install libc_p.a linker script + if we build the profiled library. - * sysdeps/unix/sysv/linux/alpha/ioperm.c: List Ruffian in platforms[]. - * sysdeps/unix/sysv/linux/net/if_shaper.h: New file. - * sysdeps/unix/sysv/linux/Dist: Add net/if_shaper.h. - * sysdeps/unix/sysv/linux/Makefile [subdirs=inet] (sysdep_headers): - Add net/if_shaper.h. +1999-03-26 Andreas Schwab -1998-09-29 Ulrich Drepper + * math/Makefile (gmp-objs): Add inlines. Reported by Andreas + Jaeger - * nis/ypclnt.c (yp_all): Close socket opened by __yp_bind. +1999-03-25 Roland McGrath - * nis/ypclnt.c: Remove not needed close calls. + * sysdeps/mach/hurd/i386/Makefile [$(subdir) = csu] + (CFLAGS-initfini.s): New variable, add -DWEAK_GMON_START. + This does for Hurd/i386 what the 1998-09-08 change did for Linux/i386. -1998-09-28 23:55 Ulrich Drepper +1999-03-24 Roland McGrath - * nis/ypclnt.c (__yp_bind): Pretty print. Optimize readv result - check a bit. Also close socket of domain client. Close socket - in IPPORT_RESERVED error case. + * Makeconfig (sysd-sorted): Use $(..) on rhs of patsubst, so this rule + works properly in subdirs. -1998-09-28 Ulrich Drepper +1999-03-23 Roland McGrath - * sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): Use - CMSG_ALIGN (fixes a bug) and correct test for availability of - another entry. - * sysdeps/unix/sysv/linux/mips/bits/socket.h: Sync with generic - Linux version. - (__cmsg_nxthdr): Use CMSG_ALIGN (fixes a bug) and correct test for - availability of another entry. - Patch by ak@muc.de. + * sysdeps/mach/hurd/Makefile: Undo last change. + [$(subdir) = mach] (lib-noranlib): Depend on libmachuser-link.so. + [$(subdir) = hurd] (lib-noranlib): Depend on libhurduser-link.so. - * sysdeps/unix/sysv/linux/netinet/ip.h (IPOPT_NOOP): Fix typo. - Patch by ak@muc.de. + * mach/Machrules (+preinit, +postinit, +interp, + LDFLAGS-$(interface.so)): Variables removed. Interface libraries get + linked just like other shared libraries. + (interface.so): Fix typo in defn, so it works. + ($(objpfx)$(interface.so)): Make it depend on libc.so. - * libio/libio.h [!__STDC__]: Define const only if not defined. +1999-03-21 Roland McGrath -1998-09-27 Andreas Schwab + * sysdeps/mach/hurd/Makefile (subdir_lib): Depend on + $(link-rpcuserlibs). - * posix/annexc.c (xsystem): New function. Use it instead of - system. +1999-03-22 Andreas Schwab -1998-09-28 Ulrich Drepper + * elf/Makefile ($(inst_slibdir)/$(rtld-version-installed-name), + $(inst_slibdir)/$(rtld-installed-name), ldso_install): Disable + targets if not building shared libraries. - * stdlib/longlong.h: Remove #endif for #if removed in last change. +1999-03-22 Andreas Schwab -1998-09-25 Ulrich Drepper + * configure.in: Also look in $PATH when searching for + install-info. Remove autoconf bug workaround and require autoconf + 2.13. - * time/strftime.c [emacs]: Define my_strftime to emacs_strftimeu. - Define ut_argument, ut_argument_spec, and ut_argument_spec_iso to - allow using `ut' parameter. - [!emacs]: Define ut_argument, ut_argument_spec, and - ut_argument_spec_iso as empty. Define ut to 0. Add ut_argument and - argument_spec to prototypes and definitions. - (my_strftime): Don't call tzset of ut != 0. - Compute diff as 0 is ut != 0; - [emacs]: Define new emacs_strftime function. - Based on a patch by Paul Eggert. +1999-03-21 Andreas Jaeger -1998-09-24 Paul Eggert + * db/Makefile: Don't try to install shared library link if not + building with shared libs. - * time/strftime.c (my_strftime): When asking for the length of the - subformatted buffer, do not limit the length to look for; - otherwise, we have no reliable way to distinguish between the - empty buffer and an error. +1999-03-19 Andreas Jaeger -1998-09-25 Ulrich Drepper + * rt/Makefile: Link against static library if no shared lib is + available. - * math/Makefile (gmp-objs): Add mp_clz_tab. + * localedata/Makefile: The shells scripts implementing the test + require the dynamic linker which is not available with + --disable-shared. Skip the test if --disable-shared is given. -1998-09-25 David S. Miller + * linuxthreads/Makefile: Link test against static libpthread if no + shared lib is available. - * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear bits don't - set them. - * stdlib/longlong.h (sparc udiv_qrnnd): Define inline version for - cpus lacking hardware multiply and divide. + * iconvdata/Makefile (tests): Run iconv-test only if we're + building shared libraries. + * elf/Makefile (tests): Likewise for elf tests. -1998-09-24 Andreas Schwab + * posix/Makefile: The test frameworks globtest and wordexp-test + require the dynamic linker which is not available with + --disable-shared. Skip the test if --disable-shared is given. - * db/Makefile ($(inst_slibdir)/libdb.so$(libdb1.so-version)): Use - $( +1999-03-19 Andreas Jaeger - * db/btree/bt_delete.c: Fix -Wparentheses warning. + * debug/Makefile (install-bin): Install and build catchsegv only + if build-shared == yes. Reported by jussi@jlaako.pp.fi [PR + libc/965]. -1998-09-24 Andreas Schwab +1999-03-20 Andreas Schwab - * Makefile ($(inst_includedir)/gnu/lib-names.h): Use - $(do-install). + * time/tzfile.c (__tzfile_read): Handle the case where there are + transitions but no DST. -1998-09-24 Ulrich Drepper +1999-03-20 Roland McGrath - * debug/catchsegv.sh: Also produce output if clone process died. + * mach/Machrules (extra-libs-others): Add $(interface-library) here + too, so it gets built in the others pass rather than the lib pass. + This is necessary since the RPC libraries need to be linked against + libc. -1998-09-24 Paul Eggert +1999-03-19 Roland McGrath - * time/strftime.c (f_wkday): Remove duplicate definition. - (f_wkday, f_month, a_wkday, a_month, ampm): Define as macros when - !defined _NL_CURRENT && !HAVE_STRFTIME; this propagates the - 1998-09-11 fix to this case. - (wkday_len, month_len): Remove these macros; they're no longer needed. + * sysdeps/generic/segfault.c: Include for + _itoa_word decl. -1998-09-24 Paul Eggert + * sysdeps/mach/hurd/Makefile (link-rpcuserlibs): New variable. + ($(common-objpfx)libc.so): Depend on that instead of $(rpcuserlibs). + ($(link-rpcuserlibs)): New static pattern rule; link intermediate + versions of lib{mach,hurd}user.so without reference to libc.so, + then link libc.so against that to get deps and symbol versions, then + finally link real lib*user.so against libc.so. - * time/strftime.c (my_strftime): Don't store past the end of a - zero-sized buffer. + * sysdeps/mach/hurd/fcntl.c (__fcntl: case F_GETLK,F_SETLK,F_SETLKW): + Support whole-file locking (only) by using the file_lock RPC. This + has very wrong semantics, but is better than nothing for the time + being. (Correct POSIX.1 locking will require new RPCs in the Hurd + protocols that will be somewhat hairy to specify.) -1998-09-24 Paul Eggert +1999-03-17 Mark Kettenis - * time/strftime.c (underlying_strftime): - Set the buffer to a nonzero value before calling - strftime, and check to see whether strftime has set the buffer to zero. - This lets us distinguish between an empty buffer and an error. + * sysdeps/mach/hurd/ptsname.c: New file. -1998-09-24 Paul Eggert +1999-03-20 Andreas Schwab - * time/strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000. - This fix is propagated from tzcode1998g.tar.gz. + * timezone/asia: Fix rule in Asia/Nicosia entry. -1998-09-24 Mark Kettenis +1999-03-16 Andreas Jaeger - * sysdeps/unix/siglist.c: Make sys_siglist a weak alias for - _sys_siglist. [!HAVE_GNU_LD]: Do not define _sys_siglist as - sys_siglist. This is handled correctly by the weak_alias macro. + * manual/getopt.texi (Using Getopt): Explain "::" in option + string. Reported by Yuri Niyazov . -1998-09-24 Ulrich Drepper +1999-03-18 Thorsten Kukuk - * sysdeps/posix/getcwd.c: Prevent compiler warning from redefinition - of mempcpy. Reported by Andreas Jaeger. + * sunrpc/clnt_unix.c: Fix creation of parameters for + sendmsg/recvmsg on non intel platforms. + * sunrpc/svc_unix.c: Likewise. - * misc/regexp.h (compile): Use alloca instead of __alloca. It won't - pollute the namespace since the compiler will resolve it inline. - Reported by Florian La Roche . +1999-03-18 Philip Blundell -1998-09-24 10:29 Ulrich Drepper + * sysdeps/unix/sysv/linux/arm/getgroups.c: New file. Use the i386 + implementation. - * timezone/private.h: Update from tzcode1998g. +1999-03-19 Andreas Jaeger - * timezone/africa: Update from tzdata1998h. + * timezone/africa: Update from tzdata1999b. * timezone/asia: Likewise. * timezone/australasia: Likewise. * timezone/europe: Likewise. @@ -4616,2028 +1600,879 @@ * timezone/southamerica: Likewise. * timezone/zone.tab: Likewise. -1998-09-23 17:28 -0400 Zack Weinberg - - * misc/sys/mman.h: New file. - - * sysdeps/generic/bits/mman.h: New file. - * sysdeps/unix/bsd/osf/bits/mman.h: New file. - * sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file. - * sysdeps/unix/bsd/ultrix4/bits/mman.h: New file. - * sysdeps/unix/sysv/irix4/bits/mman.h: New file. - - * sysdeps/generic/sys/mman.h: Removed. - * sysdeps/unix/bsd/osf/sys/mman.h: Removed. - * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed. - * sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed. - * sysdeps/unix/sysv/irix4/sys/mman.h: Removed. - * sysdeps/unix/sysv/linux/sys/mman.h: Removed. - - * include/sys/mman.h: Look directly for misc/sys/mman.h. - * misc/Makefile (headers): Add bits/mman.h. - * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove - bits/mman.h. - - * sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h. - * sysdeps/unix/sysv/linux/arm/Dist: Likewise. - * sysdeps/unix/sysv/linux/i386/Dist: Likewise. - * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. - * sysdeps/unix/sysv/linux/mips/Dist: Likewise. - * sysdeps/unix/sysv/linux/powerpc/Dist: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise. - -1998-09-23 16:27 -0400 Zack Weinberg - - * sysdeps/mach/alpha/sysdep.h: Don't use #include_next. - * sysdeps/mach/alpha/thread_state.h: Likewise. - * sysdeps/mach/i386/sysdep.h: Likewise. - * sysdeps/mach/i386/thread_state.h: Likewise. - * sysdeps/mach/mips/sysdep.h: Likewise. - * sysdeps/mach/mips/thread_state.h: Likewise. - * sysdeps/posix/profil.c: Likewise. - * sysdeps/i386/i586/memcopy.h: Likewise. - * sysdeps/mach/pagecopy.h: Likewise. - -1998-09-23 15:25 Ulrich Drepper - - * libio/stdio.h: Define __need_getopt and include getopt.h to define - getopt stuff. - * posix/unistd.h: Likewise. - * stdio/stdio.h: Likewise. - * posix/getopt.h: Remove _GNU_SOURCE use. If __need_getopt is defined - define only getopt and the variables. - -1998-09-23 Andreas Jaeger - - * scripts/test-installation.pl (installation_problem): Don't link - the test program against libdb1. - -1998-09-23 13:52 Ulrich Drepper - - * Makeconfig (all-subdirs): Add db. - * Versions.def: Add definition for libdb1. - * shlib-versions: Add definitions for libdb1. - * db/Makefile (extra-libs): Replace by libdb1. - (libdb-routines): Rename to libdb1-routines. - (headers): Rename to db1-headers. - (distribute): Add $(db1-headers). - (install-others): Define to install symlink libdb.so.NN and the - $(db1-headers). - (CPPFLAGS): Add -DUSE_LIBDB1 - Remove rules to build makedb. - * db/Versions: Rename libdb to libdb1. - * include/db.h: If USE_LIBDB1 is defined include db/db.h. - * db/makedb.c: Removed. - - * scripts/versions.awk: Recognize digits in library names. - - * db/btree/bt_open.c: Fix compiler warnings. - * db/btree/bt_put.c: Likewise. - * db/btree/bt_split.c: Likewise. - * db/hash/hash.c: Likewise. - * db/hash/hash_bigkey.c: Likewise. - * db/recno/rec_close.c: Likewise. - - * Makefile: Add localedata/% goal. - -1998-09-22 19:58 -0400 Zack Weinberg - - * posix/execvp.c: Don't give up searching the PATH if execve - returns ENOTDIR. - -1998-09-22 12:53 Ulrich Drepper - - * sysdeps/unix/sysv/linux/init-first.c (init): Don't call setfpucw only - if _dl_fpu_control_set is set. - * sysdeps/generic/dl-sysdep.c: Don't set _dl_fpu_control_set. - * elf/rtld.c: Don't define _dl_fpu_control_set. - * elf/Versions: Remove _dl_fpu_control_set. - -1998-09-22 11:51 Ulrich Drepper - - * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (SA_ONSTACK): Define. - * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise. - Correct values of other SA_* macros according to kernel headers. - -1998-09-22 Andreas Schwab - - * elf/dl-load.c (_dl_init_paths): Avoid warning about unused - variable l. - * elf/dl-error.c (_dl_catch_error): Avoid warning about clobbering - old. - -1998-09-21 Andreas Schwab + * timezone/README: Mention tzdata1999b. - * elf/ldsodefs.h: Fix typo in comment. +1999-03-17 Ulrich Drepper -1998-09-21 Andreas Schwab + * sysdeps/generic/segfault.c (write_strsignal): New function. + (catch_segfault): Use it instead of calling strsignal. - * libio/genops.c (_IO_default_pbackfail): Add cast to unsigned - char when comparing buffer contents with putback character. +1999-03-16 Andreas Jaeger -1998-09-21 Andreas Schwab + * iconv/gconv.c (__gconv): Change type of last_start to unsigned + char to avoid warning. - * elf/Makefile (dl-routines, elide-routines.os, rtld-routines): - Undo last change. - * elf/Versions: Undo last change. Export _dl_fpu_control and - _dl_fpu_control_set. - * elf/rtld.c (_dl_fpu_control, _dl_fpu_control_set): New - variables. Include . - * sysdeps/generic/dl-sysdep.c: Store AT_FPUCW value in - _dl_fpu_control instead of __fpu_control, set _dl_fpu_control_set - to indicate that is was seen. - * sysdeps/unix/sysv/linux/init-first.c: Omit call to __setfpucw - only if _dl_fpu_control was set and is equal to desired value. - * math/Makefile (aux): Undo last change. - * math/Versions: Export __fpu_control with version GLIBC_2.0. +1999-03-15 Ulrich Drepper -1998-09-21 Andreas Schwab + * iconv/iconv.c (iconv): Correctly cast parameters for __gconv. - * sysdeps/m68k/dl-machine.h (elf_machine_lazy_rel): Slightly - optimized. + * iconvdata/iso-2022-kr.c (EMIT_SHIFT_TO_INIT): Change type of + outbuf to unsigned char to avoid warning. -1998-09-21 10:00 Ulrich Drepper +1999-03-11 David S. Miller - * string/bits/string2.h: Add mempcpy optimization. - * sysdeps/generic/mempcpy.c: Undefined __mempcpy. - * intl/localealias.c: Define mempcpy only if not already defined. + * sysdeps/sparc/sparc32/fpu/fpu_control.h: Add missing trap enable + masks. + * sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise. - * sysdeps/i386/i486/bits/string.h: Define ffsl only if not already - defined. +1999-03-15 Ulrich Drepper -1998-09-20 10:48 -0400 Zack Weinberg + * iconv/gconv.h (gconv_fct): Change parameter from `char' to + `unsigned char'. + (gconv_step_data): Likewise. + * iconv/gconv_int.h (__gconv): Likewise. + (__BUILINT_TRANS): Likewise. + * iconv/gconv.c (__gconv): Likewise. + * iconv/iconv.c (iconv): Add casts for call of __gconv. + * iconv/skeleton.c: Change local parameters and variable from `char' to + `unsigned char'. Remove casts from calls into modules. + * iconvdata/iso-2022-jp.c (gconv): Change local variable outbuf from + `char' to `unsigned char'. + * wcsmbs/btowc.c: Change pointers from `char *' to `unsigned char *'. + * 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. - * csu/abi-note.S: Emit the note directly instead of defining - a preprocessor macro that's only used once. Don't include sysdep.h. - * abi-tags: Generalize Solaris entry. +1999-03-15 Mark Kettenis -1998-09-18 Andreas Schwab + * sysdeps/mach/hurd/Versions (ld.so) [GLIBC_2.0]: Add + __hurd_sigthread_stack_base, __hurd_sigthread_stack_end, + __hurd_sigthread_variables, __hurd_threadvar_stack_mask, + __hurd_threadvar_stack_offset, __close, __fxstat, __getcwd, + __getpid, __libc_read, __libc_write, __lseek, __mmap, __open, + __xstat, _exit, _hurd_intr_rpc_mach_msg and abort. - * sysdeps/unix/bsd/getpt.c (__libc_ptyname1, __libc_ptyname2): - Change to array to avoid runtime relocation. - * sysdeps/unix/sysv/linux/ptsname.c: Update declarations. +1999-03-15 Mark Kettenis -1998-09-21 12:22 Andreas Schwab + * sysdeps/mach/hurd/poll.c (__poll): Correctly pass NULL to + _hurd_select if TIMEMOUT is -1. - * malloc/Makefile ($(objpfx)libmcheck.a): Fix use of $(LN_S). - * math/Makefile ($(objpfx)libieee.a): Likewise. +1999-03-15 Mark Kettenis -1998-09-21 Ulrich Drepper + * sysdeps/mach/hurd/recvfrom.c (recvfrom): Allow ADDR to be NULL. - * sysdeps/generic/getpt.c: Fix order of argument to weak_alias. - Patch by John Tobey . +1999-03-15 Ulrich Drepper -1998-09-20 Ulrich Drepper + * elf/dl-load.c: Compute rtld_search_dir array size correctly. + Reported by Yasushi Saito . - * login/Makefile (distribute): Remove pty-internal.h, add - pty-private.h. +1999-03-15 Andreas Schwab - * stdlib/tst-strtol.c: Add more checks. - Patch by Zack Weinberg . + * manual/libc.texinfo: Undo last change for now. -1998-09-20 09:37 Ulrich Drepper +1999-03-15 Ulrich Drepper - * elf/Versions [GLIBC_2.1] (libc): Add __fpu_control. - * elf/elf.h: Add AT_FPUCW. - * elf/Makefile (dl-routines): Add fpu_control. - (elide-routines.os): Add fpu_control. - (rtld-routines): Add fpu_control. - * math/Makefile (aux): Remove fpu_control. - * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Handle AT_FPUCW. - (_dl_show_auxv): Likewise. - * sysdeps/unix/sysv/linux/init-first.c (init): Use __setfpucw only - if different from OS default. + * intl/locale.alias: Add entries for Croatian. + Patch by Tomislav Vujec . - * stdio-common/tstscanf.c: Add test case for (nil). +1999-03-13 Mark Kettenis -1998-09-18 17:41 Ulrich Drepper + * sysdeps/unix/bsd/getpt.c (__getpt): Do not use `isatty' to check + if the opened master pty really is a pty. `isatty' checks for + tty-ness and a pty is not a tty. Return ENOENT instead of ENFILE + if we are out of pty's. - * libio/fileops.c (_IO_new_file_underflow): Before allocating - buffer make sure the pushback buffer is destroyed. - (_IO_new_file_seekoff): Likewise. - If mode==0 quit early with the result. - Clear OEF flag after successful fseek. - * libio/libio.h (_IO_FILE_complete): Add _IO_save_ptr. - * libio/ftello.c (ftello): Add offset from original buffer if - stream has pushed back characters. - * libio/ftello64.c (ftello64): Likewise. - * libio/iofgetpos.c (_IO_fgetpos): Likewise. - * libio/iofgetpos64.c (_IO_fgetpos64): Likewise. - * libio/ioftell.c (_IO_ftell): Likewise. - * libio/genops.c (_IO_switch_to_main_get_area): Swap _IO_read_ptr - and _IO_save_ptr. - (_IO_switch_to_backup_area): Save _IO_read_ptr in _IO_save_ptr. - (_IO_default_pbackfail): Only stored push back character in original - buffer if it is the same as the one in the file at this position. - * libio/iofclose.c: Free backup buffer if one is available. - * libio/ioseekoff.c (_IO_seekoff): Only remove pushback buffer if - mode!=0. +1999-03-13 Mark Kettenis - * strdlib/strtol.c (strtol): Handle 0x... string for base!=0 correctly. + * sysdeps/generic/utmp_file.c (setutent_file): Make sure the just + opened file is closed on exec. + * login/utmp_daemon.c (setutent_daemon): Likewise for the just + opened socket. - * time/strftime.c [_LIBC] (ampm): Use tp->tm_hour not hour12. +1999-03-13 Andreas Jaeger - * stdio-common/vfscanf.c: Fix reading (nil) for %p. + * manual/llio.texi (File Position Primitive): Reformat @end + command. Patch by Bruno Haible [PR libc/1020]. -1998-09-18 Mark Kettenis +1999-03-14 Ulrich Drepper - * login/programs/pt_chown.c (more_help): Correct message that - describes the purpose of the program. + * nscd/nscd_getpw_r.c (nscd_getpw_r): Set `errno' correctly if no + entry is found. + * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise. + * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise. - * login/openpty.c: Do not include pty-private.h. - (pts_name): New function. Return name of slave pseudo terminal in - an allocated buffer if necessary. - (openpty): Use pts_name to get name of the slave end of the pseudo - terminal pair. + * locale/programs/localedef.c (main): Initialize `cat' to please + the compiler. - * sysdeps/unix/grantpt.c (grantpt): Free buffer allocated by - pts_name before return. +1999-03-14 Roland McGrath -1998-09-18 11:15 Ulrich Drepper + * hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Under O_NOFOLLOW, + check for root-owned symlinks and reject them too. - * math/math.h: Define __NO_MATH_INLINES if __STRICT_ANSI__. +1999-03-09 Andreas Schwab -1998-09-18 Andreas Jaeger + * stdio-common/printf_fphex.c: Move to ... + * sysdeps/generic/printf_fphex.c: ... here. Fix exponent of + extended precision number. + * sysdeps/m68k/printf_fphex.c: New file. - * login/openpty.c: Include pty-private.h instead of - pty-internal.h. +1999-03-09 Andreas Schwab -1998-09-09 Philip Blundell + * manual/stdio.texi: Fix typos. - * sysdeps/arm/dl-machine.h (elf_machine_lazy_rel): Optimise a bit. +1999-03-09 Ulrich Drepper -1998-09-07 Philip Blundell + * version.h (VERSION): Bump to 2.1.1. - * sysdeps/arm/dl-machine.h (RTLD_START): Keep in step with - recent ld.so changes. - (elf_machine_runtime_setup): Correct behaviour when profiling. +1999-03-09 Thorsten Kukuk -1998-09-17 19:34 Ulrich Drepper + * nis/ypclnt.c: Try only twice to connect to NIS server. - * sysdeps/unix/sysv/sysv4/bits/utsname.h: Fix typo. - Patch by John Tobey . +1999-03-09 Roland McGrath -1998-09-17 Mark Kettenis + * hurd/hurdexec.c (_hurd_exec): Add missing `else' in last change. - * login/pty-internal.h: Removed. Moved constants related to the - `grantpt' helper program protocol to ... - * login/pty-private.h: ... here. New file. - * sysdeps/unix/sysv/linux/ptsname.c (ptsname): Reimplementation - to make the function work with kernels >= 2.1.115. - * sysdeps/unix/sysv/linux/getpt.c (getpt): Reimplement to call BSD - version if using the cloning device fails. - * sysdeps/unix/sysv/linux/grantpt.c: New file. - * sysdeps/unix/sysv/linux/unlockpt.c: General cleanup. - * sysdeps/unix/bsd/getpt.c (__getpt): Largely rewritten to allow - use by Linux specific code. - * sysdeps/unix/bsd/unlockpt.c: General cleanup. - * sysdeps/unix/grantpt.c: Largely rewritten. (pts_name): New - function. (grantpt): Use pts_name, check group and permission - mode in addition to owner. Try to set the owner, group and - permission mode first without invoking the helper program. - * login/programs/pt_chown.c: Largely rewritten. Add argp and - internationalization support. Use symbolic constants instead of - hardwired numbers for permission mode. - * sysdeps/unix/bsd/ptsname.c: New file. +1999-03-09 Andreas Schwab -1998-09-17 22:04 Tim Waugh + * stdlib/strtod.c (round_and_return): Fix rounding of denormals. + (DENORM_EXP): New define. Use it as the exponent for a denormal. + * stdlib/strtold.c: Moved to ... + * sysdeps/generic/strtold.c: ... here. + * sysdeps/m68k/strtold.c: New file. - * posix/wordexp-test.c: Undo last change. +1999-03-09 Andreas Schwab - * posix/wordexp.c: Undo last change. + * stdio-common/printf_fphex.c (__printf_fphex): Print no decimal + point if the precision is zero, even if the mantissa is non-zero. -1998-09-16 Ulrich Drepper +1999-03-09 Roland McGrath - * nscd/grpcache.c (save_grp): Partly undo last change. + * sysdeps/mach/hurd/ioctl.c (__ioctl): Move the marshalling of the + arguments into the request message buffer inside `send_rpc' + subfunction. We must repeat the marshalling when retrying the RPC + after a SIGTTOU delivery. - * nscd/pwdcache.c (save_pwd): Undo last change. + * hurd/ctty-input.c (_hurd_ctty_input): Use early short-circuit code + path when there is no ctty port. + * hurd/ctty-output.c (_hurd_ctty_output): Likewise. + Move sigstate check inside loop so we recheck after handling a signal. -1998-09-14 Andreas Jaeger +1999-03-05 Andreas Jaeger - * sysdeps/mach/hurd/dl-cache.c (_dl_unload_cache): New dummy - function. Reported by okuji@kuicr.kyoto-u.ac.jp [PR libc/789]. + * manual/llio.texi (Open-time Flags): Clarify that O_SHLOCK and + O_EXLOCK are BSD extensions. + Reported by Jochen Voss [PR libc/985]. -1998-09-15 David S. Miller +1999-03-08 Ulrich Drepper - * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): - Add profiling support. - (TRAMPOLINE_TEMPLATE): New macro. - (ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that. - (RTLD_START): Prettify, and set __libc_stack_end properly. - (elf_machine_rela) [R_SPARC_COPY]: Remove RTLD_BOOTSTRAP ifndef - and check for sym being NULL instead. - * sysdeps/sparc/sparc64/addmul_1.S: Adjust to allocate 192 bytes - of stack space. - * sysdeps/sparc/sparc64/lshift.S: Likewise. - * sysdeps/sparc/sparc64/mul_1.S: Likewise. - * sysdeps/sparc/sparc64/rshift.S: Likewise. - * sysdeps/sparc/sparc64/submul_1.S: Likewise. - * sysdeps/sparc/sparc64/elf/crtbegin.S: Likewise and remove old - MEDANY code model %g4 usage. - * sysdeps/sparc/sparc64/elf/crtend.S: Likewise and remove old - MEDANY code model %g4 usage. - * sysdeps/sparc/sparc64/elf/start.S: Rework to not use old FULLANY - code model address formation. - * sysdeps/sparc/sparc64/dl-machine.h: Don't include link.h, do - include elf/ldsodefs.h - (DT_SPARC): Remove. - (elf_machine_matches_host): It is now EM_SPARCV9. - (elf_machine_dynamic): Clean up to remove ugly cast. - (elf_machine_fixup_plt): Rework for new V9 ABI, add support for - new PLT formats. - (elf_machine_rela): Don't do anything at all for R_SPARC_NONE. - Prettify rest of function. - [R_SPARC_COPY]: Check for sym being NULL. - [R_SPARC_32]: Handle it. - [R_SPARC_H44, R_SPARC_M44, R_SPARC_L44]: Handle them for the - MEDMID code model. - [R_SPARC_HH22, R_SPARC_HM10, R_SPARC_LM22]: Handle them for the - MEDANY code model. - [R_SPARC_NONE]: Remove this case, as it is now checked earlier. - (elf_machine_runtime_setup): Rewrite for new V9 ABI plt formats. - Add profiling support. - (TRAMPOLINE_TEMPLATE): New macro. - (ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that. - (RTLD_START): Prettify and set __libc_stack_end. - * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (SA_SIGINFO): - Define. - * sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Set to 64. - (SIGRTMIN, SIGRTMAX, __SIGRTMIN, __SIGRTMAX): Define. - * sysdeps/unix/sysv/linux/sparc/sparc32/brk.c (__brk): Remove - unused variable scratch. - * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c - (__syscall_rt_sigaction, __rt_sigreturn_stub, __sigreturn_stub): - Declare. - (__sigaction): Rewrite rt_sigaction case to pass correct sigreturn - stub to rt_sigaction syscalls. Rewrite non-rt case to use correct - old format kernel sigaction structures. - * sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h: Move... - * sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: to here. - * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Remove ucontext.h - * sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Fix - ucontext include. - (_JMPBUF_UNWINDS): Define. - * sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Declare - statfs64 structure, which is exactly the same as the normal one. - * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Allocate 192 bytes - of stack. Use correct syscall trap number. Add branch prediction - settings to branch instructions. Remove old MEDANY code model %g4 - referneces for non-PIC. - * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add - __libc_longjmp and __libc_siglongjmp strong aliases. - * sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c (__readdir64): - Also define to __no__readdir64_decl around readdir.c inclusion. - (__readdir64): Add strong alias. - * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: New file. - * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (getrlimit): - Set strong and weak names properly. + * manual/signal.texi (Termination in Handler): Correct example. + Install default handler before reraising the signal. + Patch by Jochen Voss . -1998-09-16 11:25 Andreas Schwab +1999-03-08 Roland McGrath - * manual/Makefile (AWK): Default to gawk if standalone. + * hurd/hurdexec.c (_hurd_exec): Handle ARGV or ENVP parameters being + null, in which case send an empty string. -1998-09-15 Andreas Schwab +1999-03-02 Mark Kettenis - * Makefile (distribute): Undo last change. - * Make-dist (+tsrc) [not subdir]: Also include indirection headers - for sysdep headers. - (+subdir-headers): Removed, unused. + * Makerules (LD_FLAGS-c.so): Add -u __register_frame to force the + backward compatibility EH functions to be linked when using + gcc-2.8.1. Patch by Zack Weinberg . -1998-09-15 Andreas Schwab +1999-03-08 Andreas Schwab - * stdio-common/Makefile ($(inst_includedir)/bits/stdio_lim.h): Use - $(do-install). + * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Undo last change. + /dev/pts status may change during runtime. -1998-09-15 Andreas Schwab +1999-03-08 Andreas Schwab - * Makerules ($(+sysdir_pfx)sysd-Makefile): Don't check for - absolute name in $(config-sysdirs), can never happen. - ($(+sysdir_pfx)sysd-rules): Likewise. - * Makeconfig (full-config-sysdirs): Likewise. - (all-Subdirs-files): Prepend $(..). + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Undo last + change. /dev/pts status can change during runtime. - * configure.in: Don't check for absolute name in $add_ons_pfx, can - not happen. Let --enable-add-ons=yes work if no add-ons actually - exist. +1999-03-07 Thorsten Kukuk -1998-09-15 Andreas Schwab + * sunrpc/svc_tcp.c (readtcp): go into fatal error state if + poll reports error. + * nis/nss_nisplus/nisplus-parser.c: Avoid duplicate strlen calls, + add some more sanity checks. + * nis/nss_nisplus/nisplus-pwd.c: Include nisplus-parser.h for + parser prototype. - * Rules ($(common-objpfx)bits/stdio_%.h): Remove extra - continuations in command. +1999-03-05 Thorsten Kukuk -1998-09-15 Andreas Schwab + * sunrpc/rpc/xdr.h: Add x_getint32/x_putint32 to xdr_ops, + change XDR_GETINT32/XDR_PUTINT32 to sue new functions. + * sunrpc/xdr_mem.c: Add xdrmem_getint32, xdrmem_putint32. + * sunrpc/xdr_rec.c: Add xdrrec_getint32, xdrrec_putint32. + * sunrpc/xdr_sizeof.c: Add x_putint32, add dummy function + for x_getint32. + * sunrpc/xdr_stdio.c: Add xdrstdio_getint32, xdrstdio_putint32. + * nis/nis_print.c: Fix ctime argument for platforms where + sizeof (time_t) != sizeof (int). - * libio/oldstdfiles.c (_IO_stdin_used): Update declaration. +1999-03-07 Mark Kettenis -1998-09-16 00:47 Tim Waugh + * sysdeps/unix/bsd/clock.c (timeval_to_clock_t): Use + CLOCKS_PER_SEC instead of CLK_TCK. - * posix/wordexp-test.c: If expansion or substitution occurs - anywhere in a word, the entire word is subject to field-splitting. +1999-03-05 Ulrich Drepper - * posix/wordexp.c (parse_glob): Look for end of word instead of - end of field when deciding what to glob. - (field_split_word): New function, now the only place where - field-splitting is performed. - (parse_dollars): New parameter - tell the caller if - field-splitting should be performed on this word. + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Remember + whether /dev/pts is available. + * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Fix handling of + dev_pts_available. - * posix/wordexp-test.c (testit): Only call wordfree if wordexp - succeeded (or failed with WRDE_NOSPACE). + * posix/globtest.sh: Make common_objpfx path absolute and and db2 + and hesiod directory to library path [PR libc/1007]. -1998-09-15 19:53 1998 Tim Waugh +1999-03-05 Andreas Jaeger - * posix/wordexp.c (wordexp): Don't convert IFS characters to - blanks. + * resolv/inet_addr.c (inet_aton): Don't allow componets > + 255. Patch by Bruno Haible [PR libc/1010]. - * posix/wordexp-test.c: Words not the result of expansion or - substitution should remain unchanged. +1999-03-05 Geoff Keating -1998-09-15 Ulrich Drepper + * sysdeps/powerpc/dl-machine.c (__elf_machine_runtime_setup): + DT_PLTGOT has already been relocated. + (__elf_machine_fixup_plt): Likewise. + Minor cleanups. - * elf/dynamic-link.h [!ELF_MACHINE_PLTREL_OVERLAP] - (_ELF_DYNAMIC_DO_RELOC): Correctly set ranges[1].lazy. +1999-03-04 Roland McGrath -1998-09-15 Andreas Jaeger + * hurd/hurdlookup.c (__hurd_file_name_lookup): Comment fix. - * stdio-common/Makefile: Include Makeconfig so that - $(inst_includedir) is defined. +1999-03-03 Ulrich Drepper -1998-09-14 Andreas Schwab + * wcsmbs/wcsmbsload.c (add_slashes): Rename to norm_add_slashes + and fold string to uppercase [PR libc/1005]. - * io/pwd.c: Include . +1999-03-03 Andreas Schwab -1998-09-15 08:00 Ulrich Drepper + * elf/dl-load.c (lose): Fix return type. - * nscd/pwdcache.c (save_pwd): Correct copying. - * nscd/grpcache.c (save_grp): Likewise. +1999-03-03 Roland McGrath -1998-09-14 23:36 Ulrich Drepper + * sysdeps/mach/hurd/bits/fcntl.h + [__USE_GNU] (O_NOFOLLOW, O_DIRECTORY): New macros. + * hurd/hurdlookup.c (__hurd_file_name_lookup): If O_NOFOLLOW is set, + set O_NOTRANS as well. + (__hurd_file_name_lookup_retry): At successful end of lookup, + if O_NOFOLLOW set, io_stat the resultant port and fail with ENOENT if + it is a translated node not owned by root. + (__hurd_file_name_lookup): If O_DIRECTORY is set, put a trailing slash + on the file name passed to LOOKUP. - * nscd/pwdcache.c (save_pwd): Rewrite to use only one malloc call. - (free_pwd): Adjust for this change. - * nscd/grpcache.c (save_grp): Rewrite to use only one malloc call. - (free_grp): Adjust for this change. +1999-03-02 Ulrich Drepper -1998-09-14 Ulrich Drepper + * manual/time.texi (High Resolution Timer): Correct computation in + example. Reported by jjf@devel.cemsys.com. - * nscd/pwdcache.c (cache_pwdinit): Allocate uidtbl of correct size. +1999-03-02 Philip Blundell -1998-09-14 15:29 Ulrich Drepper + * sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): DT_PLTGOT + entry is already relocated. - * stdio-common/Makefile (headers): Remove bits/stdio_lim.h. - (install-others): Add bits/stdio_lim.h. - Add rule to install bits/stdio_lim.h. +1999-03-01 Andreas Jaeger - * sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: New file. + * resolv/res_hconf.c (parse_line): Skip empty lines. Bug reported + by Marcus Harnisch . - * Makefile (distribute): Add include/sys/mman.h. +1999-03-01 Andreas Jaeger - * sysdeps/powerpc/Dist: Add dl-machine.c and dl-start.S. - * sysdeps/unix/sysv/linux/Dist: Add sys/sendfile.h. - * sysdeps/unix/sysv/linux/arm/Dist: Add init-first.h. + * sysdeps/i386/sys/ucontext.h (ucontext): Rename field uc_links to + uc_link which is the right name according to Unix98. + Reported by Craig Metz [PR libc/1001]. + * sysdeps/arm/sys/ucontext.h (ucontext): Likewise. + * sysdeps/m68k/sys/ucontext.h (ucontext): Likewise. + * sysdeps/mips/sys/ucontext.h (ucontext): Likewise. + * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (ucontext): Likewise. + * sysdeps/unix/sysv/linux/i386/sys/ucontext.h (ucontext): Likewise + * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (ucontext): Likewise. - * grp/initgroups.c: Include stdlib.h. - Patch by Zack Weinberg. +1999-02-25 Andreas Schwab -1998-09-14 22:46 Tim Waugh + * manual/libc.texinfo: Wrap @top node inside @ifnottex instead of + @ifinfo. - * posix/wordexp-test.c: Chet Ramey confirmed that bash's behaviour - for field-splitting :abc: is correct, and that two fields should - result. Revert tests to reflect this. +1999-02-25 Andreas Schwab - * posix/wordexp.c (w_emptyword): Remove function. - (exec_comm): Don't use w_emptyword. - (parse_param): Likewise. + * iconvdata/Makefile: Always include iconv-rules, but disable rule + to regenerate it if avoid-generated. -1998-09-14 15:00 Ulrich Drepper + * Makeconfig: Always include sys-dirs, but disable rule to + regenerate it when avoid-generated. - * sysdeps/arm/fpu/Dist: Moved to... - * sysdeps/arm/Dist: ...here. - * sysdeps/posix/Dist: Removed. - * sysdeps/unix/sysv/linux/Dist: Move sys/debugreg.h to... - * sysdeps/unix/sysv/linux/i386/Dist: ...here. + * sysdeps/unix/Makefile: Put `ifndef avoid-generated' only around + rule to generate sysd-syscalls. -1998-08-26 Geoff Keating + * elf/Makefile (generated): Remove $(objpfx) from names. - * csu/init.c: Don't drag _IO_2_1_stdin_ into the executable. +1999-02-28 Mark Kettenis -1998-09-14 11:26 Ulrich Drepper + * sysdeps/mach/hurd/getsockname.c (getsockname): Set *LEN to the + actual length if the adress length is smaller than the input + value. Change type of *LEN paramater to socklen_t. + * sysdeps/mach/hurd/getpeername.c (getpeername): Likewise. + * sysdeps/mach/hurd/accept.c (accept): Likewise. + * sysdeps/mach/hurd/recvfrom.c (recvfrom): Likewise. + * sysdeps/mach/hurd/sendto.c (sendto): Change type of ADDR_LEN + paramater to socklen_t. - * wcsmbs/wcsmbs-tst1.c: Include stdlib.h. +1999-02-28 Roland McGrath -1998-09-14 Thorsten Kukuk + * hurd/hurd-raise.c (_hurd_raise_signal): Send "poll request" + msg_sig_post RPC (with SIGNO=0), rather than generating signal (again) + with the RPC. - * libc-work/nis/nss_nisplus/nisplus-service.c - (_nss_nisplus_parse_servent): Convert port in network byte order. +1999-02-27 Roland McGrath -1998-09-14 07:53 -0400 Zack Weinberg + * sysdeps/mach/getsysstats.c (__get_nprocs_conf, __get_nprocs, + __get_phys_pages): Cast &HBI to silence warning. - * stdlib/stdlib.h: Add a switch, __need_malloc_and_calloc, - to provide only malloc and calloc. - * include/stdlib.h: Support the above. - * string/bits/string2.h: Use __need_malloc_and_calloc when - including stdlib.h. - (__string2_1bptr_p): Avoid -Wbad-function-cast warnings. + * hurd/Makefile (routines): Add hurdchdir and hurdfchdir. + * hurd/hurdchdir.c: New file. + * hurd/hurdfchdir.c: New file. + * sysdeps/mach/hurd/chroot.c: Call + _hurd_change_directory_port_from_name to do the work. + * sysdeps/mach/hurd/chdir.c: Likewise. + * sysdeps/mach/hurd/fchdir.c: Call + _hurd_change_directory_port_from_fd to do the work. + * hurd/fchroot.c: Likewise. + * hurd/hurd.h: Declare them. - * iconvdata/iso-2022-jp.c: Include . - * iconvdata/iso646.c: Include . +1999-02-27 Ulrich Drepper -1998-09-14 07:51 -0400 Zack Weinberg + * elf/dl-load.c (lose): Add more comments to explain the `why'. + (_dl_map_object): Remove redundant test. - * sunrpc/rpc_cout.c: Add braces around ambiguous else. - * sysdeps/libm-ieee754/w_pow.c: Likewise. - * sysdeps/libm-ieee754/w_powf.c: Likewise. - * sysdeps/libm-ieee754/w_powl.c: Likewise. +1999-02-27 Roland McGrath -1998-09-14 07:57 -0400 Zack Weinberg + * hurd/hurdselect.c (_hurd_select): When bailing for bogus fd, don't + try to _hurd_port_free a lower-numbered descriptor that was not in any + fd_set. - * stdio-common/stdio_lim.h.in: New file. All parameters - are adjustable at build time. - * Rules: Add a rule to build bits/stdio_lim.h from - stdio-common/stdio_lim.h.in. (It has to be in Rules so that - all subdirectories know how to make the file. It can't be - in Makerules because then it gets built at top level and the - dependencies are wrong.) +1999-02-26 Andreas Jaeger - * stdio-common/Makefile (distribute): Add stdio_lim.h.in. - * sysdeps/unix/sysv/linux/Makefile: Delete rules to make - stdio_lim.h. - * sysdeps/unix/sysv/linux/stdio_lim.h.in: Removed. - * sysdeps/unix/sysv/linux/Dist: Take out stdio_lim.h.in. - * sysdeps/posix/Makefile: Removed. - * sysdeps/posix/mk-stdiolim.c: Removed. - * sysdeps/generic/bits/stdio_lim.h: Removed. + * wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Add prototype + declaration for ____wcstod_l_internal. -1998-09-12 Andreas Schwab + * stdlib/strtold.c [__NO_LONG_DOUBLE_MATH]: Include for + __strtod_internal prototype. + * stdlib/strtold_l.c [__NO_LONG_DOUBLE_MATH] + (____strtold_l_internal): Add prototype declaration. + (__strtold_l): Call correct function. - * argp/argp-help.c: Fixup indentation. - * nss/nss_files/files-alias.c: Quiet -Wparentheses warning. - * resolv/nss_dns/dns-network.c: Likewise. - * resolv/res_send.c: Likewise. - * rt/aio_cancel.c: Likewise. - * rt/aio_misc.c: Likewise. +1999-02-24 Ulrich Drepper -1998-09-12 Andreas Schwab + * elf/elf.h: Add 32bit HPPA definitions. - * Makefile (install-symbolic-link): Remove the link list file at last. - * Makerules (install-clean-symbolic-link-list): Removed. +1999-02-23 Andreas Schwab -1998-09-12 Andreas Schwab + * malloc/malloc.c (mALLOC_SET_STATe): Handle the case where a + non-checked heap is restored when malloc checking was requested by + the user. + (struct malloc_state): Add using_malloc_checking. + (MALLOC_STATE_VERSION): Increment minor. + (using_malloc_checking, disallow_malloc_check): New variables. + (__malloc_check_init): Use them. + (mALLOC_GET_STATe): Use mALLOc to allocate the malloc_state, so + that it can the chunk is properly instrumented when malloc + checking is enabled. Set the new using_malloc_checking field. + (malloc_hook_ini): Correct signature when _LIBC is not defined. - * timezone/tst-timezone.c: Print time in UTC to get consistent - output. +1999-02-23 Andreas Schwab -1998-09-12 Andreas Schwab + * sysdeps/unix/sysv/linux/i386/dl-librecon.h + (DISTINGUISH_LIB_VERSIONS): Don't relocate DT_STRTAB a second + time. - * elf/rtld.c (_dl_rpath): Removed. - * elf/dl-support.c (_dl_path): Removed. - * elf/Makefile ($(objpfx)ld.so): Don't pass -rpath. - (CFLAGS-dl-support.c): Removed. + * elf/rtld.c (dl_main): Rename paths_initialized to rtld_is_main. + Don't call elf_get_dynamic_info and _dl_setup_hash a second time + if ld.so is the main program. - * elf/dl-load.c (env_path_list): Renamed from fake_path_list. All - uses changed. - (_dl_init_paths): Always set env_path_list from LD_LIBRARY_PATH, - instead of appending it to the main map's rpath info. - (_dl_map_object): Consistently use LD_LIBRARY_PATH after all - DT_RPATHs. This makes it effective again. - (decompose_rpath): Remove second parameter, callers changed. - (fillin_rpath): Allocate enough space in curwd. - (expand_dynamic_string_token): Cope with get_origin returning -1. +1999-02-23 Ulrich Drepper -1998-09-14 Thorsten Kukuk + * stdio-common/vfprintf.c (vfprintf): If precision or width is too + large for work_buffer, allocate new buffer. + (printf_unknown): Likewise. [PR libc/988] - * libc-work/nis/nss_compat/compat-pwd.c: Add support for - passwd.adjunct. +1999-02-22 Ulrich Drepper - * nis/nss_nis/nis-pwd.c (_nss_nis_getpwent_r): Correct test for - invalid password. + * sysdeps/unix/sysv/linux/ttyname.c: Use __xstat and __fxstat + instead of stat and fstat. + * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise. -1998-09-13 18:06 Ulrich Drepper +1999-02-23 Andreas Schwab - * locale/programs/locale.c: Update dates. + * elf/dl-error.c (_dl_signal_cerror): New function. + (_dl_signal_error): Don't call receiver function. + * elf/dl-lookup.c (_dl_lookup_symbol): Call _dl_signal_cerror + instead of _dl_signal_error when reporting references to undefined + symbols or versions. + (_dl_lookup_versioned_symbol): Likewise. + (_dl_lookup_versioned_symbol_skip): Likewise. + * elf/dl-version.c (match_symbol): Likewise. -1998-09-13 Mark Kettenis + * elf/ldsodefs.h: Declare _dl_signal_cerror. - * sysdeps/generic/bits/types.h: Include . Make sure - size_t is defined. Some reordering of definitions to make - maintaining this file in parallel with the linux-specific file easier. +1999-02-22 Ulrich Drepper -1998-09-13 Ulrich Drepper + * misc/getttyent.c (getttyent): Release lock on stream later to + also protect global variable zapchar. - * io/pwd.c (main): Add call to mtrace. + * sysdeps/unix/sysv/linux/clock.c: Don't test return value of + __times [PR libc/990]. - * malloc/mtrace.pl: Quote @ in string. +1999-02-21 David S. Miller -1998-09-13 19:25 Tim Waugh + * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Fix + parentheses in Feb 2 changes. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise. - * posix/wordexp.c (parse_arith): Fix memory leaks. - (exec_comm): Likewise. - (parse_param): Likewise. - (wordexp): Likewise. - (exec_comm): Reduce number of function return points. - (parse_param): Likewise. - (wordexp): Likewise. +1999-02-21 Andreas Jaeger -1998-09-13 14:53 Tim Waugh + * sysdeps/generic/glob.c (glob): Save previous errno. - * posix/wordexp-test.c: Field-splitting ':abc:' with IFS=: should - yield three fields, not two. Test both parameter expansion and - command substitution for correct field-splitting behaviour. +1999-02-21 Ulrich Drepper - * posix/wordexp.c (w_emptyword): New function. - (parse_param): Use it. - (exec_comm): Likewise, for consistency with the way parse_param - splits fields. - (parse_param): Fix some memory leaks. + * sysdeps/generic/glob.c (glob): Enlarge buffers for reentrant + lookup functions if it is too small. -1998-09-13 18:04 Geoff Keating +1999-02-20 Ulrich Drepper - * sysdeps/powerpc/dl-machine.c (PPC_DCBST,PPC_SYNC,PPC_ISYNC,PPC_ICBI): - Don't mark asm `volatile'. - (__elf_machine_runtime_setup): Clear the last partial block in the PLT - from the data cache too. Assume it isn't in the instruction cache yet. - (__elf_machine_fixup_plt): Clear the modified address from the caches. + * elf/dl-deps.c (_dl_map_object_deps): Don't add dummy objects created + for tracing to the scope lists. + * elf/do-lookup.h: Remove test for l_opencount == 0 after above change. + DT_SYMTAB is always available according to ELF spec. -1998-09-12 Mark Kettenis + * elf/dl-lookup.c (_dl_lookup_symbol_skip): Before first do_lookup + call test whether there is any scope left. + (_dl_lookup_versioned_symbol_skip): Likewise. - * sysdeps/generic/segfault.c (install_handler): Install signal - handler with SA_ONSTACK instead of setting the stack flags to - SS_ONSTACK. Do not install handler for SIGSTKFLT if it is not - defined. + * elf/Makefile (distribute): Add do-lookup.h. + * elf/do-lookup.h: New file. Split out from dl-lookup.c. + * elf/dl-lookup.c: Move do_lookup function in separate file and + include the file twice, for handling versioning and without it. -1998-09-12 14:24 -0400 Zack Weinberg + * sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): DT_PLTGOT + entry is already relocated. + * sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Likewise. + * sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise. + * sysdeps/mips/dl-machine.h (elf_machine_runtime_setup): Likewise. + * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): + Likewise. + * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup): + Likewise. + * sysdeps/mips/mips64/dl-machine.h (elf_machine_runtime_setup): + Likewise. - * signal/signal.h: Fix multiple inclusion guard to cover the - entire file. - * wcsmbs/wchar.h: Remove prototype of internal function - __mbsrtowcs. - * sysdeps/i386/i486/bits/string.h (memchr): Don't do - arithmetic on `void *'. + * elf/dynamic-link.h (elf_get_dynamic_info): Take new argument with + load address. Relocate d_ptr in DT_DTRTAB, DT_SYMTAB, DT_RELA, DT_REL, + DT_JMPREL, DT_PLTGOT, and DT_VERSYM l_info entry. + (_ELF_DYNAMIC_DO_RELOC): Take extra argument which specifies whether + rel and rela relocations can both happen and skip one test if this + is not possible. + (ELF_DYNAMIC_DO_RELA, ELF_DYNAMIC_DO_REL): Call _ELF_DYNAMIC_DO_RELOC + appropriately. + * elf/dl-addr.c (_dl_addr): DT_SYMTAB and DT_STRTAB entries are + already relocated. + * elf/dl-deps.c (_dl_map_object_deps): DT_STRTAB entry is already + relocated. + * elf/dl-load.c (_dl_init_paths): DT_STRTAB entry is already relocated. + (_dl_map_object_from_fd): Call elf_get_dynamic_info with new argument. + (_dl_map_object): DT_STRTAB entry is already relocated. + * elf/dl-lookup.c (do_lookup): DT_STRTAB and DT_SYMTAB entries are + already relocated. + * elf/dl-reloc.c (_dl_relocate_object): DT_STRTAB entry is already + relocated. + * elf/dl-runtime.c (fixup): DT_SYMTAB, DT_STRTAB, DT_JMPREL, and + DT_VERSYM entries are already relocated. + (profile_fixup): Likewise. + * elf/dl-version.c: Rename VERSTAG macro into VERSYMIDX. Replace + all users. + (match_symbol): DT_STRTAB entry is already relocated. + (_dl_check_map_versions): Likewise. Also fo DT_VERSYM. + * elf/do-rel.h (elf_dynamic_do_rel): reladdr is now assumed to be + relocated already. DT_SYMTAB and DT_VERSYM entries are also relocated. + * elf/rtld.c (_dl_start): Pass extra argument to elf_get_dynamic_info. + (find_needed): DT_STRTAB entry is already relocated. + (dl_main): Pass extra argument to elf_get_dynamic_info. + DT_STRTAB entry is already relocated. + * sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): DT_JMPREL and + DT_PLTGOT entries are already relocated. + (elf_machine_rela): Likewise for DT_SYMTAB. + * sysdeps/arm/dl-machine.h (elf_machine_rel): DT_STRTAB is already + relocated. + * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise. + * sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Likewise. + * sysdeps/mips/dl-machine.h (elf_machine_got_rel): Likewise. + (elf_machine_got_rel): Likewise for DT_SYMTAB and DT_STRTAB. + * sysdeps/mips/mips64/dl-machine.h: Likewise. -1998-09-12 01:09 Tim Waugh + * grp/initgroups.c (initgroups): If function in current module was + successful don't stop but continue to process to get all the groups. - * posix/wordexp-test.c: Fix wrong tests. Add new tests. + * elf/dl-load.c (_dl_map_object_from_fd): Use global + _dl_pf_to_proot array to convert p_flags value. + * elf/dl-reloc.c (_dl_relocate_object): Likewise. - * posix/wordexp.c (wordexp): Perform word-splitting instead of - field-splitting here. - (wordexp): If out of memory mid-word, free the word (but still - leave pwordexp alone for caller to see). - (parse_param): Allow for zero-length fields (smarter checking of - memory allocation failure). - (w_addword): Convert NULL words to "". - (wordexp): Convert left-over IFS characters to blanks (like bash). + * elf/dynamic-link.h (elf_get_dynamic_info): Use memset instead of + loop to clear `info'. -1998-09-11 Ulrich Drepper + * sysdeps/i386/i486/bits/string.h: If fill byte is constant let gcc + do the work and don't use inline assembler. - * configure.in: Use test -f instead of test -e. - Patch by John Tobey . +1999-02-19 Ulrich Drepper - * sysdeps/unix/sysv/sysv4/solaris2/sparc/sys/trap.h: New file. - * sysdeps/unix/sysv/sysv4/solaris2/sys/syscall.h: New file. - * sysdeps/unix/sysv/sysv4/solaris2/bits/sigstack.h: New file. - * sysdeps/unix/sysv/linux/sigstack.c: Fix typo. - * sysdeps/unix/sysv/sysv4/solaris2/sigwaitinfo.c: Fix typo. - * sysdeps/unix/sysv/sysv4/solaris2/sparc/sys/ucontext.h: New file. - * sysdeps/unix/sysv/sysv4/solaris2/sys/param.h: New file. - Patches by John Tobey . + * elf/ldsodefs.h (_dl_signal_error): Mark as __noreturn__. + * elf/dl-load.c (lose): Make it a function at the toplevel, mark as + noreturn, and prevent it from being inlined. + Define LOSE appropriately. + (_dl_map_object_from_fd): Compare all bytes in e_ident at once. + Optimize decoding of p_flags for certain platforms. - * time/strftime.c (my_strftime): Delay use of *tp values until - latest possible point to allow partly initialized structures - (e.g., from strptime). +1999-02-19 Philip Blundell - * iconvdata/Makefile (modules): Add ISO_10367-BOX, MAC-IS, NATS-DANO, - and NATS-SEFI. - Define *-routines variables for new modules. - (distribute): Add .c files for new modules. - (awk-generated-headers): Add iso_10367-box.h, mac-is.h, nats-dano.h, - and nats-sefi.h. - Add rules for header generation. - * iconvdata/gconv-modules: Add entries for new modules. - * iconvdata/iso_10367-box.c: New file. - * iconvdata/mac-is.c: New file. - * iconvdata/nats-dano.c: New file. - * iconvdata/nats-sefi.c: New file. + * Makeconfig (link-libc): When doing a static link, make sure that + libgcc.a is included both before and after libc.a. -1998-04-30 18:20 H.J. Lu +1999-02-18 Thorsten Kukuk - * elf/dl-load.c (_dl_init_paths): Don't check the dynamic - loader if PIC is not defined. + * nis/nss_compat/compat-spwd.c: Fix handling of default values for + sp_warn, sp_inact, sp_expire and sp_flag. -1998-09-11 Ulrich Drepper +1999-02-18 Ulrich Drepper - * iconvdata/Makefile (modules): Add CSN_369103, CWI, DEC-MCS, - ECMA-CYRILLIC, GOST_19768-74, GREEK-CCITT, GREEK7, GREEK7-OLD, INIS, - INIS-8, INIS-CYRILLIC, ISO_6937-2, ISO_2033, ISO_5427, ISO_5427-EXT, - and ISO_5428. - Define *-routines variables for new modules. - (distribute): Add .c files for new modules. - (awk-generated-headers): Add csn_369103.h, cwi.h, dec-mcs.h, - ecma-cyrillic.h, gost_19768-74.h, greek-ccitt.h, greek7.h, - greek7-old.h, inis.h, inis-8.h, inis-cyrillic.h, iso_2033.h, - iso_5427.h, iso_5427-ext.h, and iso_5428.h. - Add rules for header generation. - * iconvdata/gconv-modules: Add entries for new modules. - * iconvdata/csn_369103.c: New file. - * iconvdata/cwi.c: New file. - * iconvdata/dec-mcs.c: New file. - * iconvdata/ecma-cyrillic.c: New file. - * iconvdata/gost_19768-74.c: New file. - * iconvdata/greek-ccitt.c: New file. - * iconvdata/greek7-old.c: New file. - * iconvdata/greek7.c: New file. - * iconvdata/inis-8.c: New file. - * iconvdata/inis-cyrillic.c: New file. - * iconvdata/inis.c: New file. - * iconvdata/iso6937-2.c: New file. - * iconvdata/iso_2033.c: New file. - * iconvdata/iso_5427-ext.c: New file. - * iconvdata/iso_5427.c: New file. - * iconvdata/iso_5428.c: New file. + * elf/link.h (link_map): Add l_dev and l_ino. + * elf/dl-load.c (_dl_map_object_from_fd): Test dev/ino of newly + loaded shared object with all loaded objects. Initialize l_ino + and l_dev in case it's new. + * elf/rtld.c (dl_main): Explain situation is l_dev/l_ino with main + object. + * elf/Makefile: Compile and run new test. + * elf/multiload.c: New file. - * iconvdata/iso6937.c (from_ucs4): Correct 0x80, 0x81, and 0xb9 - entries. - Convert U02dd correctly. + * nss/nsswitch.h (service_user): Change name field from const char * + to char[0]. + (name_database_entry): Likewise. + * nss/nsswitch.c (nss_parse_service_list): Adjust memory allocation + for change of `service_user'. + (nss_getline): Adjust memory allocation for change of + `name_database_entry'. -1998-09-11 20:46 Richard Henderson + * catgets/catgets.c: Correctly handle NLSPATH from environment + [PR libc/980]. - * sysdeps/alpha/dl-machine.h (_dl_start_user): Pass pointer to - _dl_main_searchlist not _dl_default_scope to _dl_init_next. - * sysdeps/sparc/sparc32/dl-machine.h (_dl_start_user): Likewise. - * sysdeps/sparc/sparc64/dl-machine.h (_dl_start_user): Likewise. + * io/Makefile (routines): Add lock64. + * io/Versions: Add lockf64 for GLIBC_2.1.1. + * sysdeps/generic/lockf64.c: New file. -1998-09-11 Ulrich Drepper +1999-02-16 Ulrich Drepper - * resolv/res_init.c (res_init): Handle resolv.conf file with only - one nameserver correctly. Patch by HJ Lu. + * string/bits/string2.h: Only use strncmp optimization if count + argument is constant. - * iconvdata/Makefile (modules): Add IEC_P27-1, BALTIC, ASMO_449, - and ANSI_X3.110. - Define *-routines variables for new modules. - (distribute): Add .c files for new modules. - (awk-generated-headers): Add iec_p27-1.h, baltic.h, and asmo_449.h. - Add rules for hedaer generation. - * iconvdata/gconv-modules: Add entries for new modules. Pretty print. - * iconvdata/ansi_x3.110.c: New file. - * iconvdata/asmo_449.c: New file. - * iconvdata/baltic.c: New file. - * iconvdata/iec_p27-1.c: New file. +1999-02-16 Roland McGrath - * iconvdata/t61.c (from_ucs4): Correct 0x23, 0x24, 0x80, and 0x81 - entries. - Convert U02dc correctly. + * sysdeps/mach/hurd/revoke.c: New file. - * math/atest-exp.c: Add parentheses to avoid gcc warnings. - * math/atest-exp2.c: Likewise. - * math/atest-sincos.c: Likewise. +1999-02-16 Ulrich Drepper - * posix/getopt.h: Don't define non-POSIX stuff unless _GNU_SOURCE - is defined. + * wctype/wctype.h (_ISwbit): Cast result of shift operations to + int to avoid warning about `ISO C restricts enumerator values to + range of `int''. -1998-09-11 10:51 Andreas Schwab +1999-02-16 Andreas Jaeger - * string/strcoll.c: Optimize a few expressions. - * string/strxfrm.c: Likewise. + * elf/dlfcn.h: Fix typo. + * sysdeps/generic/bits/dlfcn.h: Likewise. + * sysdeps/mips/bits/dlfcn.h: Likewise. -1998-09-02 Andreas Jaeger +1999-02-16 Ulrich Drepper - * manual/locale.texi: Fix typos. + * sysdeps/i386/i486/bits/string.h (memcmp): Correctly set flags + for the case N == 0. -1998-09-10 Ulrich Drepper + * db2/Makefile (distribute): Add LICENSE. - * stdlib/random_r.c (__setstate_r): Allow call with same state - array as currently used (PR libc/774). +1999-02-03 Jeff Bailey - * include/limits.h: Include gcc's header even if this file is - found more than once before it (PR libc/778) + * sysdeps/unix/make_errlist.c: Add i18n and copyright to + generated files. - * sysdeps/unix/sysv/linux/Makefile [subdir==misc] - (sysdep_headers): Remove sys/debugreg.h. - * sysdeps/unix/sysv/linux/i386/Makefile [subdir==misc] - (sysdep_headers): Add sys/debugreg.h. - * sysdeps/unix/sysv/linux/sys/debugreg.h: Removed. - * sysdeps/unix/sysv/linux/i386/sys/debugreg.h: New file. + * sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: Fix typo. - * stdio-common/tmpnam.c: Move local static variable buf to - toplevel and rename to tmpnam_buffer to ease debugging. - Patch by Joe Keane . - Optimize s == NULL case a bit. +1999-02-16 Ulrich Drepper - * iconvdata/testdate/ISO-8859-10..UCS2: Update after charmap - correction. + * time/mktime.c: Use ISO C form for function definitions and + remove unnecessary prototypes. -1998-09-10 12:51 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix typo in last change. - * resolv/res_init.c (res_init): Initialize _res.nscount and - _res.nsaddr.sin_port differently for the can when no loopback - is available to allow immediate timeout in non-networking environments. - Patch by Cristian Gafton . + * time/time.h: Avoid unneccesary #ifdef. -1998-09-10 Andreas Jaeger +1999-02-15 Geoff Keating - * localedata/charmaps/ISO-8859-10: Character 0xBD is HORIZONTAL - BAR and not EM DASH. - * localedata/charmaps/ISO_8859-SUPP: Likewise (character 0xD0). - * localedata/charmaps/ISO-8859-7: Likewise (character 0xAF). - Fixes PR libc/717. + * stdio-common/_itoa.c (_itoa): Correct parameters to + udiv_qrnnd_preinv. -1998-09-10 11:53 Ulrich Drepper +1999-02-14 Andreas Jaeger - * timezone/Makefile: Add rules to generate Asia/Tokyo zoneinfo files - for test. - * timezone/tst-timezone.c (tests): Fix typo in last patch. + * misc/sys/cdefs.h: Undefine __PMT since it might be defined + before (e.g. in glob.h). + Closes PR libc/959. - * time/tzfile.c (__tzfile_read): Handle case when there are no - transitions. Set __timezone based on computed offset. - * time/tzset.c (tzset_internal): Set __timezone before returning. +1999-02-16 Andreas Jaeger - * time/tzset.c (tzset_internal): Optimize handling of local string - copy. + * sysdeps/mips/fpu_control.h: Fix typo. + Patch by Sylvain Pion . + Remove __setfpucw. -1998-09-10 Andreas Jaeger +1999-02-10 Roland McGrath - * timezone/tst-timezone.c (tests): Add test for Asia/Tokyo (see PR - libc/776). + * sysdeps/mach/hurd/pipe.c (__pipe): Don't call __socket_shutdown on + the "unused" ends of the sockets. Let pipes be bidirectional. -1998-09-09 Benjamin Kosnik +1999-02-15 Ulrich Drepper - * math/libm-test.c (exp10_test): Adapt epsilons for powerpc. - (csqrt_test): Likewise. - * sysdeps/powerpc/bits/fenv.h: Add parens. + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Correct test for + invalid ai_flags. -1998-09-09 18:48 Ulrich Drepper +1999-02-15 Andreas Jaeger - * sysdeps/powerpc/dl-start.S (_start): Pass pointer to - _dl_main_searchlist not _dl_default_scope to _dl_init_next. - Patch by Benjamin Kosnik . + * manual/llio.texi (Waiting for I/O): Correct meaning. Patch by + Jochen Voss [PR libc/969]. -1998-09-09 Mark Kettenis + * manual/setjmp.texi (Non-Local Exits and Signals): Fix + typo. Patch by Jochen Voss [PR libc/970]. - * elf/dl-close.c (_dl_close): Don't free imap->l_origin if it is - the special `-1' pointer. +1999-02-15 Ulrich Drepper -1998-09-09 09:32 Ulrich Drepper + * string/Versions: Add __strverscmp to GLIBC_2.1.1. - * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Make function - inline. +1999-02-13 Andreas Schwab -1998-09-07 Paul Eggert + * misc/syslog.c (vsyslog): Remember errno for %m format. Fix + check for priority mask. - * time/mktime.c (__EXTENSIONS__): Define if not defined. - (_REENTRANT): Remove. It has undesirable consequences in - Solaris 2.6 (e.g. it turns off the putc macro). Defining - __EXTENSIONS__ makes localtime_r and gmtime_r visible, which - is what we want. - * time/strftime.c: Likewise. +1999-02-14 Ulrich Drepper -1998-09-08 Andreas Schwab + * resolv/netdb.h (AI_NUMERICHOST): Change to 4. + Reported by Craig Metz . - * elf/dl-error.c: Fix spelling. +1999-02-14 Andreas Jaeger -1998-09-08 Andreas Schwab + * stdio-common/Makefile (tests): tllformat added. - * stdlib/strfmon.c: Quiet -Wparentheses warnings. - * stdio-common/_itoa.c: Likewise. - * stdio-common/printf_fp.c: Likewise. - * stdio-common/vfscanf.c: Likewise. - * wcsmbs/wcstok.c: Likewise. - * sysdeps/generic/glob.c: Likewise. - * posix/getopt.c: Likewise. - * sysdeps/posix/getaddrinfo.c: Likewise. - * posix/wordexp.c: Likewise. - * io/ftw.c: Likewise. - * io/fts.c: Likewise. - * misc/getpass.c: Likewise. - * iconv/gconv_conf.c: Likewise. - * argp/argp-fmtstream.c: Likewise. - * argp/argp-help.c: Likewise. - * elf/dl-load.c: Likewise. - * locale/programs/stringtrans.c: Likewise. - * catgets/gencat.c: Likewise. - * posix/getconf.c: Likewise. - * iconv/gconv_conf.c: Likewise. - * iconv/iconv_prog.c: Likewise. + * stdio-common/tllformat.c: New program, based on tiformat.c with + examples from Franz Sirl . - * string/strcoll.c: Optimize a few expressions. - * string/strxfrm.c: Likewise. +1999-02-14 Andreas Schwab -1998-09-08 Andreas Schwab + * posix/test-vfork.c: Fix exit status test. - * elf/dl-open.c (dl_open_worker): Move decl of new_global up one - level to avoid uninit variable warning. +1999-02-14 Andreas Jaeger -1998-09-09 10:34 Andreas Schwab + * sysdeps/unix/sysv/linux/sa_len.c (__libc_sa_len): Add some + missing cases. Reported by Craig Metz [PR libc/964]. - * sysdeps/m68k/dl-machine.h(RTLD_START): Push _dl_main_searchlist - instead of _dl_default_scope[2] as argument to _dl_init_next. +1999-02-14 Andreas Schwab - * sysdeps/m68k/fpu/bits/mathinline.h (isinf): Avoid conflict with - C9x macro. + * sysdeps/m68k/fpu/s_modf.c: Optimized by using __m81_test instead + of separare explicit comparisons. -1998-09-08 Ulrich Drepper +1999-02-11 Andreas Schwab - Fix compatibility problems introduced in last change. - * csu/initfini.c: Don't define __gmon_start__ if WEAK_GMON_START is + * sysdeps/wordsize-64/inttypes.h: Always define ldiv_t if not yet defined. - * sysdeps/unix/sysv/linux/i386/Makefile [subdir==csu]: Add - -DWEAK_GMON_START to CFLAGS-initfini.s. - - * elf/dl-object.c (_dl_new_object): Store map address in - _dl_loaded if _dl_loaded is NULL. - * elf/rtld.c (dl_main): Don't update _dl_loaded here. - - * sysdeps/generic/setrlimit64.c: Remove stub warning. - -1998-09-07 Ulrich Drepper - - * db2/common/db_apprec.c (__db_apprec): Add braces to make gcc - quiet. - * db2/btree/bt_cursor.c: Likewise. - * db2/common/db_region.db_c: Likewise. - * db2/common/db_salloc.db_c: Likewise. - * db2/db/db.c: Likewise. - * db2/db/db_rec.c: Likewise. - * db2/hash/hash.c: Likewise. - * db2/hash/hash_page.c: Likewise. - * db2/hash/hash_rec.c: Likewise. - * db2/log/log_findckp.c: Likewise. - * db2/log/log_get.c: Likewise. - * db2/log/log_put.c: Likewise. - * db2/mp/mp_fget.c: Likewise. - * db2/mp/mp_fput.c: Likewise. - * db2/mp/mp_region.c: Likewise. - * stdlib/strtol.c: Likewise. - * string/strcoll.c: Likewise. - * string/strxfrm.c: Likewise. - * argp/argp-help.c: Likewise. - * argp/argp-parse.c: Likewise. - * resolv/res_debug.c: Likewise. - -1998-09-07 09:58 Ulrich Drepper - - * math/tgmath.h (scalb): Only define for __USE_MISC or - __USE_XOPEN_EXTENDED. Patch by Zack Weinberg. - -1998-09-06 Andreas Schwab - - * libio/stdio.h: Fix comment. - - * stdio/stdio.h: Make vfscanf, vscanf and vsscanf available if - __USE_ISOC9X. - -1998-09-06 09:53 -0400 Zack Weinberg - - * Makeconfig (+gccwarn): Remove -Wno-parentheses. - - * elf/dl-open.c: Quiet -Wparentheses warnings. - * iconvdata/johab.c: Likewise. - * iconvdata/uhc.c: Likewise. - * inet/inet_net.c: Likewise. - * io/fts.c: Likewise. - * locale/newlocale.c: Likewise. - * misc/getttyent.c: Likewise. - * misc/mntent_r.c: Likewise. - * misc/ttyslot.c: Likewise. - * nscd/nscd_conf.c: Likewise. - * nss/nsswitch.c: Likewise. - * resolv/gethnamaddr.c: Likewise. - * resolv/nsap_addr.c: Likewise. - * resolv/res_debug.c: Likewise. - * stdio-common/_itoa.c: Likewise. - * stdlib/strtod.c: Likewise. - * string/strverscmp.c: Likewise. - * sunrpc/svc.c: Likewise. - * sysdeps/libm-ieee754/e_cosh.c: Likewise. - * sysdeps/libm-ieee754/e_gamma_r.c: Likewise. - * sysdeps/libm-ieee754/e_sinh.c: Likewise. - * sysdeps/posix/getaddrinfo.c: Likewise. - -1998-09-06 15:13 Ulrich Drepper - - * elf/dlsym.c (dlsym_doit): Use new RTLD_DEFAULT macro to test - for use of global scope. - * elf/dlvsym.c (dlvsym_doit): Likewise. - -1998-09-02 Paul Eggert - - * strftime.c (my_strftime): When mbrlen returns (size_t) -2, - copy the redundant bytes at the end of the format as-is; don't - just copy their first byte and then rescan, as that might get - us an encoding error. - Account correctly for the length of multibyte sequences in the - format. - -1998-09-03 20:14 Tim Waugh - - * posix/wordexp-test.c: Add tests for different IFS values. - Change unquoted-newline test so that newline is not in IFS. - - * posix/wordexp.c (wordexp): Correct null/unset mix-up when - determining IFS characters. Return WRDE_BADCHAR for unquoted - special characters _except_ if they are separators. - -1998-09-06 10:56 Ulrich Drepper - - * include/tgmath.h: New file. - - * libio/stdio.h: Correct reversed #ifs. - Patch by Zack Weinberg. - - * manual/creature.texi: Better explain reason for feature select - macros. - Patch by Michael Deutschmann . - -1998-09-06 10:25 -0400 Zack Weinberg - - * include/alloca.h: Add multiple-inclusion guard. - * include/db.h: Likewise. - * include/db_185.h: Likewise. - * include/dlfcn.h: Likewise. - * include/fcntl.h: Likewise. - * include/grp.h: Likewise. - * include/libintl.h: Likewise. - * include/mntent.h: Likewise. - * include/pwd.h: Likewise. - * include/sched.h: Likewise. - * include/search.h: Likewise. - * include/setjmp.h: Likewise. - * include/shadow.h: Likewise. - * include/signal.h: Likewise. - * include/stdio.h: Likewise. - * include/stdlib.h: Likewise. - * include/string.h: Likewise. - * include/termios.h: Likewise. - * include/time.h: Likewise. - * include/ulimit.h: Likewise. - * include/utmp.h: Likewise. - * include/wchar.h: Likewise. - * include/sys/file.h: Likewise. - * include/sys/gmon.h: Likewise. - * include/sys/ioctl.h: Likewise. - * include/sys/mman.h: Likewise. - * include/sys/resource.h: Likewise. - * include/sys/select.h: Likewise. - * include/sys/socket.h: Likewise. - * include/sys/statfs.h: Likewise. - * include/sys/time.h: Likewise. - * include/sys/times.h: Likewise. - * include/sys/wait.h: Likewise. - -1998-09-06 09:00 Ulrich Drepper - * version.h (VERSION): Bump to 2.0.96. - - Rewrite runtime linker to be truly thread-safe. There is now no - global variable specifying the scope. We create all needed - scopes at the time the link maps are created. - * elf/Versions [GLIBC_2.1]: Add _dl_loaded and _dl_main_searchlist. - * elf/link.h: Add struct r_scope_elem and use this for l_searchlist, - l_symbolic_searchlist, l_scope, and l_local_scope elements in - struct link_map. - * elf/dl-close.c: Rewritten accordingly. - * elf/dl-deps.c: Likewise. - * elf/dl-error.c: Likewise. - * elf/dl-init.c: Likewise. - * elf/dl-load.c: Likewise. - * elf/dl-lookup.c: Likewise. - * elf/dl-object.c: Likewise. - * elf/dl-open.c: Likewise. - * elf/dl-reloc.c: Likewise. - * elf/dl-runtime.c: Likewise. - * elf/dl-support.c: Likewise. - * elf/dl-symbol.c: Likewise. - * elf/dl-version.c: Likewise. - * elf/dlsym.c: Likewise. - * elf/dlvsym.c: Likewise. - * elf/ldsodefs.h: Likewise. - * elf/rtld.c: Likewise. - * iconv/gconv_dl.c: Likewise. - * nss/nsswitch.c: Likewise. - * sysdeps/i386/dl-machine.h: Likewise. - * sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise. - - * elf/dlfcn.h: Declare dladdr only for __USE_GNU. - Define RTLD_DEFAULT. - -1998-09-05 Mark Kettenis - - * sysdeps/mach/hurd/i386/init-first.c (init1): Call - __getopt_clean_environment with __environ instead of envp. - -1998-09-05 Roland McGrath - - * sysdeps/mach/hurd/i386/Makefile (omit-deps): Define to crt0. - - * string/argz-extract.c (__argz_extract): Add de-consting cast for - setting results. - - * string/argz.h (argz_next): Add de-consting cast for return. - * string/argz-next.c (__argz_next): Likewise. - - * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet] (sysdep_headers): - Don't add netinet/udp.h, netinet/ip_icmp.h here. - * sysdeps/gnu/Makefile: Do it here instead. - * sysdeps/unix/sysv/linux/Dist: Move those files from here ... - * sysdeps/gnu/Dist: ... to here. - - * sysdeps/unix/sysv/linux/netinet/ip_icmp.h, - sysdeps/unix/sysv/linux/netinet/tcp.h, - sysdeps/unix/sysv/linux/netinet/udp.h: Moved to sysdeps/gnu/netinet. - -1998-09-04 Roland McGrath - - * string/argz.h (argz_extract, argz_next): Use `const' for ARGZ param. - * string/argz-next.c, string/argz-extract.c: Fix defns. - -1998-09-03 Roland McGrath - - * mach/Makefile: Use -include for mach-syscalls.mk to silence warning. - - * sysdeps/mach/hurd/sysd-stdio.c: Declare fns - __stdio_{read,write,seek,close,fileno} using __io_*_fn types. - * sysdeps/generic/sysd-stdio.c: Likewise. - -1998-09-02 Ulrich Drepper - - * elf/dl-load.c (fillin_rpath): Handle "/" as RPATH correctly. - (_dl_map_object_from_fd): Make NAME argument const. - Remove last parameter in _dl_new_object call. - (print_search_path): Correct construction of composed path name. - (_dl_map_object): Prevent looking at RPATH of the main map twice. - Remove last parameter in _dl_new_object call. - * elf/dl-object.c: Remove last parameter. Determine whether create - origin entry based on empty realname. Handle file in root directory - correctly. - * elf/ldsodefs.h: Adjust prototype for _dl_new_object. - * elf/rtld.c (dl_main): Add comment describing reason for memory leak. - Remove last parameter in _dl_new_object call. - * sysdeps/generic/dl-origin.h: Handle file in root directory correctly. - * sysdeps/unix/sysv/linux/dl-origin.h: Likewise. - -1998-09-01 Ulrich Drepper - - * elf/dl-close.c (_dl_close): Add more comments and correct some. - Free l_searchlist and l_dupsearchlist. - - * debug/catchsegv.sh: Add one more pair of quotes. - -1998-09-01 17:53 Ulrich Drepper - - * elf/dl-load.c (add_name_to_object): Change return type to void and - make NAME parameter const. Allocate room for NAME in same memory - block used for l_libname entry. - (_dl_map_object_from_fd): Don't free NAME on failure. - (map_segment): Pass SONAME to add_name_to_object, not a copy. - (_dl_map_object): Don't create copy of NAME. Pass NAME to - _dl_map_object_from_fd. - * elf/dl-object.c (dl_new_object): Allocate room for NAME in same - memory block used for l_libname entry. - * elf/dl-close.c: Adjust free()ing for this change. - -1998-09-01 15:36 Ulrich Drepper - - * malloc/Makefile: Include Makeconfig before testing config-sysdirs. - - * malloc/mtrace.c: Add bug report address. Update email address. - Add more @XXX@ to print correct address size. - - * elf/dl-addr.c (_dl_addr): Make sure that map to be examined is - really initialized. - - * elf/dl-close.c (_dl_close): Use l_map_start and l_map_end info - for munmap call instead of examining phdr again. - Free all malloc()ed strings and arrays. - -1998-08-09 Geoff Keating - - * sysdeps/powerpc/Makefile [subdir=elf]: Add new files split out of - dl-machine.h. - * sysdeps/powerpc/dl-machine.c: New file. - * sysdeps/powerpc/dl-machine.h: Move much stuff into separate - files. Revise ELF_PREFERRED_ADDRESS to take account of - the new mapping information (fixes bug involving huge bloated - web browser). Set ELF_MACHINE_PLTREL_OVERLAP. - * sysdeps/powerpc/dl-start.S: New file. - - * elf/dl-load.c (_dl_map_object_from_fd): Initialise l_map_start, - l_map_end. - * elf/do-rel.h: Call elf_machine_rel only once (to save space). - * elf/dynamic-link.h: Allow PLT relocs to be in the middle of the - others. Call elf_dynamic_do_##reloc only once (to save even more - space). - * elf/link.h: Add new members l_map_start and l_map_end to keep - track of the memory map. - * elf/rtld.c (_dl_start): Initialise l_map_start for ld.so and - the executable. - -1998-09-01 11:53 Ulrich Drepper - - * debug/Makefile (catchsegv): We need not rewrite SOVER anymore. - Reported by Andreas Jaeger. - - * posix/glob.h: Use __size_t instead of size_t in definitions and - make sure this is defined. - -1998-09-01 10:34 Ulrich Drepper - - * manual/locale.texi: Almost complete rewrite. Document more functions - and functionality. - * manual/arith.texi: Correct reference. - * manual/string.texi: Pretty printing. - - * manual/texinfo.tex: Update from last available version. - -1998-08-31 22:44 Ulrich Drepper - - * nis/nss_nis/nis-pwd.c (_nss_nis_getpwnam_r): Correct test for - invalid password. - (_nss_nis_getpwuid_r): Likewise. - Patch by Matthew Arnison . - - * inet/rcmd.c: Implement netgroup support. - Patch by Dick Streefland . - -1998-08-31 Ulrich Drepper - - * elf/dl-close.c (_dl_close): Update _dl_loaded if the first - object on the list is removed. Don't use this code for PIC. - Reported by HJ Lu [PR libc/770]. - -1998-08-31 15:56 Ulrich Drepper - - * db2/db_int.h: Use instead of "db.h" to find header in include. - - * include/stdio.h: Add __vsscanf. - - * libio/stdio.h: Make vfscanf, scanf, and vsscanf available if - __USE_ISOC9X. - Remove __vsscanf declaration. - Always declare fgetpos and fsetpos. - - * math/math.h: Define isinf as macro. - * math/bits/mathcalls.h: Change to declare __isinf all the time. - Don't declare scalb for ISO C 9x. - - * math/tgmath.h: Define fma. Rewrite the underlying macros. - - * stdlib/stdlib.h: Declare strtof and strtold is __USE_ISOC9X. - - * sysdeps/unix/sysv/linux/bits/sigcontext.h: Allow inclusion from - sys/ucontext.h. - - * sysdeps/wordsize-32/inttypes.h: Define missing PRI* and SCN* - macros. - -1998-08-31 Andreas Jaeger - - * sysdeps/standalone/bits/errno.h (ENOMSG): Remove duplicate. - Reported by jreising@frequentis.com [PR libc/767]. - -1998-08-31 Andreas Jaeger - - * io/lockf.c (lockf): Move initilisation of fl.l_whence and - fl.l_start at beginning of function. - Patch by Geoff. Dash [PR libc/769]. - -1998-08-31 Ulrich Drepper - - * io/sys/stat.h (ALLPERMS): Fix type (S_ISTXT -> S_ISVTX). - Reported by Rob.Hagopian@vu.union.edu [PR libc/763]. - - * nscd/nscd.init: Make it work in RedHat systems. - Patch by Christian Gafton. - -1998-08-29 Philip Blundell - - * catgets/Makefile: Don't try to run test programs when - cross-compiling. - -1998-08-31 Ulrich Drepper - - * signal/signal.h: Include bits/sigthread.h only if __USE_POSIX. - Reported by Zack Weinberg. - -1998-08-30 Andreas Schwab - - * sysdeps/unix/sysv/linux/Dist: Add umount.S and umount2.S. - * elf/Makefile (distribute): Remove ldd.sh.in. - -1998-08-31 11:46 Andreas Schwab - - * sysdeps/unix/sysv/linux/dl-origin.h (get_origin): Remove unused - variable. - -1998-08-29 Ulrich Drepper - - * sysdeps/i386/register-dump.h: Move to ... - * sysdeps/unix/sysv/linux/i386/register-dump.h: ...here. - -1998-08-28 22:49 Ulrich Drepper - - * elf/do-rel.h (elf_dynamic_do_rel): Call elf_machine_lazy_rel - with load address, not map address. - * sysdeps/alpha/dl-machine.h (elf_machine_lazy_rel): Change first - parameter and use this value. - * sysdeps/arm/dl-machine.h: Likewise. - * sysdeps/i386/dl-machine.h: Likewise. - * sysdeps/m68k/dl-machine.h: Likewise. - * sysdeps/mips/dl-machine.h (elf_machine_lazy_rel): Change first - parameter. - * sysdeps/powerpc/dl-machine.h: Likewise - * sysdeps/sparc/sparc32/dl-machine.h: Likewise - * sysdeps/sparc/sparc64/dl-machine.h: Likewise - -1998-08-28 09:22 Ulrich Drepper - - * elf/rtld.c (process_envvars): Fix copy&paste error. - - * malloc/malloc.c (malloc_hook_ini): Don't overwrite realloc and - memalign hook. - (realloc_hook_ini): Don't overwrite memalign hook. - (memalign_hook_ini): Don't overwrite malloc and memalign hooks. - Reported by Philippe Troin . - - * malloc/mcheck.c (mprobe): Call checkhdr with adjusted pointer. - Patch by Philippe Troin . - -1998-08-26 Andreas Schwab - - * sysdeps/generic/segfault.c (install_handler): Protect the - non-POSIX signals with #ifdef. - (catch_segfault): Add missing mode parameter for open. - * debug/catchsegv.sh: Avoid termination message from shell. Allow - other termination signals. - -1998-08-27 Andreas Schwab - - * debug/Makefile (distribute): Add register-dump.h. - -1998-08-28 10:41 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/register-dump.h: New file. - -1998-08-27 19:42 Ulrich Drepper - - * elf/Makefile (distribute): Add dl-origin.h. - * sysdeps/generic/dl-origin.h: New file. - * sysdeps/unix/sysv/linux/dl-origin.h: New file. - * elf/link.h (struct link_map): Add l_origin field. - * elf/dl-load.c (expand_dynamic_string_token): New function. - (decompose_path): Remove WHERE argument, take link map pointer instead. - Call expand_dynamic_string_token instead of local_strdup to make copy - of rpath. - (_dl_init_paths): Call decompose_path with correct argument. - (_dl_map_object_from_fd): Define static is EXTERNAL_MAP_FROM_FD is - not defined. - Check EI_OSABI and EI_ABIVERSION fields in header. - Call _dl_new_object with extra argument. - (_dl_map_object): Call decompose_path with correct argument. - Call expand_dynamic_string_token instead of local_strdup to also - expand DST. - Call _dl_new_object with extra argument. - * elf/dl-object.c (_dl_new_object): Determine l_origin for all maps - but the main one if new argument is nonzero. - * elf/ldsodefs.h: Adjust for _dl_new_object change. - * elf/dl-support.c: Define _dl_origin_path. - * elf/rtld.c: Likewise. Set _dl_origin_path based on LD_ORIGIN_PATH. - (dl_main): Call _dl_new_object with extra argument. - - * elf/dl-close (_dl_close): Free l_name and l_origin. - - * sysdeps/i386/useldt.h (THREAD_GETMEM, THREAD_SETMEM): Use P - modifier in asm, not c. - - * sysdeps/mach/hurd/Makefile [subdirs==elf]: Define CFLAGS-dl-load.c - to -DEXTERNAL_MAP_FROM_FD to make _dl_map_object_from_fd extern. - -1998-08-26 17:48 Ulrich Drepper - - * elf/dl-close.c (_dl_close): Move map->l_nsearchlist value into local - variable so that map can be freed. - Reported by Philippe Troin . - - * elf/dl-open.c (dl_open_worker): Correct test for extending global - scope array. - Patch by Philippe Troin . - -1998-08-26 Geoff Keating - - * sysdeps/powerpc/register-dump.h: Rewrite. Much nicer this way. - Don't call writev() with a 100-element vector. - * sysdeps/generic/segfault.c (catch_segfault): Skip top-level NULL - return address. - - * sysdeps/powerpc/elf/libc-start.c: Sync up with generic version. - In particular, set __libc_stack_end. - * sysdeps/powerpc/elf/start.S: Allow _init and _fini to be - undefined. Fix copyright notice. - -1998-08-25 Andreas Schwab - - * math/Makefile (gmp-objs): New variable. - ($(objpfx)atest-exp, $(objpfx)atest-sincos, $(objpfx)atest-exp2): - Depend on it. - (tests): Add atest-exp atest-sincos atest-exp2. - (tests-static): Remove atest-exp atest-sincos atest-exp2. - -1998-08-25 Ulrich Drepper - - * sysdeps/generic/dl-cache.c: Move static variable cache and cachesize - to toplevel. - (_dl_unload_cache): New function. - * elf/Versions [libc GLIBC_2.1]: Add _dl_unload_cache. - * elf/dl-open.c (_dl_open): Unload map file before freeing the lock. - * elf/rtld.c (dl_main): Unload map file before jumping to user code. - - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Define O_DIRECT. - Correct comment for O_LARGEFILE. - * sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_DIRECT. - Change O_LARGEFILE to correct value. - -1998-08-25 14:34 Ulrich Drepper - - * libio/iogetline.c (_IO_getline_info): Don't read anything for - N == 0. Patch by HJ Lu. - -1998-08-25 11:43 Ulrich Drepper - - * elf/elf.h: Add syminfo stuff and other DT_* from Solaris' ELF. - -1998-08-25 Bernd Schmidt - - * argp/argp.h: Use __inline__ not inline. - - * sysdeps/i386/bits/select.h (FD_ZERO): Rewrite asm not to indicate - an input register as being clobbered. - * sysdeps/i386/memset.c (memset): Likewise. - * sysdeps/i386/bzero.c (__bzero): Likewise. - * sysdeps/i386/memcopy.h ({BYTE,WORD}_COPY_[FB]WD): Likewise. - -1998-08-25 Andreas Jaeger - - * stdlib/jrand48_r.c (__jrand48_r): Set also upper half of result. - Fixes PR libc/757 (Reported by Michael Creutz - - * debug/catchsegv.sh: Handle text preceding backtrace better. - * sysdeps/generic/segfault.c: Allow register dump. Allow handler - to be installed for other signals than SIGSEGV. - * sysdeps/generic/register-dump.h: New file. - * sysdeps/i386/register-dump.h: New file. - * sysdeps/powerpc/register-dump.h: New file. - - * sysdeps/unix/sysv/linux/i386/profil-counter.h: Use macros from - sigcontextinfo.h. - * sysdeps/unix/sysv/linux/powerpc/profil-counter.h: Use i386 version. - -1998-08-24 Geoff Keating - - * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: New file. - -1998-08-09 Geoff Keating - - * sysdeps/unix/sysv/linux/powerpc/chown.c: New file. - * sysdeps/unix/sysv/linux/powerpc/lchown.S: New file. - * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add chown, remove - getresuid, getresgid. - -1998-08-16 Geoff Keating - - * sysdeps/unix/sysv/linux/powerpc/clone.S: Fix bugs. Set up stack - pointer in userland. - -1998-08-21 Andreas Schwab - - * sysdeps/unix/sysv/linux/sys/mount.h (MNT_FORCE): Define as enum - and fix value. - -1998-08-22 Andreas Schwab - - * elf/ldd.bash.in: Add missing quotes around $file. Make loop - over arguments Bourne shell compatible. Don't exit unsuccessfully - if nonelf returns successfully. Avoid duplicating most of the - script. - * sysdeps/unix/sysv/linux/ldd-rewrite.sed: Add missing quotes - around $file. - -1998-08-24 10:37 Andreas Schwab - - * sysdeps/unix/sysv/linux/m68k/Makefile (sysdep_headers): Add - sys/reg.h. - * sysdeps/unix/sysv/linux/m68k/sys/reg.h: New file. - * sysdeps/unix/sysv/linux/m68k/Dist: Distribute it. - -1998-08-23 Ulrich Drepper - - * sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.1]: Add - __modify_ldt and modify_ldt. - * sysdeps/unix/sysv/linux/i386/syscalls.list: Add modify_ldt. - - * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): - Use orl $-1 instead of movl $-1 to save two bytes. - * sysdeps/unix/sysv/linux/i386/i686/sysdep.h (SYSCALL_ERROR_HANDLER): - Likewise. - -1998-08-17 H.J. Lu - - * libio/Versions (_IO_do_write, _IO_file_attach, - _IO_file_close_it, _IO_file_finish, _IO_file_fopen, - _IO_file_init, _IO_file_overflow, _IO_file_seekoff, - _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, - _IO_file_write, _IO_file_xsputn): Added to GLIBC_2.1. - - * libio/fileops.c (_IO_do_write, _IO_file_attach, - _IO_file_close_it, _IO_file_finish, _IO_file_fopen, - _IO_file_init, _IO_file_overflow, _IO_file_seekoff, - _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, - _IO_file_write, _IO_file_xsputn): Change the prefix to - "_IO_new_". Added to GLIBC_2.1. - - * libio/libioP.h (_IO_do_write, _IO_file_attach, - _IO_file_close_it, _IO_file_finish, _IO_file_fopen, - _IO_file_init, _IO_file_overflow, _IO_file_seekoff, - _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, - _IO_file_write, _IO_file_xsputn): Add prototypes for the prefix - "_IO_new_". - - * libio/oldfileops.c (_IO_do_write, _IO_file_attach, - _IO_file_close_it, _IO_file_finish, _IO_file_fopen, - _IO_file_init, _IO_file_overflow, _IO_file_seekoff, - _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, - _IO_file_write, _IO_file_xsputn): Added to GLIBC_2.0. - -1998-08-23 Richard Henderson - - * Makeconfig (LDFLAGS): Remove. - - * csu/initfini.c: Return to .text before __gmon_start__. - - * elf/elf.h (EM_FAKE_ALPHA): Rename from EM_OLD_ALPHA. - (STO_MIPS_*): Rename from STO_*. - (STB_MIPS_SPLIT_COMMON): Rename from STB_SPLIT_COMMON. - (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New. - - * math/atest-exp.c (mpn_bitsize): Fix bit location calculation. - (main): e3s is negative on zero. - * math/atest-exp2.c: Likewise. - * math/atest-sincos.c: Likewise. - -1998-08-23 Andreas Jaeger - - * Makerules (install): Add comment about absolute paths. - -1998-08-23 Ulrich Drepper - - * libio/vsnprintf.c (_IO_vsnprintf): Set first byte of destination - array to NUL to handle maxlen==1 case correctly. - Patch by HJ Lu. - -1998-08-23 Richard Henderson - - * sysdeps/alpha/elf/crtbegin.S: Fix .prologue; no pv used. - * sysdeps/alpha/elf/crtend.S: Likewise. - * sysdeps/alpha/elf/start.S: Likewise. - - * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Fix .prologue; - non-standard pv usage. - - * sysdeps/unix/sysv/linux/alpha/brk.S: Use jmp macro for relaxation. - * sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/select.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise. - * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise. - - * sysdeps/alpha/fpu/e_sqrt.c: Use the asm version when the input is - a finite non-denormal, deferring to the full IEEE version otherwise. - - * sysdeps/alpha/fpu/bits/mathinline.h (__floorf, __floor): - Early out for -0. Optimize for !_IEEE_FP_INEXACT. - * sysdeps/alpha/fpu/s_floor.c: New. - * sysdeps/alpha/fpu/s_floorf.c: New. - * sysdeps/alpha/fpu/s_ceil.c: New. - * sysdeps/alpha/fpu/s_ceilf.c: New. - -1998-08-22 Philip Blundell - - * sysdeps/arm/bits/string.h: New file. - -1998-08-12 Andreas Jaeger - - * sysdeps/unix/sysv/linux/configure.in: Obey --with-headers, - document it. - - * sysdeps/unix/sysv/linux/alpha/configure.in: New file, contains - test for recent Linux 2.1.100+ headers. - -1998-08-21 Thorsten Kukuk - - * nis/nss_compat/compat-initgroups.c: Optimize NIS query. - -1998-08-21 17:21 Ulrich Drepper - - * sysdeps/unix/sysv/linux/glob64.c: Define __stat using __xstat64. - -1998-08-20 Andreas Schwab - - * Makefile (elf/ldso_install): Put back. The problem still persists. - * elf/Makefile (ldso_install): Likewise. - -1998-08-20 Andreas Schwab - - * db2/db/db.c (db_open) [_LIBC]: Rename to __nss_db_open and - create weak alias. - * include/db.h: Declare __nss_db_open. - * db2/Versions: Export it. - - * db2/makedb.c: Convert to use db2 API. - * nss/nss_db/db-XXX.c: Likewise. - * nss/nss_db/db-netgrp.c: Likewise. - * nss/nss_db/db-alias.c: Likewise. - (_nss_db_getaliasent_r): Allow retrying with a larger buffer. - -1998-08-19 Andreas Schwab - - * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove - sys_setresuid, already built automatically (or not). - * sysdeps/unix/sysv/linux/syscalls.list: Define __setresuid - instead of __syscall_setresuid and add back setresuid. - * sysdeps/unix/sysv/linux/seteuid.c: Use __setresuid instead of - __syscall_setresuid. - -1998-08-21 Andreas Jaeger - - * sysdeps/unix/sysv/linux/sys/mount.h: Fix typo. - -1998-08-20 Ulrich Drepper - - * elf/Makefile (sh-ldd-rewrite): Remove expression to remove - BASH-ONLY marked region. - * elf/ldd.bash.in: Remove special BASH-ONLY markers. - -1998-02-20 17:54 H.J. Lu - - * libio/oldfileops.c (_IO_file_seekoff): Don't adjust pointers if - _IO_SYSSEEK fails. + * sysdeps/wordsize-32/inttypes.h: Always define lldiv_t if not yet + defined. - * libio/iolibio.h (_IO_pos_BAD): Define of type _IO_fpos64_t. +1999-02-09 Ulrich Drepper - * libio/libioP.h (FILEBUF_LITERAL): Also initialize new _offset - element. + * po/el.po: Update from translation team. -1998-08-21 Roland McGrath +1999-02-09 Andreas Jaeger - * elf/ldd.bash.in (TEXTDOMAIN, TEXTDOMAINDIR): Surround setting these - with magic comments ###BASH-ONLY and ###END-BASH-ONLY. - * elf/Makefile ($(objpfx)ldd): Generate always from ldd.bash.in. - (common-ldd-rewrite): New variable, old contents of $(sh-ldd-rewrite). - (sh-ldd-rewrite): Use that, add cmds to remove code surrounded by - those magic comments, and to use /bin/sh for @BASH@. - (bash-ldd-rewrite): Use $(common-ldd-rewrite). - * elf/ldd.sh.in: File removed. + * intl/locale.alias: Fix slovenian entry [PR libc/948]. -1998-08-20 20:07 Ulrich Drepper +1999-02-09 Andreas Jaeger - * pwd/getpw.c (__getpw): Use %lu for uid and gid parameter and - cast them to unsigned long int. - * pwd/putpwent.c (putpwent): Likewise. - Patch by John Tobey . + * elf/sprof.c: assert.h isn't used anymore, remove inclusion. + * inet/ruserpass.c: Likewise. + * locale/programs/stringtrans.c: Likewise. + * locale/programs/localedef.c: Likewise. + * nscd/grpcache.c: Likewise. + * nss/nss_files/files-XXX.c: Likewise. + * stdlib/canonicalize.c: Likewise. + * sysdeps/posix/sigwait.c: Likewise. -1998-08-20 17:14 H.J. Lu +1999-02-09 Andreas Jaeger - * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to - _IO_pos_BAD. + * sunrpc/pmap_rmt.c (clnt_broadcast): We need 32 bit comparison + even on 64 bit platforms. -1998-02-20 17:54 H.J. Lu + * sunrpc/clnt_tcp.c (clnttcp_call): Likewise. + Patch by Loic Prylli . - * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if - _IO_SYSSEEK fails. +1999-02-09 Ulrich Drepper -1998-08-20 19:14 Ulrich Drepper + * intl/dcgettext.c: Include locale.h is available. - * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines): - Add umount and umount2. - * sysdeps/unix/sysv/linux/syscalls.list: Remove umount. - * sysdeps/unix/sysv/linux/umount.S: New file. - * sysdeps/unix/sysv/linux/umount2.S: New file. - * sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2. - Define MNT_FORCE. +1999-02-08 Ulrich Drepper - * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdep_headers): - Add sys/sendfile.h. - * sysdeps/unix/sysv/linux/syscalls.list: Add sendfile. - * sysdeps/unix/sysv/linux/sys/sendfile.h: New file. + * po/nl.po: Update from translation team. - * sysdeps/unix/sysv/linux/sys/acct.h: Pretty print. + * sysdeps/libm-i387/s_asinhf.S: Correct computing absolute value. - * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add umount2 and - sendfile. + * Makefile: Allow calling goals for po subdir. -1998-08-20 16:01 Ulrich Drepper + * sysdeps/unix/sysv/linux/alpha/bits/signum.h: Add missing RT + signal definitions. - * elf/ldd.sh.in: Redirect warnings and error messages to stderr. - * elf/ldd.bash.in: Likewise. + * po/el.po: New file. - * elf/sln.c: Avoid warning for no main prototype. +1999-02-07 Andreas Schwab - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Remove O_READ and - O_WRITE. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. + * elf/dl-load.c (_dl_map_object_from_fd): Replace magic constant + when processing DT_SYMBOLIC objects. - * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add F_SETSIG and - F_GETSIG. - * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. - * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. +1999-02-07 Andreas Schwab -1998-08-20 Philip Blundell + * elf/dl-load.c (_dl_map_object_from_fd): When looking for the + program headers without PT_PHDR only require that they are + contained within one of the loaded segments. Don't use assert, + since that would be a bug in the object, not the dynamic linker. - * sysdeps/arm/fpu/ieee754.h: Move to... - * sysdeps/arm/ieee754.h: ... here. +1999-02-08 Richard Henderson - * sysdeps/arm/__longjmp.S: Put return value in correct register. - Don't set the condition flags unnecessarily. - * sysdeps/arm/fpu/__longjmp.S: Likewise. Restore floating point - registers correctly. + * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and + restore all call-clobbered fp regs. - * sysdeps/arm/dl-machine.h: Fix problems with profiling code - (patch from Scott Bambrough). +1999-02-08 Ulrich Drepper - * sysdeps/arm/sysdep.h (CALL_MCOUNT): Add missing semicolons. + * po/cs.po: New file. - * csu/initfini.c (_init): Don't check whether __gmon_start__ is - NULL, just call it unconditionally. - (__gmon_start__): Provide stub version as a weak symbol. + * resolv/res_hconf.c (_res_hconf_init): Don't use ENV_HOSTCONF for + SUID binaries. -1998-07-30 Philip Blundell +1999-02-07 Ulrich Drepper - * sysdeps/unix/sysv/linux/arm/init-first.h: New file (from patch - by Scott Bambrough) + * signal/signal.h: Don't declare __libc_allocate_rtsig. + * include/signal.h: Declare __libc_allocate_rtsig here. - * sysdeps/unix/sysv/linux/arm/errlist.c: New file; ARM tools don't - like `@' in .type directives. + * elf/dl-lookup.c: Increment _dl_num_relocations in the four entry + point functions, not do_lookup since the later can be called more + than once. - * sysdeps/arm/bsd-setjmp.S: Use PLT for procedure call. - * sysdeps/arm/bsd-_setjmp.S: Likewise. +1999-02-03 Jakub Jelinek - * sysdeps/arm/dl-machine.h: Set __libc_stack_end. + * sysdeps/generic/segfault.c: Add ADVANCE_STACK_FRAME + macro, so that architectures which need to add some special + offset to stack pointer can share this file. -1998-08-20 Andreas Jaeger + * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: New file. - * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (F_SETOWN): Correct value. - (F_GETOWN): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/bits/mman.h: Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/mman.h: Remove. + * sysdeps/unix/sysv/linux/sparc/bits/mman.h: New file - common + between sparc32 and sparc64. - * sysdeps/unix/sysv/linux/bits/siginfo.h (SI_SIGIO): Add it (from - Linux 2.1.117). + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Remove. + * sysdeps/unix/sysv/linux/sparc/vfork.S: New file - common + between sparc32 and sparc64. -1998-08-20 Ulrich Drepper + * sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Remove. + * sysdeps/unix/sysv/linux/sparc/fork.S: New file - common + between sparc32 and sparc64. - * sysdeps/generic/glob.c [_LIBC]: Define __stat only if not - already defined. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Remove. + * sysdeps/unix/sysv/linux/sparc/sysdep.S: New file - common + between sparc32 and sparc64. -1998-08-18 Ulrich Drepper +1999-02-07 Ulrich Drepper - * include/features.h: Define __USE_EXTERN_INLINES for recent - enough gcc. - * argp/argp.h: Define extern inline functions only if - __USE_EXTERN_INLINES is defined. - * libio/stdio.h: Likewise. - * math/math.h: Likewise. - * stdlib/stdlib.h: Likewise. - * string/argz.h: Likewise. - * sysdeps/generic/bits/sigset.h: Likewise. - * sysdeps/unix/sysv/linux/bits/sigset.h: Likewise. - * sysdeps/unix/sysv/sysv4/bits/sigset.h: Likewise. - * sysdeps/wordsize-32/inttypes.h: Likewise. + * Versions.def: New version GLIBC_2.1.1 for libc. + * stdlib/Versions: Add _Exit, imaxdiv, and imaxdiv to GLIBC_2.1.1. + * stdlib/labs.c: Moved to... + * sysdeps/generic/labs.c: ...here. + * stdlib/llabs.c: Moved to... + * sysdeps/generic/llabs.c: ...here. + * stdlib/stdlib.h: Allow definition of ldiv_t and lldiv_t in other + header. Declare _Exit. + * sysdeps/generic/_exit.c: Add alias _Exit. + * sysdeps/mach/hurd/_exit.c: Likewise. + * sysdeps/standalone/i386/force_cpu386/_exit.c: Likewise. + * sysdeps/standalone/i960/nindy960/_exit.c: Likewise. + * sysdeps/standalone/m68k/m68020/mvme136/_exit.c: Likewise. + * sysdeps/unix/_exit.c: Likewise. + * sysdeps/wordsize-32/inttypes.h: Define imaxdiv_t and declare + imaxdiv and imaxabs. Declare lldiv_t if necessary. * sysdeps/wordsize-64/inttypes.h: Likewise. - * wcsmbs/wchar.h: Likewise. - - * sysdeps/generic/bits/glob.c [_LIBC]: Define __stat using __xstat - to allow compilation without optimization. - -1998-08-14 Thorsten Kukuk - - * nis/nss_compat/compat-grp.c: Set errno to ENOENT if we have no - more entries. - * nis/nss_compat/compat-initgroups.c: Likewise. - * nis/nss_compat/compat-pwd.c: Likewise. - * nis/nss_compat/compat-spwd.c: Likewise. - * nis/nss_nis/nis-alias.c: Likewise. - * nis/nss_nis/nis-ethers.c: Likewise. - * nis/nss_nis/nis-grp.c: Likewise. - * nis/nss_nis/nis-hosts.c: Likewise. - * nis/nss_nis/nis-initgroups.c: Likewise. - * nis/nss_nis/nis-network.c: Likewise. - * nis/nss_nis/nis-proto.c: Likewise. - * nis/nss_nis/nis-pwd.c: Likewise. - * nis/nss_nis/nis-rpc.c: Likewise. - * nis/nss_nis/nis-service.c: Likewise. - * nis/nss_nis/nis-spwd.c: Likewise. - - * nis/rpcsvc/yp.h: Generate new without 1024 byte limits. - - * nis/ypclnt.c: Try binding dir only first time, could be to old. - - * nis/yp_xdr.c: Remove 1024 byte limit. - * nis/ypupdate_xdr.c: Likewise. - - * nis/nss_nis/nis-publickey.c: Make sure, nobody could send - wrong data. - -1998-08-18 Roland McGrath - - * Rules (binaries-static, binaries-shared static pattern rules): - Depend on lib%, not just libc%, from $(link-libc{,-static}). - - * sysdeps/mach/hurd/Makefile (link-libc-static): New variable; set - this here, overriding Makeconfig generic value so we link against - the RPC libs. - -1998-08-17 Ulrich Drepper - - * posix/tstgetopt.c (options): Add NULL entry at end - Patch by Adrian Miranda . - -1998-08-15 18:21 Ulrich Drepper - - * elf/elf.h: Add EI_OSABI, ELFOSABI*, and EI_ABIVERSION. Move EI_PAD - to 9. - -1998-08-15 14:11 Ulrich Drepper - - * elf/elf.h: Add PPC Diab relocations. - - * malloc/Makefile (libmcheck.a): Use $(LN_S) not ln. - -1998-08-14 10:08 Ulrich Drepper - - * manual/texinfo.tex: Update. - -1998-08-07 Geoff Keating - - * sysdeps/powerpc/backtrace.c: New file. - -1998-08-14 Philip Blundell - - * sysdeps/arm/fpu/setjmp.S: Correct value of R0 before calling - sigjmp_save. - * sysdeps/arm/elf/setjmp.S: Obsolete, deleted. - -1998-08-11 Andreas Schwab - - * Makefile (install-symbolic-link): Fix spelling. - -1998-08-11 Andreas Schwab - - * elf/elf.h (SHT_HIOS): Fix value. - -1998-08-10 Andreas Schwab - - * posix/regex.c (WIDE_CHAR_SUPPORT): Don't generate defined as - part of the expansion, this is undefined by the standard. - -1998-08-13 19:41 Ulrich Drepper - - * posix/getconf.c: Add support for systems with incomplete confname.h. - - * sysdeps/posix/sigset.c: Allow SIG_HOLD being undefined. - - * sysdeps/posix/wait3.c: Make it work. - -1998-08-13 Andreas Jaeger - - * Makefile ($(inst_slibdir)/libc-$(version).so): Remove. - (elf/ldso_install): Remove. - - * elf/Makefile (distribute): Add sln.c. - (others): Add sln. - (others-static): Add sln. - (install-rootsbin): Add sln. - (others-static): Add sln. - (ldso_install): Remove. - -1998-07-24 10:58 Andreas Schwab - - * Makerules (install-clean-symbolic-link-list): Make phony. - * Makefile (install-symbolic-link): Make phony. Depend on - subdir_install for parallel makes. - - -1998-07-22 Ulrich Drepper - - * elf/Makefile (distribute): Add sln.c - -1998-07-21 07:10 H.J. Lu - - * elf/sln.c: New file. - - * Makerules (symbolic-link-prog, symbolic-link-list): New macros. - (install-clean-symbolic-link-list): New target. - (install): Depend on install-clean-symbolic-link-list. - (make-shlib-link): Changed for $(symbolic-link-list). - - * Makefile (install-symbolic-link): New target. - (install): Depend on install-symbolic-link. - -1998-08-12 17:03 Ulrich Drepper - - * include/unistd.h: Protect against multiple inclusion. - - * posix/glob.c: Don't define __glob_pattern_p is NO_GLOB_PATTERN_P - is defined, not is glob is defined. - * sysdeps/unix/sysv/linux/glob64.c: Define NO_GLOB_PATTERN_P. - -1998-08-01 17:18 H.J. Lu - - * sunrpc/rpcsvc/rusers.x (xdr_utmp): Use xdr_bytes instead of - xdr_string for ut_line, ut_name and ut_host. - -1998-08-12 Andreas Jaeger - - * sysdeps/unix/sysv/linux/paths.h (_PATH_MAILDIR): Change to - /var/mail in accordance with FHS 2.0. - Reported by Javier Kohen [PR libc/639]. - -1998-08-12 Richard Henderson - - * sysdeps/unix/sysv/linux/alpha/syscalls.list (recvmsg, sendmsg): - Update aliases for cancelation. - - * sysdeps/unix/sysv/linux/alpha/glob.c: Undef glob*64 before - playing with symbol versions. - -1998-08-12 Roland McGrath - - * sysdeps/mach/hurd/bits/posix_opt.h: Rewritten with comments and - multiple inclusion protection. - (_POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC, _POSIX_MAPPED_FILES, - _POSIX_MEMORY_PROTECTION, _POSIX_POLL, _POSIX_SELECT): New macros, - define all these to 1. - (_POSIX_SYNC_IO): Add #undef, to remind us that pathconf reports it. - -1998-08-12 Roland McGrath - - * sysdeps/mach/usleep.c: Include . - (usleep): Return void. - -1998-08-11 Roland McGrath - - * sysdeps/generic/if_index.c (struct if_freenameindex): Add forward - decl to inhibit warning in if_freenameindex defn. - - * sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Remove unused variable. - - * sysdeps/mach/hurd/getdomain.c (getdomainname): Renamed from __ name. - - * sysdeps/mach/hurd/reboot.c: Include . - * sysdeps/mach/hurd/getdents.c: Include . - * sysdeps/mach/hurd/sbrk.c: Include . - * sysdeps/mach/usleep.c: Likewise. + * sysdeps/wordsize-32/llabs.c: New file. + * sysdeps/wordsize-32/lldiv.c: New file. + * sysdeps/wordsize-64/labs.c: New file. + * sysdeps/wordsize-64/ldiv.c: New file. + * manual/arith.texi: Document imaxabs, imaxdiv_t, and imaxdiv. + * manual/startup.texi: Document _Exit. - * sysdeps/mach/hurd/bind.c (bind): Add a const. +1999-02-07 Andreas Jaeger - * sysdeps/mach/hurd/getdents.c (__getdirentries): Use prototype defn. - * sysdeps/unix/bsd/init-posix.c (__init_posix): Likewise. - * sysdeps/unix/bsd/times.c (timeval_to_clock_t): Likewise. - * sysdeps/mach/hurd/reboot.c (reboot): Likewise. - * sysdeps/mach/usleep.c (usleep): Likewise. - * sysdeps/mach/hurd/chflags.c (chflags): Likewise. - * sysdeps/mach/hurd/fchflags.c (fchflags): Likewise. - * sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise. - * sysdeps/mach/hurd/stdio_init.c (__stdio_init_stream): Likewise. + * nscd/cache.c: Include for inet_ntop. -1998-08-11 Roland McGrath +1999-02-06 Ulrich Drepper - * sysdeps/generic/glob64.c: Include , , . - (glob64): Fix typo. + * Versions.def: Add versions for ld.so. + * csu/Versions: Remove __libc_stack_end here. + * elf/Versions: Split libc definitions in libc and ld.so definitions. + * elf/Makefile (ld-map): Change to ld.so.map. + * scripts/versions.awk: Recognize dot in library names. - * malloc/malloc.c (free_check, realloc_check): Don't cast to long for - %p arg to fprintf, since `void *' is the right type already. + * ctype/ctype.h: Remove definitions of __tolower and __toupper. + Don't use __tolower and __toupper in inline functions. + Add optimizing macros for tolower and toupper. + * ctype/ctype-extn.c (_tolower): Don't use __tolower. + (_toupper): Don't use __toupper. + * ctype/ctype.c (tolower): Don't use __tolower. + (toupper): Don't use toupper. -1998-07-25 19:47 Jose M. Moya + * nscd/cache.c (prune_cache): Correct printing of debugging messages. - * sysdeps/mach/hurd/getcwd.c - (_hurd_canonicalize_directory_name_internal): Do not loop forever - for unknown root directories. - (__getcwd): Return NULL when the current root directory could not - be reached. + * resolv/Versions (libresolv): Export __ns_name_unpack and + __ns_name_ntop. + * resolv/res_comp.c: Rename ns_name_unpack to __ns_name_unpack and + make it global. Change all users. Similar for ns_name_ntop. + * resolv/nss_dns/dns-host.c: Don't use dn_expand when extracting in + user-provided buffer. Use __ns_name_unpack and __ns_name_ntop + directly to detect too small buffer. + * resolv/nss_dns/dns-network.c: Likewise. -1998-08-11 18:39 Ulrich Drepper + * stdio-common/Makefile (tests): Add scanf12. + * stdio-common/scanf12.c: New file. + * stdio-common/scanf12.input: New file. + * stdio-common/vfscanf.c (__vfscanf): Handle +/- at beginning of + floating-point correctly if the number is invalid. - * string/strsignal.c (strsignal): Count real-time signals from zero. + * stdio-common/vfscanf.c: Don't use non-reentrant multibyte conversion + functions. + * stdio-common/printf_fp.c: Likewise. + * stdio-common/printf_fphex.c: Likewise. + * stdio-common/vfprintf.c: Likewise. -See ChangeLog.8 for earlier changes. +See ChangeLog.9 for earlier changes. diff -durpN glibc-2.1/ChangeLog.9 glibc-2.1.1/ChangeLog.9 --- glibc-2.1/ChangeLog.9 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/ChangeLog.9 Sun Feb 7 00:05:42 1999 @@ -0,0 +1,6652 @@ +1999-02-05 Andreas Jaeger + + * nscd/hstcache.c (addhstbyaddr): Use INET_ADDRSTRLEN for buffer. + (addhstbyaddr6): Use INET6_ADDRSTRLEN for buffer. + (addhstbynamev6): Correct debug output. + + * nscd/connections.c: Include for inet_ntop. + (handle_request): Correctly print gethostbyaddr* debug messages. + +1999-02-04 Ulrich Drepper + + * stdlib/strtoll.c: Add alias __strtoq_internal. + * stdlib/strtoull.c: Add alias __strtouq_internal. + + * wcsmbs/mbrtowc.c: Correct logic testing for converted NUL + character. Patch by Owen Taylor . + +1999-02-03 Mark Kettenis + + * sysdeps/mach/hurd/utimes.c (__utimes): Deal with TVP being NULL. + +1999-02-03 Ulrich Drepper + + * version.h (VERSION): Bump to 2.1. + (RELEASE): Change to stable. + + * elf/dlsym.c (dlsym_doit): If no symbol for RTLD_NEXT is found + initialize ref element of args object so that dlsym does not dump + a core. + * elf/dlvsym.c (dlvsym_doit): Likewise. + +1999-02-03 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Set branch + prediction correctly. + + * sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Signal + takes a pointer to __sigcontext_t. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Do a nop after retl. + * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove fork.S. + +1999-02-02 Andreas Schwab + + * manual/time.texi (General Time String Parsing): Fix typos. Fix + column widths of table. + +1999-01-31 Mark Kettenis + + * sysdeps/mach/hurd/times.c: New file. + +1999-02-02 Ulrich Drepper + + * nscd/nscd_getpw_r.c (nscd_getpw_r): Mark as internal and take + extra argument with length of key string. + (__nscd_getpwnam_r): Call nscd_getpw_r with extra argument. + (__nscd_getpwuid_r): Create key string on stack. + * nscd/nscd_getgr_r.c: Mark local functions as internal. + * nscd/nscd_gethst_r.c: Likewise. + + * elf/dl-load.c: Use alloca, not __alloca. + + * sysdeps/unix/sysv/linux/reboot.c: Make sure first parameter is + correctly passed to the kernel even on 64bit platforms. + Patch by Bruce Elliott . + + * localedata/locales/it_CH: New file. + Contributed by Giacomo Amabile Catenazzi . + +1999-01-31 Andreas Jaeger + + * manual/install.texi (Configuring and compiling): Building in the + source directory works, change paragraph stating the opposite. + +1999-01-29 Andreas Schwab + + * locale/programs/locale-spec.c: Fix last change. + +1999-01-31 Ulrich Drepper + + * math/libm-test.c (fdim_test): Fix typo in message. + Patch by Paul Kimoto . + +1999-01-31 Philip Blundell + + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: If the kernel + doesn't have vfork, resort to using fork. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise. + +1999-01-30 Ulrich Drepper + + * sysdeps/sparc/sparc32/__longjmp.S: Include bits/setjmp.h not + jmp_buf.h. Patch by David S. Miller . + + * sysdeps/libm-i387/s_fdim.S: Reverse arguments of instruction + changed in last patch. + * sysdeps/libm-i387/s_fdimf.S: Likewise. + * sysdeps/libm-i387/s_fdiml.S: Likewise. + +1999-01-29 Richard Henderson + + * scripts/config.sub: Recognize alpha{pca5[67],ev[67]}. + + * sysdeps/generic/elf/backtracesyms.c (__backtrace_symbols): + Format pointer differences as longs. + + * sysdeps/alpha/fpu/s_floor.c, sysdeps/alpha/fpu/s_floorf.c: + Copy commentary from bits/mathinclude.h. Kill unused defines. + + * sysdeps/alpha/atomicity.h: New file. + +1999-01-29 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.112. + + * scripts/versions.awk: Quote { in regexp. + + * sunrpc/clnt_tcp.c (clnttcp_call): Resolve 32-64 comparison + conflict for 64 bit platforms. + Patch by trott@rottmann.hi.shuttle.de. + + * sysdeps/unix/sparc/vfork.S: Correct comment. + * sysdeps/unix/sparc/fork.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove vfork. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: No special case for + child necessary. + * sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file. + Patches by Jakub Jelinek . + + * sysdeps/libm-i387/s_fdim.S: Change fsubp to fsubrp for picky gas. + * sysdeps/libm-i387/s_fdimf.S: Likewise. + * sysdeps/libm-i387/s_fdiml.S: Likewise. + + * sysdeps/alpha/fpu/s_floor.c (__floor): Don't depend on inlining, + duplicate the code. + * sysdeps/alpha/fpu/s_floorf.c (__floorf): Likewise. + + * sysdeps/i386/Versions: Exports functions from libgcc since this + is what was done in glibc 2.0. + * sysdeps/m68k/Versions: Likewise. New file. + +1999-01-28 Andreas Schwab + + * sysdeps/wordsize-32/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C, + UINT8_C, UINT16_C, UINT32_C, UINT64_C): Remove casts, they must be + integer constants. Use ## directly instead of __CONCAT so that + the suffix string is not expanded as a macro. + * sysdeps/wordsize-64/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C, + UINT8_C, UINT16_C, UINT32_C, UINT64_C): Likewise. + (INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST64_MIN, + INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST16_MIN, INT_FAST32_MIN, + INT_FAST64_MIN, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX, + UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX, INTMAX_MIN, + INTMAX_MAX, UINTMAX_MAX): Define as long constants, not long long. + +1999-01-28 Andreas Schwab + + * locale/mb_cur_max.c (__ctype_get_mb_cur_max): Correct return + type to size_t. + * locale/broken_cur_max.c (__ctype_get_mb_cur_max): Likewise. + * stdlib/stdlib.h (__ctype_get_mb_cur_max): Likewise. + +1999-01-27 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/vfork.S: Deleted. + +1999-01-28 David S. Miller + + * sysdeps/sparc/sparc32/__longjmp.S: Rewrite without bogus sanity + checks and aborts, to make longjmp based thread schemes work again. + +1999-01-28 Ulrich Drepper + + * sysdeps/unix/sysv/sysv4/solaris2/configure.in: New file. + * sysdeps/unix/sysv/sysv4/solaris2/configure: New file. + * sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: New file. + Patch by Jeff Bailey . + + * locale/setlocale.c (free_mem): Don't try to free C locale data + and use setdata instead of doing it by hand. + + * iconv/gconv_conf.c (add_alias): Check that so such alias is + currently stored. + + * iconv/gconv_db.c (free_derivation): Free names if charsets for + first and last step. + + * iconv/gconv_dl.c: Unload all modules when debugging memory use. + + * locale/loadlocale.c (_nl_unload_locale): Free locale name. + + * intl/finddomain.c (free_mem): Also free filename. + * locale/findlocale.c (free_mem): Likewise. + (_nl_find_locale): Duplicate loc_name with strdupa not strdup. + * locale/setlocale.c (free_mem): New function. Free current locale + data and set current locale to "C". + + * libio/genops.c (_IO_un_link): Move #ifdef introduced in last + change in right place. + + * sysdeps/unix/sysv/linux/sys/timex.h: Add MAXTC from kernel + header. Suggested by Thomas Quinot . + +1999-01-28 Andreas Jaeger + + * libio/getc_u.c (__getc_unlocked): Avoid compiler warning. + +1999-01-28 Ulrich Drepper + + * libio/genops.c (_IO_un_link, _IO_link_in): Don't use locking if + _IO_MTSAFE_IO is not defined. + + * iconv/gconv_db.c (free_modules_db): Don't free memory of + internal modules. + + * iconv/gconv_db.c (free_mem): Don't free module tree if there is none. + +1999-01-27 Ulrich Drepper + + * locale/programs/locale-spec.c (locale_special): Take care of + possible trigraph sequence. + Patch by Zack Weinberg . + + * time/strptime.c (strptime_internal, case 's'): Initialize secs + to zero. Patch by Bruce Elliott . + +1999-01-27 Andreas Schwab + + * elf/Makefile (extra-objs): Add test modules objects. + +1999-01-27 Ulrich Drepper + + * wctype/wcextra.c: Declare __ctype32_b. + + * manual/string.texi: Add optimization examples for strcat and strchr. + +1999-01-26 Ulrich Drepper + + * libio/Makefile (routines): Remove fgetc. + * libio/fgetc.c: Removed. + * libio/getc.c: Add fgetc alias. + * libio/Versions [GLIBC_2.1]: Add fgetc_unlocked. + * libio/getc_u.c: Rename function to __getc_unlocked and make + getc_unlocked and fgetc_unlocked weak aliases. + * libio/stdio.h: Add prototype for fgetc_unlocked. + + * sysdeps/gnu/bits/utmp.h: Don't prepend exit_status elements with + __ since utmp.h is not mentioned in any standard. + + * sysdeps/unix/sysv/linux/i386/clone.S: When not using PIC don't + use jecxz since the label might be far away. + + * sysdeps/unix/sysv/linux/sigaction.c: Update comment to say the + __libc_missing_rt_sigs is defined here. + * sysdeps/unix/sysv/linux/sigpending.c: Only declare + __libc_missing_rt_sigs. + * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. + +1999-01-25 Ulrich Drepper + + * scripts/config.guess: Changes for ARM/Linux. + * scripts/config.sub: Likewise. + + * elf/Makefile: Define libdl variable as name of libdl library and + use it in all dependencies. + +1999-01-26 Geoff Keating + + * nss/nss_db/db-netgrp.c (_nss_db_setnetgrent): Suppress warning + about potentially uninitialized `flags'. + * nss/nss_db/db-alias.c (internal_setent): Likewise. + +1999-01-25 Andreas Jaeger + + * elf/failobj.c: Provide prototype for xyzzy. + +1999-01-25 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/clone.S: Correct error check again. + +1999-01-24 Roland McGrath + + * sysdeps/mach/hurd/ioctl.c: Include . + (__ioctl): Use IOC_MSGID macro. + +1999-01-24 Ulrich Drepper + + * libio/iofopen.c (_IO_fopen): Pass correct value as fourth + parameter to _IO_file_fopen. + * libio/iofopen64.c (_IO_fopen64): Likewise. + + * po/sv.po: Update from translation team. + + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add __vfork + as alias. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + +1999-01-24 Andreas Jaeger + + * ctype/ctype.h (toupper,tolower): Use __inline instead of inline, + define inline functions only when optimizing for speed and + __USE_EXTERN_INLINES is set. + +1999-01-24 Ulrich Drepper + + * scripts/config.sub: Update from latest autoconf release. + * scripts/config.guess: Likewise. + + * sysdeps/i386/i786/Implies: New file. + +1999-01-24 Andreas Jaeger + + * manual/install.texi (Running make install): Change for Linux 2.2. + +1999-01-24 Andreas Jaeger + + * manual/process.texi (Creating a Process): Fix typos. + +1999-01-24 Roland McGrath + + * sysdeps/mach/hurd/dl-sysdep.c (__getcwd): Fail with ENOSYS, don't + call abort. Suggested by Mark Kettenis . + +1999-01-23 Roland McGrath + + * sysdeps/unix/sysv/linux/sys/mtio.h: Moved to... + * sysdeps/gnu/sys/mtio.h: ...here. + (_IOT_mtop, _IOT_mtget, _IOT_mtpos, _IOT_mtconfiginfo): New macros. + * sysdeps/gnu/Dist: Add sys/mtio.h. + * sysdeps/unix/sysv/linux/Dist: Remove sys/mtio.h. + * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] + (sysdep_headers): Don't add sys/mtio.h here. + * sysdeps/gnu/Makefile [$(subdir) = misc] (sysdep_headers): Add it + here instead. + + Revamp Hurd ioctl typing magic to handle `struct' keyword in the + ioctl command macros, so we can use Unix-compatible headers that + make use of the _IO* macros. + * sysdeps/mach/hurd/bits/ioctls.h (_IOC_ENCODE_TYPE, + _IOC_ENCODE_TYPE_1, _IOC_ENCODE_TYPE_2, _IOTBASE_struct): New macros. + (_IOR, _IOW, _IOWR): Use them _IOC_ENCODE_TYPE(t) instead of _IOT_##t. + (_IOT_int, _IOT_char, _IOT_short): Renamed to _IOT__IOTBASE_*. + (numerous ioctl command macros): Restore `struct' keyword. + +1999-01-24 Ulrich Drepper + + * ctype/ctype.c (toupper): Correct variable names from last change. + (tolower): Likewise. + +1999-01-23 Ulrich Drepper + + * sunrpc/rpc_main.c (open_output): Allow better translation of + error message. + (close_output): Likewise. + * locale/programs/localedef.c: Unify messages. + * malloc/obstack.c: Likewise. + Suggested by Vladimir Michl . + + * grp/putgrent.c (putgrent): Don't insert extra colon. + Patch by Michael Schaefer . + + * nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has + at least two bytes (not one). Correct buflen parameter type. + * nss/nss_files/files-alias.c (get_next_alias): Make sure buffer + has at least two bytes. Use fgets_unlocked instead of fgets. + + * ctype/ctype.h: Don't user __tolower directly for tolower + implementation. Use inline function which tests for the range + first. Make _tolower equivalent to old tolower macros. + Likewise for toupper. + * ctype/ctype.c: Change tolower/toupper definition accordingly. + + * argp/argp-help.c: Use _tolower instead of tolower if possible. + * inet/ether_aton_r.c: Likewise. + * inet/ether_line.c: Likewise. + * inet/rcmd.c: Likewise. + * intl/l10nflist.c: Likewise. + * locale/programs/ld-collate.c: Likewise. + * locale/programs/linereader.c: Likewise. + * locale/programs/localedef.c: Likewise. + * nis/nss_nis/nis-alias.c: Likewise. + * nis/nss_nis/nis-network.c: Likewise. + * posix/regex.c: Likewise. + * resolv/inet_net_pton.c: Likewise. + * stdio-common/printf_fp.c: Likewise. + * stdio-common/vfscanf.c: Likewise. + * sysdeps/generic/strcasestr.c: Likewise. + + * math/bits/mathcalls.h: Fix typo. + +1999-01-23 Roland McGrath + + * sysdeps/gnu/errlist.awk: Add comment. + +1999-01-23 Ulrich Drepper + + * csu/Versions: Add __register_frame_info_table. + +1998-12-29 Geoff Keating + + * sunrpc/Versions: Include _authenticate, it's defined in a user + header (in fact, it's the whole contents of rpc/svc_auth.h). + +1999-01-23 Ulrich Drepper + + * io/ftw.c (process_entry): Initialize flag since not all gcc + versions are smart enough to see that this is no problem. + + * elf/dl-open.c (_dl_init_paths): Check malloc result. + + * csu/Versions: Add __frame_state_for. + +1999-01-22 Ulrich Drepper + + * sysdeps/gnu/errlist.awk: Mark ENOTSUP as alias for EOPNOTSUPP. + + * iconv/gconv_conf.c (add_alias): Convert names to uppercase before + adding into search tree. + (add_module): Likewise. + * iconv/iconv_open.c: Likewise. + * iconv/gconv_db.c: Change all __strcasecmp to strcmp. + * iconv/skeleton.c (gconv_init): Likewise. + +1999-01-20 Andreas Schwab + + * elf/Makefile: Make dependencies between test modules explicit. + (preloadtest-preloads): New variable. + ($(objpfx)preloadtest.out): Use it. + (preloadtest-ENV): Use it. + +1999-01-22 Andreas Schwab + + * sysdeps/unix/sysv/linux/arm/Dist: Undo last change. Not needed. + +1999-01-22 Roland McGrath + + * sysdeps/mach/hurd/Makefile ($(common-objpfx)stamp-errnos): Depend on + $(common-objpfx)errnos.d. + + * sysdeps/mach/hurd/Makefile: Fix errnos.h -> bits/errno.h in rules. + + * manual/errno.texi (Error Codes): Fix ENOSYS description. + Add ENOTSUP. + +1999-01-21 Ulrich Drepper + + * elf/Makefile: Add missing dependency for preloadtest binary. + +1999-01-21 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.111. + + * elf/Makefile (distribute): Add test module sources. + + * sysdeps/unix/sysv/linux/sys/sysmacros.h: Pretty print. + * sysdeps/unix/sysv/linux/Dist: Remove sys/sysmacros.h. + * sysdeps/unix/sysv/linux/Makefile: Remove sys/sysmacros.h. + * posix/Makefile (headers): Add sys/sysmacros.h. + * posix/sys/types.h: Include sys/sysmacros.h for __USE_BSD. + * sysdeps/generic/sys/sysmacros.h: New file. + * sysdeps/mach/hurd/xmknod.c: Include sys/types.h and remove minor and + major definition. + + * elf/dl-close.c: Rewrite the way adding to the global scope works + to handle error cases better than the last change. + The l_global flag is now only set when the object is actually + counted in the global scope list. + * elf/dl-deps.c: Likewise. + * elf/dl-open.c: Likewise. + +1999-01-20 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sigaction.c: New file. + + * sysdeps/unix/sysv/linux/arm/vfork.S: New file. + * sysdeps/unix/sysv/linux/arm/Dist: Add vfork.S. + + * sysdeps/unix/sysv/linux/arm/clone.S: Optimise a little, support + 26-bit machines correctly and fix check for returned errors. + +1999-01-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/clone.S: Micro-optimization. + + * sysdeps/unix/sysv/linux/i386/vfork.S: Add back the first + implementation now that the syscall is back in 2.2.0. + + * elf/Makefile: Change rule to make test module so that they are + compiled using -fPIC. + * elf/testobj1.c: Add missing prototype. + * elf/testobj1_1.c: Likewise. + * elf/testobj2.c: Likewise. + * elf/testobj3.c: Likewise. + * elf/testobj4.c: Likewise. + * elf/testobj5.c: Likewise. + * elf/testobj6.c: Likewise. + +1999-01-20 Ulrich Drepper + + * elf/Makefile (tests): Add loadfail. + Add rules to build failobj.so. + * elf/loadfail.c: New file. Test of failing to load object with + RTLD_GLOBAL set. + * elf/failobj.c: New file. Object which will fail to load. + + * elf/dl-close.c (_dl_close): Fix last patch (cnt is unsigned). + + * elf/dl-close.c: Handle failed loads which would have gone in the + global scope correctly. + + * elf/testobj1.c: Include stdlib.h to get NULL defined. + * elf/testobj2.c: Likewise. + * elf/testobj3.c: Likewise. + * elf/testobj4.c: Likewise. + * elf/testobj5.c: Likewise. + + * iconvdata/Makefile (modules): Add SAMI-WS2 and ISO-IR-197. + * iconvdata/gconv-modules: Add entries for above charsets. + * iconvdata/iso-ir-197.c: New file. + * iconvdata/sami-ws2.c: New file. + + * sysdeps/unix/sysv/linux/vfork.c: Once again use generic version. + +1999-01-18 Andreas Schwab + + * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.d): Fix + generation of dependency list to make it work with newer versions + of gcc. + +1999-01-18 Andreas Schwab + + * Makerules (build-module): New macro, moved from... + * elf/Makefile (build-module): ... here. + * iconvdata/Makefile (build-module): ... and here. + +1999-01-20 Ulrich Drepper + + * sysdeps/alpha/Versions: Add __atan2 for libm and GLIBC_2.0. + + * elf/Makefile (tests): Add preloadtest. Add rules to build more test + modules and the preloadtest binary. + * elf/loadtest.c (TEST_ROUNDS): Increase to 1000. + (testobjs): Add more modules. + (tests): Add entries for new modules. + * elf/preloadtest.c: New file. Test for LD_PRELOAD. + * elf/testobj1.c: Add 'preload' function. + * elf/testobj2.c: Likewise. + * elf/testobj3.c: Likewise. + * elf/testobj4.c: New file. + * elf/testobj5.c: New file. + * elf/testobj6.c: New file. + +1999-01-19 Ulrich Drepper + + * elf/dl-object.c (_dl_new_object): Micro-optimization. + + * elf/restest1.c: New file. Symbol resolution test. + * elf/testobj1_1.c: New file. Module used in this test. + * elf/Makefile: Add rules for restest1 generation and execution. + + * elf/dl-object.c (_dl_new_object): l_local_scope really gets + assigned the local scope. + + * posix/test-vfork.c (main): Improve test to check for correct + exit code. + + * sysdeps/unix/sysv/linux/i386/vfork.S: Rewrite to use clone. + + * sysdeps/unix/sysv/linux/bits/sched.h: Define CLONE_VFORK. + + * timezone/zdump.c: Update from tzcode1999a. + * timezone/zic.c: Likewise. + +1999-01-19 Andreas Jaeger + + * math/tgmath.h: Rename nextafterx to nexttoward. + +1999-01-19 Ulrich Drepper + + * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Add baud rates > + 460800. + * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise. + * sysdeps/unix/sysv/linux/bits/termios.h: Likewise. + * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise. + + * math/Makefile (libm-calls): Rename s_nextafterx to s_nexttoward. + * math/Versions: Likewise. + * math/bits/mathcalls.h: Likewise. + * manual/arith.texi: Likewise. + * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. + * sysdeps/libm-ieee754/s_nextafterx.c: Replaced by... + * sysdeps/libm-ieee754/s_nexttoward.c: New file. + * sysdeps/libm-ieee754/s_nextafterxf.c: Replaced by... + * sysdeps/libm-ieee754/s_nexttowardf.c: New file. + * sysdeps/libm-ieee754/s_nextafterxl.c: Replaced by... + * sysdeps/libm-ieee754/s_nexttowardl.c: New file. + + * time/Makefile (routines): Removed strfxtime. + * time/Versions: Likewise. + * time/strfxtime.c: Removed. + * time/time.h: Remove _LOCALTIME, _NO_LEAP_SECONDS, struct tmx, + mkxtime, and strfxtime. + +1999-01-18 Ulrich Drepper + + * iconv/gconv_conf.c (add_module): Complete rewrite. Use cleverer + data structures and avoid creating intermediate representations + first. Rewrite also all helper functions. + * iconv/gconv_db.c (find_derivation): Use new data structure for + module database. + * iconv/Versions: Remove __gconv_nmodules. + * iconv/iconv_prog.c: Rewrite generation of charset name list to + use new data structure. + * iconv/gconv_int.h (struct gconv_module): Add new elements for + database data structure. + (__gconv_modules_db): Update type. + (__gconv_transform_dummy): Removed. + * iconv/gconv_builtin.h: Remove dummy transformation. + * iconv/gconv_simple.c: Remove __gconv_transform_dummy. + + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove + __syscall_vfork, add vfork. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + +1999-01-18 Andreas Jaeger + + * posix/test-vfork.c: Include for wait declaration. + +1999-01-16 Andreas Schwab + + * manual/ctype.texi: Fix cross refs and typos. + * manual/charset.texi: Likewise. + +1999-01-18 Ulrich Drepper + + * Rules: Add dummy.c and dummy.o to common-generated. + Patch by Andreas Schwab. + +1999-01-18 10:07 -0500 Zack Weinberg + + * manual/libc-texinfo.sh: Use tsort.awk. + * manual/tsort.awk: New file. + * manual/Makefile (minimal-dist): Add tsort.awk. + (distribute): Remove generated files: summary.texi, + stamp-summary, chapters.texi, top-menu.texi, and texis. + +1999-01-15 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/vfork.S: Test return value after + fork syscall. + +1999-01-17 Ulrich Drepper + + * wctype/wcfuncs.c: Declare __ctype32_b. + + * elf/Makefile (test-modules): Add test-modules. + + * stdlib/canonicalize.c (canonicalize): Update write pointer after + realloc. Minor optimizations. + +1999-01-16 Ulrich Drepper + + * po/no.po: Update from norwegian translation team. + + * iconvdata/iso-2022-jp.c: Correct handling of G2 set. + Patch by Shinya Hanataka . + + * elf/Makefile (tests): Add loadtest. + Add rules to generate test modules. + * Makeconfig (+link): Add $(LDFLAGS-$(@F)) to command line. + * elf/loadtest.c: New file. + * elf/testobj1.c: New file. + * elf/testobj2.c: New file. + * elf/testobj3.c: New file. + + * elf/dl-close.c: Correct removing module from global list. + + * elf/dl-open.c: Add debugging code. + + * include/string.h: Add __rawmemchr prototype. + * string/Makefile (routines): Add rawmemchr. + * string/Versions [GLIBC_2.1]: Add __rawmemchr and rawmemchr. + * string/string.h: Add prototype for rawmemchr. + * string/bits/string2.h: Optimize strchr with rawmemchr. + * sysdeps/generic/rawmemchr.c: New file. + * sysdeps/i386/rawmemchr.c: New file. + * sysdeps/i386/i486/bits/string.h: Add rawmemchr inline code. + Optimize strchr with rawmemchr. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _LFS_LARGEFILE, + _LFS64_LARGEFILE, and _LFS64_STDIO for Unix98. + +1999-01-14 Andreas Jaeger + + * nis/nis_error.c (nis_errlist): Fix capitilasation. + +1999-01-15 Ulrich Drepper + + * posix/Makefile (tests): Add test-vfork. + * posix/test-vfork.c: New file by Andreas Schwab. + + * manual/charset.texi: More misspelling fixes. + Reported by Tom Tromey . + Improve mbsinit example. + + * sysdeps/unix/sysv/linux/vfork.c: Removed. + * sysdeps/unix/sysv/linux/i386/vfork.S: New file. + +1999-01-14 Ulrich Drepper + + * Make-dist: If file is generated but still distributed the later + is correct. + + * sysdeps/unix/sysv/linux/arm/Dist: Add sys/user.h. + + * manual/Makefile (examples): Filter out the example code from + add-ons. + + * version.h (VERSION): Bump to 2.0.110. + + * nis/nis_error.c (nis_errlist): Fix typo in string. + + * misc/regexp.h: Add restrict to function declarations. + +1998-12-30 Andreas Jaeger + + Patche by Ralf Baechle : + * sysdeps/mips/sys/regdef.h: New file, enhanced versions of + deleted linux specific files. + +1998-12-29 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/siginfo.h: New file. + +1999-01-14 Andreas Jaeger + + * misc/regexp.h (compile): Correct end-of-line check, fix typo in + docu. Reported by Kalle Olavi Niemitalo . + +1999-01-14 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add vfork. + Patch by Richard Henderson . + +1999-01-13 Ulrich Drepper + + * manual/nss.texi (NSS Module Interface): Document requirement on errno + value after unsuccessful call of module function. + + * sysdeps/unix/sysv/linux/syscalls.list: Add __syscall_fork alias. + * sysdeps/unix/sysv/linux/vfork.c: Use vfork syscall if available, + otherwise use fork. + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add vfork. + * sysdeps/unix/sysv/linux/sparc32/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc64/syscalls.list: Likewise. + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Correct handling of + INLINE_SYSCALL for syscall without parameters. + +1999-01-13 Andreas Schwab + + * sysdeps/unix/make-syscalls.sh: Set shared-only-routines for + versioned syscalls. + + * Rules: Remove rules for empty.* again. + +1999-01-13 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/vfork.S: New file. + +1999-01-13 Ulrich Drepper + + * sysdeps/i386/bits/string.h: Correct several bugs in various + functions which never worked. + Patch by Maciej W. Rozycki . + +1999-01-12 Ulrich Drepper + + * manual/charset.texi: Add many corrections. + Patch by Benjamin Kosnik . + +1999-01-12 Andreas Jaeger + + * manual/charset.texi: Fix some typos. + +1999-01-12 Ulrich Drepper + + * login/programs/pt_chown.c (main): Update copyright year. + +1999-01-11 Ulrich Drepper + + * sysdeps/posix/tempname.c: Open files with mode 0600. + + * ctype/Versions [GLIBC_2.0]: Export __ctype32_b. + * include/wctype.h: Declare __iswctype. + * stdio-common/vfscanf.c (__vfscanf): Use __iswspace instead of + iswspace. + * wctype/Makefile (routines): Add wcextra_l. + * wctype/wcextra.c (iswblank): Implement function here and don't use + __iswctype. + (__iswblank_l): Move definition to... + * wctype/wcextra_l.c: ...here. New file. + * wctype/wcfuncs.c: Really implement functions and don't call + __iswctype or __towctrans. + * wctype/wctype.h: Change isw* and tow* macros. Don't call + __iswctype or __towctrans. Instead optimize constant argument case. + + * iconv/gconv.h: Fix typos. + + * iconv/skeleton.c: Fix typos. Optimize init function a bit. + Correctly emit escape sequence to return to initial state in + conversion function. + + * iconvdata/iso-2022-jp.c (gconv_init): Correctly initialize + max_needed_to element. + + * manual/mbyte.texi: Removed. This is now described in charset.texi. + * manual/charset.texi: New file. + * manual/Makefile (chapters): Replace mbyte by charset. + * manual/ctype.texi: Document wide character functions. + * manual/intro.texi: Fix reference to mbyte chapter. + * manual/lang.texi: Likewise. + * manual/locale.texi: Likewise. + * manual/stdio.texi: Likewise. + * manual/string.texi: Fix @node line for new charset chapter. + * manual/libc.texinfo (UPDATED): Updated. Also update copyright years. + * manual/memory.texi (savestring): Optimize code to give a good + example. + + * manual/filesys.texi: Fix wording. Patches by Jim Meyering. + + * nscd/nscd_getgr_r.c: Include stdint.h to get uintptr_t definition. + * nscd/nscd_getpw_r.c: Likewise. + * nscd/nscd_gethst_r.c: Likewise. + + * stdlib/stdtold_l.c: Always include xlocale.h. + +1999-01-11 Geoffrey Keating + + * stdlib/fpioconst.h (LDBL_MAX_10_EXP_LOG): Define to be same as + DBL_MAX_10_EXP_LOG if there is no long double. + (_fpioconst_pow10): Always use size as LDBL_MAX_10_EXP_LOG to match + printf_fp.c. + +1999-01-10 Andreas Jaeger + + * timezone/Makefile ($(testdata)/GB): Changed to ... + ($(testdata)/Europe/London): ... for tst-timezone test. + ($(objpfx)tst-timezone.out): Change GB to Europe/London. + + * timezone/tst-timezone.c (main): Enable DST switching test, + change GB to Europe/London. + +1999-01-10 Philip Blundell + + * socket/Makefile (headers): Remove bits/sockunion.h. + +1999-01-09 Philip Blundell + + * socket/sys/socket.h: Don't include . + * sysdeps/generic/bits/sockunion.h: Deleted. + * sysdeps/unix/sysv/linux/bits/sockunion.h: Likewise. + +1999-01-08 H.J. Lu + + * io/fts.c (fts_close): Don't access memory after having it freed. + +1998-01-08 Andreas Schwab + + * manual/Makefile (stamp-summary): Remove space after -t option + for compatibility with non-GNU sort programs. + +1999-01-08 Andreas Schwab + + * manual/search.texi (Comparison Functions): Fix compare_doubles + example. + +1999-01-07 Andreas Schwab + + * Makerules (do-tests-clean): Remove reference to obsolete + variable tests-static. + +1999-01-07 Ulrich Drepper + + * sysdeps/unix/sysv/linux/ntp_adjtime.c: Removed. It's an alias + for adjtimex. + * sysdeps/unix/sysv/linux/Dist: Add ntp_gettime.c. + * sysdeps/unix/sysv/linux/Makefile [subdir=time] (sysdep_routines): + Remove ntp_adjtime. + * sysdeps/unix/sysv/linux/syscalls.list: Add alias ntp_adjtime to + adjtimex. + * sysdeps/unix/sysv/linux/sys/timex.h: Correct prototype for + ntp_adjtime. + + * sysdeps/i386/i686/mempcpy.S: Fix typos. + + * sysdeps/i386/i686/memset.S: New file. + * sysdeps/i386/i686/bzero.S: New file. + * sysdeps/i386/i686/strcmp.S: New file. + * sysdeps/i386/i686/memcpy.S: New file. + + * sysdeps/unix/sysv/linux/Makefile [subdir=time] (sysdep_routines): + Add ntp_adjtime and ntp_gettime. + * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add ntp_adjtime and + ntp_gettime. + +1998-12-29 Ulrich Windl + + * manual/time.texi (Precision Time): Add documentation for + ntp_gettime and ntp_adjtime. + +1998-12-28 Ulrich Windl + + * sysdeps/unix/sysv/linux/ntp_gettime.c: Created new file + + * sysdeps/unix/sysv/linux/ntp_adjtime.c: Created new file + + * sysdeps/unix/sysv/linux/sys/timex.h (struct ntptimeval): Added. + Add prototypes for ntp_adjtime and ntp_gettime. + +1999-01-07 Ulrich Drepper + + * sysdeps/i386/bits/select.h (__FD_ZERO): Remove early clobbers + from c and D register output. + +1999-01-07 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Fix bug in last change. + +1999-01-07 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/bits/types.h: Correct type for + __fsfilcnt_t. Patch by Bruce Elliott . + +1999-01-05 Andreas Schwab + + * manual/conf.texi: Remove pointers from first @node. Move old + @node spec inside comment. + * manual/lang.texi: Likewise. + * manual/libc-texinfo.sh: Also find `@node.*Top' in a comment. + * manual/stdio.texi: Fix typo. + +1999-01-04 Andreas Schwab + + * wcsmbs/btowc.c: Accept all values in the range [SCHAR_MIN + .. UCHAR_MAX]. Local var buf renamed to result and its type + changed from char[] to wchar_t to get proper alignment. + + * posix/fnmatch.c: Also cast the arguments of the other ctype + functions to unsigned char. + +1999-01-07 Ulrich Drepper + + * Rules: Add rules for empty.{o,os,op} back. + +1999-01-05 Ulrich Drepper + + * Makerules (common-mostlyclean): Add missing parentheses. + + * Rules: Add back rules for empty.o generation. + +1999-01-05 Philip Blundell + + * sysdeps/unix/sysv/linux/net/if_arp.h: Add new ARPHRD definitions + from latest (2.2.0pre4) kernel. + +1999-01-05 Scott Bambrough + + * sysdeps/unix/sysv/linux/arm/sys/user.h : New file. Fixes problem + on ARM platforms with programs that include and + . Solution suggested by Geoff Keating earlier with + fix for same problem on the PowerPC platform. + +1999-01-04 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/register-dump.h: Correct widths of + register values. + * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: New file. + +1999-01-04 Ulrich Drepper + + * csu/version.c (banner): Update date. + * catgets/gencat.c: Update year in copyright message text. + * db2/makedb.c: Likewise. + * debug/catchsegv.sh: Likewise. + * elf/ldd.bash.in: Likewise. + * elf/sprof.c: Likewise. + * iconv/iconv_prog.c: Likewise. + * locale/programs/locale.c: Likewise. + * locale/programs/localedef.c: Likewise. + * login/programs/utmpd.c: Likewise. + * malloc/mtrace.pl: Likewise. + * nscd/nscd.c: Likewise. + * nss/getent.c: Likewise. + * posix/getconf.c: Likewise. + +1999-01-02 Philip Blundell + + * sunrpc/Makefile: Ensure that we really use the right path for cpp. + +1999-01-03 Philip Blundell + + * Makefile (tests-clean): New target to delete test output files. + * Makerules (do-tests-clean): New rule to support the above. + * Rules (subdir_testclean): Likewise. + +1999-01-03 Andreas Schwab + + * iconv/Makefile: Use install-others instead of explicit + dependency on subdir_install. + +1999-01-02 Andreas Schwab + + * iconv/gconv_db.c (find_derivation): Release lock before + returning. + (__gconv_find_transform): Likewise. + +1999-01-01 Andreas Schwab + + * inet/ether_ntoa.c (ether_ntoa): Make `asc' static since that's + what we return. + +1999-01-01 Andreas Schwab + + * Makerules: Remove all references to obsolete variables + tests-static and test-srcs-static. + * Make-dist: Likewise. + * Rules: Likewise. Remove rules to generate obsolete empty.{c,o*}. + +1999-01-03 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/pread.c: Use the i386 implementation. + * sysdeps/unix/sysv/linux/arm/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/arm/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise. + +1998-12-28 Andreas Schwab + + * sysdeps/m68k/dl-machine.h (elf_machine_rela): Reorder expression + to avoid accessing global data in the usual case. + +1999-01-01 Andreas Jaeger + + * wcsmbs/wcstold_l.c: Correct last patch to include wchar.h from + system path. + +1998-12-31 Ulrich Drepper + + * iconvdata/Makefile: Use rpath $ORIGIN for modules which use any of + the conversion libraries. + + * include/features.h: Mention latest extensions in _POSIX_C_SOURCE + description. + + * libio/genops.c (list_all_lock): New variable. + (_IO_un_link, _IO_link_in): Acquire lock before modifying _IO_list_all. + [PR libc/911]. + + * sysdeps/i386/i686/strtok.s: Add missing cld. + + * sysdeps/i386/i686/mempcpy.S: New file. + +1998-12-30 Geoff Keating + + Suppress parentheses warnings: + * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c + (DL_FIND_ARG_COMPONENTS): here, + * sysdeps/powerpc/dl-machine.c: here, + * sysdeps/powerpc/fclrexcpt.c (feclearexcept): here, + * sysdeps/powerpc/fesetround.c (fesetround): here, + * sysdeps/powerpc/feupdateenv.c (feupdateenv): here, + * sysdeps/powerpc/fraiseexcpt.c (feraiseexcept): here, + * sysdeps/powerpc/fsetexcptflg.c (fesetexceptflag): here, + * sysdeps/powerpc/s_rint.c (__rint): here, + * sysdeps/powerpc/s_rintf.c (__rintf): here, + * sysdeps/powerpc/w_sqrt.c (__sqrt): here, + * sysdeps/powerpc/w_sqrtf.c (__sqrtf): and here. + +1998-12-30 Geoff Keating + + * wcsmbs/wcstold.c [__NO_LONG_DOUBLE_MATH]: Include wchar.h. + * wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Likewise. Also define + appropropriate prototypes, correct procedure names. + +1998-12-30 Geoff Keating + + * sysdeps/generic/crypt-entry.c: Prototype __crypt_r, suppress + warning. + (__crypt_r): Add __restrict. + * sysdeps/generic/crypt.h: Remove internal routine. Add __restrict. + +1998-12-31 Ulrich Drepper + + * stdlib/longlong.h: Add missing #else in SPARC definitions. + +1998-12-30 Andreas Jaeger + + Patches by Ralf Baechle : + * sysdeps/unix/sysv/linux/mips/sgidefs.h: Removed. + * sysdeps/unix/sysv/linux/mips/sys/asm.h: Removed. + * sysdeps/unix/sysv/linux/mips/sys/regdef.h: Removed. + * sysdeps/unix/sysv/linux/mips/sys/fpregdef.h: Removed. + * sysdeps/unix/sysv/linux/mips/regdef.h: Removed. + * sysdeps/unix/sysv/linux/mips/fpregdef.h: Removed. + + * sysdeps/unix/sysv/linux/mips/Makefile: Remove delete files. + * sysdeps/unix/sysv/linux/mips/Dist: Remove deleted files. + + * sysdeps/mips/sys/fpregdef.h: New files, enhanced versions of deleted + linux specific files. + * sysdeps/mips/sys/asm.h: Likewise. + * sysdeps/mips/sgidefs.h: Likewise. + * sysdeps/mips/fpregdef.h: Likewise. + * sysdeps/mips/regdef.h: Likewise. + + * sysdeps/mips/Makefile: Add new headers. + * sysdeps/mips/Dist: Add new files. + + * sysdeps/mips/fpu_control.h (_FPU_DEFAULT): Change value. + +1998-12-28 Andreas Schwab + + * iconvdata/Makefile: Remove variable assignments and rules that + are now auto-generated. Include $(objpfx)iconv-rules instead. + Btw, that removes a few typos. + (charmaps): New variable. + ($(objpfx)iconv-rules): New target. + (gen-8bit-modules): Renamed from sed-generated-headers, remove .h + suffixes. + (gen-8bit-gap-modules): Renamed from awk-generated-headers, remove + .h suffixes. + (gen-special-modules): New variable. + (generated-modules): New variable. + (headers): Use it. + (before-compile): Likewise. + (generated): Likewise, and add iconv-rules. + * iconvdata/euc-cn.c: Renamed from euccn.c. + * iconvdata/euc-jp.c: Renamed from eucjp.c. + * iconvdata/euc-kr.c: Renamed from euckr.c. + * iconvdata/euc-tw.c: Renamed from euctw.c. + * iconvdata/iso_6937.c: Renamed from iso6937.c. + * iconvdata/iso_6937-2.c: Renamed from iso6937-2.c. + * iconvdata/t.61.c: Renamed from t61.c. + * iconvdata/Makefile (distribute): Adjusted for those renames. + Remove $(objpfx) from names. + +1998-12-28 Andreas Schwab + + * sysdeps/generic/hp-timing.h: Fix comment. + * sysdeps/generic/dl-hash.h: Likewise. + * sysdeps/i386/i686/hp-timing.h: Likewise. + +1998-12-28 Andreas Schwab + + * posix/fnmatch.c (fnmatch): Always pass unsigned char values to + FOLD macro. + +1998-12-28 Andreas Schwab + + * nss/db-Makefile ($(VAR_DB)/shadow.db): Fix last change. + +1998-12-29 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Sync with + current Linux 2.1.132 kernel sources. + +1998-12-28 Andreas Jaeger + + Patches by Ralf Baechle for Linux/MIPS: + * sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change + pread/pwrite and llseek calls. + + * sysdeps/unix/sysv/linux/mips/sysdep.S: New file. + +1998-12-29 Wolfram Gloger + + * malloc/thread-m.h [_LIBC] : Fix for NO_THREADS case. + +1998-12-28 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.109. + + * Makefile (distribute): Add INTERFACE and CONFORMANCE. + * elf/Makefile (distribute): Add hp-timing.h. + * sysdeps/i386/i686/Dist: New file. + + * mach/Versions: Add mach_msg_send and mach_msg_receive. + Patch by UCHIYAMA Yasushi . + + * sysdeps/unix/sysv/linux/netipx/ipx.h (SIOCIPXNCPCONN): New macro + from latest kernel. + + * stdlib/fpioconst.c: If __NO_LONG_DOUBLE_MATH don't define constants + beyond range of double. + * stdlib/fpioconst.h (_fpioconst_pow10): Reduce size according to + fpioconst.c change. + * stdlib/strtold.c: Fall back on double functions if + __NO_LONG_DOUBLE_MATH. + * stdlib/strtold_l.c: Likewise. + * wcsmbs/wcstold.c: Likewise. + * wcsmbs/wcstold_l.c: Likewise. + * sysdeps/ieee754/ldbl2mpn.c: Don't generate code if + __NO_LONG_DOUBLE_MATH. + * sysdeps/ieee754/mpn2ldbl.c: Likewise. + +1998-12-28 Geoff Keating + + * sysdeps/powerpc/bits/endian.h: Use #warning, not #error, if + the endianness can't be determined, for makedepend. + +1998-12-27 Ulrich Drepper + + * elf/dl-lookup.c (_dl_num_relocations): New variable. + (do_lookup): Increment _dl_num_relocations for every call. + * elf/rtld.c (print_statistics): New function. + (_dl_debug_statistics): New variable. Set when statistics are asked + for. + (rtld_total_time, relocate_time, load_time): New variables. Used + in print_statistics. + (_dl_start): Record start and end time of startup. Call + print_statistics if needed. + (dk_main): Record times for relocations and loading. + (process_dl_debug): Recognize statistics. + + Low-level, low-overhead, high-precision timing functionality. + * sysdeps/generic/hp-timing.h: New file. + * sysdeps/i386/i686/Makefile: New file. + * sysdeps/i386/i686/hp-timing.h: New file. + * sysdeps/i386/i686/hp-timing.c: New file. + + * sysdeps/i386/dl-machine.h (elf_machine_rel): Reverse order of OR + clauses to avoid accessing global variables during rtld relocation. + + * sunrpc/rpc_main.c: Unify messages. + + * sysdeps/unix/sysv/linux/arm/Dist: Add ioperm.c and sys/io.h. + +1998-12-27 Roland McGrath + + * sysdeps/mach/hurd/bits/statfs.h (struct statfs, struct statfs64): + Remove __ from member names; rename __unused to f_spare. + +1998-12-21 Mark Kettenis + + Implement fstatvfs and statvfs on the Hurd. + * sysdeps/mach/hurd/bits/statfs.h: New file. + * sysdeps/mach/hurd/bits/statvfs.h: New file. + * sysdeps/mach/hurd/fstatvfs.c: New file. + * sysdeps/mach/hurd/statvfs.c: New file. + + * sysdeps/generic/fstatfs64.c: Changed into stub. + Moved previous contents to... + * sysdeps/unix/sysv/linux/fstatfs64.c: ...here. + * sysdeps/generic/fstatvfs64.c: Likewise. + * sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise. + * sysdeps/generic/statfs64.c: Likewise. + * sysdeps/unix/sysv/linux/statfs64.c: Likewise. + * sysdeps/generic/statvfs64.c: Likewise. + * sysdeps/unix/sysv/linux/statvfs64.c: Likewise. + +1998-12-25 Ulrich Drepper + + * elf/dl-hash.h: Move to... + * sysdeps/generic/dl-hash.h: ...here. Correct parameter type (must + be unsigned char). Remove conditional from inner loop and rearrange + binary operations (12-22% performance increase). + * sysdeps/i386/i686/dl-hash.h: New file. Another 10% faster than + optimized generic version. + +1998-12-23 Ulrich Drepper + + * elf/dl-lookup.c (do_lookup): If looking up an unversioned symbol + but the object file only contains versioned definitions than + accept the definition if there is exactly one even if the version + number is not the default version. This helps dlsym() to find + newly introduced symbols. + + * locale/programs/ld-collate.c: Unify messages and correct typos. + * locale/programs/ld-monetary.c: Likewise. + * locale/programs/ld-numeric.c: Likewise. + * locale/programs/ld-time.c: Likewise. + * manual/errno.texi: Likewise. + * nis/nis_error.c: Likewise. + * nis/nis_print.c: Likewise. + * nis/nss_nisplus/nisplus-publickey.c: Likewise. + * sunrpc/rpc_main.c: Likewise. + +1998-12-20 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Add + implementation. + * sysdeps/unix/sysv/linux/arm/syscalls.list: Remove wrappers for + now-inlined calls. + +1998-12-22 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/ioperm.c: New file. + Implementation of inb, outb etc for ARM systems. + * sysdeps/unix/sysv/linux/arm/sys/io.h: Likewise. + * sysdeps/unix/sysv/linux/arm/Versions: Add appropriate + entries for the above. + +1998-12-21 Ulrich Drepper + + * nss/db-Makefile (shadow.db): Create file with correct protections. + Based on a patch by Joel Klecker . + + * inet/gethstbynm_r.c: Remove NEED__RES definition since we do this + anyway for digits_dots.c. + * nss/getXXbyYY.c: Initialize _res before using digits_dots.c + functions. + * nss/getXXbyYY_r.c: Likewise. + +1998-12-19 Andreas Schwab + + * sunrpc/key_call.c (getkeyserv_handle): Use __fcntl instead of + fcntl. + +1998-12-20 Andreas Schwab + + * locale/weight.h (get_weight): Extract string elements as + unsigned values. + +1998-12-06 Mark Kettenis + + Reverse the change of 1998-04-22. Providing a struct dirent with + different members when __USE_FILE_OFFSET64 is defined is asking + for trouble. Instead add the necessary LFS magic to the 4.4BSD + header. + * sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Add LFS definitions. + * sysdeps/mach/hurd/bits/dirent.h: Removed. + * sysdeps/mach/hurd/readdir64.c: Removed. + * sysdeps/mach/hurd/readdir64_r.c: Removed. + +1998-12-20 Roland McGrath + + * sysdeps/generic/bits/mman.h [__USE_MISC] (MAP_ANONYMOUS): Define as + alias for MAP_ANON. + + * stdio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr): + Remove decls. They don't exist at all on the Hurd. + + * sunrpc/svc_unix.c, sunrpc/clnt_unix.c: Avoid using `struct cmsghdr' + and `struct ucred' #ifndef SCM_CREDENTIALS. + + * sunrpc/publickey.c (getsecretkey): Use `&errno' instead of + `__errno_location ()'; means the same, works for Hurd. + + * sysdeps/mach/hurd/Makefile (subdirs): Don't elide sunrpc. + +1998-12-18 Ulrich Drepper + + * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Include + features.h and stddef.h. + * sysdeps/unix/sysv/sysv4/solaris2/bits/sigstack.h (struct + sigaltstack): Move ss_size field at the end. + Patches by Jeff Bailey . + + * time/getdate.c (check_mday): tm_mon contains values from 0 to 11, + not 1 to 12. + + * manual/texinfo.tex: Update to latest version. + + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add ipc. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + Patch by Cristian Gafton . + +1998-12-17 Ulrich Drepper + + * iconvdata/gconv-modules: Add remaining aliases from Internet + standards. + + * iconv/gconv_int.h (gconv_module): Add new element from_regex_mem. + * iconv/gconv_conf.c (module_compare): Make s1 and s2 const. + (detect_conflict): New function. + (add_alias): Call detect_conflict to see whether there is already + a module for the new name. + (add_module): Make sure there is no alias for the new name. + (read_conf_file): Call add_alias with new argument. + (__gconv_read_conf): Don't destroy module tree immediately after + walking it. We need it to test the internal conversions for + conflicts. + * iconv/gconv_db.c (find_derivation): Don't allocate memory for + regular expression. There is now room in the module descriptor. + (free_mem): Don't free memory for regular expression. + + * sysdeps/unix/sysv/linux/bits/socket.h: Add AF_IRDA, PF_IRDA and + MSG_TRYHARD. + + * sunrpc/clnt_unix.c (clntunix_destroy): Use __close not close. + * libio/oldtmpfile.c: Likewise. + * libio/oldiofdopen.c: Use __fcntl instead fcntl. + * sysdeps/posix/profil.c: Use __sigaction instead of sigaction. + + * iconvdata/iso646.c (gconv_init): Return correct error value if we + run out of memory. + * iconvdata/iso-2022-jp.c: Likewise. + + * iconv/gconv_db.c (gen_steps): Respect error return value from + init functions and abort. + + * iconvdata/iso646.c: Recognize NF_Z_62-010_1973 as charset name. + +1998-12-17 H.J. Lu + + * sunrpc/rpc/xdr.h (XDR_DESTROY): Add ';'. + (xdr_destroy): Likewise. + +1998-12-17 Ulrich Drepper + + * login/login.c: Determine pts/3 as terminal name if path is + /dev/pts/3. This is consistent with getlogin. [PR libc/906] + +1998-12-16 Andreas Schwab + + * sysdeps/posix/tempname.c (__path_search): Add casts for format + string. + +1998-12-16 Andreas Schwab + + * sunrpc/rpc/xdr.h (XDR_DESTROY, xdr_destroy): Avoid dangling else + problem. + (IXDR_PUT_INT32): Fully parenthesize parameters. + (IXDR_GET_LONG, IXDR_PUT_LONG): Mark GCC extension. Fully + parenthesize parameter. + +1998-12-16 Ulrich Drepper + + * iconvdata/gconv-modules: Add some of the charset name aliases + used in Internet standards. + +1998-12-16 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.107. + + * sysdeps/i386/i486/bits/string.h: Pretty printing. + +1998-12-16 Thorsten Kukuk + + * sunrpc/rpc/xdr.h: Revert patch from 1998-12-14, partly revert + patch from 1998-12-01. + +1998-12-16 Roland McGrath + + * sysdeps/mach/hurd/bits/local_lim.h (SYMLOOP_MAX): Define this #ifdef + __USE_BSD as well as #ifdef __USE_GNU, so MAXSYMLINKS can use it. + Reported by UCHIYAMA Yasushi + +1998-12-16 Ulrich Drepper + + * iconvdata/ibm866.c: New file. + * iconvdata/cp1258.c: New file. + * iconvdata/cp1258.h: New file. + * iconvdata/mac-uk.c: New file. + * iconvdata/gconv-modules: Add rules for new modules. + * iconvdata/Makefile: Likewise. + + * sysdeps/gnu/bits/ipc.h: Move libc internal bits to... + * include/bits/ipc.h: ..here. New file. + +1998-12-16 Andreas Jaeger + + * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Don't change + read-only struct termios_p* but change k_termios member directly. + +1998-12-15 H.J. Lu + + * sysdeps/posix/tempname.c (__path_search): Fix the maximum + string length. + +1998-12-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/msgctl.c: Use INLINE_SYSCALL. + * sysdeps/unix/sysv/linux/msgget.c: Likewise. + * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. + * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. + * sysdeps/unix/sysv/linux/semctl.c: Likewise. + * sysdeps/unix/sysv/linux/semget.c: Likewise. + * sysdeps/unix/sysv/linux/semop.c: Likewise. + * sysdeps/unix/sysv/linux/shmat.c: Likewise. + * sysdeps/unix/sysv/linux/shmctl.c: Likewise. + * sysdeps/unix/sysv/linux/shmdt.c: Likewise. + * sysdeps/unix/sysv/linux/shmget.c: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Remove ipc syscall here. + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add ipc syscall here. + + * time/strftime.c: Remove 'f' format. + + * time/strptime.c (get_number): Ignore trailing whitespace. + (strptime_internal): Handle 'F' and 'k' formats. + + * sysdeps/posix/tempname.c (__path_search): Add second part of the + patch by Andreas Jaeger. + +1998-12-15 Andreas Jaeger + + * stdio-common/tst-tmpnam.c (main): Use void as parameter to avoid + warnings about unused args. Fix comment. + +1998-12-15 Andreas Jaeger + + * sysdeps/posix/tempname.c (__path_search): Correct last patch. + +1998-12-14 Ulrich Drepper + + * sunrpc/rpc/xdr.h (IXDR_GET_INT32): Case pointer before reading from + it. + (IXDR_PUT_INT32): Likewise for writing. + Patch by Bruce Elliott . + +1998-12-08 H.J. Lu + + * sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Don't clear + the IBAUD0 bit in c_iflag. + + * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Clear the + the IBAUD0 bit in c_iflag. + +1998-12-14 Ulrich Drepper + + * time/Makefile (tests): Add tst-strptime. + * time/tst-strptime.c: New file. + * time/strptime.c: Correct bugs in weekday and yearday computation. + +1998-12-14 Ulrich Drepper + + * time/strptime.c (strptime_internal): Set tm_wday and tm_yday in + any of tm_year, tm_mon, or tm_mday was changed and the value + itself wasn't specified. + + * include/stdio.h: Add new parameter to __path_search. + * libio/oldtmpfile.c: Add 0 as new parameter to __path_search. + * stdio-common/tmpfile.c: Likewise. + * stdio-common/tmpfile64.c: Likewise. + * stdio-common/tmpnam.c: Likewise. + * stdio-common/tmpnam_r.c: Likewise. + * stdio-common/tempnam.c: Add 1 as new parameter to __path_search. + * sysdeps/posix/tempname.c: Add new parameter. If value is nonzero + consider TMPDIR environment variable and dir parameter. Otherwise not. + * stdio-common/Makefile (tests): Add tst-tmpnam. + * stdio-common/tst-tmpnam.c: New file. + + * po/es.po: Update from translation team. + +1998-12-12 Andreas Schwab + + * timezone/Makefile: Protect inclusion of z.* by avoid-generated + and inhibit_timezone_rules instead of no_deps. + * Make-dist: Pass inhibit_timezone_rules=t when making + echo-distinfo. + +1998-12-12 Andreas Schwab + + * manual/Makefile (distribute): Remove dir-add.texinfo. + + * sysdeps/unix/sysv/linux/powerpc/Dist: Add sys/procfs.h and + sys/user.h. + +1998-12-11 Andreas Schwab + + * manual/Makefile (stamp-summary): Use ^L as separator for + sorting. + * manual/arith.texi: Add comments before all @deffoox lines to get + them added to the summary. + * manual/creature.texi: Likewise. + * manual/math.texi: Likewise. + +1998-12-13 Andreas Jaeger + + * math/libm-test.c: Remove macro ISINF. Change all usages of + ISINF to isinf. + +1998-12-13 Ulrich Drepper + + * sysdeps/posix/tempname.c: Use __xstat instead of __stat. + * sysdeps/unix/grantpt.c: Likewise. + * sysdeps/unix/sysv/linux/ptsname.c: Likewise. + * sysvipc/ftok.c: Likewise. + Patch by Franz Sirl . + + * stdlib/test-canon.c: Define PATH_MAX if the system does not. + * string/stratcliff.c: Use MAP_ANON instead of MAP_ANONYMOUS. + Patch by UCHIYAMA Yasushi . + +1998-12-13 Andreas Jaeger + + * sysdeps/alpha/fpu/fsetexcptflg.c: Avoid -Wparentheses warning. + + * sysdeps/libm-ieee754/s_expm1.c (__expm1): Avoid -Wparentheses + warning. + * sysdeps/libm-ieee754/s_log1p.c (__log1p): Likewise. + * sysdeps/libm-ieee754/e_logf.c (__ieee754_logf): Likewise. + * sysdeps/libm-ieee754/s_expm1f.c (__expm1f): Likewise. + * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Likewise. + * sysdeps/libm-ieee754/s_log1pf.c (__log1pf): Likewise. + +1998-12-13 Andreas Jaeger + + * sunrpc/svc_udp.c (svcudp_bufcreate): Declare len as socklen_t. + (svcudp_recv): Likewise. + +1998-12-13 Thorsten Kukuk + + * nis/nss-nisplus.h: Change some mappings of NIS+ errors to + NSS error codes to avoid endless loops. + +1998-12-13 Ulrich Drepper + + * iconvdata/gconv-modules: Correct aliases for ISO-8859-13 and add + aliases for ISO-8859-14. + +1998-12-12 Geoff Keating + + * posix/fnmatch.c (fnmatch): Arguments to FOLD must not have + side-effects. + +1998-12-12 Ulrich Drepper + + * iconvdata/iso-8859-11.h: ISO 8859-11 conversion data. + * iconvdata/iso-8859-11.c: ISO 8859-11 conversion module. + * iconvdata/iso-8859-13.c: Likewise for 8859-13. + * iconvdata/iso-8859-14.c: Likewise for 8859-14. + * iconvdata/iso-8859-15.c: Likewise for 8859-15. + * iconvdata/gconv-modules: Add rules for new modules. + * iconvdata/Makefile: Likewise. + +1998-12-12 Ulrich Drepper + + * stdio-common/printf_fp.c: #ifdef out long double handling code if + __NO_LONG_DOUBLE_MATH is defined to avoid warnings. + * stdio-common/printf_fphex.c: Likewise. + * stdio-common/printf-size.c: Likewise. + +1998-12-12 Ulrich Drepper + + * login/Makefile: Install pt_chown using INSTALL_PROGRAM. + Patch by Maciej W. Rozycki . + +1998-12-11 Ulrich Drepper + + * sysdeps/powerpc/dl-machine.h (elf_machine_matches_host): Mark + static inline, not extern inline. + (elf_machine_dynamic): Likewise. + (elf_machine_lazy_rel): Likewise. + (elf_machine_plt_value): Likewise. + * sysdeps/powerpc/backtrace.c: Include stddef.h to get NULL + definition. + Patchess by Franz Sirl . + + * sysdeps/mips/dl-machine.h (elf_machine_rel): Fixl_addr parameter + type. Reported by job bogan . + + * sysdeps/unix/opendir.c (__opendir): Use __xstat instead of + __stat. + +1998-12-11 Kunihiro Ishiguro + + * inet/netinet/in.h: Change obsolete structure member + ipv6mr_ifindex to new ipv6mr_interface. + +1998-12-11 Ulrich Drepper + + * sysdeps/ieee754/dbl2mpn.c: Changed '#include "ieee754.h"' to + '#include '. ARM port has its own version of 'ieee754.h' + due to its big endian floating point format. + * sysdeps/ieee754/ldbl2mpn.c: Likewise. + * sysdeps/ieee754/mpn2dbl.c: Likewise. + * sysdeps/ieee754/mpn2ldbl.c: Likewise. + * sysdeps/ieee754/mpn2flt.c: Likewise. + Patch by Scott Bambrough . + +1998-12-10 Ulrich Drepper + + * sysdeps/unix/sysv/linux/adjtime.c: Undo last change. + + * posix/PTESTS: Fix typo. + + * po/es.po: Update from translation team. + * po/fr.po: Likewise. + +1998-12-10 Thorsten Kukuk + + * nis/nss_compat/compat-pwd.c: Fix handling of +/- entries. + +1998-12-10 Ulrich Drepper + + * sunrpc/Makefile: Call rpcgen program which -Y parameter so that + it can find the preprocessor. + +1998-12-09 Geoff Keating + + * sysdeps/unix/sysv/linux/sys/procfs.h: Use sys/user.h not + asm/user.h. + * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise. + + * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: New file, + like linux/sys/procfs.h but uses uid_t and gid_t. + * sysdeps/unix/sysv/linux/powerpc/sys/user.h: New file, + don't include . + +1998-12-08 Andreas Schwab + + * posix/runptests.c (main): Check that regcomp did not succeed + unexpectedly. + * posix/runtests.c (run_a_test): Likewise. Return appropriate + exit code. + * posix/TESTS: Regexp "a[b-a]" should not compile. + * posix/PTESTS: Comment out bogus tests GA113(2), GA145(2) and + GA147(2). + +1998-12-09 Andreas Schwab + + * locale/programs/ld-ctype.c (allocate_arrays): Don't crash if + there is no codeset name. + * locale/programs/ld-collate.c (collate_output): Don't crash if a + character has no weight. + +1998-12-10 Ulrich Drepper + + * inet/getnetgrent_r.c (innetgr): Check host and domain name with + strcasecmp, not strcmp. [PR libc/894]. + +1998-12-08 Andreas Jaeger + + * posix/regex.h: Declare re_comp, re_exec if compiling for libc to + get prototypes. + + * wctype/wctype.h: Add prototypes for __iswblank_l and iswblank. + +1998-12-08 Andreas Jaeger + + * sysdeps/unix/sysv/linux/gethostid.c: Include to get + prototype for __gethostbyname_r. + + * include/time.h: Add declarations of internal interfaces. + + * time/tzset.c: Remove declarations of internal interfaces. + * time/gmtime.c: Likewise. + * time/localtime.c: Likewise. + * time/offtime.c: Likewise. + * time/tzfile.c: Likewise. + +1998-12-01 09:47 -0500 Zack Weinberg + + * sysdeps/unix/sysv/linux/sys/timex.h: Copy out + user-space-relevant definitions from linux/timex.h of kernel + 2.1.130 and remove include of kernel header. + + * sysdeps/unix/sysv/linux/adjtime.c: Remove portability crud. + +1998-12-08 Andreas Jaeger + + * posix/regex.c: Get regex.h from system path, not from local + directory. + + * posix/regex.h: Move internal interfaces to ... + * include/regex.h: ...here. + + * posix/unistd.h: Move internal interfaces to ... + * include/unistd.h: ...here. + + * math/math.h: Move internal interfaces to ... + * include/math.h: ...here. + + * posix/glob.h: Move internal interfaces to ... + * include/glob.h: ...here. + + * string/string.h: Move internal interfaces to ... + * include/string.h: ...here. + + * time/sys/time.h: Move internal interfaces to ... + * include/sys/time.h: ...here. + + * resolv/netdb.h: Move internal interfaces to ... + * include/netdb.h: ...here. + +1998-12-08 Ulrich Drepper + + * iconvdata/eucjp.c: Handle Yen in overscore conversion from ISO 10646 + correctly. + * iconvdata/iso-2022-jp.c: Handle Kana in 2022-JP2 correctly + Fix various bugs in conversion routine. + * iconvdata/jis0201.h: Correct variable name. + * iconvdata/jis0208.c: Correct script to generate tables and regenerate + them. + * iconvdata/jis0208.h: Likewise. + * iconvdata/jis0212.c: Likewise. + * iconvdata/sjis.c: Likewise. + Patch by HANATAKA Shinya . + +1998-12-07 Ulrich Drepper + + * sysdeps/unix/sysv/linux/speed.c (IBAUD0): New definition. Bit + set in c_iflag if cfsetispeed is call with SPEED set to zero. + (cfgetispeed): Return zero if prior if IBAUD0 is set. + (cfsetospeed): Clear IBAUD0 bit. + (cfgetispeed): Set IBAUD0 bit if necessary. + * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Clear + the IBAUD0 bit in c_iflag when making the system call. + Work around a Linux kernel bug which silently changes the + PARENB/CREAD/CSIZE bits in c_cflag on pty. + * sysdeps/unix/sysv/linux/speed.c (cfsetispeed): Make a real + function. Don't set speed is SPEED parameter is zero since this + means set it to the output speed. + Based on a patch by H.J. Lu . + + * version.h (VERSION): Bump to 2.0.106. + + * Makeconfig (link-libc-static): Don't use link-libc since this + includes the shared object. Use gnulib only. + + * configure.in: Disable --disable-static. + +1998-12-07 12:06 Ulrich Drepper + + * po/de.po: Update from translation team. + * po/ko.po: Likewise. + +1998-12-07 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/select.S: Save a4 through + both paths. + +1998-12-05 Roland McGrath + + * sysdeps/mach/hurd/pselect.c: New file. + + * sysdeps/mach/hurd/poll.c: New file. + + * hurd/Makefile (routines): Add hurdselect. + * hurd/hurdselect.c: New file. + (_hurd_select): New function, guts taken from ... + * sysdeps/mach/hurd/select.c (__select): ... here. + Now work by just calling _hurd_select. + * hurd/hurd/fd.h: Declare _hurd_select. + +1998-12-05 Roland McGrath + + * time/strptime.c: Fix unterminated comment in last change. + +1998-12-05 Ulrich Drepper + + * ctype/ctype.h (_ISbit): Protect use of parameter with + parentheses. + * wctype/wctype.h (_ISwbit): Likewise. + + * locale/Versions: Make experimental locale interface available in + GLIBC_2.1. + + * sysdeps/gnu/bits/utmp.h (struct exit_status): Define members + without leading __ only for __USE_GNU. + * sysdeps/gnu/bits/utmpx.h (struct __exit_status): Likewise. + +1998-12-04 Ulrich Drepper + + * argp/argp.h: Add __restrict. + * dirent/dirent.h: Likewise. + * elf/dlfcn.h: Likewise. + * grp/grp.h: Likewise. + * iconv/iconv.h: Likewise. + * inet/aliases.h: Likewise. + * libio/libio.h: Likewise. + * libio/stdio.h: Likewise. + * locale/locale.h: Likewise. + * misc/mntent.h: Likewise. + * posix/wordexp.h: Likewise. + * pwd/pwd.h: Likewise. + * resolv/netdb.h: Likewise. + * rt/aio.h: Likewise. + * stdio-common/printf.h: Likewise. + * stdlib/monetary.h: Likewise. + * stdlib/stdlib.h: Likewise. + * string/argz.h: Likewise. + * string/envz.h: Likewise. + * string/string.h: Likewise. + * time/time.h: Likewise. + +1998-12-04 Zack Weinberg + + * misc/sys/cdefs.h: Only include features.h if _FEATURES_H isn't + defined. gcc's redundant include optimizer isn't clever enough to + prevent a reinclusion here. + Define __restrict to the empty string only if not GCC or + GCC version less than 2.92. + +1998-12-03 Andreas Schwab + + * sysdeps/unix/sysv/linux/configure.in: Fix last change. + +1998-12-03 Mark Kettenis + + * time/strptime.c (strptime_internal): Make use of `%C' format + specifier if it is seen together with the `%y' specifier. + +1998-12-04 Ulrich Drepper + + * po/sk.po: New file. + +1998-12-03 Scott Bambrough + + * sysdeps/arm/dl-machine.h (dl_start_user): Incorrect address + for _dl_main_searchlist passed to _dl_init_next. + +1998-12-02 Andreas Schwab + + * math/libm-test.c: Expand literal tabs in strings. Normalize + whitespace. + +1998-12-02 Andreas Schwab + + * sysdeps/unix/sysv/linux/sys/fsuid.h: Fix spelling. + +1998-12-04 Mark Kettenis + + Provide backwards binary compatibility for the Hurd. + * hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak + alias for geteuids. + * hurd/Versions [GLIBC_2.0]: Add __getuids, + __hurd_file_name_lookup and _hurd_umask. + [GLIBC_2.1]: Add _hurd_proc_init. + * hurd/Makefile [versioning] (routines): Add compat-20. + (shared-only-routines): Likewise. + * hurd/hurdinit.c (_hurd_new_proc_init): Renamed from + _hurd_proc_init. Use it as the default _hurd_proc_init version + for GLIBC_2.1. + * hurd/compat-20.c: New file. + * mach/Versions [GLIBC_2.0]: Add __vm_allocate. + +1998-12-02 Ulrich Drepper + + * elf/elf.h: Add R_MIPS_JALR and adjust R_MIPS_NUM appropriately. + +1998-12-02 Andreas Jaeger + + * inet/Versions: Remove inet6_isipv4mapped. + +1998-12-02 Philip Blundell + + * inet/in6_addr.c (inet6_isipv4mapped): Obsolete, deleted. + +1998-11-30 Andreas Schwab + + * manual/time.texi (Formatting Date and Time): Fix typo. + +1998-11-30 Andreas Schwab + + * sysdeps/unix/sysv/linux/configure.in: Only check for symlinks + when configuring natively. Use autoconf macros instead of rolling + our own. Handle defaulted prefix. + +1998-12-01 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.105. + + * sysdeps/generic/Dist: Add bits/libc-tsd.h. + + * sysdeps/mach/hurd/Dist: Add bits/libc-tsd.h. + + * sysdeps/unix/sysv/linux/mips/Dist: Add xstatconv.c. + +1998-11-29 1998 H.J. Lu + + * libio/genops.c (_IO_unbuffer_write): Renamed from + _IO_unbuffer_all. + (_IO_cleanup): Call _IO_unbuffer_write instead of + _IO_unbuffer_all. + +1998-12-01 Ulrich Drepper + + * intl/localealias.c: Use *_unlocked version of stdio function if + _LIBC_REENTRANT is defined, not _LIBC. + +1998-12-01 Andreas Jaeger + + * include/grp.h: Add prototypes for internal functions + __getgrgid_r and __getgrnam_r. + + * inet/herrno.c: Include for prototype, undef h_errno. + + * resolv/nsap_addr.c: Include for inet_nsap_addr and + inet_nsap_ntoa prototypes. + +1998-12-01 Ulrich Drepper + + * sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Pass -I option + to gcc to have it find the correct system header. + Patch by Maciej W. Rozycki . + + * Makefile (postclean): Add sysd-sorted. + Reported by Maciej W. Rozycki . + +1998-12-01 Thorsten Kukuk + + * sunrpc/auth_des.c: Use new XDR int32 functions for integers. + * sunrpc/rpc/xdr.h: Add IXDR INT32 functions. + * sunrpc/rpc_hout.c: Remove (u_long) casts in defines to avoid + conflicts with new solaris version. + * sunrpc/rpc_main.c: Fix bug in generating Makefile name (malloc + doesn't zero allocated memory). + * sunrpc/rpc_svcout.c: Local variables now starts with a _ to avoid + conflicts with xdr functions. Solves PR libc/877. + * nis/rpcsvc/nis.x: Use always uint32_t. + * nis/rpcsvc/nis.h: Likewise. + * nis/rpcsvc/nis_object.x: Likewise. + +1998-12-01 Ulrich Drepper + + * math/libm-test.c: Various cleanups. Patch by Zack Weinberg. + + * sysdeps/unix/sysv/linux/alpha/setfpucw.c: Use correct type for + parameter. Patch by Christian Gafton. + + * string/envz.h: Add prototype for envz_remove. + Reported by Andreas Jaeger. + +1998-11-30 Mark Kettenis + + * mach/Versions [libc, GLIBC_2.0]: Add __spin_lock, + __spin_lock_init, __mutex_lock, __mutex_trylock, + __mutex_unlock. + Remove get_priviliged_ports. Moved to hurd/Versions. + + * hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd + brk implementation see the end of the data segment of the program + instead of the shared library. + Add __hurd_errno_location. This inline function is used in user + programs. + Add _hurd_critical_section_lock, _hurd_critical_section_unlock, + _hurd_fd_get, _hurd_port_free, _hurd_port_get, + _hurd_port_locked_get. These inline functions are used by macros + used in mail.local in the Hurd distribution. + Add get_privileged_ports. Moved here from mach/Versions. + Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry, + __hurd_file_name_split, __hurd_file_name_path_lookup. These are + not used outside libc. + +1998-11-30 Mark Kettenis + + * hurd/hurdstartup.c: Really include set-hooks.h with <> instead + of "". + +1998-11-29 Thorsten Kukuk + + * sunrpc/Makefile: Add xdr_intXX_t to routines. + * sunrpc/Versions: Add xdr_int8_t, xdr_uint8_t, xdr_in16_t and + xdr_uint16_t. + * sunrpc/rpc/xdr.h: Add prototypes for new xdr_intXX_t functions. + * sunrpc/xdr.c: Remove xdr_int32_t and xdr_uint32_t. + * sunrpc/xdr_intXX_t.c: New, contains all xdr_intXX_t functions. + + * nis/Depend: New. + * nis/nss_nis/nis-service.c: Include generated prototype for parser. + +1998-11-30 Andreas Jaeger + + * nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes. + + * sysdeps/generic/errno-loc.c: Include for prototype, + undefine errno to get variable. + + * sysdeps/unix/sysv/linux/i386/setfsuid.c: Include + instead of for prototype. + * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise. + +1998-11-30 Ulrich Drepper + + * misc/err.h: Correct comments and use protected attribute keywords. + Reported by Joseph Myers . + +1998-11-29 Roland McGrath + + * malloc/thread-m.h [_LIBC]: Include , and + remove tsd stuff from pthreads/cthreads libc sections. + Use __libc_tsd_define for MALLOC key. + [_LIBC] (tsd_key_t, tsd_key_create): Define to a zero-size type and a + no-op, respectively. + [_LIBC] (tsd_setspecific, tsd_getspecific): Use __libc_tsd_get/set. + + * elf/dl-error.c: Include . + Use __libc_tsd_define for DL_ERROR key. + (tsd_setspecific, tsd_getspecific): Rewritten using __libc_tsd_get/set. + + * sysdeps/mach/hurd/bits/libc-tsd.h: New file. + * sysdeps/generic/bits/libc-tsd.h: New file. + * Makefile (distribute): Add bits/libc-tsd.h. + +1998-10-12 Roland McGrath + + * elf/dl-error.c: Remove kludge to check for ld.so load address. + There is no need if weak undefined symbols are not used in ld.so; + see linuxthreads/ChangeLog for changes to files + linuxthreads/sysdeps/pthread/bits/libc-lock.h and + linuxthreads/sysdeps/pthread/bits/libc-tsd.h. + +1998-11-30 Andreas Jaeger + + * sysdeps/i386/bits/string.h (__memset_cc): Fix typo (s->__s). + + * sysdeps/i386/i486/bits/string.h: Add prototypes for all new + inline functions. + * sysdeps/i386/bits/string.h: Likewise. + +1998-11-30 Andreas Jaeger + + * sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Remove ipc_kludge. + +1998-11-30 Andreas Schwab + + * db2/progs/db_load/db_load.c (main): Avoid -Wparentheses warning. + +1998-09-12 Mark Kettenis + + * sysdeps/mach/hurd/dl-sysdep.c: Do not define + __hurd_threadvar_max. Add comment explaining why we define + __hurd_threadvar_stack_offset and __hurd_threadvar_stack_mask here. + +1998-07-29 Mark Kettenis + + * sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base, + __hurd_sigthread_stack_end, __hurd_sigthread_variables): Define to + prevent inclusion of Hurd signal handling code. + (__libc_write): New function. + (_dl_sysdep_output): Removed. The implementation in + `elf/dl-misc.c' now also works for the Hurd. + +1998-09-12 Mark Kettenis + + * hurd/hurdstartup.c: Do not include hurdmalloc.h; _hurd_startup + does not use any of malloc/realloc/free anymore. Include + set-hooks.h with <> instead of "". + +1998-11-29 Roland McGrath + + * sunrpc/svc_unix.c (__msgread): Move ON local var inside block + within #ifdef SO_PASSCRED. Avoids unused var when no SO_PASSCRED. + * sunrpc/clnt_unix.c (__msgread): Likewise. + +1998-11-28 Roland McGrath + + * hurd/setuids.c: Renamed to ... + * hurd/seteuids.c: this. + (setuids): Renamed to seteuids. + * hurd/getuids.c: Renamed to ... + * hurd/geteuids.c: this. + (__getuids): Renamed to geteuids, no aliases. + * hurd/hurd.h (geteuids, seteuids): Declare them. + * hurd/Versions: Replace getuids; __getuids with geteuids; seteuids. + * hurd/Makefile (routines): Updated. + +1998-11-29 Ulrich Drepper + + * sysdeps/generic/segfault.c (install_handler): Correct test for + SEGFAULT_HANDLER=all. + Patch by Zack Weinberg. + +1998-11-28 23:23 -0500 Zack Weinberg + + * sysdeps/unix/sysv/linux/configure.in: Test for symlinks in + $prefix/include that may be clobbered on installation. + +1998-11-27 Philip Blundell + + Fixes to allow compilation with static NSS: + * nss/Makefile: Make explicit the dependency of getent on + libnss_files.a. + [build_static_nss]: Define $(otherlibs) appropriately. + * nss/Depend: Add a dependency on `resolv'. + +1998-11-27 Andreas Jaeger + + Partial support for MIPS ISO C 9x exception handling: + * sysdeps/mips/fclrexcpt.c: New file. + * sysdeps/mips/ftestexcept.c: New file. + * sysdeps/mips/fgetexcptflg.c: New file. + * sysdeps/mips/fesetround.c: New file. + * sysdeps/mips/fegetround.c: New file. + * sysdeps/mips/fegetenv.c: New file. + * sysdeps/mips/fesetenv.c: New file. + * sysdeps/mips/feupdateenv.c: Likewise. + * sysdeps/mips/bits/fenv.h: New file. + +1998-11-28 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/signum.h: Remove inclusion of + and add needed symbols from ; bring + in sync with linux specific version. + + Patches by Ralf Baechle for mips-linux: + + * sysdeps/unix/mips/sysdep.S: Define _errno as weak_alias, rewrite + errno declaration. + + * sysdeps/unix/sysv/linux/mips/ustat.c: Use INLINE_SYSCALL instead + of calling __syscall_*. + * sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise. + + * sysdeps/unix/sysv/linux/mips/syscalls.list: Update entries. + + * sysdeps/unix/sysv/linux/mips/sys/syscall.h: Add missing SYS_* + constants, correct values according to Linux 2.1.130. + + * sysdeps/unix/sysv/linux/mips/pwrite.c: New file. + * sysdeps/unix/sysv/linux/mips/pwrite64.c: New file. + * sysdeps/unix/sysv/linux/mips/pread.c: New file. + * sysdeps/unix/sysv/linux/mips/pread64.c: New file. + + * sysdeps/mips/Makefile (sysdep_routines): Use += instead of a + :=. + + * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Remove ipc_kludge. + + * sysdeps/unix/sysv/linux/mips/xstatconv.c: New file. + + * sysdeps/unix/sysv/linux/mips/xstat.c: Removed. + + * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: New file. + + * sysdeps/unix/sysv/linux/mips/kernel_termios.h: Add copyright + message, change name of include protection, remove inclusion of + . + + * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h + (old_kernel_sigaction): Define. + (struct kernel_sigaction): Rename sa_handler to k_sa_handler. + + * sysdeps/unix/sysv/linux/mips/bits/time.h: Removed, we can use + the general linux version. + * sysdeps/unix/sysv/linux/mips/bits/stat.h (_STAT_VER_KERNEL): Added. + + * sysdeps/unix/sysv/linux/mips/bits/socket.h: Update file. + +1998-09-03 Philip Blundell + + * sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big + endian. + * math/math_private.h: Use __FLOAT_WORD_ORDER rather than + BYTE_ORDER. + * string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by + , make it the same as __BYTE_ORDER. + +1998-11-27 Ulrich Drepper + + * math/math.h: Avoid using long double functions in generic macros + if __NO_LONG_DOUBLE_MATH. + + * sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols + during bootstrapping. + * scripts/config.sub: Add Netwinder specific matches. + Patch by Scott Bambrough . + +1998-11-26 Andreas Schwab + + * Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables + if possible. + ($(common-objpfx)sysd-sorted): Likewise. + +1998-11-27 Andreas Jaeger + + * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of + local variables t1,t2 only if needed. + + * sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler + warnings. + * sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise. + * sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise. + + * sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid + warning. + +1998-11-27 Andreas Jaeger + + * math/math.h: Add brace to correct #if expression. + +1998-11-26 Philip Blundell + + Undo change of 1998-11-12: + * sysdeps/unix/sysv/linux/netlink/netlink.h: Deleted. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove + netlink/netlink.h. + * sysdeps/unix/sysv/linux/Dist: Likewise. + +1998-11-22 Thorsten Kukuk + + * nis/nis_print.c (nis_print_entry): Changes to match Solaris output. + +1998-11-26 Ulrich Drepper + + * sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): New defined macro. + (elf_machine_got_rel): Remove scope variable. Use scope from the map. + Don't modify _dl_global_scope_end in the end. + (__dl_runtime_resolv): Also use scope from the map. + * sysdeps/mips/mips64/dl-machine.h: Likewise. + * elf/dl-runtime.c: Don't define fixup and profile_fixup if + ELF_MACHINE_NO_PLT is defined. + * sysdeps/mips/sys/ucontext.h: New file. + Patches by kaz Kojima . + +1998-11-26 Andreas Jaeger + + * sysdeps/generic/pselect.c (__pselect): Change interface, + set/restore sigmask. + + * misc/sys/select.h: Change declaration according to Stevens' Unix + Network Programming. + * include/sys/select.h (__pselect): Likewise. + Reported by [PR libc/872]. + + * include/fpu_control.h: New file, contains __setfpucw + declaration. + + * sysdeps/generic/fpu_control.h: Remove __setfpucw declaration, + it's an internal symbol. + * sysdeps/alpha/fpu/fpu_control.h: Likewise. + * sysdeps/arm/fpu/fpu_control.h: Likewise. + * sysdeps/i386/fpu_control.h: Likewise. + * sysdeps/m68k/fpu_control.h: Likewise. + * sysdeps/powerpc/fpu_control.h: Likewise. + * sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise. + * sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise. + +1998-11-25 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.104. + +1998-11-25 Mark Kettenis + + * libio/bits/stdio.h (fread_unlocked): Add missing parentheses + around parameter n. + +1998-11-24 Andreas Schwab + + * time/tzfile.c (__tzfile_read): Fix comment. + +1998-11-24 Andreas Schwab + + * Makerules (build-shlib): Pass -O1 down to linker to get + optimized shared libraries. + +1998-11-24 Andreas Schwab + + * Makeconfig ($(common-objpfx)sysd-dirs): Cope with no Subdirs + file. Strip "-" from inhibited subdir name. Combine into a + single awk program. + ($(common-objpfx)sysd-sorted): Fix sed command. + +1998-11-25 Roland McGrath + + * sysdeps/mach/hurd/i386/init-first.c (init): Restored as inline fn. + Use constant _HURD_THREADVARS_MAX for temporary array size. + + * Makeconfig ($(common-objpfx)sysd-sorted): Use @ instead of / as sed + s separator, since $(..) might contain a /. + +1998-11-23 Andreas Jaeger + + * configure.in (mips): Fix typo (Replace ,, by ;;). + + * libio/Versions: Clean up entries. + +1998-11-23 Ulrich Drepper + + * sysdeps/i386/fpu/bits/mathinline.h: Add optimizations for lrint + and llrint. + +1998-11-21 Andreas Jaeger + + * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Removed. There are too + many differences between the Linux 2.0 and 2.1 versions of this + file and it's too difficult to convert all calls. The file should + only be needed by the ipfw program which has to take care of the + correct kernel version and include files. + + * sysdeps/unix/sysv/linux/Dist: Remove netinet/ip_fw.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Likewise. + +1998-11-23 Ulrich Drepper + + * Makeconfig: Don't read sysd-sorted unless sysd-dirs is read. + Patch by Zack Weinberg. + + * math/bits/mathcalls.h: Adjust comments. Remove gamma_r prototype. + + * sysdeps/i386/fpu/bits/mathinline.h: Make log2 only available if + __USE_ISOC9X is defined. Provide rint optimization. + +1998-11-21 H.J. Lu + + * libio/Versions (_IO_popen, _IO_proc_open, _IO_proc_close, + popen, pclose): Add to GLIBC_2.1. + + * libio/Makefile (routines): Add oldiopopen and oldpclose. + (shared-only-routines): Likewise. + + * libio/pclose.c (pclose): Make it default for GLIBC_2.1. + * libio/iopopen.c (_IO_proc_open, _IO_popen, popen, + _IO_proc_close): Likewise. + + * libio/iolibio.h (_IO_new_popen, _IO_old_popen, __new_pclose, + __old_pclose): New prototypes. + + * libio/libioP.h (_IO_new_file_jumps): Removed. + (_IO_old_proc_jumps): Added. + (_IO_new_proc_open, _IO_old_proc_open): New prototypes. + + * libio/oldiopopen.c: New file. + + * libio/oldpclose.c: New file. + +1998-11-22 Thorsten Kukuk + + * nss/Makefile: Build and install getent. + * nss/getent.c: New, get entries from administrative database. + +1998-11-22 Roland McGrath + + * sysdeps/mach/hurd/i386/init-first.c (init): Provide temporary storage + for the per-thread variables of the main user thread to make it + possible to use malloc as soon as _hurd_preinit_hook has been run. + For cthreads, copy values to new stack from there. + For non-cthreads, malloc threadvar array here and copy from temp space. + (init1): No longer initialize threadvars here. + (doinit1): Made static void at top level. + (init): Folded into [PIC] _init or [!PIC] doinit1, since GCC cannot + inline a function that uses dynamic auto arrays. + +1998-11-20 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.103. + + * aclocal.m4 (LIBC_PROG_BINUTILS): Also add AR and RANLIB using the + same method. + * configure.in: Don't define AR and RANLIB here. + + * inet/gethstbyad_r.c: Define NEED__RES_HCONV and POSTPROCESS for + host name res_hconf code. + * inet/gethstbynm_r.c: Likewise. + * nss/getXXbyYY_r.c: Include resolv/res_hconf.h if NEED__RES_HCONF + is defined. Call res_hconf_init if necessary. If POSTPROCESS is + defined execute the code. + * resolv/Makefile (routines): Add res_hconf. + (headers): Add res_hconf.h. + * resolv/res_hconf.c: Pretty print. + * resolv/res_hconf.h: Likewise. + +1998-11-20 Ulrich Drepper + + * sysdeps/generic/bits/byteswap.h: Fix typos in non-GCC + definitions. Reported by Scott Bambrough . + +1998-11-20 1998 Andreas Schwab + + * math/libm-test.c: Raise some epsilons a bit. + +1998-11-20 Andreas Schwab + + * Makeconfig ($(common-objpfx)sysd-sorted): Fix portability problems. + +1998-11-20 Ulrich Drepper + + * Makefile (distribute): Add scripts/gen-sorted.awk. + +1998-11-19 Ulrich Drepper + + * posix/regex.c (regex_compile): Handle extra long class names + correctly. + +1998-11-19 Geoff Keating + + * elf/rtld.c (_dl_start): Handle weak undefined symbols in ld.so + correctly. + +1998-11-19 Ulrich Drepper + + * misc/error.c: Undo last change. + + * ctype/Versions: Add _tolower and _toupper. + +1998-11-19 Thorsten Kukuk + + * sunrpc/svc_unix.c (readunix): Check for POLLERR, POLLHUP and + POLLNVAL. + +1998-11-19 Ulrich Drepper + + * Makeconfig: Add comment to all-subdirs definition. + Add rule to generate sysd-sorted. Include this file and and set + subdirs value to $(sorted-subdirs). + * scripts/gen-sorted.awk: New file. + * Make-dist (+tsrcs): Add Depend. + * nscd/Depend: New file. + * nss/Depend: New file. + * rt/Depend: New file. + +1998-11-18 Ulrich Drepper + + * sysdeps/unix/bsd/poll.c (__poll): Add code to extend sets if any + passed file descriptor exceeds the size determined by + getdtablesize. + + * sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Update + from inline version in bits/socket.h. + + * sysdeps/unix/sysv/linux/bits/socket.h: Define __cmsg_nxthdr as + inline function only is __USE_EXTERN_INLINES is defined. + + * time/strftime.c (my_strftime): Make code a bit clearer. + Patch by Paul Eggert . + + * io/Makefile (CFLAGS-ftw.c): Removed. + + * manual/errno.texi: Change the short text for ENODEV to + "No such device". + +1998-11-18 Andreas Schwab + + * io/Makefile (tests): Make sure that the test program has an + explicit directory part. + +1998-11-18 Andreas Schwab + + * configure.in: Fix last change. + +1998-11-18 Thorsten Kukuk + + * sunrpc/Makefile (routines): Add create_xid. + + * sunrpc/clnt_tcp.c: Use non-guessable xid. + * sunrpc/clnt_udp.c: Likewise. + * sunrpc/clnt_unix.c: Likewise. + * sunrpc/pmap_rmt.c: Likewise. + * sunrpc/create_xid.c: New, create non-guessable xid. + + * sunrpc/svc_tcp.c: Remove patch from 1998-06-15, use poll instead + of select. + * sunrpc/svc_unix.c: Use poll instead of select. + +1998-11-17 Ulrich Drepper + + * sysdeps/unix/sysv/linux/sleep.c (__sleep): Make Unix98 compliant + by removing SIG_IGN handler for SIGCHLD if necessary. + Patch by H.J. Lu . + + * stdio-common/printf_fphex.c (__printf_fphex): Correct printing + of denormalized numbers. + +1998-10-06 Geoff Keating + + * sysdeps/powerpc/dl-machine.h (elf_machine_load_address): Suppress + another parentheses warning, make nano-optimisation. + + * sysdeps/powerpc/dl-machine.h (_dl_runtime_resolve): Preserve + saved LR on stack so _mcount works. + (_dl_prof_resolve): Likewise. + * sysdeps/powerpc/register-dump.h: Print FPRs. Adjust for correct + signal handler calling convention. + * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Adjust for + correct signal handler calling convention---more like x86 linux and + mklinux, less like linux-ppc versions between 2.1 and 2.1.126. + +1998-11-17 Ulrich Drepper + + * configure.in: Correct allowed makeinfo version. + +1998-11-17 Philip Blundell + + * sysdeps/generic/bits/mathdef.h: Fix typo. + +1998-11-17 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Prototype the syscall + under the right name (squish warning). + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. + +1998-11-17 Geoff Keating + + * stdio-common/_itoa.c (_itoa): Add redundant parentheses to + prevent warnings. + +1998-11-16 Ulrich Drepper + + * intl/locale.alias: Change `japanese' alias to match X11R6's. + Add `japanese.euc' alias. + + * manual/Makefile (%.info): Set LANGUAGE and LC_ALL explicitly to C + before running makeinfo. + + * math/Makefile (libm-routines): $(strip) entire value. + + * nss/nss_db/db-XXX.c (internal_setent): Rewrite to avoid warning. + +1998-10-24 H.J. Lu + + * libio/libio.h (_IO_cookie_io_functions_t): Protect with __USE_GNU. + (_IO_cookie_file): Likewise. + +1998-11-16 Philip Blundell + + * inet/netinet/icmp6.h: Correct naming of constants. + +1998-11-16 Ulrich Drepper + + * sysdeps/unix/opendir.c: Use o_directory_works differently. Treat + zero value as uninitialized so that variable can go into .bss. + + * dirent/opendir-tst1.c: Print error strings to stdout. + + * sysdeps/unix/sysv/linux/mmap64.c: New file. Empty. + * sysdeps/unix/sysv/linux/syscalls.list: Add mmap with mmap64 alias. + * sysdeps/unix/sysv/linux/arm/mmap.S: Add mmap64 alias. + * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise. + +1998-11-16 Andreas Schwab + + * time/tzfile.c (__tzfile_read): Check that types[i].isdst is in + range. + +1998-11-16 Ulrich Drepper + + * libio/bits/stdio.h (fread_unlocked): Do handle zero size and number. + (fwrite_unlocked): Likewise. + +1998-11-16 Andreas Schwab + + * libio/bits/stdio.h (fread_unlocked): Don't evaluate non-constant + twice. Don't bother handling zero size. + (fwrite_unlocked): Likewise. + +1998-11-15 Andreas Schwab + + * configure.in: Fix regex for makeinfo version string. + +1998-11-15 Andreas Schwab + + * sunrpc/rpc_sample.c (write_sample_server): Avoid -Wparentheses + warning. + * sunrpc/rpc_svcout.c (write_program): Likewise. + +1998-11-15 Andreas Schwab + + * time/Makefile (CFLAGS-test_time.c): Add -Wno-format. + +1998-11-16 Ulrich Drepper . + +1998-11-16 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/sysdep.h (INLINE_SYSCALL): Undo + last change. + +1998-11-13 Ulrich Drepper + + * stdio-common/vfscanf.c: Don't return -1 in case of an invalid + format, just stop. + + * version.h (VERSION): Bump to 2.0.102. + + * stdio-common/tstdiomisc.c (t2): Update test case for last scanf + change. + * stdio-common/scanf7.c (main): Likewise. + +1998-11-13 Ulrich Drepper + + * stdio-common/vfscanf.c: Return EOF for invalid format + characters. + + * version.h (VERSION): Bump to 2.0.101. + + * Makerules (Versions.all): Generate this file from all Versions.def + files. + (sysd-versions): Use Versions.all instead of Versions.def. + +1998-11-13 Philip Blundell + + * sysdeps/arm/fpu/bits/setjmp.h (__JMP_BUF_SP): Correct value. + Reported by Scott Bambrough. + +1998-11-11 Andreas Schwab + + * locale/programs/config.h: Define HAVE_STRING_H for xstrdup.c. + +1998-11-13 Ulrich Drepper + + * libio/bits/stdio.h: Correct and improve fread_unlocked and + fwrite_unlocked optimizations. + + * time/tzfile.c (__tzfile_read): Set __tzname based on last names + in time not to last entries in the file. + (__tzfile_compute): Likewise. Fix for PR libc/863. + + * timezone/Makefile: Generate GB timezone data for test. + * timezone/tst-timezone.c: More tests for DST switching time (disabled + for now). + +1998-11-13 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/sysdep.h (INLINE_SYSCALL): Remove + d0 from clobber list. + +1998-11-12 Ulrich Drepper + + * inet/netinet/in.h: Add a few more IPPROTO_* macros. + + * libio/Makefile (headers): Add bits/stdio.h. + * libio/iofread_u.c: Undefine fread_unlocked before definition. + * libio/iofwrite_u.c: Undefine fwrite_unlocked before definition. + * libio/stdio.h: Move optimizations into ... + * libio/bits/stdio.h: ...here. New file. + + * libio/iofread.c: Pretty print. + +1998-11-12 Mark Kettenis + + * sysdeps/gnu/bits/utmpx.h: Protect members of struct + __exit_status with `__'. Rename pad member of struct utmpx to + __unused. + (RUN_LVL): Define unconditionally. + * sysdeps/gnu/bits/utmp.h: Rename pad member of struct utmp to + __unused. + +1998-11-12 Philip Blundell + + * sysdeps/unix/sysv/linux/netlink/netlink.h: New file, support for + Linux AF_NETLINK sockets (needed since the kernel version is + unusable). + * sysdeps/unix/sysv/linux/Makefile: Install it. + * sysdeps/unix/sysv/linux/Dist: Distribute it. + +1998-11-12 Andreas Jaeger + + * timezone/tst-timezone.c (tests): Add entry for America/Chicago + to test for bug in PR libc/863. + +1998-11-12 Ulrich Drepper + + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Cleanup comment. + + * elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Rename macro + parameter lazy to do_lazy to avoid clashing with struct member name. + Reported by Ralf Baechle . + +1998-11-10 H.J. Lu + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN + if it is defined in . + +1998-11-09 13:07 -0500 Zack Weinberg + + * include/protocols/routed.h: Include the real header with + a full path from the top of the source tree. + * include/protocols/rwhod.h: Likewise. + * include/protocols/talkd.h: Likewise. + * include/protocols/timed.h: Likewise. + + * timezone/Makefile: Don't include z.ZONE files if no_deps + is set, not if avoid-generated is set. + +1998-11-12 Ulrich Drepper + + * signal/signal.h: Undo last change. Get definition of timespec + if __USE_POSIX199309. + + * string/bits/string2.h (__strpbrk_c2): Add intermediate cast to + size_t to prevent gcc warning when using -Wqual-cast. + (__strpbrk_c3): Likewise. + Suggested by Alan Curry . + +1998-11-11 Roland McGrath + + * hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending, + unblocked signals are set in the startup masks. + + * hurd/hurdsig.c (_hurdsig_init): Take new args, INTARRAY and + INTARRAYSIZE. Initialize main thread's sigstate from INIT_SIG* ints. + + * hurd/hurd/signal.h: Update _hurdsig_init decl. + * hurd/hurdinit.c (_hurd_proc_init): Take new args, INTARRAY and + INTARRAYSIZE, pass them down to _hurdsig_init. + * hurd/hurd.h: Update _hurd_proc_init decl. + +1998-11-10 Ulrich Drepper + + * math/cabs.c: Replace complex by _Complex. + * math/cabsf.c: Likewise. + * math/cabsl.c: Likewise. + * math/cimag.c: Likewise. + * math/cimagf.c: Likewise. + * math/cimagl.c: Likewise. + * math/conj.c: Likewise. + * math/conjf.c: Likewise. + * math/conjl.c: Likewise. + * math/creal.c: Likewise. + * math/crealf.c: Likewise. + * math/creall.c: Likewise. + + * sysdeps/alpha/fpu/bits/mathdef.h: Define ISO C 9X stuff only if + included from math.h and __USE_ISOC9X is defined. + * sysdeps/generic/bits/mathdef.h: Likewise. + * sysdeps/generic/i386/fpu/mathdef.h: Likewise. + * sysdeps/generic/m68k/fpu/mathdef.h: Likewise. + * sysdeps/generic/powerpc/bits/mathdef.h: Likewise. + * sysdeps/generic/sparc/fpu/bits/mathdef.h: Likewise. + +1998-11-10 Andreas Jaeger + + * sysdeps/i386/fpu/bits/mathdef.h: Allow direct inclusion by + . + * sysdeps/alpha/fpu/bits/mathdef.h: Likewise. + * sysdeps/generic/bits/mathdef.h: Likewise. + * sysdeps/m68k/fpu/bits/mathdef.h: Likewise. + * sysdeps/powerpc/bits/mathdef.h: Likewise. + * sysdeps/sparc/fpu/bits/mathdef.h: Likewise. + +1998-11-09 Ulrich Drepper + + * extra-lib.mk: Fix typo in last change. + + * math/complex.h: Include bits/mathdef.h to get __NO_LONG_DOUBLE_MATH + is needed. + Don't define long double functions if __NO_LONG_DOUBLE_MATH is defined. + Don't define `complex' but instead `_Complex'. The later is the + reserved keyword. + * math/bits/cmathcalls.c: Define _Mdouble_complex_ using _Complex, + not complex. + +1998-11-07 Andreas Schwab + + * manual/libc.texinfo: Remove colon from category name. + * manual/Makefile (dir-add.info): Likewise. + +1998-11-07 Andreas Schwab + + * configure.in: Avoid autoconf bug. + +1998-10-28 H.J. Lu + + * posix/getopt.h: Add "__" to arguments in prototypes. + +1998-11-05 H.J. Lu + + * libio/iofgets.c (_IO_fgets): Don't report error + if something was read in and errno is set to + EAGAIN. + * libio/iofgets_u.c (fgets_unlocked): Likewise. + +1998-11-05 Philip Blundell + + * sysdeps/unix/sysv/linux/net/if_packet.h: Don't include kernel + header; it defines too much. Provide a local definition of struct + sockaddr_pkt and a comment advising against its use. + +1998-11-06 Andreas Schwab + + * extra-lib.mk: Avoid empty include list. + +1998-11-04 Andreas Schwab + + * extra-lib.mk: Add support for $(lib)-shared-only-routines. + + * elf/Makefile (libdl-routines): Add dlopenold only if doing + versioning. + (libdl-shared-only-routines): New variable. + +1998-11-06 Paul Eggert + + Don't invoke localtime_r or gmtime_r unless it's the GNU C + library's localtime_r and gmtime_r; there are too many buggy + implementations of localtime_r and gmtime_r out there, and + it's not worth keeping track of all the different bugs. + + * time/mktime.c (__EXTENSIONS__): Remove. + (): No need to include. + * time/strftime.c: Likewise. + + * time/mktime.c (_POSIX_THREAD_SAFE_FUNCTIONS, HAVE_LOCALTIME_R): + Remove. + (my_mktime_localtime_r): Renamed from localtime_r; all uses changed. + Base it on localtime unless _LIBC. + + * time/strftime.c (my_strftime_gmtime_r): Renamed from gmtime_r; + all uses changed. + (my_strftime_localtime_r): Renamed from localtime_r; all uses changed. + Base them on localtime/gmtime if not _LIBC. + +1998-11-07 Ulrich Drepper + + * sysdeps/generic/isastream.c: Always return 0 unless it is an invalid + file descriptor. This makes this function actually usable. + Proposed by Mark Kettenis . + +1998-11-05 Ulrich Drepper + + * math/math.h: Unconditionally include bits/mathdef.h. Declare + long double functions only if __NO_LONG_DOUBLE_MATH is not + defined. + * sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X. + Define __NO_LONG_DOUBLE_MATH. + * sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X. + * sysdeps/i386/fpu/bits/mathdef.h: Likewise. + + * elf/rtld.c: Add a few __builtin_expects where they will improve + a lot. + +1998-11-05 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.100. + + * sysdeps/i386/fpu/bits/mathinline.h (__pow2): Fix fldl -> fld. + + * sysdeps/libm-i387/s_fma.S: Optimize a bit. + * sysdeps/libm-i387/s_fmaf.S: Likewise. + +1998-11-04 Andreas Schwab + + * libio/genops.c (_IO_least_marker): Add additional parameter + end_p replacing fp->_IO_read_end. + (save_for_backup): Likewise. All callers changed. Use _IO_size_t + and _IO_ssize_t instead of int. + (_IO_switch_to_main_get_area): Remove use of _IO_save_ptr. + (_IO_switch_to_backup_area): Likewise. Fix comments. + (_IO_seekmark): Undo last change. + (_IO_default_pbackfail): Correct use of backup area. + * libio/libio.h (_IO_FILE_complete): Remove _IO_save_ptr. + +1998-11-04 19:47 -0500 Zack Weinberg + + * configure.in: Search for install-info and substitute it. + Determine whether install-info is the buggy Debian version + that doesn't understand INFO-DIR-SECTION. + * config.make.in: Add INSTALL_INFO and OLD_DEBIAN_INSTALL_INFO + to be substituted. + * manual/Makefile: If OLD_DEBIAN_INSTALL_INFO, give + install-info the --section argument it needs to work properly. + (dir-add.texinfo): Delete target. + (dir-add.info): Generate this directly. Sort entries. Put a + colon at the end of the INFO-DIR-SECTION line. + * manual/libc.texinfo: Put a colon at the end of the + @dircategory line. + +1998-11-05 Paul Eggert + + * time/mktime.c (__mktime_internal): Adopt the traditional (and + problematic) notion of what to do when tm_isdst doesn't match. + +1998-11-04 Andreas Schwab + + * posix/PTESTS: Fix spelling. + +1998-11-04 Ulrich Drepper + + * misc/efgcvt_r.c (fcvt_r): Remove code which tries to use libm + functions. Reduce error in computing normalized value by multiplying + factor in loop and compute result in one step. + Reported by Christian Gafton. + + * sysdeps/libm-i387/e_hypot.S: New file. + * sysdeps/libm-i387/e_hypotf.S: New file. + +1998-11-04 Andreas Jaeger + + * elf/dlopenold.c: Compile only if DO_VERSIONING is also defined. + +1998-11-03 H.J. Lu + + * libio/fileops.c (new_do_write): New function. + (_IO_new_do_write): Call new_do_write. + (_IO_new_file_xsputn): Likewise. + + * libio/oldfileops.c (old_do_write): New function. + (_IO_old_do_write): Call old_do_write. + (_IO_old_file_xsputn): Likewise. + +1998-11-04 Ulrich Drepper + + * time/mktime.c (__mktime_internal): Correct last change. We must + stop searching for the right isdst value before stepping to the + initial value. + + * malloc/malloc.c: Make sure calloc really returned zeroed memory. + Patch by Wolfram Gloger . + +1998-11-02 16:12 -0500 Zack Weinberg + + * sysdeps/generic/bits/signum.h: Define signals with their + historical numbers when those are in the 1-15 range and + consistent across platforms. + Define compatibility aliases (SIGIOT, SIGCLD) if __USE_MISC. + Define SIG_DFL, SIG_IGN, SIG_ERR as numeric constants cast + appropriately instead of with fake function declarations + (would cause link errors). + If __USE_UNIX98, define SIG_HOLD. + +1998-10-29 H.J. Lu + + * sysdeps/unix/sysv/linux/bits/sigaction.h (sigaction): Use + union only if __USE_POSIX199309 is defined. + + * misc/sys/select.h (pselect): Declared only if __USE_GNU is + defined. + +1998-11-03 Ulrich Drepper + + * time/mktime.c (__mktime_internal): Handle broken down times + around the time of the DST switches more correctly. + +1998-11-02 Ulrich Drepper + + * elf/Makefile (libdl-routines): Add dlopenold. + * elf/Versions [libdl, GLIBC_2.1]: Add dlopen. + * elf/dl-open.c (_dl_open): Check whether RTLD_LAZY or RTLD_GLOBAL + is set and bounce otherwise. + * elf/dlopen.c: Rename function to __dlopen_check and make version + named dlopen. + * elf/dlopenold.c: New file. + +1998-11-02 Ulrich Drepper + + * elf/Versions [libc, GLIBC_2.01]: Add _dl_global_scope_alloc. + * elf/dl-open.c (_dl_global_scope_alloc): Move definition to + * elf/dl-deps.c: ...here. + * elf/dl-open.c (dl_open_worker): Call _dl_map_object_deps with + new parameter and expect result. Remove code handling RTLD_GLOBAL. + Add return value of _dl_map_object_deps to + _dl_main_searchlist->r_nlist. + * elf/dl-deps.c (_dl_map_object_deps): Change to return value. + If we parameter GLOBAL is nonzero add object and dependencies to + the global scope. + * elf/ldsodefs.h: Adapt prototype for _dl_map_object_deps. + * elf/rtld.c (dl_main): Call _dl_map_object_deps with new parameter. + Mark all objects as in global scope. + * elf/dl-object.c (_dl_new_object): Initialize l_global to zero. + + * sysdeps/unix/sysv/linux/bits/sockunion.h: Add Econet support. + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Add .L prefix to symbols + used in macro magic. + +1998-11-02 Andreas Jaeger + + * sysdeps/unix/sysv/linux/netatalk/at.h: Include + before to make sockaddr_at available to + . + + * posix/glob.h: Remove __P from parameter lists of declarations. + +1998-11-02 Andreas Jaeger + + * time/tzset.c (tz_compute): Remove unused parameter timer. + Change caller. + +1998-11-02 Mark Kettenis + + * sysdeps/generic/bits/types.h (__ipc_pid_t): New typedef. + +1998-11-02 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove + unnecessary test and add cast. + +1998-11-02 Andreas Jaeger + + * posix/getconf.c: Add initializer SYSCONF for CHARCLASS_NAME_MAX. + + * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Remove unused + parameter fd. + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. + +1998-11-02 Mark Kettenis + + * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access + fds_bits member. + (__FDMASK): Use __fd_mask instead of unsigned long int in cast. + +1998-10-31 Richard Henderson + + * math/Makefile (gmp-objs): Add udiv_qrnnd. + + * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL*): New. + (inline_syscall*): New. + * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): New. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Kill __syscall* bits. + +1998-10-31 Ulrich Drepper + + * aclocal.m4 (LIBC_PROG_FOO_GNU): Name output file using -o to + avoid ld test generating an unwanted file. + + * posix/PTESTS: Remove comment about incorrect test (it is correct). + +1998-10-30 Thorsten Kukuk + + * sunrpc/Versions: Add xdr_uint32_t and xdr_int32_t. + * sunrpc/pmap_rmt.c: Initialize clnt_stat variable. + * sunrpc/rpc/auth_des.h: Use uint32_t for time values. + * sunrpc/rpc/xdr.h: Add INT32 support. + * sunrpc/xdr.c: Implement xdr_int32_t and xdr_uint32_t . + + * nis/nis_call.c: Changes for new 64bit clean NIS+ interface. + * nis/nis_callback.c: Likewise. + * nis/nis_creategroup.c: Likewise. + * nis/nis_defaults.c: Likewise. + * nis/nis_intern.h: Likewise. + * nis/nis_lookup.c: Likewise. + * nis/nis_ping.c: Likewise. + * nis/nis_print.c: Likewise. + * nis/nis_table.c: Likewise. + * nis/nis_util.c: Likewise. + * nis/nis_xdr.c: Likewise. + * nis/rpcsvc/nis.h: Likewise. + * nis/rpcsvc/nis.x: Likewise. + * nis/rpcsvc/nis_callback.h: Likewise. + * nis/rpcsvc/nis_object.x: Likewise. + * nis/rpcsvc/nislib.h: Likewise. + + * nis/rpcsvc/yp.h: Remove casts to (u_long). + * nis/rpcsvc/yp_prot.h: Likewise. + * nis/rpcsvc/ypupd.h: Likewise. + * nis/ypclnt.c: Change %ld to %d in sprintf. + +1998-10-29 Andreas Schwab + + * manual/locale.texi (Formatting Numbers): Fix strfmon examples. + +1998-10-28 Andreas Schwab + + * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain + 0, __fd_mask is usually not a char. + +1998-10-30 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow + compilation on systems without rt_* syscalls (e.g. on Linux 2.0). + * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. + * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise + * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. + * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow + compiling on systems without rt_sigaction syscall. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): + Likewise. + +1998-10-30 Andreas Jaeger + + * time/strptime.c (HERE_D_FMT): Fix typo. + Reported by Claus Heine , PR libc/842. + +1998-10-30 Ulrich Drepper + + * catgets/Makefile (tests): Add rules to run gencat on test1.msg. + (generate): Add test1.cat and test1.h. + (distribute): Add test1.msg. + * catgets/test1.msg: New file. + + * catgets/gencat.c: Do a better job in initializing dynamic + memory [PR libc/844]. + +1998-10-30 18:11 Ulrich Drepper + + * iconv/gconv_conf.c (__gconv_read_conf): Don't define as + internal_function since it is called through a pointer. + * iconv/gconv_db.c (free_derivation): Likewise. + * iconv/gconv_int.h: Adjust prototype od __gconv_read_conf. + + * posix/wordexp.c: Add internal_function to parse_backtick definition. + * rt/aio_misc.c: Add internal_function to __aio_free_request, + __aio_find_req, __aio_find_req_fd, and __aio_enqueue_request + definitions. + * rt/aio_notify.c: Add internal_function to __aio_notify_only and + __aio_notify definitions. + * wcsmbsload.c: Add internal_function to __wcsmbs_load_conv definition. + +1998-10-30 Ulrich Drepper + + * Makerules (build-shlib): Add -O to generate optimized shared + objects. + +1998-10-30 11:15 Ulrich Drepper + + * sysdeps/libm-i387/e_fmod.S: Remove invalid operand size suffix. + * sysdeps/libm-i387/e_fmodf.S: Likewise. + * sysdeps/libm-i387/e_fmodl.S: Likewise. + * sysdeps/libm-i387/s_ilogb.S: Likewise. + * sysdeps/libm-i387/s_ilogbf.S: Likewise. + * sysdeps/libm-i387/s_logb.S: Likewise. + * sysdeps/libm-i387/s_logbf.S: Likewise. + * sysdeps/libm-i387/s_remquo.S: Likewise. + * sysdeps/libm-i387/s_remquof.S: Likewise. + * sysdeps/libm-i387/s_remquol.S: Likewise. + * sysdeps/libm-i387/s_significand.S: Likewise. + * sysdeps/libm-i387/s_significandf.S: Likewise. + +1998-10-30 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Really correct + _llseek. + +1998-10-30 Geoff Keating + + * math/libm-test.c: Loosen deltas for sin(0.9)^2+cos(0.9)^2. + +1998-10-29 Ulrich Drepper + + * stdio-common/vfprintf.c (vfprintf): Fix the remaining premature + returns without cleaning up the lock. + (printf_unknown): Add label all_done. + + * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Keep Linux 2.0 + kernels in mind when reading /proc/self/fd/FD. + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. + + * nscd/nscd.c (doc): It's "Name Service" not "Name Switch". + + * malloc/mtrace.c (tr_where): Replace snprintf call by mempcpy and + _fitoa. + + * sysdeps/unix/sysv/linux/ttyname_r.c (ttyname_r): Try reading + /prof/self/fd/FD first. + * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Likewise. + + * stdio-common/_itoa.h (_fitoa_word): New inline function. Write + formatted number starting at given position and return pointer to + following byte. + (_fitoa): Likewise, for long long. + +1998-10-29 Roland McGrath + + * sysdeps/unix/sysv/linux/bits/sem.h, + sysdeps/unix/sysv/linux/bits/ipc.h, + sysdeps/unix/sysv/linux/bits/shm.h, + sysdeps/unix/sysv/linux/bits/msq.h: Moved to ... + * sysdeps/gnu/bits/sem.h, sysdeps/gnu/bits/ipc.h, + sysdeps/gnu/bits/shm.h, sysdeps/gnu/bits/msq.h: ... here, + so the same bits will be used for the Hurd. + +1998-10-29 Ulrich Drepper + + * sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Allow + compiling on systems without rt_sigaction syscall. + +1998-10-12 Philip Blundell + + * Makeconfig (sysdep-subdirs): Allow Subdirs files to remove + directories as well as add them. + +1998-10-28 Philip Blundell + + * sysdeps/unix/sysv/linux/neteconet/ec.h: New file. Support for + AF_ECONET sockets as found in recent Linux 2.1 kernels. + * sysdeps/unix/sysv/linux/Dist: Distribute it. + * sysdeps/unix/sysv/linux/Makefile: Install it. + +1998-10-27 Andreas Schwab + + * string/bits/string2.h: __USE_GNU already implies __USE_MISC. + +1998-10-27 Andreas Schwab + + * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access + fds_bits member. + * sysdeps/unix/sysv/linux/alpha/bits/types.h (__FDS_BITS): Likewise. + * sysdeps/unix/sysv/linux/bits/types.h (__FDS_BITS): Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types.h (__FDS_BITS): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h (__FDS_BITS): + Likewise. + * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h (__FDS_BITS): + Likewise. + * sysdeps/generic/bits/select.h (__FD_ZERO, __FD_SET, __FD_CLR, + __FD_ISSET): Use it. + * sysdeps/i386/bits/select.h (__FD_ZERO, __FD_SET, __FD_CLR, + __FD_ISSET): Likewise. + +1998-10-28 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Tidy up, correct + llseek. + + * sysdeps/unix/sysv/linux/powerpc/pread.c: Do not use the i386 version. + Instead call the system call wrapper function using an 64bit argument. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. + +1998-10-27 Ulrich Drepper + + * signal/signal.h: Don't include for timespec, add + forward declaration. + + * sysdeps/i386/bits/select.h [!__USE_XOPEN]: Add special version + of __FD_* macros which use __fds_bits. + * sysdeps/generic/bits/select.h: Likewise. + Reported by Matt McLean . + +1998-10-27 Philip Blundell + + * elf/elf.h: Update ARM definitions. + +1998-10-27 Ulrich Drepper + + * signal/signal.h: Include bits/sigthread.h only for Unix98. + +1998-10-26 Ulrich Drepper + + * include/libc-symbols.h: If HAVE_BUILTIN_EXPECT is not defined + define __builtin_expect as a macro substituting to the first + argument. + * config.h.in: Define HAVE_BUILTIN_EXPECT. + * configure.in: Add test for __builtin_expect. + + * sysdeps/unix/sysv/linux/bits/types.h: Include + bits/pthreadtypes.h only not for POSIX 199506. + * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. + +1998-10-26 Mark Kettenis + + * sysdeps/unix/sysv/linux/Versions: Move shutdown ... + * socket/Versions [libc, GLIBC_2.0]: ... to here. + +1998-10-25 Andreas Jaeger + + * include/stdio.h: Included for size_t. + + * stdio/stdio.h: Move __path_search, __gen_tempname, __libc_fatal + to ... + * include/stdio.h: ...here. + * libio/stdio.h: Removed __path_search, __gen_tempname, __libc_fatal. + +1998-10-26 11:09 Ulrich Drepper + + * time/Makefile (tests): Add tst-posixtz. + * time/tst-posixtz.c: New file. + +1998-10-24 Andreas Schwab + + * elf/rtld.c (process_envvars): Accept any non-null value of + LD_BIND_NOW, as mandated by the ABI. + +1998-10-24 Andreas Schwab + + * sysdeps/unix/sysv/linux/pread.c: Rename __syscall_pread64 to + __syscall_pread. + * sysdeps/unix/sysv/linux/pwrite.c: Rename __syscall_pwrite64 to + __syscall_pwrite. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise. Remove + duplicate entries. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove + s_pread64 and s_pwrite64. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise. + +1998-10-24 Andreas Schwab + + * sysdeps/unix/sysv/linux/llseek.c: Use INLINE_SYSCALL. + * sysdeps/unix/sysv/linux/arm/syscalls.list: Rename __sys_llseek + to __syscall__llseek. + * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Remove entry for + __sys_llseek. + +1998-10-26 Cristian Gafton + + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add s_setfsgid + and s_setfsuid. + +1998-10-26 Ulrich Drepper + + * time/tzset.c (tz_compute): Correct last patch and describe this + in a comment. + +1998-10-24 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/Makefile [subdir=signal]: Remove + rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo, + rt_sigaction and rt_sigpending. + * sysdeps/unix/sysv/linux/m68k/syscalls.list: Remove all entries + for __syscall_* functions. + * sysdeps/unix/sysv/linux/m68k/sysdep.h: Implement INLINE_SYSCALL. + +1998-10-26 Roland McGrath + + * hurd/Versions: Add _hurd_dtable, _hurd_dtablesize, + _hurd_dtable_lock, _hurd_intern_fd. + + * sysdeps/mach/hurd/Versions: Add cthread_keycreate, + cthread_getspecific, cthread_setspecific, __libc_getspecific. + + * mach/Versions: Fix typo in last change. + +1998-10-25 Ulrich Drepper + + * time/tzset.c (tz_compute): If time to switch to DST is later in + the year switch back in the next year. + Reported by jwitford@hutch.com.au. + +1998-10-24 Mark Kettenis + + * mach/Versions: Add evc_wait, mach_error, mach_error_string, + mach_error_type, mach_msg_destroy, mig_deallocate_reply_port. + Remove __mach_host_self, __mach_reply_port, __mach_setup_thread, + __mach_port_allocate, __mach_port_allocate_name, + __mach_port_insert_right __mutex_trylock, __mutex_lock, + __mutex_unlock, __swtch, __switch, __task_create, __task_suspend, + __task_set_special_port, __task_terminate, __thread_depress_abort, + __thread_switch, __vm_allocate, __vm_deallocate, __vm_map. These + functions are not used outside libc. + + * sysdeps/mach/hurd/Versions: New file. + [libc, GLIBC_2.0]: Add _cthread_exit_routine and + _cthread_init_routine. These are set by the Hurd cthreads library. + Add __getcwd, __mmap. If we don't add these, the weak definitions in + the dynamic linker will not be replaced by the corresponding shared + library routines once they are loaded. + +1998-10-21 Mark Kettenis + + * sysdeps/mach/hurd/i386/init-first.c: Only define + __libc_enable_secure if PIC is not defined. + +1998-10-25 Roland McGrath + + * argp/Versions: Add _argp_unlock_xxx. Lock-savvy functions call this + to recurse into argp. + +1998-10-25 Ulrich Drepper + + * include/features.h: Define __USE_POSIS199506 is _POSIX_C_SOURCE is + greater or equal than 199506L. + + * sysdeps/generic/bits/types.h (__fd_set): Define element as fds_bits + only is __USE_XOPEN. Otherwise use __fds_bits. + * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/bits/types.h: Likewise. + * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Likewise. + +1998-10-24 H.J. Lu + + * locale/programs/charmap.c (parse_charmap): Accept tok_string + for . + +1998-10-25 H.J. Lu + + * locale/programs/ld-ctype.c (ctype_finish): Also check + . + +1998-10-25 Ulrich Drepper + + * signal/signal.h: Include bits/sigthread.h only if __USE_POSIX199506. + + * sysdeps/unix/sysv/linux/bits/types.h: Include pthreadtypes.h only + if __USE_POSIX199506 or __USE_UNIX98. + +1998-10-24 22:34 -0400 Zack Weinberg + + * string/bits/string2.h: Inline strdup+friends only if + __USE_MISC || __USE_GNU (prevents namespace pollution). + +1998-10-24 H.J. Lu + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (LOCK_SH, + LOCK_EX, LOCK_NB, LOCK_UN): Protect with __USE_BSD. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h (LOCK_SH, LOCK_EX, + LOCK_NB, LOCK_UN): Likewise. + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (LOCK_SH, LOCK_EX, + LOCK_NB, LOCK_UN): Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (LOCK_SH, LOCK_EX, + LOCK_NB, LOCK_UN): Likewise. + * sysdeps/unix/sysv/linux/bits/fcntl.h (LOCK_SH, LOCK_EX, + LOCK_NB, LOCK_UN): Likewise. + +1998-10-24 H.J. Lu + + * libio/ioseekoff.c (_IO_seekoff): Check the valid dir value. + + * libio/rewind.c (rewind): Clear the error. + +1998-10-24 H.J. Lu + + * grp/grp.h (getgrent_r, getgrgid_r, getgrnam_r): Add "__" to + "buffer". + +1998-10-24 H.J. Lu + + * sysdeps/unix/sysv/linux/alpha/bits/time.h (timeval): Protect + with __need_timeval. + * sysdeps/unix/sysv/linux/mips/bits/time.h (timeval): Likewise. + * sysdeps/unix/sysv/linux/bits/time.h (timeval): Likewise. + +1998-10-24 H.J. Lu + + * signal/signal.h (timespec, siginfo_t, sigwaitinfo, sigtimedwait, + sigqueue): Protect with __USE_POSIX199309. + +1998-10-24 H.J. Lu + + * time/time.h (timespec): Protect with __USE_POSIX199309 instead of + __USE_POSIX. + +1998-10-24 H.J. Lu + + * libio/fileops.c (_IO_new_file_seekoff): Always resync with + the kernel file offset. + * libio/oldfileops.c (_IO_old_file_seekoff): Likewise. + +1998-10-24 H.J. Lu + + * time/tzfile.c (__tzfile_default): Set num_types to 2. + +1998-10-23 Andreas Jaeger + + * rt/aio.h: Move __aio_init to... + * include/aio.h: ...here. + +1998-10-24 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove duplicate + definition of O_LARGEFILE. + +1998-10-24 Andreas Jaeger + + * sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Use path + as first argument to statfs. + +1998-10-24 Andreas Jaeger + + * sysdeps/generic/setenv.c (setenv): Add braces around ambiguous else. + +1998-10-24 Andreas Jaeger + + * malloc/mtrace.c: Include for strlen. + +1998-10-24 Roland McGrath + + * sysdeps/mach/hurd/bits/environments.h: New file. + + * sysdeps/mach/hurd/dl-sysdep.c (__getcwd): New weak function. + + * mach/Versions, hurd/Versions: Add numerous symbols. + Remove libmachuser and libhurduser sections, punt + versioning for those libraries for now. + + * misc/Versions: Add reboot here; it exists on all platforms. + * sysdeps/unix/sysv/linux/Versions: Remove reboot here. + +1998-10-23 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (O_NOFOLLOW): New + macro. + * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (O_LARGEFILE, + O_NOFOLLOW, O_DIRECT): New macros. + (O_DIRECTORY): Correct definition according to official 2.1.126. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (O_DIRECTORY, + O_NOFOLLOW): New macros. + +1998-10-24 Roland McGrath + + * include/ldsodefs.h: Test HAVE_ELF instead of __ELF__. + + * sysdeps/mach/hurd/opendir.c (__opendir): Return ENOENT for "". + (__opendir): Add trailing slash to name for open, for ENOTDIR check. + +1998-10-23 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/Dist: Add setresuid.c, setresgid.c, + setfsuid.c, and setfsgid.c. + * sysdeps/unix/sysv/linux/arm/Dist: Likewise. + * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. + + * version.h (VERSION): Bump to 2.0.99. + + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove duplicate + ustat definition. + + * sysdeps/unix/sysv/linux/i386/Dist: Remove s_pread64.c and + s_pwrite64.c. + + * posix/fnmath.h: Don't redefine __P when used in glibc. + * posix/glob.h: Likewise. + + * inet/rcmd.c (__ivaliduser2): Fix memory leak. + Patch by Dick Streefland . + + * stdio-common/tst-ungetc.c: Add more test cases. + + * sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h. + * sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number + definitions to ... + * sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here. New file. + * sysdeps/unix/sysv/linux/fpathconf.c: New file. + * sysdeps/unix/sysv/linux/pathconf.c: New file. + * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here. + * sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise. + +1998-10-20 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include + to define struct pt_regs. + * sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother + including here. + + * sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to + C_SYMBOL_NAME macro. + +1998-10-23 Andreas Jaeger + + * sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at + end of enumerator list. + * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise. + * posix/wordexp.h: Likewise. + + * db/db.h: Use __PMT instead of __P in typedefs. + * db/mpool.h: Likewise. + * sysdeps/generic/bits/siginfo.h: Likewise. + * nis/rpcsvc/ypclnt.h: Likewise. + +1998-10-23 Ulrich Drepper + + * libio/genops.c (_IO_seekmark): When switching to backup buffer + make sure all characters from the read buffer are read after + switching back to it. + +1998-10-22 Ulrich Drepper + + * configure.in: Add support for Cygnus GNUPro compilers. + +1998-10-22 Andreas Jaeger + + * stdio/stdio.h: Use __PMT instead of __P in typedefs. + + * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use __PMT instead + of __P for sa_restorer. + * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. + * sysdeps/unix/sysv/linux/kernel_sigaction.h (struct + kernel_sigaction, old_kernel_sigaction): Likewise. + +1998-10-22 Ulrich Drepper + + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add __syscall_pread + and __syscall_pwrite aliases. + + * sunrpc/rpc/auth.h (AUTH_DH): New macro. Alias for AUTH_DES. + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Drastically simplify and + improve INLINE_SYSCALL using macro assembler magic. + +1998-10-22 H.J. Lu + + * sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Add + sanity check for n. + * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Likewise. + + * sysdeps/posix/fpathconf.c (__fpathconf): Set errno to + EINVAL if errno == ENODEV. Tested by VSX-PCT. + + * sysdeps/posix/isatty.c (__isatty): Don't reset errno. Tested + by VSX-PCT. + + * posix/execvp.c (execvp): Check "". Tested by VSX-PCT. + +1998-10-22 Philip Blundell + + * sysdeps/unix/arm/sysdep.h: Wrap assembler macros in #ifdef + __ASSEMBLER__. + +1998-10-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Remove EXTRAVARS_* macros + and adjust formats. + +1998-10-21 14:38 Ulrich Drepper + + * sysdeps/unix/sysdep.h (INLINE_SYSCALL): New macro. Simply call + __syscall_* function. + * sysdeps/unix/sysv/linux/aio_sigqueue.c: Use INLINE_SYSCALL instead + of calling __syscall_* function. + * sysdeps/unix/sysv/linux/fxstat.c: Likewise. + * sysdeps/unix/sysv/linux/fxstat64.c: Likewise. + * sysdeps/unix/sysv/linux/getcwd.c: Likewise. + * sysdeps/unix/sysv/linux/getdents.c: Likewise. + * sysdeps/unix/sysv/linux/getpriority.c: Likewise. + * sysdeps/unix/sysv/linux/getresgid.c: Likewise. + * sysdeps/unix/sysv/linux/getresuid.c: Likewise. + * sysdeps/unix/sysv/linux/lxstat.c: Likewise. + * sysdeps/unix/sysv/linux/lxstat64.c: Likewise. + * sysdeps/unix/sysv/linux/poll.c: Likewise. + * sysdeps/unix/sysv/linux/pread.c: Likewise. + * sysdeps/unix/sysv/linux/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/ptrace.c: Likewise. + * sysdeps/unix/sysv/linux/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. + * sysdeps/unix/sysv/linux/readv.c: Likewise. + * sysdeps/unix/sysv/linux/reboot.c: Likewise. + * sysdeps/unix/sysv/linux/sigaction.c: Likewise. + * sysdeps/unix/sysv/linux/siglist.h: Likewise. + * sysdeps/unix/sysv/linux/sigpending.c: Likewise. + * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. + * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. + * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sysctl.c: Likewise. + * sysdeps/unix/sysv/linux/ustat.c: Likewise. + * sysdeps/unix/sysv/linux/writev.c: Likewise. + * sysdeps/unix/sysv/linux/xmknod.c: Likewise. + * sysdeps/unix/sysv/linux/xstat.c: Likewise. + * sysdeps/unix/sysv/linux/xstat64.c: Likewise. + * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. + * sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise. + * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setgid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setuid.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Define INLINE_SYSCALL using + inline assembler. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Remove various + __syscall_* definitions. + + * sysdeps/unix/sysv/linux/syscalls.list: Move various __syscall_* + definitions to... + * sysdeps/unix/sysv/linux/alpha/syscalls.list: ...here... + * sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here. + + * sysdeps/unix/sysv/linux/Makefile [subdir=signal] (sysdep_routines): + Move definition to... + * sysdeps/unix/sysv/linux/alpha/Makefile: ...here... + * sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here... + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here. + + * sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc] + (sysdep_routines): Remove s_pread64 and s_pwrite64. + + * sysdeps/unix/sysv/linux/i386/pread.c: New file. + * sysdeps/unix/sysv/linux/i386/pread64.c: New file. + * sysdeps/unix/sysv/linux/i386/pwrite.c: New file. + * sysdeps/unix/sysv/linux/i386/pwrite64.c: New file. + * sysdeps/unix/sysv/linux/i386/s_pread64.S: Removed. + * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Removed. + +1998-10-21 Andreas Jaeger + + * sysdeps/unix/sysv/linux/siglist.h: Fix some typos in these files + and bring them in synch. + * sysdeps/unix/siglist.c: Likewise. + Reported by Vladimir Michl [PR libc/832]. + +1998-10-20 Andreas Schwab + + * sysdeps/unix/sysv/linux/i386/setresuid.c: Allow -1 as arguments. + * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/setreuid.c: New file. + * sysdeps/unix/sysv/linux/i386/setregid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setreuid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setregid.c: New file. + * sysdeps/unix/sysv/linux/arm/setreuid.c: New file. + * sysdeps/unix/sysv/linux/arm/setregid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: New file. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_setreuid and + s_setregid. + * sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. + +1998-10-20 Andreas Schwab + + * sunrpc/rpc_main.c (close_output, close_input): New functions. + (c_output, h_output, s_output, l_output, t_output, svc_output, + clnt_output, mkfile_output): Call them at the end. + +1998-10-19 Andreas Schwab + + * db/Makefile (LDFLAGS-db1.so): New variable, to avoid duplicating + link command. + +1998-10-19 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/setfsuid.c: Add real contents. + * sysdeps/unix/sysv/linux/m68k/syscalls.list: Add s_setfs[ug]id. + +1998-10-20 Ulrich Drepper + + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_pread64 and + s_pwrite64. + * sysdeps/unix/sysv/linux/powerpc/pread.c: New file. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: New file. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: New file. + Patch by Geoffrey KEATING . + +1998-10-18 Zack Weinberg + + * sysdeps/unix/opendir.c: Check at runtime for kernel support for + O_DIRECTORY. + +1998-10-20 H.J. Lu + + * sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Fix + argument types. + +1998-10-19 Ulrich Drepper + + * math/tgmath.h: Make nested function calls work. + + * include/ldsodefs.h: Fix typo. + + * posix/Makefile (tests): Add tst-preadwrite. + * posix/tst-preadwrite.c: New file. + + * sysdeps/unix/opendir.c (__opendir): Add back fstat call to make + sure that descriptor is in any case for a directory. + +1998-10-19 18:59 -0400 Zack Weinberg + + * math/tgmath.h (__TGMATH_UNARY_REAL_IMAG): Fix typo: val -> Val. + (atan2): Takes two arguments. + +1998-10-19 Ulrich Drepper + + * include/ldsodefs.h: New file. + + * iconv/gconv.c: Include ldsodefs.h, not elf/ldsodefs.h. + Remove change to avoid using _CALL_DL_FCT. + * iconv/gconv_db.c: Likewise. + * iconv/gconv_dl.c: Likewise. + * iconv/skeleton.c: Likewise, here for DL_CALL_FCT. + * malloc/mtrace.c: Include ldsodefs.h, not elf/ldsodefs.h. + * nss/nsswitch.c: Likewise. + * nss/nsswitch.h: Likewise. + +1998-10-19 Philip Blundell + + * sunrpc/Makefile (otherlibs): If static NSS is in use, set to the + required libraries. + * login/Makefile (otherlibs): Likewise. + * nscd/Makefile (otherlibs): Likewise. + * Makeconfig (link-libc) [! build_shared]: Add $(otherlibs). + + * debug/Makefile (install-bin): Only build catchsegv if using ELF. + + * inet/Makefile: Add -DSTATIC_NSS to CFLAGS. + +1998-10-19 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/syscalls.list: Added setfsgid + and setfsuid. + +1998-10-19 Andreas Jaeger + + * nscd/connections.c: Fix typos in comments and strings. + + * nscd/nscd.conf: Update according to recent changes to nscd. + + * nscd/cache.c (prune_cache): Remove wrong comment. + +1998-10-19 13:24 Ulrich Drepper + + * locale/programs/ld-collate.c (collate_startup): Clear bit for this + category in copy_posix. + (collate_finish): Don't warn about UNDEFINED not being defined. + * locale/programs/ld-ctype.c (ctype_startup): Clear bit for this + category in copy_posix. + * locale/programs/ld-messages.c (messages_startup): Likewise. + * locale/programs/ld-monetary.c (monetary_startup): Likewise. + * locale/programs/ld-numeric.c (numeric_startup): Likewise. + * locale/programs/ld-time.c (time_startup): Likewise. + * locale/programs/localedef.c: Move copy_def_list_t definition into + locales.h. Define copy_posix variable. + (main): Before processing copy list add ©_posix to copy_list. + * locale/programs/locales.h: Add definition of copy_def_list_t. + * locale/programs/locfile.c: Clear bit for appropriate category in + copy_posix.mask for copy instruction. + +1998-10-19 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/setresgid.c: Remove #include of + non-existing file with generic implementation. + * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise. + +1998-10-19 Philip Blundell + + * iconv/gconv_db.c: Include ELF header only if STATIC_GCONV is not + defined. Avoid using _CALL_DL_FCT if it is not defined. + * iconv/gconv.c: Likewise. + +1998-10-19 Ulrich Drepper + + * nscd/connections.c (dbs): Define defualt values for timeouts and + set enabled to 0 by default. + (CACHE_PRUNE_INTERVAL): New constant. Use it instead of magical 15 in + nscd_run. + + * locale/C-ctype.c (_nl_C_LC_CTYPE_class): Clear ISCNTRL bit for + character >= 0x80. + (_nl_C_LC_CTYPE_class32): Likewise. + Reported by HJ Lu. + +1998-10-19 Roland McGrath + + * hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add + _HURD_THREADVAR_DL_ERROR. + + * hurd/Makefile (user-interfaces): Add login, password. + + * sysdeps/mach/hurd/Makefile (+cflags): Append -Wno-parentheses. + +1998-08-06 Mark Kettenis + + [submitted 1998-08-06] + * mach/Machrules: Create target directory and force re-evaluation + of Makefile to prevent `make' from optimizing away most of the + implicit rules and `vpath' directives. + +1998-10-19 Roland McGrath + + * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): If _hurd_msgport_thread + is null, short-circuit to __mach_msg. + + * sysdeps/mach/hurd/i386/init-first.c (posixland_init): New function, + broken out of init1. + (init1) [PIC]: Call it. + (__libc_init_first) [! PIC]: Call it. + + * sysdeps/mach/hurd/i386/init-first.c (init1): Don't call + __libc_init_secure. Instead set __libc_enable_secure here from + the exec flags. + (__libc_enable_secure): New variable it. + * sysdeps/mach/hurd/enbl-secure.c: New file, empty placeholder module. + +1998-10-19 Roland McGrath + + * nscd/nscd-client.h: New file, broken out of "nscd.h". + * nscd/nscd.h: Move defns needed by clients to "nscd-client.h", + and #include that. + * nscd/Makefile (distribute): Add nscd-client.h. + * nscd/nscd_getgr_r.c, nscd/nscd_gethst_r.c, nscd/nscd_getpw_r.c: + Include "nscd-client.h" instead of "nscd.h" + +1998-10-18 Ulrich Drepper + + * sysdeps/posix/getcwd.c (__getcwd): Don't stop processing + directory entries when a lstat call fails. + Patch by Colin Plumb . + + * resolv/nss_dns/dns-host.c: Add missing errnop parameter to the + NSS functions. + * resolv/nss_dns/dns-network.c: Likewise. + + * grp/Makefile: Don't search for linuxthreads in add-ons, use + have-thread-library to determine whether threads are available. + * pwd/Makefile: Remove wrong comment. + + * inet/Makefile: Define CFLAGS-gethstbyad_r.c, CFLAGS-gethstbynm_r.c, + and CFLAGS-gethstbynm2_r.c to -DUSE_NSCD=1. + + * locale/C-messages.c: Define default strings for YESTR and NOSTR. + + * nss/Versions: Add __nss_hosts_lookup. + + * nss/getXXbyYY.c: Remove unneeded assignment. + + * nss/getXXbyYY_r.c: Include nscd/nscd_proto.h only if needed. + + Almost complete rewrite of the NSCD to make it smaller, faster, + add more functionnality and make it easier to extend. + * nscd/Makfile (routines): Add nscd_gethst_r. + (nscd-modules): Add hstcache, gethstbyad_r, gethstbynm2_r, and cache. + * nscd/cache.c: New file. + * nscd/gethstbyad_r.c: New file. + * nscd/gethstbynm2_r.c: New file. + * nscd/hstcache.c: New file. + * nscd/nscd_gethst_r.c: New file. + * nscd/connections.c: Rewritten. Don't start new thread for every + new connection. Use a fixed set of threads which handle all + connections and also the cache cleanup. + * nscd/grpcache.c: Rewritten to use generic cache handling functions + in cache.c. + * nscd/nscd.c: Recognize new parameter nthreads. Adjust initialization + for rewrite. Remove handle_requests function. + * nscd/nscd.h (NSCD_VERSION): Bump to 2. + Define new data structure for the new unified cache and the host + database entries. + * nscd/nscd_conf.c: Rewrite parsing partly to allow adding of more + databases easily. Recognize check-files and threads definitions. + * nscd/nscd.conf: Add definition of enable-cache and check-files to + passwd and group definitions. Add new set of definitions for hosts. + * nscd/nscd_getgr_r.c: Rewrite for new protocol. + * nscd/nscd_getpw_r.c: Likewise. + * nscd/nscd_proto.h: Add prototype for host database functions. + * nscd/nscd_stat.c: Rewrite to simplify printing of information + for many databases. + * nscd/dbg_log.c: Remove unnecessary variable initializations. + Global variable debug_flag is renamed to dbg_level. + * nscd/dbg_log.h: Declare set_logfile. + +1998-10-16 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/fcntl.h: Add dummy definition of + O_LARGEFILE back. + +1998-10-16 Paul Eggert + + * time/mktime.c: Some systems require to be + included before for localtime_r to be declared + properly. + * time/strftime.c: Likewise. + +1998-10-16 Ulrich Drepper + + * db/Makefile: Add rule to generate shared object with the soname + from glibc 2.0. + + * sysdeps/unix/opendir.c: Use O_DIRECTORY if available. If not + available double check to verify it's a directory. + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add O_DIRECTORY. + * sysdeps/unix/sysv/linux/mips/bits/fcntl: Likewise. + * sysdeps/unix/sysv/linux/bits/fcntl.h: Remove O_* constants which + are not generally available. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: New file. + + * sysdeps/unix/sysv/linux/i386/setgroups.c: Add range check for values. + * sysdeps/unix/sysv/linux/arm/Makefile: New file. + * sysdeps/unix/sysv/linux/arm/setegid.c: New file. + * sysdeps/unix/sysv/linux/arm/seteuid.c: New file. + * sysdeps/unix/sysv/linux/arm/setfsgid.c: New file. + * sysdeps/unix/sysv/linux/arm/setfsuid.c: New file. + * sysdeps/unix/sysv/linux/arm/setgid.c: New file. + * sysdeps/unix/sysv/linux/arm/setgroups.c: New file. + * sysdeps/unix/sysv/linux/arm/setresgid.c: New file. + * sysdeps/unix/sysv/linux/arm/setresuid.c: New file. + * sysdeps/unix/sysv/linux/arm/setuid.c: New file. + * sysdeps/unix/sysv/linux/i386/setegid.c: New file. + * sysdeps/unix/sysv/linux/i386/seteuid.c: New file. + * sysdeps/unix/sysv/linux/i386/setfsgid.c: New file. + * sysdeps/unix/sysv/linux/i386/setfsuid.c: New file. + * sysdeps/unix/sysv/linux/i386/setgid.c: New file. + * sysdeps/unix/sysv/linux/i386/setgroups.c: New file. + * sysdeps/unix/sysv/linux/i386/setresgid.c: New file. + * sysdeps/unix/sysv/linux/i386/setresuid.c: New file. + * sysdeps/unix/sysv/linux/i386/setuid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setegid.c: New file. + * sysdeps/unix/sysv/linux/m68k/seteuid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setfsgid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setfsuid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setgid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setgroups.c: New file. + * sysdeps/unix/sysv/linux/m68k/setresgid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setresuid.c: New file. + * sysdeps/unix/sysv/linux/m68k/setuid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setfsgid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setfsuid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c: New file. + + * sysdeps/unix/sysv/linux/arm/syscalls.list: Add s_setgid, s_setresuid, + s_setresgid, and s_setuid. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc] + (sysdep_routines): Add setfsgid, setfsuid, setresgid, and setresuid. + * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise. + +1998-10-16 Ulrich Drepper + + * time/mktime.c: Define _POSIX_THREAD_SAFE_FUNCTIONS to get + localtime_t declaration on some systems. + +1998-10-16 10:07 Ulrich Drepper + + * iconv/Makefile [! elf]: Define CFLAGS-gconv_simple.c to + -DSTATIC_GCONV. + * iconv/skeleton.c: Include ELF header only of STATIC_GCONV is not + defined. Avoid using DL_CLL_FCT if it is not defined. + +1998-10-16 10:40 -0400 Zack Weinberg + + * resolv/arpa/nameser.h: Include sys/types.h unconditionally. + Include endian.h unconditionally. Remove portability goop + depending on #ifdef linux, #ifdef BSD, #ifdef machine-type. + +1998-10-16 11:39 -0400 Zack Weinberg + + * sunrpc/rpc/types.h: Mark file so fixincludes won't modify it. + +1998-10-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Remove __kernel_termios + again. Use char[44] to define size of the struct. + + * sysdeps/unix/sysv/linux/arm/Dist: Add bits/armsigctx.h. + +1998-10-14 Andreas Schwab + + * string/bits/string2.h (strcmp): Don't cache the result of + __builtin_constant_p in variables, otherwise constant folding + can fail in big functions. + +1998-10-14 Andreas Schwab + + * string/bits/string2.h: Add prototypes for the new inline + functions. + +1998-10-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Include termios.h to + have all types defined. + Patch by Matti Aarnio . + +1998-10-08 Paul Eggert + + * time/mktime.c (my_mktime_localtime_r): Renamed from localtime_r. + Define also if HAVE_LOCALTIME_R && defined localtime_r, with + a body that merely expands localtime_r; this works around a + bug in Digital Unix 4.0A and 4.0D. + +1998-10-14 Ulrich Drepper + + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_ioctl. + * sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: New file. Define + __ioctl to __syscall_ioctl and include Linux version of this file. + * sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/ioctl.c: New file. Redirect + ioctl calls which handle struct termios. + Based on a patch by Dan Jacobowitz . + +1998-10-14 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.98. + + * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Define __kernel_termios + here instead of including kernel_termios.h. + +1998-10-14 Andreas Jaeger + + * sysdeps/unix/opendir.c (__opendir): Remove label lose2 which is + unnecessary after the changes of 1998-10-12. + +1998-10-13 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/ioperm.c (inline_outb): Fix output + parameter format string. + (inline_outw): Likewise. + + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Include + string.h to get memcpy prototype and NULL definition. + +1998-10-12 Andreas Schwab + + * misc/sys/cdefs.h (__THROW): New macro. + * argp/argp.h: Use it to replace the kludgey __P in inline + function definitions. + * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. + * stdlib/stdlib.h: Likewise. + * wcsmbs/wchar.h: Likewise. + * libio/stdio.h: Likewise. + * stdio/stdio.h: Likewise. + * sysdeps/wordsize-64/inttypes.h: Likewise. + * sysdeps/wordsize-32/inttypes.h: Likewise. + * string/argz.h: Likewise. + * io/sys/stat.h: Likewise. + +1998-10-12 Andreas Schwab + + * Rules (stdio_lim): New variable. + ($(stdio_lim:h=st)): Use this as intermediate stamp file, depend + on Rules and config.make, use $(move-if-change) to avoid unnessary + recompilations, and cleanup command. + (common-generated): Add bits/stdio_lim.st. + +1998-10-12 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/Makefile (CFLAGS-ioperm.c): New + variable to prevent warnings from use of modern CPU instructions. + Patch by Richard Henderson . + + * sysdeps/unix/opendir.c: Test whether NAME is directory before + opening it. + +1998-10-12 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Add missing + semicolon so that profiling works. + +1998-10-12 Roland McGrath + + * sysdeps/generic/glob.c: #undef mempcpy before #define. + + * sysdeps/unix/bsd/clock.c: Use prototype defns. + +1998-10-11 Ulrich Drepper + + * Rules [posix in sysdirs]: Set L_tmpnam to 20. + Patch by Zack Weinberg . + + * string/bits/string2.h [!_STRING_ARCH_unaligned] + (__mempcpy_small): Add parameter for 1 byte copy and use it. + Reported by Geoff Keating . + +1998-10-09 Mark Kettenis + + * sysdeps/mach/hurd/bits/posix_opt.h (_XBS5_ILP32_OFF32): Remove, + it is already defined in . + +1998-10-09 Ulrich Drepper + + * posix/ptestcases.h: Fix typo. + +1998-10-08 Andreas Schwab + + * posix/regex.c (regcomp): Allocate and prepare a fastmap. + (regexec): Allocate regs.start and regs.end as one block. + +1998-10-08 Andreas Schwab + + * sysdeps/unix/sysv/linux/bits/socket.h: Remove comma at end of + enum decl. + +1998-10-08 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/profil-counter.h: Move definition of + sigcontext union to ... + * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: ... here. New + file. + * sysdeps/unix/sysv/linux/arm/register-dump.h: Add support for + version 2.0 kernels. + +1998-10-08 Ulrich Drepper + + * malloc/mtrace.c (tr_reallochook): Produce better output for real + reallocation case. + + * signal/sigsetops.c: Make sure __USE_EXTERN_INLINES is defined. + * argp/argp-xinl.c: Likewise. + + * sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add missing + Ruffian entry back. + Patch by Christian Gafton. + +1998-10-08 Paul Eggert + + * time/mktime.c (__mktime_internal): When the requested time falls + in a spring-forward gap of size DT, return a time that is DT away + from the requested time, preferring a time whose tm_isdst differs + from the requested value. Bump the max number of probes from 4 to + 6 to account for the extra probes needed to discover a + spring-forward gap in the worst case. + +1998-10-07 17:05 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/ioperm.c: Improve the autodetection + of the weird alpha architectures. + Patch by Cristian Gafton . + +1998-02-18 23:31 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/ioperm.c: Add support for + RAWHIDE and TSUNAMI. Patch from Jay.Estabrook@digital.com. + +1998-10-07 Ulrich Drepper + + * elf/dl-open.c (_dl_global_scope_alloc): Make global. + (dl_open_worker): Use realloc, not malloc to resize array. + * elf/rtld.c (_dl_initial_searchlist): New variable. + (_dl_main): Copy content of _dl_main_searchlist to + _dl_initial_searchlist. + * elf/ldsodefs.h: Add declarations for _dl_initial_searchlist and + _dl_global_scope_alloc. + * elf/Versions [libc, GLIBC_2.1]: Add _dl_initial_searchlist. + * elf/dl-close.c (_dl_close): When removing object with global + scope remove allocated searchlist if no dynamically loaded object + is on it anymore. + * elf/dl-support.c (_dl_initial_searchlist): Renamed from fake_scope. + (_dl_global_scope, _dl_main_searchlist): Use _dl_initial_searchlist. + + * malloc/mtrace.c (tr_where): Don't print space in location string, + print it afterwards. Print better symbol name information. + +1998-10-06 Andreas Schwab + + * manual/filesys.texi (Setting Permissions): Fix example for + reading umask. + +1998-10-07 Andreas Schwab + + * elf/sprof.c (load_profdata): Fix typo in error message. + +1998-10-06 Andreas Schwab + + * sysdeps/m68k/dl-machine.h (RTLD_START): Fix clearing startup + flag. + +1998-10-04 Roland McGrath + + * mach/mach.h: Remove __mach_msg decl; now does it. + +1998-10-06 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.97. + +1998-10-05 Andreas Jaeger + + * sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): Use __P + in definitions of inline stat functions so that they match the + declaration. + * stdlib/stdlib.h: Likewise. + * wcsmbs/wchar.h: Likewise. + * libio/stdio.h: Likewise. + * stdio/stdio.h: Likewise. + * sysdeps/wordsize-64/inttypes.h: Likewise. + * sysdeps/wordsize-32/inttypes.h: Likewise. + * string/argz.h: Likewise. + * argp/argp.h: Likewise. + +1998-10-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/in.h: Remove ipv6_mreq which is in + netinet/in.h. + +1998-10-05 Philip Blundell + + * sysdeps/unix/sysv/linux/bits/in.h: Add various new structures + and constants. Tidy up formatting a little. + + * sysdeps/unix/sysv/linux/bits/socket.h (SOL_IPV6, SOL_ICMPV6): + Move definitions to in.h. + +1998-10-02 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_PREFER, + SWAP_FLAG_PRIO_MASK,SWAP_FLAG_PRIO_SHIFT): Added. + Remove inclusion of . + +1998-10-05 Ulrich Drepper + + * io/sys/stat.h: Use __P in definitions of inline stat functions + so that they match the declaration. + +1998-10-02 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/quota.h (Q_RSQUASH): Added. + +1998-10-02 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/acct.h: Bring in sync with current + linux 2.1 version. + +1998-10-02 Philip Blundell + + * sysdeps/arm/dl-machine.h: Fix typo in last change. + + * sysdeps/arm/bits/huge_val.h: New file. + +1998-10-02 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/reboot.h (RB_POWER_OFF): Added. + + * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SYSCALL): Add + define. + +1998-10-05 Ulrich Drepper + + * sysdeps/posix/getcwd.c (__getcwd): Use temporary variable to + store result of realloc instead of using BUF. + +1998-10-04 Andreas Jaeger + + * misc/sgtty.h (_SGTTY_H): Correct spelling. + Reported by Rouben Rostamian [PR libc/817]. + +1998-10-04 Andreas Jaeger + + * manual/memory.texi (Obstacks): Document + obstack_alloc_failed_handler usage. + + * malloc/obstack.h: Enhance comment about + obstack_alloc_failed_handler usage. + * malloc/obstack.c: Likewise. + +1998-10-05 Ulrich Drepper + + * misc/sys/cdefs.h (__extension__): Define as empty if no gcc or + gcc before 2.8 is used. + +1998-10-01 Philip Blundell + + * sysdeps/arm/machine-gmon.h: Correct args to mcount(). Patch + from Scott Bambrough. + + * sysdeps/unix/sysv/linux/arm/register-dump.h: New file. + + * libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't + include the lock member. + +1998-09-03 Philip Blundell + + * sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler. + +1998-10-01 Ulrich Drepper + + * timezone/zic.c: Update from tzcode1998h. + * timezone/europe: Update from tzdata1998i. + * timezone/southamerica: Likewise. + + * sys/types.h: Protect use of long long by __extension__. + * stdlib/stdlib.h: Likewise. + * string/string.h: Likewise. + * sysdeps/i386/bits/byteswap.h: Likewise. + * sysdeps/geeric/bits/byteswap.h: Likewise. + * sysdeps/i386/fpu/bits/mathinline.h: Likewise. + * sysdeps/unix/sysv/linux/bits/types.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. + * sysdeps/wordsize-32/inttypes.h: Likewise. + * sysdeps/wordsize-32/stdint.h: Likewise. + * wcsmbs/wchar.h: Likewise. + +1998-09-29 Andreas Schwab + + * string/bits/string2.h (__string2_1bptr_p): Don't use a statement + expression. + (__mempcpy, strcpy, __stpcpy, strcmp, strcspn, strspn, strpbrk, + __strsep): Greatly reduce size of expansion by combining common + expressions. + (__mempcpy_small, __strcpy_small, __stpcpy_small): Convert to + inline function. + (__mempcpy_args, __strcpy_args, __stpcpy_args): New macros, used + by the above definitions. + +1998-09-27 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: New file, use + correct struct ipc_perm definition. + +1998-09-29 Thorsten Kukuk + + * nis/ypclnt.c (yp_all): Close UDP socket und give CLIENT handle free. + +1998-09-29 Cristian Gafton + + * sysdeps/unix/sysv/linux/alpha/ioperm.c: List Ruffian in platforms[]. + * sysdeps/unix/sysv/linux/net/if_shaper.h: New file. + * sysdeps/unix/sysv/linux/Dist: Add net/if_shaper.h. + * sysdeps/unix/sysv/linux/Makefile [subdirs=inet] (sysdep_headers): + Add net/if_shaper.h. + +1998-09-29 Ulrich Drepper + + * nis/ypclnt.c (yp_all): Close socket opened by __yp_bind. + + * nis/ypclnt.c: Remove not needed close calls. + +1998-09-28 23:55 Ulrich Drepper + + * nis/ypclnt.c (__yp_bind): Pretty print. Optimize readv result + check a bit. Also close socket of domain client. Close socket + in IPPORT_RESERVED error case. + +1998-09-28 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): Use + CMSG_ALIGN (fixes a bug) and correct test for availability of + another entry. + * sysdeps/unix/sysv/linux/mips/bits/socket.h: Sync with generic + Linux version. + (__cmsg_nxthdr): Use CMSG_ALIGN (fixes a bug) and correct test for + availability of another entry. + Patch by ak@muc.de. + + * sysdeps/unix/sysv/linux/netinet/ip.h (IPOPT_NOOP): Fix typo. + Patch by ak@muc.de. + + * libio/libio.h [!__STDC__]: Define const only if not defined. + +1998-09-27 Andreas Schwab + + * posix/annexc.c (xsystem): New function. Use it instead of + system. + +1998-09-28 Ulrich Drepper + + * stdlib/longlong.h: Remove #endif for #if removed in last change. + +1998-09-25 Ulrich Drepper + + * time/strftime.c [emacs]: Define my_strftime to emacs_strftimeu. + Define ut_argument, ut_argument_spec, and ut_argument_spec_iso to + allow using `ut' parameter. + [!emacs]: Define ut_argument, ut_argument_spec, and + ut_argument_spec_iso as empty. Define ut to 0. Add ut_argument and + argument_spec to prototypes and definitions. + (my_strftime): Don't call tzset of ut != 0. + Compute diff as 0 is ut != 0; + [emacs]: Define new emacs_strftime function. + Based on a patch by Paul Eggert. + +1998-09-24 Paul Eggert + + * time/strftime.c (my_strftime): When asking for the length of the + subformatted buffer, do not limit the length to look for; + otherwise, we have no reliable way to distinguish between the + empty buffer and an error. + +1998-09-25 Ulrich Drepper + + * math/Makefile (gmp-objs): Add mp_clz_tab. + +1998-09-25 David S. Miller + + * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear bits don't + set them. + * stdlib/longlong.h (sparc udiv_qrnnd): Define inline version for + cpus lacking hardware multiply and divide. + +1998-09-24 Andreas Schwab + + * db/Makefile ($(inst_slibdir)/libdb.so$(libdb1.so-version)): Use + $( + + * db/btree/bt_delete.c: Fix -Wparentheses warning. + +1998-09-24 Andreas Schwab + + * Makefile ($(inst_includedir)/gnu/lib-names.h): Use + $(do-install). + +1998-09-24 Ulrich Drepper + + * debug/catchsegv.sh: Also produce output if clone process died. + +1998-09-24 Paul Eggert + + * time/strftime.c (f_wkday): Remove duplicate definition. + (f_wkday, f_month, a_wkday, a_month, ampm): Define as macros when + !defined _NL_CURRENT && !HAVE_STRFTIME; this propagates the + 1998-09-11 fix to this case. + (wkday_len, month_len): Remove these macros; they're no longer needed. + +1998-09-24 Paul Eggert + + * time/strftime.c (my_strftime): Don't store past the end of a + zero-sized buffer. + +1998-09-24 Paul Eggert + + * time/strftime.c (underlying_strftime): + Set the buffer to a nonzero value before calling + strftime, and check to see whether strftime has set the buffer to zero. + This lets us distinguish between an empty buffer and an error. + +1998-09-24 Paul Eggert + + * time/strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000. + This fix is propagated from tzcode1998g.tar.gz. + +1998-09-24 Mark Kettenis + + * sysdeps/unix/siglist.c: Make sys_siglist a weak alias for + _sys_siglist. [!HAVE_GNU_LD]: Do not define _sys_siglist as + sys_siglist. This is handled correctly by the weak_alias macro. + +1998-09-24 Ulrich Drepper + + * sysdeps/posix/getcwd.c: Prevent compiler warning from redefinition + of mempcpy. Reported by Andreas Jaeger. + + * misc/regexp.h (compile): Use alloca instead of __alloca. It won't + pollute the namespace since the compiler will resolve it inline. + Reported by Florian La Roche . + +1998-09-24 10:29 Ulrich Drepper + + * timezone/private.h: Update from tzcode1998g. + + * timezone/africa: Update from tzdata1998h. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/europe: Likewise. + * timezone/northamerica: Likewise. + * timezone/southamerica: Likewise. + * timezone/zone.tab: Likewise. + +1998-09-23 17:28 -0400 Zack Weinberg + + * misc/sys/mman.h: New file. + + * sysdeps/generic/bits/mman.h: New file. + * sysdeps/unix/bsd/osf/bits/mman.h: New file. + * sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file. + * sysdeps/unix/bsd/ultrix4/bits/mman.h: New file. + * sysdeps/unix/sysv/irix4/bits/mman.h: New file. + + * sysdeps/generic/sys/mman.h: Removed. + * sysdeps/unix/bsd/osf/sys/mman.h: Removed. + * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed. + * sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed. + * sysdeps/unix/sysv/irix4/sys/mman.h: Removed. + * sysdeps/unix/sysv/linux/sys/mman.h: Removed. + + * include/sys/mman.h: Look directly for misc/sys/mman.h. + * misc/Makefile (headers): Add bits/mman.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove + bits/mman.h. + + * sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h. + * sysdeps/unix/sysv/linux/arm/Dist: Likewise. + * sysdeps/unix/sysv/linux/i386/Dist: Likewise. + * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. + * sysdeps/unix/sysv/linux/mips/Dist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/Dist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise. + +1998-09-23 16:27 -0400 Zack Weinberg + + * sysdeps/mach/alpha/sysdep.h: Don't use #include_next. + * sysdeps/mach/alpha/thread_state.h: Likewise. + * sysdeps/mach/i386/sysdep.h: Likewise. + * sysdeps/mach/i386/thread_state.h: Likewise. + * sysdeps/mach/mips/sysdep.h: Likewise. + * sysdeps/mach/mips/thread_state.h: Likewise. + * sysdeps/posix/profil.c: Likewise. + * sysdeps/i386/i586/memcopy.h: Likewise. + * sysdeps/mach/pagecopy.h: Likewise. + +1998-09-23 15:25 Ulrich Drepper + + * libio/stdio.h: Define __need_getopt and include getopt.h to define + getopt stuff. + * posix/unistd.h: Likewise. + * stdio/stdio.h: Likewise. + * posix/getopt.h: Remove _GNU_SOURCE use. If __need_getopt is defined + define only getopt and the variables. + +1998-09-23 Andreas Jaeger + + * scripts/test-installation.pl (installation_problem): Don't link + the test program against libdb1. + +1998-09-23 13:52 Ulrich Drepper + + * Makeconfig (all-subdirs): Add db. + * Versions.def: Add definition for libdb1. + * shlib-versions: Add definitions for libdb1. + * db/Makefile (extra-libs): Replace by libdb1. + (libdb-routines): Rename to libdb1-routines. + (headers): Rename to db1-headers. + (distribute): Add $(db1-headers). + (install-others): Define to install symlink libdb.so.NN and the + $(db1-headers). + (CPPFLAGS): Add -DUSE_LIBDB1 + Remove rules to build makedb. + * db/Versions: Rename libdb to libdb1. + * include/db.h: If USE_LIBDB1 is defined include db/db.h. + * db/makedb.c: Removed. + + * scripts/versions.awk: Recognize digits in library names. + + * db/btree/bt_open.c: Fix compiler warnings. + * db/btree/bt_put.c: Likewise. + * db/btree/bt_split.c: Likewise. + * db/hash/hash.c: Likewise. + * db/hash/hash_bigkey.c: Likewise. + * db/recno/rec_close.c: Likewise. + + * Makefile: Add localedata/% goal. + +1998-09-22 19:58 -0400 Zack Weinberg + + * posix/execvp.c: Don't give up searching the PATH if execve + returns ENOTDIR. + +1998-09-22 12:53 Ulrich Drepper + + * sysdeps/unix/sysv/linux/init-first.c (init): Don't call setfpucw only + if _dl_fpu_control_set is set. + * sysdeps/generic/dl-sysdep.c: Don't set _dl_fpu_control_set. + * elf/rtld.c: Don't define _dl_fpu_control_set. + * elf/Versions: Remove _dl_fpu_control_set. + +1998-09-22 11:51 Ulrich Drepper + + * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (SA_ONSTACK): Define. + * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise. + Correct values of other SA_* macros according to kernel headers. + +1998-09-22 Andreas Schwab + + * elf/dl-load.c (_dl_init_paths): Avoid warning about unused + variable l. + * elf/dl-error.c (_dl_catch_error): Avoid warning about clobbering + old. + +1998-09-21 Andreas Schwab + + * elf/ldsodefs.h: Fix typo in comment. + +1998-09-21 Andreas Schwab + + * libio/genops.c (_IO_default_pbackfail): Add cast to unsigned + char when comparing buffer contents with putback character. + +1998-09-21 Andreas Schwab + + * elf/Makefile (dl-routines, elide-routines.os, rtld-routines): + Undo last change. + * elf/Versions: Undo last change. Export _dl_fpu_control and + _dl_fpu_control_set. + * elf/rtld.c (_dl_fpu_control, _dl_fpu_control_set): New + variables. Include . + * sysdeps/generic/dl-sysdep.c: Store AT_FPUCW value in + _dl_fpu_control instead of __fpu_control, set _dl_fpu_control_set + to indicate that is was seen. + * sysdeps/unix/sysv/linux/init-first.c: Omit call to __setfpucw + only if _dl_fpu_control was set and is equal to desired value. + * math/Makefile (aux): Undo last change. + * math/Versions: Export __fpu_control with version GLIBC_2.0. + +1998-09-21 Andreas Schwab + + * sysdeps/m68k/dl-machine.h (elf_machine_lazy_rel): Slightly + optimized. + +1998-09-21 10:00 Ulrich Drepper + + * string/bits/string2.h: Add mempcpy optimization. + * sysdeps/generic/mempcpy.c: Undefined __mempcpy. + * intl/localealias.c: Define mempcpy only if not already defined. + + * sysdeps/i386/i486/bits/string.h: Define ffsl only if not already + defined. + +1998-09-20 10:48 -0400 Zack Weinberg + + * csu/abi-note.S: Emit the note directly instead of defining + a preprocessor macro that's only used once. Don't include sysdep.h. + * abi-tags: Generalize Solaris entry. + +1998-09-18 Andreas Schwab + + * sysdeps/unix/bsd/getpt.c (__libc_ptyname1, __libc_ptyname2): + Change to array to avoid runtime relocation. + * sysdeps/unix/sysv/linux/ptsname.c: Update declarations. + +1998-09-21 12:22 Andreas Schwab + + * malloc/Makefile ($(objpfx)libmcheck.a): Fix use of $(LN_S). + * math/Makefile ($(objpfx)libieee.a): Likewise. + +1998-09-21 Ulrich Drepper + + * sysdeps/generic/getpt.c: Fix order of argument to weak_alias. + Patch by John Tobey . + +1998-09-20 Ulrich Drepper + + * login/Makefile (distribute): Remove pty-internal.h, add + pty-private.h. + + * stdlib/tst-strtol.c: Add more checks. + Patch by Zack Weinberg . + +1998-09-20 09:37 Ulrich Drepper + + * elf/Versions [GLIBC_2.1] (libc): Add __fpu_control. + * elf/elf.h: Add AT_FPUCW. + * elf/Makefile (dl-routines): Add fpu_control. + (elide-routines.os): Add fpu_control. + (rtld-routines): Add fpu_control. + * math/Makefile (aux): Remove fpu_control. + * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Handle AT_FPUCW. + (_dl_show_auxv): Likewise. + * sysdeps/unix/sysv/linux/init-first.c (init): Use __setfpucw only + if different from OS default. + + * stdio-common/tstscanf.c: Add test case for (nil). + +1998-09-18 17:41 Ulrich Drepper + + * libio/fileops.c (_IO_new_file_underflow): Before allocating + buffer make sure the pushback buffer is destroyed. + (_IO_new_file_seekoff): Likewise. + If mode==0 quit early with the result. + Clear OEF flag after successful fseek. + * libio/libio.h (_IO_FILE_complete): Add _IO_save_ptr. + * libio/ftello.c (ftello): Add offset from original buffer if + stream has pushed back characters. + * libio/ftello64.c (ftello64): Likewise. + * libio/iofgetpos.c (_IO_fgetpos): Likewise. + * libio/iofgetpos64.c (_IO_fgetpos64): Likewise. + * libio/ioftell.c (_IO_ftell): Likewise. + * libio/genops.c (_IO_switch_to_main_get_area): Swap _IO_read_ptr + and _IO_save_ptr. + (_IO_switch_to_backup_area): Save _IO_read_ptr in _IO_save_ptr. + (_IO_default_pbackfail): Only stored push back character in original + buffer if it is the same as the one in the file at this position. + * libio/iofclose.c: Free backup buffer if one is available. + * libio/ioseekoff.c (_IO_seekoff): Only remove pushback buffer if + mode!=0. + + * strdlib/strtol.c (strtol): Handle 0x... string for base!=0 correctly. + + * time/strftime.c [_LIBC] (ampm): Use tp->tm_hour not hour12. + + * stdio-common/vfscanf.c: Fix reading (nil) for %p. + +1998-09-18 Mark Kettenis + + * login/programs/pt_chown.c (more_help): Correct message that + describes the purpose of the program. + + * login/openpty.c: Do not include pty-private.h. + (pts_name): New function. Return name of slave pseudo terminal in + an allocated buffer if necessary. + (openpty): Use pts_name to get name of the slave end of the pseudo + terminal pair. + + * sysdeps/unix/grantpt.c (grantpt): Free buffer allocated by + pts_name before return. + +1998-09-18 11:15 Ulrich Drepper + + * math/math.h: Define __NO_MATH_INLINES if __STRICT_ANSI__. + +1998-09-18 Andreas Jaeger + + * login/openpty.c: Include pty-private.h instead of + pty-internal.h. + +1998-09-09 Philip Blundell + + * sysdeps/arm/dl-machine.h (elf_machine_lazy_rel): Optimise a bit. + +1998-09-07 Philip Blundell + + * sysdeps/arm/dl-machine.h (RTLD_START): Keep in step with + recent ld.so changes. + (elf_machine_runtime_setup): Correct behaviour when profiling. + +1998-09-17 19:34 Ulrich Drepper + + * sysdeps/unix/sysv/sysv4/bits/utsname.h: Fix typo. + Patch by John Tobey . + +1998-09-17 Mark Kettenis + + * login/pty-internal.h: Removed. Moved constants related to the + `grantpt' helper program protocol to ... + * login/pty-private.h: ... here. New file. + * sysdeps/unix/sysv/linux/ptsname.c (ptsname): Reimplementation + to make the function work with kernels >= 2.1.115. + * sysdeps/unix/sysv/linux/getpt.c (getpt): Reimplement to call BSD + version if using the cloning device fails. + * sysdeps/unix/sysv/linux/grantpt.c: New file. + * sysdeps/unix/sysv/linux/unlockpt.c: General cleanup. + * sysdeps/unix/bsd/getpt.c (__getpt): Largely rewritten to allow + use by Linux specific code. + * sysdeps/unix/bsd/unlockpt.c: General cleanup. + * sysdeps/unix/grantpt.c: Largely rewritten. (pts_name): New + function. (grantpt): Use pts_name, check group and permission + mode in addition to owner. Try to set the owner, group and + permission mode first without invoking the helper program. + * login/programs/pt_chown.c: Largely rewritten. Add argp and + internationalization support. Use symbolic constants instead of + hardwired numbers for permission mode. + * sysdeps/unix/bsd/ptsname.c: New file. + +1998-09-17 22:04 Tim Waugh + + * posix/wordexp-test.c: Undo last change. + + * posix/wordexp.c: Undo last change. + +1998-09-16 Ulrich Drepper + + * nscd/grpcache.c (save_grp): Partly undo last change. + + * nscd/pwdcache.c (save_pwd): Undo last change. + +1998-09-14 Andreas Jaeger + + * sysdeps/mach/hurd/dl-cache.c (_dl_unload_cache): New dummy + function. Reported by okuji@kuicr.kyoto-u.ac.jp [PR libc/789]. + +1998-09-15 David S. Miller + + * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): + Add profiling support. + (TRAMPOLINE_TEMPLATE): New macro. + (ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that. + (RTLD_START): Prettify, and set __libc_stack_end properly. + (elf_machine_rela) [R_SPARC_COPY]: Remove RTLD_BOOTSTRAP ifndef + and check for sym being NULL instead. + * sysdeps/sparc/sparc64/addmul_1.S: Adjust to allocate 192 bytes + of stack space. + * sysdeps/sparc/sparc64/lshift.S: Likewise. + * sysdeps/sparc/sparc64/mul_1.S: Likewise. + * sysdeps/sparc/sparc64/rshift.S: Likewise. + * sysdeps/sparc/sparc64/submul_1.S: Likewise. + * sysdeps/sparc/sparc64/elf/crtbegin.S: Likewise and remove old + MEDANY code model %g4 usage. + * sysdeps/sparc/sparc64/elf/crtend.S: Likewise and remove old + MEDANY code model %g4 usage. + * sysdeps/sparc/sparc64/elf/start.S: Rework to not use old FULLANY + code model address formation. + * sysdeps/sparc/sparc64/dl-machine.h: Don't include link.h, do + include elf/ldsodefs.h + (DT_SPARC): Remove. + (elf_machine_matches_host): It is now EM_SPARCV9. + (elf_machine_dynamic): Clean up to remove ugly cast. + (elf_machine_fixup_plt): Rework for new V9 ABI, add support for + new PLT formats. + (elf_machine_rela): Don't do anything at all for R_SPARC_NONE. + Prettify rest of function. + [R_SPARC_COPY]: Check for sym being NULL. + [R_SPARC_32]: Handle it. + [R_SPARC_H44, R_SPARC_M44, R_SPARC_L44]: Handle them for the + MEDMID code model. + [R_SPARC_HH22, R_SPARC_HM10, R_SPARC_LM22]: Handle them for the + MEDANY code model. + [R_SPARC_NONE]: Remove this case, as it is now checked earlier. + (elf_machine_runtime_setup): Rewrite for new V9 ABI plt formats. + Add profiling support. + (TRAMPOLINE_TEMPLATE): New macro. + (ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that. + (RTLD_START): Prettify and set __libc_stack_end. + * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (SA_SIGINFO): + Define. + * sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Set to 64. + (SIGRTMIN, SIGRTMAX, __SIGRTMIN, __SIGRTMAX): Define. + * sysdeps/unix/sysv/linux/sparc/sparc32/brk.c (__brk): Remove + unused variable scratch. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c + (__syscall_rt_sigaction, __rt_sigreturn_stub, __sigreturn_stub): + Declare. + (__sigaction): Rewrite rt_sigaction case to pass correct sigreturn + stub to rt_sigaction syscalls. Rewrite non-rt case to use correct + old format kernel sigaction structures. + * sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h: Move... + * sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: to here. + * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Remove ucontext.h + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Fix + ucontext include. + (_JMPBUF_UNWINDS): Define. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Declare + statfs64 structure, which is exactly the same as the normal one. + * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Allocate 192 bytes + of stack. Use correct syscall trap number. Add branch prediction + settings to branch instructions. Remove old MEDANY code model %g4 + referneces for non-PIC. + * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add + __libc_longjmp and __libc_siglongjmp strong aliases. + * sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c (__readdir64): + Also define to __no__readdir64_decl around readdir.c inclusion. + (__readdir64): Add strong alias. + * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (getrlimit): + Set strong and weak names properly. + +1998-09-16 11:25 Andreas Schwab + + * manual/Makefile (AWK): Default to gawk if standalone. + +1998-09-15 Andreas Schwab + + * Makefile (distribute): Undo last change. + * Make-dist (+tsrc) [not subdir]: Also include indirection headers + for sysdep headers. + (+subdir-headers): Removed, unused. + +1998-09-15 Andreas Schwab + + * stdio-common/Makefile ($(inst_includedir)/bits/stdio_lim.h): Use + $(do-install). + +1998-09-15 Andreas Schwab + + * Makerules ($(+sysdir_pfx)sysd-Makefile): Don't check for + absolute name in $(config-sysdirs), can never happen. + ($(+sysdir_pfx)sysd-rules): Likewise. + * Makeconfig (full-config-sysdirs): Likewise. + (all-Subdirs-files): Prepend $(..). + + * configure.in: Don't check for absolute name in $add_ons_pfx, can + not happen. Let --enable-add-ons=yes work if no add-ons actually + exist. + +1998-09-15 Andreas Schwab + + * Rules ($(common-objpfx)bits/stdio_%.h): Remove extra + continuations in command. + +1998-09-15 Andreas Schwab + + * libio/oldstdfiles.c (_IO_stdin_used): Update declaration. + +1998-09-16 00:47 Tim Waugh + + * posix/wordexp-test.c: If expansion or substitution occurs + anywhere in a word, the entire word is subject to field-splitting. + + * posix/wordexp.c (parse_glob): Look for end of word instead of + end of field when deciding what to glob. + (field_split_word): New function, now the only place where + field-splitting is performed. + (parse_dollars): New parameter - tell the caller if + field-splitting should be performed on this word. + + * posix/wordexp-test.c (testit): Only call wordfree if wordexp + succeeded (or failed with WRDE_NOSPACE). + +1998-09-15 19:53 1998 Tim Waugh + + * posix/wordexp.c (wordexp): Don't convert IFS characters to + blanks. + + * posix/wordexp-test.c: Words not the result of expansion or + substitution should remain unchanged. + +1998-09-15 Ulrich Drepper + + * elf/dynamic-link.h [!ELF_MACHINE_PLTREL_OVERLAP] + (_ELF_DYNAMIC_DO_RELOC): Correctly set ranges[1].lazy. + +1998-09-15 Andreas Jaeger + + * stdio-common/Makefile: Include Makeconfig so that + $(inst_includedir) is defined. + +1998-09-14 Andreas Schwab + + * io/pwd.c: Include . + +1998-09-15 08:00 Ulrich Drepper + + * nscd/pwdcache.c (save_pwd): Correct copying. + * nscd/grpcache.c (save_grp): Likewise. + +1998-09-14 23:36 Ulrich Drepper + + * nscd/pwdcache.c (save_pwd): Rewrite to use only one malloc call. + (free_pwd): Adjust for this change. + * nscd/grpcache.c (save_grp): Rewrite to use only one malloc call. + (free_grp): Adjust for this change. + +1998-09-14 Ulrich Drepper + + * nscd/pwdcache.c (cache_pwdinit): Allocate uidtbl of correct size. + +1998-09-14 15:29 Ulrich Drepper + + * stdio-common/Makefile (headers): Remove bits/stdio_lim.h. + (install-others): Add bits/stdio_lim.h. + Add rule to install bits/stdio_lim.h. + + * sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: New file. + + * Makefile (distribute): Add include/sys/mman.h. + + * sysdeps/powerpc/Dist: Add dl-machine.c and dl-start.S. + * sysdeps/unix/sysv/linux/Dist: Add sys/sendfile.h. + * sysdeps/unix/sysv/linux/arm/Dist: Add init-first.h. + + * grp/initgroups.c: Include stdlib.h. + Patch by Zack Weinberg. + +1998-09-14 22:46 Tim Waugh + + * posix/wordexp-test.c: Chet Ramey confirmed that bash's behaviour + for field-splitting :abc: is correct, and that two fields should + result. Revert tests to reflect this. + + * posix/wordexp.c (w_emptyword): Remove function. + (exec_comm): Don't use w_emptyword. + (parse_param): Likewise. + +1998-09-14 15:00 Ulrich Drepper + + * sysdeps/arm/fpu/Dist: Moved to... + * sysdeps/arm/Dist: ...here. + * sysdeps/posix/Dist: Removed. + * sysdeps/unix/sysv/linux/Dist: Move sys/debugreg.h to... + * sysdeps/unix/sysv/linux/i386/Dist: ...here. + +1998-08-26 Geoff Keating + + * csu/init.c: Don't drag _IO_2_1_stdin_ into the executable. + +1998-09-14 11:26 Ulrich Drepper + + * wcsmbs/wcsmbs-tst1.c: Include stdlib.h. + +1998-09-14 Thorsten Kukuk + + * libc-work/nis/nss_nisplus/nisplus-service.c + (_nss_nisplus_parse_servent): Convert port in network byte order. + +1998-09-14 07:53 -0400 Zack Weinberg + + * stdlib/stdlib.h: Add a switch, __need_malloc_and_calloc, + to provide only malloc and calloc. + * include/stdlib.h: Support the above. + * string/bits/string2.h: Use __need_malloc_and_calloc when + including stdlib.h. + (__string2_1bptr_p): Avoid -Wbad-function-cast warnings. + + * iconvdata/iso-2022-jp.c: Include . + * iconvdata/iso646.c: Include . + +1998-09-14 07:51 -0400 Zack Weinberg + + * sunrpc/rpc_cout.c: Add braces around ambiguous else. + * sysdeps/libm-ieee754/w_pow.c: Likewise. + * sysdeps/libm-ieee754/w_powf.c: Likewise. + * sysdeps/libm-ieee754/w_powl.c: Likewise. + +1998-09-14 07:57 -0400 Zack Weinberg + + * stdio-common/stdio_lim.h.in: New file. All parameters + are adjustable at build time. + * Rules: Add a rule to build bits/stdio_lim.h from + stdio-common/stdio_lim.h.in. (It has to be in Rules so that + all subdirectories know how to make the file. It can't be + in Makerules because then it gets built at top level and the + dependencies are wrong.) + + * stdio-common/Makefile (distribute): Add stdio_lim.h.in. + * sysdeps/unix/sysv/linux/Makefile: Delete rules to make + stdio_lim.h. + * sysdeps/unix/sysv/linux/stdio_lim.h.in: Removed. + * sysdeps/unix/sysv/linux/Dist: Take out stdio_lim.h.in. + * sysdeps/posix/Makefile: Removed. + * sysdeps/posix/mk-stdiolim.c: Removed. + * sysdeps/generic/bits/stdio_lim.h: Removed. + +1998-09-12 Andreas Schwab + + * argp/argp-help.c: Fixup indentation. + * nss/nss_files/files-alias.c: Quiet -Wparentheses warning. + * resolv/nss_dns/dns-network.c: Likewise. + * resolv/res_send.c: Likewise. + * rt/aio_cancel.c: Likewise. + * rt/aio_misc.c: Likewise. + +1998-09-12 Andreas Schwab + + * Makefile (install-symbolic-link): Remove the link list file at last. + * Makerules (install-clean-symbolic-link-list): Removed. + +1998-09-12 Andreas Schwab + + * timezone/tst-timezone.c: Print time in UTC to get consistent + output. + +1998-09-12 Andreas Schwab + + * elf/rtld.c (_dl_rpath): Removed. + * elf/dl-support.c (_dl_path): Removed. + * elf/Makefile ($(objpfx)ld.so): Don't pass -rpath. + (CFLAGS-dl-support.c): Removed. + + * elf/dl-load.c (env_path_list): Renamed from fake_path_list. All + uses changed. + (_dl_init_paths): Always set env_path_list from LD_LIBRARY_PATH, + instead of appending it to the main map's rpath info. + (_dl_map_object): Consistently use LD_LIBRARY_PATH after all + DT_RPATHs. This makes it effective again. + (decompose_rpath): Remove second parameter, callers changed. + (fillin_rpath): Allocate enough space in curwd. + (expand_dynamic_string_token): Cope with get_origin returning -1. + +1998-09-14 Thorsten Kukuk + + * libc-work/nis/nss_compat/compat-pwd.c: Add support for + passwd.adjunct. + + * nis/nss_nis/nis-pwd.c (_nss_nis_getpwent_r): Correct test for + invalid password. + +1998-09-13 18:06 Ulrich Drepper + + * locale/programs/locale.c: Update dates. + +1998-09-13 Mark Kettenis + + * sysdeps/generic/bits/types.h: Include . Make sure + size_t is defined. Some reordering of definitions to make + maintaining this file in parallel with the linux-specific file easier. + +1998-09-13 Ulrich Drepper + + * io/pwd.c (main): Add call to mtrace. + + * malloc/mtrace.pl: Quote @ in string. + +1998-09-13 19:25 Tim Waugh + + * posix/wordexp.c (parse_arith): Fix memory leaks. + (exec_comm): Likewise. + (parse_param): Likewise. + (wordexp): Likewise. + (exec_comm): Reduce number of function return points. + (parse_param): Likewise. + (wordexp): Likewise. + +1998-09-13 14:53 Tim Waugh + + * posix/wordexp-test.c: Field-splitting ':abc:' with IFS=: should + yield three fields, not two. Test both parameter expansion and + command substitution for correct field-splitting behaviour. + + * posix/wordexp.c (w_emptyword): New function. + (parse_param): Use it. + (exec_comm): Likewise, for consistency with the way parse_param + splits fields. + (parse_param): Fix some memory leaks. + +1998-09-13 18:04 Geoff Keating + + * sysdeps/powerpc/dl-machine.c (PPC_DCBST,PPC_SYNC,PPC_ISYNC,PPC_ICBI): + Don't mark asm `volatile'. + (__elf_machine_runtime_setup): Clear the last partial block in the PLT + from the data cache too. Assume it isn't in the instruction cache yet. + (__elf_machine_fixup_plt): Clear the modified address from the caches. + +1998-09-12 Mark Kettenis + + * sysdeps/generic/segfault.c (install_handler): Install signal + handler with SA_ONSTACK instead of setting the stack flags to + SS_ONSTACK. Do not install handler for SIGSTKFLT if it is not + defined. + +1998-09-12 14:24 -0400 Zack Weinberg + + * signal/signal.h: Fix multiple inclusion guard to cover the + entire file. + * wcsmbs/wchar.h: Remove prototype of internal function + __mbsrtowcs. + * sysdeps/i386/i486/bits/string.h (memchr): Don't do + arithmetic on `void *'. + +1998-09-12 01:09 Tim Waugh + + * posix/wordexp-test.c: Fix wrong tests. Add new tests. + + * posix/wordexp.c (wordexp): Perform word-splitting instead of + field-splitting here. + (wordexp): If out of memory mid-word, free the word (but still + leave pwordexp alone for caller to see). + (parse_param): Allow for zero-length fields (smarter checking of + memory allocation failure). + (w_addword): Convert NULL words to "". + (wordexp): Convert left-over IFS characters to blanks (like bash). + +1998-09-11 Ulrich Drepper + + * configure.in: Use test -f instead of test -e. + Patch by John Tobey . + + * sysdeps/unix/sysv/sysv4/solaris2/sparc/sys/trap.h: New file. + * sysdeps/unix/sysv/sysv4/solaris2/sys/syscall.h: New file. + * sysdeps/unix/sysv/sysv4/solaris2/bits/sigstack.h: New file. + * sysdeps/unix/sysv/linux/sigstack.c: Fix typo. + * sysdeps/unix/sysv/sysv4/solaris2/sigwaitinfo.c: Fix typo. + * sysdeps/unix/sysv/sysv4/solaris2/sparc/sys/ucontext.h: New file. + * sysdeps/unix/sysv/sysv4/solaris2/sys/param.h: New file. + Patches by John Tobey . + + * time/strftime.c (my_strftime): Delay use of *tp values until + latest possible point to allow partly initialized structures + (e.g., from strptime). + + * iconvdata/Makefile (modules): Add ISO_10367-BOX, MAC-IS, NATS-DANO, + and NATS-SEFI. + Define *-routines variables for new modules. + (distribute): Add .c files for new modules. + (awk-generated-headers): Add iso_10367-box.h, mac-is.h, nats-dano.h, + and nats-sefi.h. + Add rules for header generation. + * iconvdata/gconv-modules: Add entries for new modules. + * iconvdata/iso_10367-box.c: New file. + * iconvdata/mac-is.c: New file. + * iconvdata/nats-dano.c: New file. + * iconvdata/nats-sefi.c: New file. + +1998-04-30 18:20 H.J. Lu + + * elf/dl-load.c (_dl_init_paths): Don't check the dynamic + loader if PIC is not defined. + +1998-09-11 Ulrich Drepper + + * iconvdata/Makefile (modules): Add CSN_369103, CWI, DEC-MCS, + ECMA-CYRILLIC, GOST_19768-74, GREEK-CCITT, GREEK7, GREEK7-OLD, INIS, + INIS-8, INIS-CYRILLIC, ISO_6937-2, ISO_2033, ISO_5427, ISO_5427-EXT, + and ISO_5428. + Define *-routines variables for new modules. + (distribute): Add .c files for new modules. + (awk-generated-headers): Add csn_369103.h, cwi.h, dec-mcs.h, + ecma-cyrillic.h, gost_19768-74.h, greek-ccitt.h, greek7.h, + greek7-old.h, inis.h, inis-8.h, inis-cyrillic.h, iso_2033.h, + iso_5427.h, iso_5427-ext.h, and iso_5428.h. + Add rules for header generation. + * iconvdata/gconv-modules: Add entries for new modules. + * iconvdata/csn_369103.c: New file. + * iconvdata/cwi.c: New file. + * iconvdata/dec-mcs.c: New file. + * iconvdata/ecma-cyrillic.c: New file. + * iconvdata/gost_19768-74.c: New file. + * iconvdata/greek-ccitt.c: New file. + * iconvdata/greek7-old.c: New file. + * iconvdata/greek7.c: New file. + * iconvdata/inis-8.c: New file. + * iconvdata/inis-cyrillic.c: New file. + * iconvdata/inis.c: New file. + * iconvdata/iso6937-2.c: New file. + * iconvdata/iso_2033.c: New file. + * iconvdata/iso_5427-ext.c: New file. + * iconvdata/iso_5427.c: New file. + * iconvdata/iso_5428.c: New file. + + * iconvdata/iso6937.c (from_ucs4): Correct 0x80, 0x81, and 0xb9 + entries. + Convert U02dd correctly. + +1998-09-11 20:46 Richard Henderson + + * sysdeps/alpha/dl-machine.h (_dl_start_user): Pass pointer to + _dl_main_searchlist not _dl_default_scope to _dl_init_next. + * sysdeps/sparc/sparc32/dl-machine.h (_dl_start_user): Likewise. + * sysdeps/sparc/sparc64/dl-machine.h (_dl_start_user): Likewise. + +1998-09-11 Ulrich Drepper + + * resolv/res_init.c (res_init): Handle resolv.conf file with only + one nameserver correctly. Patch by HJ Lu. + + * iconvdata/Makefile (modules): Add IEC_P27-1, BALTIC, ASMO_449, + and ANSI_X3.110. + Define *-routines variables for new modules. + (distribute): Add .c files for new modules. + (awk-generated-headers): Add iec_p27-1.h, baltic.h, and asmo_449.h. + Add rules for hedaer generation. + * iconvdata/gconv-modules: Add entries for new modules. Pretty print. + * iconvdata/ansi_x3.110.c: New file. + * iconvdata/asmo_449.c: New file. + * iconvdata/baltic.c: New file. + * iconvdata/iec_p27-1.c: New file. + + * iconvdata/t61.c (from_ucs4): Correct 0x23, 0x24, 0x80, and 0x81 + entries. + Convert U02dc correctly. + + * math/atest-exp.c: Add parentheses to avoid gcc warnings. + * math/atest-exp2.c: Likewise. + * math/atest-sincos.c: Likewise. + + * posix/getopt.h: Don't define non-POSIX stuff unless _GNU_SOURCE + is defined. + +1998-09-11 10:51 Andreas Schwab + + * string/strcoll.c: Optimize a few expressions. + * string/strxfrm.c: Likewise. + +1998-09-02 Andreas Jaeger + + * manual/locale.texi: Fix typos. + +1998-09-10 Ulrich Drepper + + * stdlib/random_r.c (__setstate_r): Allow call with same state + array as currently used (PR libc/774). + + * include/limits.h: Include gcc's header even if this file is + found more than once before it (PR libc/778) + + * sysdeps/unix/sysv/linux/Makefile [subdir==misc] + (sysdep_headers): Remove sys/debugreg.h. + * sysdeps/unix/sysv/linux/i386/Makefile [subdir==misc] + (sysdep_headers): Add sys/debugreg.h. + * sysdeps/unix/sysv/linux/sys/debugreg.h: Removed. + * sysdeps/unix/sysv/linux/i386/sys/debugreg.h: New file. + + * stdio-common/tmpnam.c: Move local static variable buf to + toplevel and rename to tmpnam_buffer to ease debugging. + Patch by Joe Keane . + Optimize s == NULL case a bit. + + * iconvdata/testdate/ISO-8859-10..UCS2: Update after charmap + correction. + +1998-09-10 12:51 Ulrich Drepper + + * resolv/res_init.c (res_init): Initialize _res.nscount and + _res.nsaddr.sin_port differently for the can when no loopback + is available to allow immediate timeout in non-networking environments. + Patch by Cristian Gafton . + +1998-09-10 Andreas Jaeger + + * localedata/charmaps/ISO-8859-10: Character 0xBD is HORIZONTAL + BAR and not EM DASH. + * localedata/charmaps/ISO_8859-SUPP: Likewise (character 0xD0). + * localedata/charmaps/ISO-8859-7: Likewise (character 0xAF). + Fixes PR libc/717. + +1998-09-10 11:53 Ulrich Drepper + + * timezone/Makefile: Add rules to generate Asia/Tokyo zoneinfo files + for test. + * timezone/tst-timezone.c (tests): Fix typo in last patch. + + * time/tzfile.c (__tzfile_read): Handle case when there are no + transitions. Set __timezone based on computed offset. + * time/tzset.c (tzset_internal): Set __timezone before returning. + + * time/tzset.c (tzset_internal): Optimize handling of local string + copy. + +1998-09-10 Andreas Jaeger + + * timezone/tst-timezone.c (tests): Add test for Asia/Tokyo (see PR + libc/776). + +1998-09-09 Benjamin Kosnik + + * math/libm-test.c (exp10_test): Adapt epsilons for powerpc. + (csqrt_test): Likewise. + * sysdeps/powerpc/bits/fenv.h: Add parens. + +1998-09-09 18:48 Ulrich Drepper + + * sysdeps/powerpc/dl-start.S (_start): Pass pointer to + _dl_main_searchlist not _dl_default_scope to _dl_init_next. + Patch by Benjamin Kosnik . + +1998-09-09 Mark Kettenis + + * elf/dl-close.c (_dl_close): Don't free imap->l_origin if it is + the special `-1' pointer. + +1998-09-09 09:32 Ulrich Drepper + + * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Make function + inline. + +1998-09-07 Paul Eggert + + * time/mktime.c (__EXTENSIONS__): Define if not defined. + (_REENTRANT): Remove. It has undesirable consequences in + Solaris 2.6 (e.g. it turns off the putc macro). Defining + __EXTENSIONS__ makes localtime_r and gmtime_r visible, which + is what we want. + * time/strftime.c: Likewise. + +1998-09-08 Andreas Schwab + + * elf/dl-error.c: Fix spelling. + +1998-09-08 Andreas Schwab + + * stdlib/strfmon.c: Quiet -Wparentheses warnings. + * stdio-common/_itoa.c: Likewise. + * stdio-common/printf_fp.c: Likewise. + * stdio-common/vfscanf.c: Likewise. + * wcsmbs/wcstok.c: Likewise. + * sysdeps/generic/glob.c: Likewise. + * posix/getopt.c: Likewise. + * sysdeps/posix/getaddrinfo.c: Likewise. + * posix/wordexp.c: Likewise. + * io/ftw.c: Likewise. + * io/fts.c: Likewise. + * misc/getpass.c: Likewise. + * iconv/gconv_conf.c: Likewise. + * argp/argp-fmtstream.c: Likewise. + * argp/argp-help.c: Likewise. + * elf/dl-load.c: Likewise. + * locale/programs/stringtrans.c: Likewise. + * catgets/gencat.c: Likewise. + * posix/getconf.c: Likewise. + * iconv/gconv_conf.c: Likewise. + * iconv/iconv_prog.c: Likewise. + + * string/strcoll.c: Optimize a few expressions. + * string/strxfrm.c: Likewise. + +1998-09-08 Andreas Schwab + + * elf/dl-open.c (dl_open_worker): Move decl of new_global up one + level to avoid uninit variable warning. + +1998-09-09 10:34 Andreas Schwab + + * sysdeps/m68k/dl-machine.h(RTLD_START): Push _dl_main_searchlist + instead of _dl_default_scope[2] as argument to _dl_init_next. + + * sysdeps/m68k/fpu/bits/mathinline.h (isinf): Avoid conflict with + C9x macro. + +1998-09-08 Ulrich Drepper + + Fix compatibility problems introduced in last change. + * csu/initfini.c: Don't define __gmon_start__ if WEAK_GMON_START is + defined. + * sysdeps/unix/sysv/linux/i386/Makefile [subdir==csu]: Add + -DWEAK_GMON_START to CFLAGS-initfini.s. + + * elf/dl-object.c (_dl_new_object): Store map address in + _dl_loaded if _dl_loaded is NULL. + * elf/rtld.c (dl_main): Don't update _dl_loaded here. + + * sysdeps/generic/setrlimit64.c: Remove stub warning. + +1998-09-07 Ulrich Drepper + + * db2/common/db_apprec.c (__db_apprec): Add braces to make gcc + quiet. + * db2/btree/bt_cursor.c: Likewise. + * db2/common/db_region.db_c: Likewise. + * db2/common/db_salloc.db_c: Likewise. + * db2/db/db.c: Likewise. + * db2/db/db_rec.c: Likewise. + * db2/hash/hash.c: Likewise. + * db2/hash/hash_page.c: Likewise. + * db2/hash/hash_rec.c: Likewise. + * db2/log/log_findckp.c: Likewise. + * db2/log/log_get.c: Likewise. + * db2/log/log_put.c: Likewise. + * db2/mp/mp_fget.c: Likewise. + * db2/mp/mp_fput.c: Likewise. + * db2/mp/mp_region.c: Likewise. + * stdlib/strtol.c: Likewise. + * string/strcoll.c: Likewise. + * string/strxfrm.c: Likewise. + * argp/argp-help.c: Likewise. + * argp/argp-parse.c: Likewise. + * resolv/res_debug.c: Likewise. + +1998-09-07 09:58 Ulrich Drepper + + * math/tgmath.h (scalb): Only define for __USE_MISC or + __USE_XOPEN_EXTENDED. Patch by Zack Weinberg. + +1998-09-06 Andreas Schwab + + * libio/stdio.h: Fix comment. + + * stdio/stdio.h: Make vfscanf, vscanf and vsscanf available if + __USE_ISOC9X. + +1998-09-06 09:53 -0400 Zack Weinberg + + * Makeconfig (+gccwarn): Remove -Wno-parentheses. + + * elf/dl-open.c: Quiet -Wparentheses warnings. + * iconvdata/johab.c: Likewise. + * iconvdata/uhc.c: Likewise. + * inet/inet_net.c: Likewise. + * io/fts.c: Likewise. + * locale/newlocale.c: Likewise. + * misc/getttyent.c: Likewise. + * misc/mntent_r.c: Likewise. + * misc/ttyslot.c: Likewise. + * nscd/nscd_conf.c: Likewise. + * nss/nsswitch.c: Likewise. + * resolv/gethnamaddr.c: Likewise. + * resolv/nsap_addr.c: Likewise. + * resolv/res_debug.c: Likewise. + * stdio-common/_itoa.c: Likewise. + * stdlib/strtod.c: Likewise. + * string/strverscmp.c: Likewise. + * sunrpc/svc.c: Likewise. + * sysdeps/libm-ieee754/e_cosh.c: Likewise. + * sysdeps/libm-ieee754/e_gamma_r.c: Likewise. + * sysdeps/libm-ieee754/e_sinh.c: Likewise. + * sysdeps/posix/getaddrinfo.c: Likewise. + +1998-09-06 15:13 Ulrich Drepper + + * elf/dlsym.c (dlsym_doit): Use new RTLD_DEFAULT macro to test + for use of global scope. + * elf/dlvsym.c (dlvsym_doit): Likewise. + +1998-09-02 Paul Eggert + + * strftime.c (my_strftime): When mbrlen returns (size_t) -2, + copy the redundant bytes at the end of the format as-is; don't + just copy their first byte and then rescan, as that might get + us an encoding error. + Account correctly for the length of multibyte sequences in the + format. + +1998-09-03 20:14 Tim Waugh + + * posix/wordexp-test.c: Add tests for different IFS values. + Change unquoted-newline test so that newline is not in IFS. + + * posix/wordexp.c (wordexp): Correct null/unset mix-up when + determining IFS characters. Return WRDE_BADCHAR for unquoted + special characters _except_ if they are separators. + +1998-09-06 10:56 Ulrich Drepper + + * include/tgmath.h: New file. + + * libio/stdio.h: Correct reversed #ifs. + Patch by Zack Weinberg. + + * manual/creature.texi: Better explain reason for feature select + macros. + Patch by Michael Deutschmann . + +1998-09-06 10:25 -0400 Zack Weinberg + + * include/alloca.h: Add multiple-inclusion guard. + * include/db.h: Likewise. + * include/db_185.h: Likewise. + * include/dlfcn.h: Likewise. + * include/fcntl.h: Likewise. + * include/grp.h: Likewise. + * include/libintl.h: Likewise. + * include/mntent.h: Likewise. + * include/pwd.h: Likewise. + * include/sched.h: Likewise. + * include/search.h: Likewise. + * include/setjmp.h: Likewise. + * include/shadow.h: Likewise. + * include/signal.h: Likewise. + * include/stdio.h: Likewise. + * include/stdlib.h: Likewise. + * include/string.h: Likewise. + * include/termios.h: Likewise. + * include/time.h: Likewise. + * include/ulimit.h: Likewise. + * include/utmp.h: Likewise. + * include/wchar.h: Likewise. + * include/sys/file.h: Likewise. + * include/sys/gmon.h: Likewise. + * include/sys/ioctl.h: Likewise. + * include/sys/mman.h: Likewise. + * include/sys/resource.h: Likewise. + * include/sys/select.h: Likewise. + * include/sys/socket.h: Likewise. + * include/sys/statfs.h: Likewise. + * include/sys/time.h: Likewise. + * include/sys/times.h: Likewise. + * include/sys/wait.h: Likewise. + +1998-09-06 09:00 Ulrich Drepper + + * version.h (VERSION): Bump to 2.0.96. + + Rewrite runtime linker to be truly thread-safe. There is now no + global variable specifying the scope. We create all needed + scopes at the time the link maps are created. + * elf/Versions [GLIBC_2.1]: Add _dl_loaded and _dl_main_searchlist. + * elf/link.h: Add struct r_scope_elem and use this for l_searchlist, + l_symbolic_searchlist, l_scope, and l_local_scope elements in + struct link_map. + * elf/dl-close.c: Rewritten accordingly. + * elf/dl-deps.c: Likewise. + * elf/dl-error.c: Likewise. + * elf/dl-init.c: Likewise. + * elf/dl-load.c: Likewise. + * elf/dl-lookup.c: Likewise. + * elf/dl-object.c: Likewise. + * elf/dl-open.c: Likewise. + * elf/dl-reloc.c: Likewise. + * elf/dl-runtime.c: Likewise. + * elf/dl-support.c: Likewise. + * elf/dl-symbol.c: Likewise. + * elf/dl-version.c: Likewise. + * elf/dlsym.c: Likewise. + * elf/dlvsym.c: Likewise. + * elf/ldsodefs.h: Likewise. + * elf/rtld.c: Likewise. + * iconv/gconv_dl.c: Likewise. + * nss/nsswitch.c: Likewise. + * sysdeps/i386/dl-machine.h: Likewise. + * sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise. + + * elf/dlfcn.h: Declare dladdr only for __USE_GNU. + Define RTLD_DEFAULT. + +1998-09-05 Mark Kettenis + + * sysdeps/mach/hurd/i386/init-first.c (init1): Call + __getopt_clean_environment with __environ instead of envp. + +1998-09-05 Roland McGrath + + * sysdeps/mach/hurd/i386/Makefile (omit-deps): Define to crt0. + + * string/argz-extract.c (__argz_extract): Add de-consting cast for + setting results. + + * string/argz.h (argz_next): Add de-consting cast for return. + * string/argz-next.c (__argz_next): Likewise. + + * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet] (sysdep_headers): + Don't add netinet/udp.h, netinet/ip_icmp.h here. + * sysdeps/gnu/Makefile: Do it here instead. + * sysdeps/unix/sysv/linux/Dist: Move those files from here ... + * sysdeps/gnu/Dist: ... to here. + + * sysdeps/unix/sysv/linux/netinet/ip_icmp.h, + sysdeps/unix/sysv/linux/netinet/tcp.h, + sysdeps/unix/sysv/linux/netinet/udp.h: Moved to sysdeps/gnu/netinet. + +1998-09-04 Roland McGrath + + * string/argz.h (argz_extract, argz_next): Use `const' for ARGZ param. + * string/argz-next.c, string/argz-extract.c: Fix defns. + +1998-09-03 Roland McGrath + + * mach/Makefile: Use -include for mach-syscalls.mk to silence warning. + + * sysdeps/mach/hurd/sysd-stdio.c: Declare fns + __stdio_{read,write,seek,close,fileno} using __io_*_fn types. + * sysdeps/generic/sysd-stdio.c: Likewise. + +1998-09-02 Ulrich Drepper + + * elf/dl-load.c (fillin_rpath): Handle "/" as RPATH correctly. + (_dl_map_object_from_fd): Make NAME argument const. + Remove last parameter in _dl_new_object call. + (print_search_path): Correct construction of composed path name. + (_dl_map_object): Prevent looking at RPATH of the main map twice. + Remove last parameter in _dl_new_object call. + * elf/dl-object.c: Remove last parameter. Determine whether create + origin entry based on empty realname. Handle file in root directory + correctly. + * elf/ldsodefs.h: Adjust prototype for _dl_new_object. + * elf/rtld.c (dl_main): Add comment describing reason for memory leak. + Remove last parameter in _dl_new_object call. + * sysdeps/generic/dl-origin.h: Handle file in root directory correctly. + * sysdeps/unix/sysv/linux/dl-origin.h: Likewise. + +1998-09-01 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Add more comments and correct some. + Free l_searchlist and l_dupsearchlist. + + * debug/catchsegv.sh: Add one more pair of quotes. + +1998-09-01 17:53 Ulrich Drepper + + * elf/dl-load.c (add_name_to_object): Change return type to void and + make NAME parameter const. Allocate room for NAME in same memory + block used for l_libname entry. + (_dl_map_object_from_fd): Don't free NAME on failure. + (map_segment): Pass SONAME to add_name_to_object, not a copy. + (_dl_map_object): Don't create copy of NAME. Pass NAME to + _dl_map_object_from_fd. + * elf/dl-object.c (dl_new_object): Allocate room for NAME in same + memory block used for l_libname entry. + * elf/dl-close.c: Adjust free()ing for this change. + +1998-09-01 15:36 Ulrich Drepper + + * malloc/Makefile: Include Makeconfig before testing config-sysdirs. + + * malloc/mtrace.c: Add bug report address. Update email address. + Add more @XXX@ to print correct address size. + + * elf/dl-addr.c (_dl_addr): Make sure that map to be examined is + really initialized. + + * elf/dl-close.c (_dl_close): Use l_map_start and l_map_end info + for munmap call instead of examining phdr again. + Free all malloc()ed strings and arrays. + +1998-08-09 Geoff Keating + + * sysdeps/powerpc/Makefile [subdir=elf]: Add new files split out of + dl-machine.h. + * sysdeps/powerpc/dl-machine.c: New file. + * sysdeps/powerpc/dl-machine.h: Move much stuff into separate + files. Revise ELF_PREFERRED_ADDRESS to take account of + the new mapping information (fixes bug involving huge bloated + web browser). Set ELF_MACHINE_PLTREL_OVERLAP. + * sysdeps/powerpc/dl-start.S: New file. + + * elf/dl-load.c (_dl_map_object_from_fd): Initialise l_map_start, + l_map_end. + * elf/do-rel.h: Call elf_machine_rel only once (to save space). + * elf/dynamic-link.h: Allow PLT relocs to be in the middle of the + others. Call elf_dynamic_do_##reloc only once (to save even more + space). + * elf/link.h: Add new members l_map_start and l_map_end to keep + track of the memory map. + * elf/rtld.c (_dl_start): Initialise l_map_start for ld.so and + the executable. + +1998-09-01 11:53 Ulrich Drepper + + * debug/Makefile (catchsegv): We need not rewrite SOVER anymore. + Reported by Andreas Jaeger. + + * posix/glob.h: Use __size_t instead of size_t in definitions and + make sure this is defined. + +1998-09-01 10:34 Ulrich Drepper + + * manual/locale.texi: Almost complete rewrite. Document more functions + and functionality. + * manual/arith.texi: Correct reference. + * manual/string.texi: Pretty printing. + + * manual/texinfo.tex: Update from last available version. + +1998-08-31 22:44 Ulrich Drepper + + * nis/nss_nis/nis-pwd.c (_nss_nis_getpwnam_r): Correct test for + invalid password. + (_nss_nis_getpwuid_r): Likewise. + Patch by Matthew Arnison . + + * inet/rcmd.c: Implement netgroup support. + Patch by Dick Streefland . + +1998-08-31 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Update _dl_loaded if the first + object on the list is removed. Don't use this code for PIC. + Reported by HJ Lu [PR libc/770]. + +1998-08-31 15:56 Ulrich Drepper + + * db2/db_int.h: Use instead of "db.h" to find header in include. + + * include/stdio.h: Add __vsscanf. + + * libio/stdio.h: Make vfscanf, scanf, and vsscanf available if + __USE_ISOC9X. + Remove __vsscanf declaration. + Always declare fgetpos and fsetpos. + + * math/math.h: Define isinf as macro. + * math/bits/mathcalls.h: Change to declare __isinf all the time. + Don't declare scalb for ISO C 9x. + + * math/tgmath.h: Define fma. Rewrite the underlying macros. + + * stdlib/stdlib.h: Declare strtof and strtold is __USE_ISOC9X. + + * sysdeps/unix/sysv/linux/bits/sigcontext.h: Allow inclusion from + sys/ucontext.h. + + * sysdeps/wordsize-32/inttypes.h: Define missing PRI* and SCN* + macros. + +1998-08-31 Andreas Jaeger + + * sysdeps/standalone/bits/errno.h (ENOMSG): Remove duplicate. + Reported by jreising@frequentis.com [PR libc/767]. + +1998-08-31 Andreas Jaeger + + * io/lockf.c (lockf): Move initilisation of fl.l_whence and + fl.l_start at beginning of function. + Patch by Geoff. Dash [PR libc/769]. + +1998-08-31 Ulrich Drepper + + * io/sys/stat.h (ALLPERMS): Fix type (S_ISTXT -> S_ISVTX). + Reported by Rob.Hagopian@vu.union.edu [PR libc/763]. + + * nscd/nscd.init: Make it work in RedHat systems. + Patch by Christian Gafton. + +1998-08-29 Philip Blundell + + * catgets/Makefile: Don't try to run test programs when + cross-compiling. + +1998-08-31 Ulrich Drepper + + * signal/signal.h: Include bits/sigthread.h only if __USE_POSIX. + Reported by Zack Weinberg. + +1998-08-30 Andreas Schwab + + * sysdeps/unix/sysv/linux/Dist: Add umount.S and umount2.S. + * elf/Makefile (distribute): Remove ldd.sh.in. + +1998-08-31 11:46 Andreas Schwab + + * sysdeps/unix/sysv/linux/dl-origin.h (get_origin): Remove unused + variable. + +1998-08-29 Ulrich Drepper + + * sysdeps/i386/register-dump.h: Move to ... + * sysdeps/unix/sysv/linux/i386/register-dump.h: ...here. + +1998-08-28 22:49 Ulrich Drepper + + * elf/do-rel.h (elf_dynamic_do_rel): Call elf_machine_lazy_rel + with load address, not map address. + * sysdeps/alpha/dl-machine.h (elf_machine_lazy_rel): Change first + parameter and use this value. + * sysdeps/arm/dl-machine.h: Likewise. + * sysdeps/i386/dl-machine.h: Likewise. + * sysdeps/m68k/dl-machine.h: Likewise. + * sysdeps/mips/dl-machine.h (elf_machine_lazy_rel): Change first + parameter. + * sysdeps/powerpc/dl-machine.h: Likewise + * sysdeps/sparc/sparc32/dl-machine.h: Likewise + * sysdeps/sparc/sparc64/dl-machine.h: Likewise + +1998-08-28 09:22 Ulrich Drepper + + * elf/rtld.c (process_envvars): Fix copy&paste error. + + * malloc/malloc.c (malloc_hook_ini): Don't overwrite realloc and + memalign hook. + (realloc_hook_ini): Don't overwrite memalign hook. + (memalign_hook_ini): Don't overwrite malloc and memalign hooks. + Reported by Philippe Troin . + + * malloc/mcheck.c (mprobe): Call checkhdr with adjusted pointer. + Patch by Philippe Troin . + +1998-08-26 Andreas Schwab + + * sysdeps/generic/segfault.c (install_handler): Protect the + non-POSIX signals with #ifdef. + (catch_segfault): Add missing mode parameter for open. + * debug/catchsegv.sh: Avoid termination message from shell. Allow + other termination signals. + +1998-08-27 Andreas Schwab + + * debug/Makefile (distribute): Add register-dump.h. + +1998-08-28 10:41 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/register-dump.h: New file. + +1998-08-27 19:42 Ulrich Drepper + + * elf/Makefile (distribute): Add dl-origin.h. + * sysdeps/generic/dl-origin.h: New file. + * sysdeps/unix/sysv/linux/dl-origin.h: New file. + * elf/link.h (struct link_map): Add l_origin field. + * elf/dl-load.c (expand_dynamic_string_token): New function. + (decompose_path): Remove WHERE argument, take link map pointer instead. + Call expand_dynamic_string_token instead of local_strdup to make copy + of rpath. + (_dl_init_paths): Call decompose_path with correct argument. + (_dl_map_object_from_fd): Define static is EXTERNAL_MAP_FROM_FD is + not defined. + Check EI_OSABI and EI_ABIVERSION fields in header. + Call _dl_new_object with extra argument. + (_dl_map_object): Call decompose_path with correct argument. + Call expand_dynamic_string_token instead of local_strdup to also + expand DST. + Call _dl_new_object with extra argument. + * elf/dl-object.c (_dl_new_object): Determine l_origin for all maps + but the main one if new argument is nonzero. + * elf/ldsodefs.h: Adjust for _dl_new_object change. + * elf/dl-support.c: Define _dl_origin_path. + * elf/rtld.c: Likewise. Set _dl_origin_path based on LD_ORIGIN_PATH. + (dl_main): Call _dl_new_object with extra argument. + + * elf/dl-close (_dl_close): Free l_name and l_origin. + + * sysdeps/i386/useldt.h (THREAD_GETMEM, THREAD_SETMEM): Use P + modifier in asm, not c. + + * sysdeps/mach/hurd/Makefile [subdirs==elf]: Define CFLAGS-dl-load.c + to -DEXTERNAL_MAP_FROM_FD to make _dl_map_object_from_fd extern. + +1998-08-26 17:48 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Move map->l_nsearchlist value into local + variable so that map can be freed. + Reported by Philippe Troin . + + * elf/dl-open.c (dl_open_worker): Correct test for extending global + scope array. + Patch by Philippe Troin . + +1998-08-26 Geoff Keating + + * sysdeps/powerpc/register-dump.h: Rewrite. Much nicer this way. + Don't call writev() with a 100-element vector. + * sysdeps/generic/segfault.c (catch_segfault): Skip top-level NULL + return address. + + * sysdeps/powerpc/elf/libc-start.c: Sync up with generic version. + In particular, set __libc_stack_end. + * sysdeps/powerpc/elf/start.S: Allow _init and _fini to be + undefined. Fix copyright notice. + +1998-08-25 Andreas Schwab + + * math/Makefile (gmp-objs): New variable. + ($(objpfx)atest-exp, $(objpfx)atest-sincos, $(objpfx)atest-exp2): + Depend on it. + (tests): Add atest-exp atest-sincos atest-exp2. + (tests-static): Remove atest-exp atest-sincos atest-exp2. + +1998-08-25 Ulrich Drepper + + * sysdeps/generic/dl-cache.c: Move static variable cache and cachesize + to toplevel. + (_dl_unload_cache): New function. + * elf/Versions [libc GLIBC_2.1]: Add _dl_unload_cache. + * elf/dl-open.c (_dl_open): Unload map file before freeing the lock. + * elf/rtld.c (dl_main): Unload map file before jumping to user code. + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Define O_DIRECT. + Correct comment for O_LARGEFILE. + * sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_DIRECT. + Change O_LARGEFILE to correct value. + +1998-08-25 14:34 Ulrich Drepper + + * libio/iogetline.c (_IO_getline_info): Don't read anything for + N == 0. Patch by HJ Lu. + +1998-08-25 11:43 Ulrich Drepper + + * elf/elf.h: Add syminfo stuff and other DT_* from Solaris' ELF. + +1998-08-25 Bernd Schmidt + + * argp/argp.h: Use __inline__ not inline. + + * sysdeps/i386/bits/select.h (FD_ZERO): Rewrite asm not to indicate + an input register as being clobbered. + * sysdeps/i386/memset.c (memset): Likewise. + * sysdeps/i386/bzero.c (__bzero): Likewise. + * sysdeps/i386/memcopy.h ({BYTE,WORD}_COPY_[FB]WD): Likewise. + +1998-08-25 Andreas Jaeger + + * stdlib/jrand48_r.c (__jrand48_r): Set also upper half of result. + Fixes PR libc/757 (Reported by Michael Creutz + + * debug/catchsegv.sh: Handle text preceding backtrace better. + * sysdeps/generic/segfault.c: Allow register dump. Allow handler + to be installed for other signals than SIGSEGV. + * sysdeps/generic/register-dump.h: New file. + * sysdeps/i386/register-dump.h: New file. + * sysdeps/powerpc/register-dump.h: New file. + + * sysdeps/unix/sysv/linux/i386/profil-counter.h: Use macros from + sigcontextinfo.h. + * sysdeps/unix/sysv/linux/powerpc/profil-counter.h: Use i386 version. + +1998-08-24 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: New file. + +1998-08-09 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/chown.c: New file. + * sysdeps/unix/sysv/linux/powerpc/lchown.S: New file. + * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add chown, remove + getresuid, getresgid. + +1998-08-16 Geoff Keating + + * sysdeps/unix/sysv/linux/powerpc/clone.S: Fix bugs. Set up stack + pointer in userland. + +1998-08-21 Andreas Schwab + + * sysdeps/unix/sysv/linux/sys/mount.h (MNT_FORCE): Define as enum + and fix value. + +1998-08-22 Andreas Schwab + + * elf/ldd.bash.in: Add missing quotes around $file. Make loop + over arguments Bourne shell compatible. Don't exit unsuccessfully + if nonelf returns successfully. Avoid duplicating most of the + script. + * sysdeps/unix/sysv/linux/ldd-rewrite.sed: Add missing quotes + around $file. + +1998-08-24 10:37 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/Makefile (sysdep_headers): Add + sys/reg.h. + * sysdeps/unix/sysv/linux/m68k/sys/reg.h: New file. + * sysdeps/unix/sysv/linux/m68k/Dist: Distribute it. + +1998-08-23 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.1]: Add + __modify_ldt and modify_ldt. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Add modify_ldt. + + * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): + Use orl $-1 instead of movl $-1 to save two bytes. + * sysdeps/unix/sysv/linux/i386/i686/sysdep.h (SYSCALL_ERROR_HANDLER): + Likewise. + +1998-08-17 H.J. Lu + + * libio/Versions (_IO_do_write, _IO_file_attach, + _IO_file_close_it, _IO_file_finish, _IO_file_fopen, + _IO_file_init, _IO_file_overflow, _IO_file_seekoff, + _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, + _IO_file_write, _IO_file_xsputn): Added to GLIBC_2.1. + + * libio/fileops.c (_IO_do_write, _IO_file_attach, + _IO_file_close_it, _IO_file_finish, _IO_file_fopen, + _IO_file_init, _IO_file_overflow, _IO_file_seekoff, + _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, + _IO_file_write, _IO_file_xsputn): Change the prefix to + "_IO_new_". Added to GLIBC_2.1. + + * libio/libioP.h (_IO_do_write, _IO_file_attach, + _IO_file_close_it, _IO_file_finish, _IO_file_fopen, + _IO_file_init, _IO_file_overflow, _IO_file_seekoff, + _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, + _IO_file_write, _IO_file_xsputn): Add prototypes for the prefix + "_IO_new_". + + * libio/oldfileops.c (_IO_do_write, _IO_file_attach, + _IO_file_close_it, _IO_file_finish, _IO_file_fopen, + _IO_file_init, _IO_file_overflow, _IO_file_seekoff, + _IO_file_setbuf, _IO_file_sync, _IO_file_underflow, + _IO_file_write, _IO_file_xsputn): Added to GLIBC_2.0. + +1998-08-23 Richard Henderson + + * Makeconfig (LDFLAGS): Remove. + + * csu/initfini.c: Return to .text before __gmon_start__. + + * elf/elf.h (EM_FAKE_ALPHA): Rename from EM_OLD_ALPHA. + (STO_MIPS_*): Rename from STO_*. + (STB_MIPS_SPLIT_COMMON): Rename from STB_SPLIT_COMMON. + (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New. + + * math/atest-exp.c (mpn_bitsize): Fix bit location calculation. + (main): e3s is negative on zero. + * math/atest-exp2.c: Likewise. + * math/atest-sincos.c: Likewise. + +1998-08-23 Andreas Jaeger + + * Makerules (install): Add comment about absolute paths. + +1998-08-23 Ulrich Drepper + + * libio/vsnprintf.c (_IO_vsnprintf): Set first byte of destination + array to NUL to handle maxlen==1 case correctly. + Patch by HJ Lu. + +1998-08-23 Richard Henderson + + * sysdeps/alpha/elf/crtbegin.S: Fix .prologue; no pv used. + * sysdeps/alpha/elf/crtend.S: Likewise. + * sysdeps/alpha/elf/start.S: Likewise. + + * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Fix .prologue; + non-standard pv usage. + + * sysdeps/unix/sysv/linux/alpha/brk.S: Use jmp macro for relaxation. + * sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/select.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise. + + * sysdeps/alpha/fpu/e_sqrt.c: Use the asm version when the input is + a finite non-denormal, deferring to the full IEEE version otherwise. + + * sysdeps/alpha/fpu/bits/mathinline.h (__floorf, __floor): + Early out for -0. Optimize for !_IEEE_FP_INEXACT. + * sysdeps/alpha/fpu/s_floor.c: New. + * sysdeps/alpha/fpu/s_floorf.c: New. + * sysdeps/alpha/fpu/s_ceil.c: New. + * sysdeps/alpha/fpu/s_ceilf.c: New. + +1998-08-22 Philip Blundell + + * sysdeps/arm/bits/string.h: New file. + +1998-08-12 Andreas Jaeger + + * sysdeps/unix/sysv/linux/configure.in: Obey --with-headers, + document it. + + * sysdeps/unix/sysv/linux/alpha/configure.in: New file, contains + test for recent Linux 2.1.100+ headers. + +1998-08-21 Thorsten Kukuk + + * nis/nss_compat/compat-initgroups.c: Optimize NIS query. + +1998-08-21 17:21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/glob64.c: Define __stat using __xstat64. + +1998-08-20 Andreas Schwab + + * Makefile (elf/ldso_install): Put back. The problem still persists. + * elf/Makefile (ldso_install): Likewise. + +1998-08-20 Andreas Schwab + + * db2/db/db.c (db_open) [_LIBC]: Rename to __nss_db_open and + create weak alias. + * include/db.h: Declare __nss_db_open. + * db2/Versions: Export it. + + * db2/makedb.c: Convert to use db2 API. + * nss/nss_db/db-XXX.c: Likewise. + * nss/nss_db/db-netgrp.c: Likewise. + * nss/nss_db/db-alias.c: Likewise. + (_nss_db_getaliasent_r): Allow retrying with a larger buffer. + +1998-08-19 Andreas Schwab + + * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove + sys_setresuid, already built automatically (or not). + * sysdeps/unix/sysv/linux/syscalls.list: Define __setresuid + instead of __syscall_setresuid and add back setresuid. + * sysdeps/unix/sysv/linux/seteuid.c: Use __setresuid instead of + __syscall_setresuid. + +1998-08-21 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/mount.h: Fix typo. + +1998-08-20 Ulrich Drepper + + * elf/Makefile (sh-ldd-rewrite): Remove expression to remove + BASH-ONLY marked region. + * elf/ldd.bash.in: Remove special BASH-ONLY markers. + +1998-02-20 17:54 H.J. Lu + + * libio/oldfileops.c (_IO_file_seekoff): Don't adjust pointers if + _IO_SYSSEEK fails. + + * libio/iolibio.h (_IO_pos_BAD): Define of type _IO_fpos64_t. + + * libio/libioP.h (FILEBUF_LITERAL): Also initialize new _offset + element. + +1998-08-21 Roland McGrath + + * elf/ldd.bash.in (TEXTDOMAIN, TEXTDOMAINDIR): Surround setting these + with magic comments ###BASH-ONLY and ###END-BASH-ONLY. + * elf/Makefile ($(objpfx)ldd): Generate always from ldd.bash.in. + (common-ldd-rewrite): New variable, old contents of $(sh-ldd-rewrite). + (sh-ldd-rewrite): Use that, add cmds to remove code surrounded by + those magic comments, and to use /bin/sh for @BASH@. + (bash-ldd-rewrite): Use $(common-ldd-rewrite). + * elf/ldd.sh.in: File removed. + +1998-08-20 20:07 Ulrich Drepper + + * pwd/getpw.c (__getpw): Use %lu for uid and gid parameter and + cast them to unsigned long int. + * pwd/putpwent.c (putpwent): Likewise. + Patch by John Tobey . + +1998-08-20 17:14 H.J. Lu + + * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to + _IO_pos_BAD. + +1998-02-20 17:54 H.J. Lu + + * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if + _IO_SYSSEEK fails. + +1998-08-20 19:14 Ulrich Drepper + + * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines): + Add umount and umount2. + * sysdeps/unix/sysv/linux/syscalls.list: Remove umount. + * sysdeps/unix/sysv/linux/umount.S: New file. + * sysdeps/unix/sysv/linux/umount2.S: New file. + * sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2. + Define MNT_FORCE. + + * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdep_headers): + Add sys/sendfile.h. + * sysdeps/unix/sysv/linux/syscalls.list: Add sendfile. + * sysdeps/unix/sysv/linux/sys/sendfile.h: New file. + + * sysdeps/unix/sysv/linux/sys/acct.h: Pretty print. + + * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add umount2 and + sendfile. + +1998-08-20 16:01 Ulrich Drepper + + * elf/ldd.sh.in: Redirect warnings and error messages to stderr. + * elf/ldd.bash.in: Likewise. + + * elf/sln.c: Avoid warning for no main prototype. + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Remove O_READ and + O_WRITE. + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add F_SETSIG and + F_GETSIG. + * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. + +1998-08-20 Philip Blundell + + * sysdeps/arm/fpu/ieee754.h: Move to... + * sysdeps/arm/ieee754.h: ... here. + + * sysdeps/arm/__longjmp.S: Put return value in correct register. + Don't set the condition flags unnecessarily. + * sysdeps/arm/fpu/__longjmp.S: Likewise. Restore floating point + registers correctly. + + * sysdeps/arm/dl-machine.h: Fix problems with profiling code + (patch from Scott Bambrough). + + * sysdeps/arm/sysdep.h (CALL_MCOUNT): Add missing semicolons. + + * csu/initfini.c (_init): Don't check whether __gmon_start__ is + NULL, just call it unconditionally. + (__gmon_start__): Provide stub version as a weak symbol. + +1998-07-30 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/init-first.h: New file (from patch + by Scott Bambrough) + + * sysdeps/unix/sysv/linux/arm/errlist.c: New file; ARM tools don't + like `@' in .type directives. + + * sysdeps/arm/bsd-setjmp.S: Use PLT for procedure call. + * sysdeps/arm/bsd-_setjmp.S: Likewise. + + * sysdeps/arm/dl-machine.h: Set __libc_stack_end. + +1998-08-20 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (F_SETOWN): Correct value. + (F_GETOWN): Likewise. + + * sysdeps/unix/sysv/linux/bits/siginfo.h (SI_SIGIO): Add it (from + Linux 2.1.117). + +1998-08-20 Ulrich Drepper + + * sysdeps/generic/glob.c [_LIBC]: Define __stat only if not + already defined. + +1998-08-18 Ulrich Drepper + + * include/features.h: Define __USE_EXTERN_INLINES for recent + enough gcc. + * argp/argp.h: Define extern inline functions only if + __USE_EXTERN_INLINES is defined. + * libio/stdio.h: Likewise. + * math/math.h: Likewise. + * stdlib/stdlib.h: Likewise. + * string/argz.h: Likewise. + * sysdeps/generic/bits/sigset.h: Likewise. + * sysdeps/unix/sysv/linux/bits/sigset.h: Likewise. + * sysdeps/unix/sysv/sysv4/bits/sigset.h: Likewise. + * sysdeps/wordsize-32/inttypes.h: Likewise. + * sysdeps/wordsize-64/inttypes.h: Likewise. + * wcsmbs/wchar.h: Likewise. + + * sysdeps/generic/bits/glob.c [_LIBC]: Define __stat using __xstat + to allow compilation without optimization. + +1998-08-14 Thorsten Kukuk + + * nis/nss_compat/compat-grp.c: Set errno to ENOENT if we have no + more entries. + * nis/nss_compat/compat-initgroups.c: Likewise. + * nis/nss_compat/compat-pwd.c: Likewise. + * nis/nss_compat/compat-spwd.c: Likewise. + * nis/nss_nis/nis-alias.c: Likewise. + * nis/nss_nis/nis-ethers.c: Likewise. + * nis/nss_nis/nis-grp.c: Likewise. + * nis/nss_nis/nis-hosts.c: Likewise. + * nis/nss_nis/nis-initgroups.c: Likewise. + * nis/nss_nis/nis-network.c: Likewise. + * nis/nss_nis/nis-proto.c: Likewise. + * nis/nss_nis/nis-pwd.c: Likewise. + * nis/nss_nis/nis-rpc.c: Likewise. + * nis/nss_nis/nis-service.c: Likewise. + * nis/nss_nis/nis-spwd.c: Likewise. + + * nis/rpcsvc/yp.h: Generate new without 1024 byte limits. + + * nis/ypclnt.c: Try binding dir only first time, could be to old. + + * nis/yp_xdr.c: Remove 1024 byte limit. + * nis/ypupdate_xdr.c: Likewise. + + * nis/nss_nis/nis-publickey.c: Make sure, nobody could send + wrong data. + +1998-08-18 Roland McGrath + + * Rules (binaries-static, binaries-shared static pattern rules): + Depend on lib%, not just libc%, from $(link-libc{,-static}). + + * sysdeps/mach/hurd/Makefile (link-libc-static): New variable; set + this here, overriding Makeconfig generic value so we link against + the RPC libs. + +1998-08-17 Ulrich Drepper + + * posix/tstgetopt.c (options): Add NULL entry at end + Patch by Adrian Miranda . + +1998-08-15 18:21 Ulrich Drepper + + * elf/elf.h: Add EI_OSABI, ELFOSABI*, and EI_ABIVERSION. Move EI_PAD + to 9. + +1998-08-15 14:11 Ulrich Drepper + + * elf/elf.h: Add PPC Diab relocations. + + * malloc/Makefile (libmcheck.a): Use $(LN_S) not ln. + +1998-08-14 10:08 Ulrich Drepper + + * manual/texinfo.tex: Update. + +1998-08-07 Geoff Keating + + * sysdeps/powerpc/backtrace.c: New file. + +1998-08-14 Philip Blundell + + * sysdeps/arm/fpu/setjmp.S: Correct value of R0 before calling + sigjmp_save. + * sysdeps/arm/elf/setjmp.S: Obsolete, deleted. + +1998-08-11 Andreas Schwab + + * Makefile (install-symbolic-link): Fix spelling. + +1998-08-11 Andreas Schwab + + * elf/elf.h (SHT_HIOS): Fix value. + +1998-08-10 Andreas Schwab + + * posix/regex.c (WIDE_CHAR_SUPPORT): Don't generate defined as + part of the expansion, this is undefined by the standard. + +1998-08-13 19:41 Ulrich Drepper + + * posix/getconf.c: Add support for systems with incomplete confname.h. + + * sysdeps/posix/sigset.c: Allow SIG_HOLD being undefined. + + * sysdeps/posix/wait3.c: Make it work. + +1998-08-13 Andreas Jaeger + + * Makefile ($(inst_slibdir)/libc-$(version).so): Remove. + (elf/ldso_install): Remove. + + * elf/Makefile (distribute): Add sln.c. + (others): Add sln. + (others-static): Add sln. + (install-rootsbin): Add sln. + (others-static): Add sln. + (ldso_install): Remove. + +1998-07-24 10:58 Andreas Schwab + + * Makerules (install-clean-symbolic-link-list): Make phony. + * Makefile (install-symbolic-link): Make phony. Depend on + subdir_install for parallel makes. + + +1998-07-22 Ulrich Drepper + + * elf/Makefile (distribute): Add sln.c + +1998-07-21 07:10 H.J. Lu + + * elf/sln.c: New file. + + * Makerules (symbolic-link-prog, symbolic-link-list): New macros. + (install-clean-symbolic-link-list): New target. + (install): Depend on install-clean-symbolic-link-list. + (make-shlib-link): Changed for $(symbolic-link-list). + + * Makefile (install-symbolic-link): New target. + (install): Depend on install-symbolic-link. + +1998-08-12 17:03 Ulrich Drepper + + * include/unistd.h: Protect against multiple inclusion. + + * posix/glob.c: Don't define __glob_pattern_p is NO_GLOB_PATTERN_P + is defined, not is glob is defined. + * sysdeps/unix/sysv/linux/glob64.c: Define NO_GLOB_PATTERN_P. + +1998-08-01 17:18 H.J. Lu + + * sunrpc/rpcsvc/rusers.x (xdr_utmp): Use xdr_bytes instead of + xdr_string for ut_line, ut_name and ut_host. + +1998-08-12 Andreas Jaeger + + * sysdeps/unix/sysv/linux/paths.h (_PATH_MAILDIR): Change to + /var/mail in accordance with FHS 2.0. + Reported by Javier Kohen [PR libc/639]. + +1998-08-12 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/syscalls.list (recvmsg, sendmsg): + Update aliases for cancelation. + + * sysdeps/unix/sysv/linux/alpha/glob.c: Undef glob*64 before + playing with symbol versions. + +1998-08-12 Roland McGrath + + * sysdeps/mach/hurd/bits/posix_opt.h: Rewritten with comments and + multiple inclusion protection. + (_POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC, _POSIX_MAPPED_FILES, + _POSIX_MEMORY_PROTECTION, _POSIX_POLL, _POSIX_SELECT): New macros, + define all these to 1. + (_POSIX_SYNC_IO): Add #undef, to remind us that pathconf reports it. + +1998-08-12 Roland McGrath + + * sysdeps/mach/usleep.c: Include . + (usleep): Return void. + +1998-08-11 Roland McGrath + + * sysdeps/generic/if_index.c (struct if_freenameindex): Add forward + decl to inhibit warning in if_freenameindex defn. + + * sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Remove unused variable. + + * sysdeps/mach/hurd/getdomain.c (getdomainname): Renamed from __ name. + + * sysdeps/mach/hurd/reboot.c: Include . + * sysdeps/mach/hurd/getdents.c: Include . + * sysdeps/mach/hurd/sbrk.c: Include . + * sysdeps/mach/usleep.c: Likewise. + + * sysdeps/mach/hurd/bind.c (bind): Add a const. + + * sysdeps/mach/hurd/getdents.c (__getdirentries): Use prototype defn. + * sysdeps/unix/bsd/init-posix.c (__init_posix): Likewise. + * sysdeps/unix/bsd/times.c (timeval_to_clock_t): Likewise. + * sysdeps/mach/hurd/reboot.c (reboot): Likewise. + * sysdeps/mach/usleep.c (usleep): Likewise. + * sysdeps/mach/hurd/chflags.c (chflags): Likewise. + * sysdeps/mach/hurd/fchflags.c (fchflags): Likewise. + * sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise. + * sysdeps/mach/hurd/stdio_init.c (__stdio_init_stream): Likewise. + +1998-08-11 Roland McGrath + + * sysdeps/generic/glob64.c: Include , , . + (glob64): Fix typo. + + * malloc/malloc.c (free_check, realloc_check): Don't cast to long for + %p arg to fprintf, since `void *' is the right type already. + +1998-07-25 19:47 Jose M. Moya + + * sysdeps/mach/hurd/getcwd.c + (_hurd_canonicalize_directory_name_internal): Do not loop forever + for unknown root directories. + (__getcwd): Return NULL when the current root directory could not + be reached. + +1998-08-11 18:39 Ulrich Drepper + + * string/strsignal.c (strsignal): Count real-time signals from zero. + + +See ChangeLog.8 for earlier changes. diff -durpN glibc-2.1/FAQ glibc-2.1.1/FAQ --- glibc-2.1/FAQ Sat Feb 6 18:18:37 1999 +++ glibc-2.1.1/FAQ Mon May 24 15:58:54 1999 @@ -100,6 +100,10 @@ please let me know. 2.27. What needs to be recompiled when upgrading from glibc 2.0 to glibc 2.1? 2.28. Why is extracting files via tar so slow? +2.29. Compiling programs I get parse errors in libio.h (e.g. "parse error + before `_IO_seekoff'"). How should I fix this? +2.30. After upgrading to glibc 2.1, libraries that were compiled against + glibc 2.0.x don't work anymore. 3. Source and binary incompatibilities, and what to do about them @@ -136,6 +140,17 @@ please let me know. 3.16. Why has disappeared? 3.17. I get floods of warnings when I use -Wconversion and include or . +3.18. After upgrading to glibc 2.1, I receive errors about + unresolved symbols, like `_dl_initial_searchlist' and can not + execute any binaries. What went wrong? +3.19. bonnie reports that char i/o with glibc 2 is much slower than with + libc5. What can be done? +3.20. Programs compiled with glibc 2.1 can't read db files made with glibc + 2.0. What has changed that programs like rpm break? +3.21. Autoconf's AC_CHECK_FUNC macro reports that a function exists, but + when I try to use it, it always returns -1 and sets errno to ENOSYS. +3.22. My program segfaults when I call fclose() on the FILE* returned + from setmntent(). Is this a glibc bug? 4. Miscellaneous @@ -206,8 +221,15 @@ may not have all the features GNU libc r egcs (1.0.3 and 1.1.1) should work with the GNU C library (for powerpc see question 1.5; for ARM see question 1.6). -{ZW} Due to problems with C++ exception handling, you must use EGCS (any -version) to compile version 2.1 of GNU libc. See question 2.8 for details. +While the GNU CC should be able to compile glibc it is nevertheless adviced +to use EGCS. Comparing the sizes of glibc on Intel compiled with a recent +EGCS and gcc 2.8.1 shows this: + + text data bss dec hex filename + egcs-2.93.10 862897 15944 12824 891665 d9b11 libc.so + gcc-2.8.1 959965 16468 12152 988585 f15a9 libc.so + +Make up your own decision. 1.3. When I try to compile glibc I get only error messages. @@ -292,10 +314,10 @@ Binutils 2.9.1.0.16 or later is also req as much as 400MB). * plenty of time. Compiling just the shared and static libraries for - i?86-linux takes approximately 1h on an i586@133, or 2.5h on - i486@66, or 4.5h on i486@33. Multiply this by 1.5 or 2.0 if you - build profiling and/or the highly optimized version as well. For - Hurd systems times are much higher. + i?86-linux takes approximately 1h on an AMD-K6@225MHz w/ 96MB of RAM, + 45mins on a Celeron@400MHz w/ 128MB, and 55mins on a Alpha@533MHz w/ 256MB. + Multiply this by 1.5 or 2.0 if you build profiling and/or the highly + optimized version as well. For Hurd systems times are much higher. You should avoid compiling in a NFS mounted filesystem. This is very slow. @@ -469,6 +491,8 @@ There are some failures which are not di the test cases in the math subdirectory will fail. Linux 2.2 has fixes for the floating point support on Alpha. The Linux/SPARC kernel has also some bugs in the FPU emulation code (as of Linux 2.2.0). +- Other tools might have problems. For example bash 2.03 gives a + segmentation fault running the tst-rpmatch.sh test script. 1.17. What is symbol versioning good for? Do I need it? @@ -550,10 +574,11 @@ prefix to something like /usr/local/glib The dangers when installing glibc in /usr are twofold: * glibc will overwrite the headers in /usr/include. Other C libraries - install a different but overlapping set of headers there, so the - effect will probably be that you can't compile anything. You need to - rename /usr/include out of the way first. (Do not throw it away; you - will then lose the ability to compile programs against your old libc.) + install a different but overlapping set of headers there, so the effect + will probably be that you can't compile anything. You need to rename + /usr/include out of the way before running `make install'. (Do not throw + it away; you will then lose the ability to compile programs against your + old libc.) * None of your old libraries, static or shared, can be used with a different C library major version. For shared libraries this is not a @@ -593,8 +618,9 @@ functions together with glibc. The functions are available, as an add-on (see question 1.11). People in the US may get it from the same place they got GNU libc from. People outside the -US should get the code from ftp://ftp.ifi.uio.no/pub/gnu, or another archive -site outside the USA. The README explains how to install the sources. +US should get the code from ftp.funet.fi [128.214.248.6] in the directory +pub/gnu/funet, or another archive site outside the USA. The README explains +how to install the sources. If you already have the crypt code on your system the reason for the failure is probably that you did not link with -lcrypt. The crypto functions are in @@ -729,15 +755,19 @@ libc. It doesn't matter what compiler y For glibc 2.1, we've chosen to do it the other way around: libc.so explicitly provides the EH functions. This is to prevent other shared -libraries from doing it. You must therefore compile glibc 2.1 with EGCS. -Again, it doesn't matter what compiler you use for your programs. +libraries from doing it. + +{UD} Starting with glibc 2.1.1 you can compile glibc with gcc 2.8.1 or +newer since we have explicitly add references to the functions causing the +problem. But you nevertheless should use EGCS for other reasons +(see question 1.2). 2.9. How can I compile gcc 2.7.2.1 from the gcc source code using glibc 2.x? {AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 or later. -But you should get at least gcc 2.8.1 or egcs 1.0.2 (or later versions) +But you should get at least gcc 2.8.1 or egcs 1.1 (or later versions) instead. @@ -799,7 +829,7 @@ copy a NIS_COLD_START file from a Solari byte order independent) or generate it with nisinit from the nis-tools package; available at - http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html + http://www.suse.de/~kukuk/linux/nisplus.html 2.13. I have killed ypbind to stop using NIS, but glibc @@ -810,7 +840,7 @@ ypbind. ypbind 3.3 and older versions d glibc will continue to use them. Other BSD versions seem to work correctly. Until ypbind 3.4 is released, you can find a patch at - ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc4.diff.gz + 2.14. Under Linux/Alpha, I always get "do_ypcall: clnt_call: @@ -901,7 +931,7 @@ gcc-2.8.1 together with libstdc++ 2.8.1. support and works directly with glibc 2.1. If you use gcc-2.8.1 with libstdc++ 2.8.1.1, you need to modify libstdc++ a bit. A patch is available as: - ftp://alpha.gnu.org/gnu/libstdc++-2.8.1.1-glibc2.1-diff.gz + Please note that libg++ 2.7.2 (and the Linux Versions 2.7.2.x) doesn't work very well with the GNU C library due to vtable thunks. If you're upgrading @@ -1043,7 +1073,7 @@ The glibc-compat add-on will provide the nss modules, and a few other files. Together, they should make it possible to do development with old static libraries on a glibc 2.1 system. This add-on is still in development. You can get it from - ftp://alpha.gnu.org/gnu/glibc-compat-2.1.tar.gz + but please keep in mind that it is experimental. @@ -1061,6 +1091,32 @@ solutions: - if you need NIS/NIS+, use the Name Service Cache Daemon nscd that comes with glibc 2.1. + +2.29. Compiling programs I get parse errors in libio.h (e.g. "parse error + before `_IO_seekoff'"). How should I fix this? + +{AJ} You might get the following errors when upgrading to glibc 2.1: + + In file included from /usr/include/stdio.h:57, + from ... + /usr/include/libio.h:335: parse error before `_IO_seekoff' + /usr/include/libio.h:335: parse error before `_G_off64_t' + /usr/include/libio.h:336: parse error before `_IO_seekpos' + /usr/include/libio.h:336: parse error before `_G_fpos64_t' + +The problem is a wrong _G_config.h file in your include path. The +_G_config.h file that comes with glibc 2.1 should be used and not one from +libc5 or from a compiler directory. To check which _G_config.h file the +compiler uses, compile your program with `gcc -E ...|grep G_config.h' and +remove that file. Your compiler should pick up the file that has been +installed by glibc 2.1 in your include directory. + + +2.30. After upgrading to glibc 2.1, libraries that were compiled against + glibc 2.0.x don't work anymore. + +{AJ} See question 2.27. + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -1292,7 +1348,7 @@ This disables the optimization for that stdin/stdout/stderr. Why? {RM,AJ} Constructs like: -static FILE *InPtr = stdin; + static FILE *InPtr = stdin; lead to this message. This is correct behaviour with glibc since stdin is not a constant expression. Please note that a strict reading of ISO C does @@ -1307,17 +1363,17 @@ this way were versioning problems with t To fix those programs you've got to initialize the variable at run time. This can be done, e.g. in main, like: -static FILE *InPtr; -int main(void) -{ - InPtr = stdin; -} + static FILE *InPtr; + int main(void) + { + InPtr = stdin; + } or by constructors (beware this is gcc specific): -static FILE *InPtr; -static void inPtr_construct (void) __attribute__((constructor)); -static void inPtr_construct (void) { InPtr = stdin; } + static FILE *InPtr; + static void inPtr_construct (void) __attribute__((constructor)); + static void inPtr_construct (void) { InPtr = stdin; } 3.10. I can't compile with gcc -traditional (or @@ -1326,9 +1382,9 @@ static void inPtr_construct (void) { InP {AJ} glibc2 does break -traditional and -traditonal-cpp - and will continue to do so. For example constructs of the form: -enum {foo -#define foo foo -} + enum {foo + #define foo foo + } are useful for debugging purposes (you can use foo with your debugger that's why we need the enum) and for compatibility (other systems use defines and @@ -1367,16 +1423,10 @@ completely. the Perl db modules the testsuite is not passed. This did not happen with db-1, gdbm, or ndbm. -{UD} You are using an outdated copy of the DB_File Perl module. In fact db-2 -finally removed the handling of zero-sized keys which was one of the features -tested by the old Perl testsuite and therefore you see an error. But this -never was documented and guaranteed, only broken programs used this feature. - -Consequently db-2 does not need to support this feature and instead signals -an error which leads to easier debugging. The DB_File module maintainer -Paul Marquess acknowledged this change and fixed -the testsuite so that if you use DB_File v1.60 or later you should not have -any more problems with db-2. +{MK} Db-2 does not support zero-sized keys. The Perl testsuite +tests the support for zero-sized keys and therefore fails when db-2 is +used. The Perl folks are looking for a solution, but thus far have +not found a satisfactory one. 3.14. The pow() inline function I get when including is broken. @@ -1416,6 +1466,103 @@ ignore the warnings. -Wconversion isn't really intended for production use, only for shakedown compiles after converting an old program to standard C. + +3.18. After upgrading to glibc 2.1, I receive errors about + unresolved symbols, like `_dl_initial_searchlist' and can not + execute any binaries. What went wrong? + +{AJ} This normally happens if your libc and ld (dynamic linker) are from +different releases of glibc. For example, the dynamic linker +/lib/ld-linux.so.2 comes from glibc 2.0.x, but the version of libc.so.6 is +from glibc 2.1. + +The path /lib/ld-linux.so.2 is hardcoded in every glibc2 binary but +libc.so.6 is searched via /etc/ld.so.cache and in some special directories +like /lib and /usr/lib. If you run configure with another prefix than /usr +and put this prefix before /lib in /etc/ld.so.conf, your system will break. + +So what can you do? Either of the following should work: + +* Run `configure' with the same prefix argument you've used for glibc 2.0.x + so that the same paths are used. +* Replace /lib/ld-linux.so.2 with a link to the dynamic linker from glibc + 2.1. + +You can even call the dynamic linker by hand if everything fails. You've +got to set LD_LIBRARY_PATH so that the corresponding libc is found and also +need to provide an absolute path to your binary: + + LD_LIBRARY_PATH= \ + /ld-linux.so.2 \ + /binary + +For example `LD_LIBRARY_PATH=/libold /libold/ld-linux.so.2 /bin/mv ...' +might be useful in fixing a broken system (if /libold contains dynamic +linker and corresponding libc). + +With that command line no path is used. To further debug problems with the +dynamic linker, use the LD_DEBUG environment variable, e.g. +`LD_DEBUG=help echo' for the help text. + +If you just want to test this release, don't put the lib directory in +/etc/ld.so.conf. You can call programs directly with full paths (as above). +When compiling new programs against glibc 2.1, you've got to specify the +correct paths to the compiler (option -I with gcc) and linker (options +--dynamic-linker, -L and --rpath). + + +3.19. bonnie reports that char i/o with glibc 2 is much slower than with + libc5. What can be done? + +{AJ} The GNU C library uses thread safe functions by default and libc5 used +non thread safe versions. The non thread safe functions have in glibc the +suffix `_unlocked', for details check . Using `putc_unlocked' etc. +instead of `putc' should give nearly the same speed with bonnie (bonnie is a +benchmark program for measuring disk access). + + +3.20. Programs compiled with glibc 2.1 can't read db files made with glibc + 2.0. What has changed that programs like rpm break? + +{AJ} The GNU C library 2.1 uses db2 instead of db1 which was used in version +2.0. The internal formats of the actual db files are different. To convert +the db files from db1 format to db2 format, you can use the programs +`db_dump185' and `db_load'. Alternativly programs can be linked with db1 +using `-ldb1' instead of linking with db2 which uses `-ldb'. Linking with +db1 might be preferable if older programs need to access the db file. + +db2 supports the old db1 programming interface and also a new programming +interface. For compilation with the old API, has to be included +(and not ) and you can link with either `-ldb1' or `-ldb' for either +of the db formats. + + +3.21. Autoconf's AC_CHECK_FUNC macro reports that a function exists, but + when I try to use it, it always returns -1 and sets errno to ENOSYS. + +{ZW} You are using a 2.0 Linux kernel, and the function you are trying to +use is only implemented in 2.1/2.2. Libc considers this to be a function +which exists, because if you upgrade to a 2.2 kernel, it will work. One +such function is sigaltstack. + +Your program should check at runtime whether the function works, and +implement a fallback. Note that Autoconf cannot detect unimplemented +functions in other systems' C libraries, so you need to do this anyway. + + +3.22. My program segfaults when I call fclose() on the FILE* returned + from setmntent(). Is this a glibc bug? + +{GK} No. Don't do this. Use endmntent(), that's what it's for. + +In general, you should use the correct deallocation routine. For instance, +if you open a file using fopen(), you should deallocate the FILE * using +fclose(), not free(), even though the FILE * is also a pointer. + +In the case of setmntent(), it may appear to work in most cases, but it +won't always work. Unfortunately, for compatibility reasons, we can't +change the return type of setmntent() to something other than FILE *. + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -1527,7 +1674,7 @@ Answers were given by: {PB} Phil Blundell, {MK} Mark Kettenis, {ZW} Zack Weinberg, -{TK} Thorsten Kukuk, +{TK} Thorsten Kukuk, {GK} Geoffrey Keating, {HJ} H.J. Lu, {CG} Cristian Gafton, diff -durpN glibc-2.1/FAQ.in glibc-2.1.1/FAQ.in --- glibc-2.1/FAQ.in Sat Feb 6 18:18:38 1999 +++ glibc-2.1.1/FAQ.in Mon May 24 15:58:54 1999 @@ -46,7 +46,7 @@ really interested in porting it, contact -?? What compiler do I need to build GNU libc? +??binsize What compiler do I need to build GNU libc? {UD} You must use GNU CC to compile GNU libc. A lot of extensions of GNU CC are used to increase portability and speed. @@ -63,8 +63,15 @@ may not have all the features GNU libc r egcs (1.0.3 and 1.1.1) should work with the GNU C library (for powerpc see ?powerpc; for ARM see ?arm). -{ZW} Due to problems with C++ exception handling, you must use EGCS (any -version) to compile version 2.1 of GNU libc. See ?exception for details. +While the GNU CC should be able to compile glibc it is nevertheless adviced +to use EGCS. Comparing the sizes of glibc on Intel compiled with a recent +EGCS and gcc 2.8.1 shows this: + + text data bss dec hex filename + egcs-2.93.10 862897 15944 12824 891665 d9b11 libc.so + gcc-2.8.1 959965 16468 12152 988585 f15a9 libc.so + +Make up your own decision. ?? When I try to compile glibc I get only error messages. What's wrong? @@ -144,10 +151,10 @@ Binutils 2.9.1.0.16 or later is also req as much as 400MB). * plenty of time. Compiling just the shared and static libraries for - i?86-linux takes approximately 1h on an i586@133, or 2.5h on - i486@66, or 4.5h on i486@33. Multiply this by 1.5 or 2.0 if you - build profiling and/or the highly optimized version as well. For - Hurd systems times are much higher. + i?86-linux takes approximately 1h on an AMD-K6@225MHz w/ 96MB of RAM, + 45mins on a Celeron@400MHz w/ 128MB, and 55mins on a Alpha@533MHz w/ 256MB. + Multiply this by 1.5 or 2.0 if you build profiling and/or the highly + optimized version as well. For Hurd systems times are much higher. You should avoid compiling in a NFS mounted filesystem. This is very slow. @@ -312,6 +319,8 @@ There are some failures which are not di the test cases in the math subdirectory will fail. Linux 2.2 has fixes for the floating point support on Alpha. The Linux/SPARC kernel has also some bugs in the FPU emulation code (as of Linux 2.2.0). +- Other tools might have problems. For example bash 2.03 gives a + segmentation fault running the tst-rpmatch.sh test script. ?? What is symbol versioning good for? Do I need it? @@ -388,10 +397,11 @@ prefix to something like /usr/local/glib The dangers when installing glibc in /usr are twofold: * glibc will overwrite the headers in /usr/include. Other C libraries - install a different but overlapping set of headers there, so the - effect will probably be that you can't compile anything. You need to - rename /usr/include out of the way first. (Do not throw it away; you - will then lose the ability to compile programs against your old libc.) + install a different but overlapping set of headers there, so the effect + will probably be that you can't compile anything. You need to rename + /usr/include out of the way before running `make install'. (Do not throw + it away; you will then lose the ability to compile programs against your + old libc.) * None of your old libraries, static or shared, can be used with a different C library major version. For shared libraries this is not a @@ -429,8 +439,9 @@ functions together with glibc. The functions are available, as an add-on (see ?addon). People in the US may get it from the same place they got GNU libc from. People outside the -US should get the code from ftp://ftp.ifi.uio.no/pub/gnu, or another archive -site outside the USA. The README explains how to install the sources. +US should get the code from ftp.funet.fi [128.214.248.6] in the directory +pub/gnu/funet, or another archive site outside the USA. The README explains +how to install the sources. If you already have the crypt code on your system the reason for the failure is probably that you did not link with -lcrypt. The crypto functions are in @@ -538,7 +549,7 @@ not a symlink to libc.so.6. It should l GROUP ( libc.so.6 libc_nonshared.a ) -??exception When I run an executable on one system which I compiled on +?? When I run an executable on one system which I compiled on another, I get dynamic linker errors. Both systems have the same version of glibc installed. What's wrong? @@ -562,14 +573,18 @@ libc. It doesn't matter what compiler y For glibc 2.1, we've chosen to do it the other way around: libc.so explicitly provides the EH functions. This is to prevent other shared -libraries from doing it. You must therefore compile glibc 2.1 with EGCS. -Again, it doesn't matter what compiler you use for your programs. +libraries from doing it. + +{UD} Starting with glibc 2.1.1 you can compile glibc with gcc 2.8.1 or +newer since we have explicitly add references to the functions causing the +problem. But you nevertheless should use EGCS for other reasons +(see ?binsize). ?? How can I compile gcc 2.7.2.1 from the gcc source code using glibc 2.x? {AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 or later. -But you should get at least gcc 2.8.1 or egcs 1.0.2 (or later versions) +But you should get at least gcc 2.8.1 or egcs 1.1 (or later versions) instead. ?? The `gencat' utility cannot process the catalog sources which @@ -628,7 +643,7 @@ copy a NIS_COLD_START file from a Solari byte order independent) or generate it with nisinit from the nis-tools package; available at - http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html + http://www.suse.de/~kukuk/linux/nisplus.html ?? I have killed ypbind to stop using NIS, but glibc continues using NIS. @@ -638,7 +653,7 @@ ypbind. ypbind 3.3 and older versions d glibc will continue to use them. Other BSD versions seem to work correctly. Until ypbind 3.4 is released, you can find a patch at - ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc4.diff.gz + ?? Under Linux/Alpha, I always get "do_ypcall: clnt_call: RPC: Unable to receive; errno = Connection refused" when using NIS. @@ -723,7 +738,7 @@ gcc-2.8.1 together with libstdc++ 2.8.1. support and works directly with glibc 2.1. If you use gcc-2.8.1 with libstdc++ 2.8.1.1, you need to modify libstdc++ a bit. A patch is available as: - ftp://alpha.gnu.org/gnu/libstdc++-2.8.1.1-glibc2.1-diff.gz + Please note that libg++ 2.7.2 (and the Linux Versions 2.7.2.x) doesn't work very well with the GNU C library due to vtable thunks. If you're upgrading @@ -833,7 +848,7 @@ passwd_compat: nis group_compat: nis shadow_compat: nis -?? What needs to be recompiled when upgrading from glibc 2.0 to glibc +??libs What needs to be recompiled when upgrading from glibc 2.0 to glibc 2.1? {AJ,CG} If you just upgrade the glibc from 2.0.x (x <= 7) to 2.1, binaries @@ -859,7 +874,7 @@ The glibc-compat add-on will provide the nss modules, and a few other files. Together, they should make it possible to do development with old static libraries on a glibc 2.1 system. This add-on is still in development. You can get it from - ftp://alpha.gnu.org/gnu/glibc-compat-2.1.tar.gz + but please keep in mind that it is experimental. ?? Why is extracting files via tar so slow? @@ -876,6 +891,31 @@ solutions: - if you need NIS/NIS+, use the Name Service Cache Daemon nscd that comes with glibc 2.1. +?? Compiling programs I get parse errors in libio.h (e.g. "parse error + before `_IO_seekoff'"). How should I fix this? + +{AJ} You might get the following errors when upgrading to glibc 2.1: + + In file included from /usr/include/stdio.h:57, + from ... + /usr/include/libio.h:335: parse error before `_IO_seekoff' + /usr/include/libio.h:335: parse error before `_G_off64_t' + /usr/include/libio.h:336: parse error before `_IO_seekpos' + /usr/include/libio.h:336: parse error before `_G_fpos64_t' + +The problem is a wrong _G_config.h file in your include path. The +_G_config.h file that comes with glibc 2.1 should be used and not one from +libc5 or from a compiler directory. To check which _G_config.h file the +compiler uses, compile your program with `gcc -E ...|grep G_config.h' and +remove that file. Your compiler should pick up the file that has been +installed by glibc 2.1 in your include directory. + +?? After upgrading to glibc 2.1, libraries that were compiled against + glibc 2.0.x don't work anymore. + +{AJ} See ?libs. + + ? Source and binary incompatibilities, and what to do about them ?? I expect GNU libc to be 100% source code compatible with @@ -1097,7 +1137,7 @@ This disables the optimization for that stdin/stdout/stderr. Why? {RM,AJ} Constructs like: -static FILE *InPtr = stdin; + static FILE *InPtr = stdin; lead to this message. This is correct behaviour with glibc since stdin is not a constant expression. Please note that a strict reading of ISO C does @@ -1112,17 +1152,17 @@ this way were versioning problems with t To fix those programs you've got to initialize the variable at run time. This can be done, e.g. in main, like: -static FILE *InPtr; -int main(void) -{ - InPtr = stdin; -} + static FILE *InPtr; + int main(void) + { + InPtr = stdin; + } or by constructors (beware this is gcc specific): -static FILE *InPtr; -static void inPtr_construct (void) __attribute__((constructor)); -static void inPtr_construct (void) { InPtr = stdin; } + static FILE *InPtr; + static void inPtr_construct (void) __attribute__((constructor)); + static void inPtr_construct (void) { InPtr = stdin; } ?? I can't compile with gcc -traditional (or @@ -1131,9 +1171,9 @@ static void inPtr_construct (void) { InP {AJ} glibc2 does break -traditional and -traditonal-cpp - and will continue to do so. For example constructs of the form: -enum {foo -#define foo foo -} + enum {foo + #define foo foo + } are useful for debugging purposes (you can use foo with your debugger that's why we need the enum) and for compatibility (other systems use defines and @@ -1169,16 +1209,10 @@ completely. the Perl db modules the testsuite is not passed. This did not happen with db-1, gdbm, or ndbm. -{UD} You are using an outdated copy of the DB_File Perl module. In fact db-2 -finally removed the handling of zero-sized keys which was one of the features -tested by the old Perl testsuite and therefore you see an error. But this -never was documented and guaranteed, only broken programs used this feature. - -Consequently db-2 does not need to support this feature and instead signals -an error which leads to easier debugging. The DB_File module maintainer -Paul Marquess acknowledged this change and fixed -the testsuite so that if you use DB_File v1.60 or later you should not have -any more problems with db-2. +{MK} Db-2 does not support zero-sized keys. The Perl testsuite +tests the support for zero-sized keys and therefore fails when db-2 is +used. The Perl folks are looking for a solution, but thus far have +not found a satisfactory one. ?? The pow() inline function I get when including is broken. I get segmentation faults when I run the program. @@ -1215,6 +1249,99 @@ ignore the warnings. compiles after converting an old program to standard C. +?? After upgrading to glibc 2.1, I receive errors about + unresolved symbols, like `_dl_initial_searchlist' and can not + execute any binaries. What went wrong? + +{AJ} This normally happens if your libc and ld (dynamic linker) are from +different releases of glibc. For example, the dynamic linker +/lib/ld-linux.so.2 comes from glibc 2.0.x, but the version of libc.so.6 is +from glibc 2.1. + +The path /lib/ld-linux.so.2 is hardcoded in every glibc2 binary but +libc.so.6 is searched via /etc/ld.so.cache and in some special directories +like /lib and /usr/lib. If you run configure with another prefix than /usr +and put this prefix before /lib in /etc/ld.so.conf, your system will break. + +So what can you do? Either of the following should work: + +* Run `configure' with the same prefix argument you've used for glibc 2.0.x + so that the same paths are used. +* Replace /lib/ld-linux.so.2 with a link to the dynamic linker from glibc + 2.1. + +You can even call the dynamic linker by hand if everything fails. You've +got to set LD_LIBRARY_PATH so that the corresponding libc is found and also +need to provide an absolute path to your binary: + + LD_LIBRARY_PATH= \ + /ld-linux.so.2 \ + /binary + +For example `LD_LIBRARY_PATH=/libold /libold/ld-linux.so.2 /bin/mv ...' +might be useful in fixing a broken system (if /libold contains dynamic +linker and corresponding libc). + +With that command line no path is used. To further debug problems with the +dynamic linker, use the LD_DEBUG environment variable, e.g. +`LD_DEBUG=help echo' for the help text. + +If you just want to test this release, don't put the lib directory in +/etc/ld.so.conf. You can call programs directly with full paths (as above). +When compiling new programs against glibc 2.1, you've got to specify the +correct paths to the compiler (option -I with gcc) and linker (options +--dynamic-linker, -L and --rpath). + +?? bonnie reports that char i/o with glibc 2 is much slower than with + libc5. What can be done? + +{AJ} The GNU C library uses thread safe functions by default and libc5 used +non thread safe versions. The non thread safe functions have in glibc the +suffix `_unlocked', for details check . Using `putc_unlocked' etc. +instead of `putc' should give nearly the same speed with bonnie (bonnie is a +benchmark program for measuring disk access). + +?? Programs compiled with glibc 2.1 can't read db files made with glibc + 2.0. What has changed that programs like rpm break? + +{AJ} The GNU C library 2.1 uses db2 instead of db1 which was used in version +2.0. The internal formats of the actual db files are different. To convert +the db files from db1 format to db2 format, you can use the programs +`db_dump185' and `db_load'. Alternativly programs can be linked with db1 +using `-ldb1' instead of linking with db2 which uses `-ldb'. Linking with +db1 might be preferable if older programs need to access the db file. + +db2 supports the old db1 programming interface and also a new programming +interface. For compilation with the old API, has to be included +(and not ) and you can link with either `-ldb1' or `-ldb' for either +of the db formats. + +?? Autoconf's AC_CHECK_FUNC macro reports that a function exists, but + when I try to use it, it always returns -1 and sets errno to ENOSYS. + +{ZW} You are using a 2.0 Linux kernel, and the function you are trying to +use is only implemented in 2.1/2.2. Libc considers this to be a function +which exists, because if you upgrade to a 2.2 kernel, it will work. One +such function is sigaltstack. + +Your program should check at runtime whether the function works, and +implement a fallback. Note that Autoconf cannot detect unimplemented +functions in other systems' C libraries, so you need to do this anyway. + +?? My program segfaults when I call fclose() on the FILE* returned + from setmntent(). Is this a glibc bug? + +{GK} No. Don't do this. Use endmntent(), that's what it's for. + +In general, you should use the correct deallocation routine. For instance, +if you open a file using fopen(), you should deallocate the FILE * using +fclose(), not free(), even though the FILE * is also a pointer. + +In the case of setmntent(), it may appear to work in most cases, but it +won't always work. Unfortunately, for compatibility reasons, we can't +change the return type of setmntent() to something other than FILE *. + + ? Miscellaneous ?? After I changed configure.in I get `Autoconf version X.Y. @@ -1316,7 +1443,7 @@ Answers were given by: {PB} Phil Blundell, {MK} Mark Kettenis, {ZW} Zack Weinberg, -{TK} Thorsten Kukuk, +{TK} Thorsten Kukuk, {GK} Geoffrey Keating, {HJ} H.J. Lu, {CG} Cristian Gafton, diff -durpN glibc-2.1/INSTALL glibc-2.1.1/INSTALL --- glibc-2.1/INSTALL Thu Feb 4 01:57:31 1999 +++ glibc-2.1.1/INSTALL Wed Mar 17 21:02:50 1999 @@ -82,7 +82,7 @@ will be used, and CFLAGS sets optimizati given with no list, it enables all the add-on packages it finds. If you do not wish to use some add-on package that you have present in your source tree, give this option a list of the - add-ons that you *do* want used, like this: + add-ons that you _do_ want used, like this: `--enable-add-ons=crypt,linuxthreads' `--with-binutils=DIRECTORY' @@ -197,11 +197,11 @@ from underneath. If you are upgrading from a previous installation of glibc 2.0 or 2.1, `make install' will do the entire job. If you're upgrading from Linux libc5 or some other C library, you need to rename the old -`/usr/include' directory out of the way first, or you will end up with -a mixture of header files from both libraries, and you won't be able to -compile anything. You may also need to reconfigure GCC to work with -the new library. The easiest way to do that is to figure out the -compiler switches to make it work again +`/usr/include' directory out of the way before running `make install', +or you will end up with a mixture of header files from both libraries, +and you won't be able to compile anything. You may also need to +reconfigure GCC to work with the new library. The easiest way to do +that is to figure out the compiler switches to make it work again (`-Wl,-dynamic-linker=/lib/ld-linux.so.2' should work on Linux systems) and use them to recompile gcc. You can also edit the specs file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a black @@ -217,8 +217,8 @@ environment or preparing a binary distri may not want to run. `nscd' caches name service lookups; it can dramatically improve performance with NIS+, and may help with DNS as well. `utmpd' allows programs that use the old format for the `utmp' -file to coexist with new programs. For more information see the files -`nscd/README' and `login/README.utmpd'. +file to coexist with new programs. For more information see the file +`login/README.utmpd'. One auxiliary program, `/usr/libexec/pt_chown', is installed setuid `root'. This program is invoked by the `grantpt' function; it sets the @@ -246,16 +246,17 @@ build the GNU C library: bugs which only show up in big projects like GNU `libc'. Version 3.76.1 seems OK but some people have reported problems. - * EGCS 1.1.1, 1.1 or 1.0.3 + * EGCS 1.1.1, 1.1 or 1.0.3, or GCC 2.8.1 The GNU C library can only be compiled with the GNU C compiler family. As of the 2.1 release, EGCS 1.0.3 or higher is required. - GCC 2.8.1 cannot be used due to an incompatible implementation of - some internal compiler support routines; see the FAQ for details. - GCC 2.7.x is simply too buggy. You can use whatever compiler you - like to compile programs that use GNU libc, but be aware that both - GCC 2.7 and 2.8 have bugs in their floating-point support that may - be triggered by the math library. + GCC 2.8.1 can also be used (but see the FAQ for reasons why you + might not want to). Earlier versions simply are too buggy. + + You can use whatever compiler you like to compile programs that + use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in + their floating-point support that may be triggered by the math + library. On Alpha machines you need at least EGCS 1.1.1. Earlier versions don't work reliably. @@ -279,7 +280,7 @@ build the GNU C library: For PPC you might need some patches even on top of the last binutils version. See the FAQ. - * GNU `texinfo' 3.11 + * GNU `texinfo' 3.12f To correctly translate and install the Texinfo documentation you need this version of the `texinfo' package. Earlier versions do @@ -298,6 +299,7 @@ build the GNU C library: Perl is not required, but it is used if present to test the installation. We may decide to use it elsewhere in the future. + If you change any of the `configure.in' files you will also need * GNU `autoconf' 2.12 or higher @@ -400,7 +402,7 @@ installed there. library on your system against the new library for the sake of new code, but keep the old libraries around for old binaries to use. This is complicated and difficult. Consult the Glibc2 HOWTO at -`http://www.imaxx.net/~thrytis/glibc' for details. + for details. You cannot use `nscd' with 2.0 kernels, due to bugs in the kernel-side thread support. `nscd' happens to hit these bugs diff -durpN glibc-2.1/Makeconfig glibc-2.1.1/Makeconfig --- glibc-2.1/Makeconfig Mon Jan 18 19:27:58 1999 +++ glibc-2.1.1/Makeconfig Tue Mar 30 00:14:19 1999 @@ -419,7 +419,7 @@ dbobjdir := $(patsubst ../$(subdir),.,$( else nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss) resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv) -link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a +link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib) endif endif @@ -740,9 +740,7 @@ have-thread-library = yes rpath-dirs += linuxthreads endif -ifndef avoid-generated -include $(common-objpfx)sysd-dirs -endif # These are the subdirectories containing the library source. The order # is more or less arbitrary. The sorting step will take care of the @@ -770,6 +768,7 @@ endif subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \ $(filter-out mach hurd,$(subdirs)) +ifndef avoid-generated all-Subdirs-files = $(wildcard $(config-sysdirs:%=$(..)%/Subdirs)) $(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files) $(AWK) 'BEGIN { subdirs = ""; inhibit = "" }; \ @@ -785,7 +784,7 @@ $(common-objpfx)sysd-dirs: $(common-objp all-Depend-files = $(wildcard $(..)*/Depend) $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \ $(common-objpfx)sysd-dirs $(..)Makeconfig - (dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend, $^))'; \ + (dirs='$(patsubst $(..)%/Depend,$(..)%,$(filter %/Depend, $^))';\ for d in $$dirs; do \ while read on; do \ echo "depend $$d $$on"; \ @@ -796,5 +795,6 @@ $(common-objpfx)sysd-sorted: $(..)script done \ ) | $(AWK) -f $< > $@-tmp mv -f $@-tmp $@ +endif endif # Makeconfig not yet included diff -durpN glibc-2.1/Makefile glibc-2.1.1/Makefile --- glibc-2.1/Makefile Mon Jan 4 17:38:20 1999 +++ glibc-2.1.1/Makefile Mon Feb 8 20:12:17 1999 @@ -286,7 +286,7 @@ FORCE: rpm/%: subdir_distinfo $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) -iconvdata/% localedata/%: +iconvdata/% localedata/% po/%: $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) # This is a special goal for people making binary distributions. Normally diff -durpN glibc-2.1/Makerules glibc-2.1.1/Makerules --- glibc-2.1/Makerules Wed Jan 20 17:35:37 1999 +++ glibc-2.1.1/Makerules Tue Mar 30 00:14:21 1999 @@ -269,7 +269,7 @@ ifdef sysd-dirs-done ifeq ($(versioning),yes) -include $(common-objpfx)sysd-versions $(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions -common-generated += $(version-maps) sysd-versions +common-generated += $(version-maps) sysd-versions $(common-objpfx)Versions.all ifndef avoid-generated ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs)) @@ -280,7 +280,6 @@ $(common-objpfx)Versions.all: $(..)Versi $(wildcard $(add-ons:%=$(..)%/Versions.def)) cat $^ > $@T mv -f $@T $@ -common-generated += $(common-objpfx)Versions.all $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \ $(..)scripts/versions.awk \ $(wildcard $(all-subdirs:%=$(..)%/Versions)) \ @@ -405,6 +404,8 @@ LDFLAGS-c.so = -nostdlib -nostartfiles LDLIBS-c.so += $(gnulib) # Give libc.so an entry point and make it directly runnable itself. LDFLAGS-c.so += -e __libc_main +# Force the backward compatibility EH functions to be linked. +LDFLAGS-c.so += -u __register_frame # Pre-link the objects of libc_pic.a so that we can locally resolve # COMMON symbols before we link against ld.so. This is because ld.so # contains some of libc_pic.a already, which will prevent the COMMONs diff -durpN glibc-2.1/NEWS glibc-2.1.1/NEWS --- glibc-2.1/NEWS Wed Feb 3 16:07:26 1999 +++ glibc-2.1.1/NEWS Wed May 19 17:14:15 1999 @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 1999-02-02 +GNU C Library NEWS -- history of user-visible changes. 1999-05-18 Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. See the end for copying conditions. @@ -6,6 +6,27 @@ See the end for copying conditions. Please send GNU C library bug reports using the `glibcbug' script to . Questions and suggestions should be send to . + +Version 2.1.1 + +* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added. + +* New xdr functions are added; some rpc functions are now 64bit clean. + +* Fixed a number of bugs and memory leaks (especially in NIS+ code). + +* Fixed known incompatibilities with glibc 2.0. + +* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx. + +* Optimized a number of functions (especially the ELF dynamic loader). + +* Update timezone data files. + +* lots of charmaps corrections + +* some new locale definitions and charmaps + Version 2.1 diff -durpN glibc-2.1/README glibc-2.1.1/README --- glibc-2.1/README Sat Feb 6 19:08:04 1999 +++ glibc-2.1.1/README Wed Mar 10 04:57:58 1999 @@ -1,4 +1,4 @@ -This directory contains the version 2.1 release of the GNU C Library. +This directory contains the version 2.1.1 release of the GNU C Library. Many bugs have been fixed since the last release. Some bugs surely remain. @@ -53,7 +53,7 @@ provides the Unix `crypt' function, plus Because of the United States export restriction on DES implementations, we are distributing this code separately from the rest of the C library. There is an extra distribution tar file just -for crypt; it is called `glibc-crypt-2.1.tar.gz'. You can just +for crypt; it is called `glibc-crypt-2.1.1.tar.gz'. You can just unpack the crypt distribution along with the rest of the C library and build; you can also build the library without getting crypt. Users outside the USA can get the crypt distribution via anonymous FTP from diff -durpN glibc-2.1/Versions.def glibc-2.1.1/Versions.def --- glibc-2.1/Versions.def Wed Sep 23 18:53:19 1998 +++ glibc-2.1.1/Versions.def Thu May 6 18:14:11 1999 @@ -4,6 +4,7 @@ libBrokenLocale { libc { GLIBC_2.0 GLIBC_2.1 GLIBC_2.0 + GLIBC_2.1.1 GLIBC_2.1 } libcrypt { GLIBC_2.0 @@ -54,6 +55,7 @@ libnss_nisplus { libpthread { GLIBC_2.0 GLIBC_2.1 GLIBC_2.0 + GLIBC_2.1.1 GLIBC_2.1 } libresolv { GLIBC_2.0 @@ -66,4 +68,9 @@ libutil { } libdb1 { GLIBC_2.0 +} +ld.so { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 + GLIBC_2.1.1 GLIBC_2.1 } diff -durpN glibc-2.1/argp/argp-ba.c glibc-2.1.1/argp/argp-ba.c --- glibc-2.1/argp/argp-ba.c Sat Mar 8 04:32:10 1997 +++ glibc-2.1.1/argp/argp-ba.c Thu Apr 29 16:55:46 1999 @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_BUG_ADDRESS. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -23,4 +23,4 @@ the ARGP_HELP_BUG_ADDR flag is set (as it is by various standard help messages), embedded in a sentence that says something like `Report bugs to ADDR.'. */ -const char *argp_program_bug_address = 0; +const char *argp_program_bug_address; diff -durpN glibc-2.1/argp/argp-help.c glibc-2.1.1/argp/argp-help.c --- glibc-2.1/argp/argp-help.c Mon Jan 25 17:28:27 1999 +++ glibc-2.1.1/argp/argp-help.c Thu Apr 29 16:55:47 1999 @@ -1376,19 +1376,17 @@ argp_args_usage (const struct argp *argp if (fdoc) { const char *cp = fdoc; - nl = strchr (cp, '\n'); - if (nl) + nl = __strchrnul (cp, '\n'); + if (*nl != '\0') /* This is a `multi-level' args doc; advance to the correct position as determined by our state in LEVELS, and update LEVELS. */ { int i; multiple = 1; for (i = 0; i < *our_level; i++) - cp = nl + 1, nl = strchr (cp, '\n'); + cp = nl + 1, nl = __strchrnul (cp, '\n'); (*levels)++; } - if (! nl) - nl = cp + strlen (cp); /* Manually do line wrapping so that it (probably) won't get wrapped at any embedded spaces. */ diff -durpN glibc-2.1/argp/argp-parse.c glibc-2.1.1/argp/argp-parse.c --- glibc-2.1/argp/argp-parse.c Wed Sep 9 16:19:21 1998 +++ glibc-2.1.1/argp/argp-parse.c Thu Apr 29 16:55:48 1999 @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -76,7 +76,7 @@ for one second intervals, decrementing _ARGP_HANG until it's zero. Thus you can force the program to continue by attaching a debugger and setting it to 0 yourself. */ -volatile int _argp_hang = 0; +volatile int _argp_hang; #define OPT_PROGNAME -2 #define OPT_USAGE -3 diff -durpN glibc-2.1/argp/argp-pv.c glibc-2.1.1/argp/argp-pv.c --- glibc-2.1/argp/argp-pv.c Sat Mar 8 04:35:37 1997 +++ glibc-2.1.1/argp/argp-pv.c Thu Apr 29 16:55:49 1999 @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -22,4 +22,4 @@ --version is added (unless the ARGP_NO_HELP flag is used), which will print this this string followed by a newline and exit (unless the ARGP_NO_EXIT flag is used). Overridden by ARGP_PROGRAM_VERSION_HOOK. */ -const char *argp_program_version = 0; +const char *argp_program_version; diff -durpN glibc-2.1/argp/argp-pvh.c glibc-2.1.1/argp/argp-pvh.c --- glibc-2.1/argp/argp-pvh.c Sat Feb 15 04:26:05 1997 +++ glibc-2.1.1/argp/argp-pvh.c Thu Apr 29 16:55:50 1999 @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION_HOOK. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -29,4 +29,4 @@ this function with a stream to print the version to and a pointer to the current parsing state, and then exits (unless the ARGP_NO_EXIT flag is used). This variable takes precedent over ARGP_PROGRAM_VERSION. */ -void (*argp_program_version_hook) (FILE *stream, struct argp_state *state) = 0; +void (*argp_program_version_hook) (FILE *stream, struct argp_state *state); diff -durpN glibc-2.1/argp/argp.h glibc-2.1.1/argp/argp.h --- glibc-2.1/argp/argp.h Sat Dec 5 00:24:30 1998 +++ glibc-2.1.1/argp/argp.h Wed May 19 17:14:26 1999 @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -38,12 +38,15 @@ typedef int error_t; #endif #ifndef __P -# if (defined __STDC__ && __STDC__) || defined __cplusplus -# if defined __GNUC__ && defined __cplusplus && __GNUC_MINOR__ >= 8 +# ifdef __cplusplus +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 7) # define __P(args) args throw () # else # define __P(args) args # endif +# define __PMT(args) args +# elif defined __STDC__ && __STDC__ > 0 +# define __P(args) args # define __PMT(args) args # else # define __P(args) () diff -durpN glibc-2.1/assert/assert.h glibc-2.1.1/assert/assert.h --- glibc-2.1/assert/assert.h Fri Jan 30 10:53:38 1998 +++ glibc-2.1.1/assert/assert.h Wed May 19 17:14:30 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,94,95,96,97,98,99 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 @@ -87,13 +87,23 @@ __END_DECLS /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. - This is broken in G++ before version 2.6. */ -# if (!defined __GNUC__ || __GNUC__ < 2 || \ - __GNUC_MINOR__ < (defined __cplusplus ? 6 : 4)) -# define __ASSERT_FUNCTION ((__const char *) 0) -# else # define __ASSERT_FUNCTION __PRETTY_FUNCTION__ + This is broken in G++ before version 2.6. + C9x has a similar variable called __func__, but prefer the GCC one since + it demangles C++ function names. */ +# ifdef __GNUC__ +# if __GNUC__ > 2 || (__GNUC__ == 2 \ + && __GNUC_MINOR__ >= (defined __cplusplus ? 6 : 4)) +# define __ASSERT_FUNCTION __PRETTY_FUNCTION__ +# else +# define __ASSERT_FUNCTION ((__const char *) 0) +# endif +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __ASSERT_FUNCTION __func__ +# else +# define __ASSERT_FUNCTION ((__const char *) 0) +# endif # endif - #endif /* NDEBUG. */ diff -durpN glibc-2.1/catgets/catgets.c glibc-2.1.1/catgets/catgets.c --- glibc-2.1/catgets/catgets.c Mon Aug 3 16:44:18 1998 +++ glibc-2.1.1/catgets/catgets.c Thu Apr 29 16:55:53 1999 @@ -1,6 +1,6 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Ulrich Drepper, . + Contributed by Ulrich Drepper, . 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 @@ -33,23 +33,12 @@ nl_catd catopen (const char *cat_name, int flag) { __nl_catd result; - const char *env_var; - const char *nlspath; - - result = (__nl_catd) malloc (sizeof (*result)); - if (result == NULL) - /* We cannot get enough memory. */ - return (nl_catd) -1; - - result->status = closed; - - result->cat_name = __strdup (cat_name); - if (result->cat_name == NULL) - { - free (result); - __set_errno (ENOMEM); - return (nl_catd) -1; - } + const char *env_var = NULL; + const char *nlspath = NULL; + size_t cat_name_len = strlen (cat_name) + 1; + size_t env_var_len = 0; + size_t nlspath_len = 0; + char *endp; if (strchr (cat_name, '/') == NULL) { @@ -57,32 +46,19 @@ catopen (const char *cat_name, int flag) { env_var = getenv ("LC_ALL"); if (env_var == NULL) - { - env_var = getenv ("LC_MESSAGES"); - if (env_var == NULL) - { - env_var = getenv ("LANG"); - if (env_var == NULL) - env_var = "C"; - } - } - } - else - { - env_var = getenv ("LANG"); - if (env_var == NULL) - env_var = "C"; - } + env_var = getenv ("LC_MESSAGES"); - result->env_var = __strdup (env_var); - if (result->env_var == NULL) - { - free ((void *) result->cat_name); - free ((void *) result); - __set_errno (ENOMEM); - return (nl_catd) -1; + if (env_var != NULL) + goto have_env_var; } + env_var = getenv ("LANG"); + if (env_var == NULL) + env_var = "C"; + + have_env_var: + env_var_len = strlen (env_var) + 1; + nlspath = __secure_getenv ("NLSPATH"); if (nlspath != NULL && *nlspath != '\0') { @@ -92,25 +68,32 @@ catopen (const char *cat_name, int flag) __stpcpy (__stpcpy (__stpcpy (tmp, nlspath), ":"), NLSPATH); nlspath = tmp; + + nlspath_len = len; } else - nlspath = NLSPATH; - - result->nlspath = __strdup (NLSPATH); - if (result->nlspath == NULL) { - free ((void *) result->cat_name); - free ((void *) result->env_var); - free ((void *) result); - __set_errno (ENOMEM); - return (nl_catd) -1; + nlspath = NLSPATH; + + nlspath_len = sizeof NLSPATH; } } - else - { - result->env_var = NULL; - result->nlspath = NULL; - } + + result = (__nl_catd) malloc (sizeof (*result) + cat_name_len + + env_var_len + nlspath_len); + if (result == NULL) + /* We cannot get enough memory. */ + return (nl_catd) -1; + + result->status = closed; + result->cat_name = endp = (char *) (result + 1); + endp = __mempcpy (endp, cat_name, cat_name_len); + + result->env_var = cat_name_len != 0 ? endp : NULL; + endp = __mempcpy (endp, env_var, env_var_len); + + result->nlspath = nlspath_len != 0 ? endp : NULL; + memcpy (endp, nlspath, nlspath_len); __libc_lock_init (result->lock); @@ -179,10 +162,6 @@ catclose (nl_catd catalog_desc) return -1; } - if (catalog->nlspath) - free ((void *) catalog->nlspath); - if (catalog->env_var) - free ((void *) catalog->env_var); free ((void *) catalog); return 0; diff -durpN glibc-2.1/catgets/gencat.c glibc-2.1.1/catgets/gencat.c --- glibc-2.1/catgets/gencat.c Mon Jan 4 18:06:59 1999 +++ glibc-2.1.1/catgets/gencat.c Thu Apr 15 17:25:06 1999 @@ -492,38 +492,54 @@ this is the first definition")); { const char *ident = this_line; int message_number; + int any_space; do ++this_line; - while (this_line[0] != '\0' && !isspace (this_line[0]));; - this_line[0] = '\0'; /* Terminate the identifier. */ + while (this_line[0] != '\0' && !isspace (this_line[0])); + any_space = isspace (*this_line); + *this_line++ = '\0'; /* Terminate the identifier. */ - do - ++this_line; - while (isspace (this_line[0])); /* Now we found the beginning of the message itself. */ if (isdigit (ident[0])) { struct message_list *runp; + struct message_list *lastp; message_number = atoi (ident); /* Find location to insert the new message. */ runp = current->current_set->messages; + lastp = NULL; while (runp != NULL) if (runp->number == message_number) break; else - runp = runp->next; + { + lastp = runp; + runp = runp->next; + } if (runp != NULL) { - /* Oh, oh. There is already a message with this - number is the message set. */ - error_at_line (0, 0, fname, start_line, - gettext ("duplicated message number")); - error_at_line (0, 0, runp->fname, runp->line, - gettext ("this is the first definition")); + if (any_space) + { + /* Oh, oh. There is already a message with this + number in the message set. */ + error_at_line (0, 0, fname, start_line, + gettext ("duplicated message number")); + error_at_line (0, 0, runp->fname, runp->line, + gettext ("this is the first definition")); + } + else + { + /* We have to remove this message. */ + if (lastp != NULL) + lastp->next = runp->next; + else + current->current_set->messages = runp->next; + free (runp); + } message_number = 0; } ident = NULL; /* We don't have a symbol. */ @@ -535,10 +551,12 @@ this is the first definition")); else if (ident[0] != '\0') { struct message_list *runp; - runp = current->current_set->messages; + struct message_list *lastp; /* Test whether the symbolic name was not used for another message in this message set. */ + runp = current->current_set->messages; + lastp = NULL; while (runp != NULL) if (runp->symbol != NULL && strcmp (ident, runp->symbol) == 0) break; @@ -546,11 +564,24 @@ this is the first definition")); runp = runp->next; if (runp != NULL) { - /* The name is already used. */ - error_at_line (0, 0, fname, start_line, - gettext ("duplicated message identifier")); - error_at_line (0, 0, runp->fname, runp->line, - gettext ("this is the first definition")); + if (any_space) + { + /* The name is already used. */ + error_at_line (0, 0, fname, start_line, + gettext ("\ +duplicated message identifier")); + error_at_line (0, 0, runp->fname, runp->line, + gettext ("this is the first definition")); + } + else + { + /* We have to remove this message. */ + if (lastp != NULL) + lastp->next = runp->next; + else + current->current_set->messages = runp->next; + free (runp); + } message_number = 0; } else diff -durpN glibc-2.1/catgets/open_catalog.c glibc-2.1.1/catgets/open_catalog.c --- glibc-2.1/catgets/open_catalog.c Mon Aug 3 16:40:43 1998 +++ glibc-2.1.1/catgets/open_catalog.c Mon May 3 17:49:49 1999 @@ -1,6 +1,6 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Ulrich Drepper, . + Contributed by Ulrich Drepper, . 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 @@ -182,18 +182,24 @@ __open_catalog (__nl_catd catalog) } /* Avoid dealing with directories and block devices */ - if (fd < 0 || __fstat (fd, &st) < 0) + if (fd < 0) { catalog->status = nonexisting; goto unlock_return; } + + if (__fxstat (_STAT_VER, fd, &st) < 0) + { + catalog->status = nonexisting; + goto close_unlock_return; + } if (!S_ISREG (st.st_mode) || st.st_size < sizeof (struct catalog_obj)) { /* `errno' is not set correctly but the file is not usable. Use an reasonable error value. */ __set_errno (EINVAL); catalog->status = nonexisting; - goto unlock_return; + goto close_unlock_return; } catalog->file_size = st.st_size; @@ -226,7 +232,7 @@ __open_catalog (__nl_catd catalog) if (catalog->file_ptr == NULL) { catalog->status = nonexisting; - goto unlock_return; + goto close_unlock_return; } todo = st.st_size; /* Save read, handle partial reads. */ @@ -238,7 +244,7 @@ __open_catalog (__nl_catd catalog) { free ((void *) catalog->file_ptr); catalog->status = nonexisting; - goto unlock_return; + goto close_unlock_return; } todo -= now; } @@ -246,10 +252,6 @@ __open_catalog (__nl_catd catalog) catalog->status = malloced; } - /* We don't need the file anymore. */ - __close (fd); - fd = -1; - /* Determine whether the file is a catalog file and if yes whether it is written using the correct byte order. Else we have to swap the values. */ @@ -269,7 +271,7 @@ __open_catalog (__nl_catd catalog) #endif /* _POSIX_MAPPED_FILES */ free (catalog->file_ptr); catalog->status = nonexisting; - goto unlock_return; + goto close_unlock_return; } #define SWAP(x) (swapping ? SWAPU32 (x) : (x)) @@ -320,8 +322,8 @@ __open_catalog (__nl_catd catalog) } /* Release the lock again. */ + close_unlock_return: + __close (fd); unlock_return: - if (fd != -1) - __close (fd); __libc_lock_unlock (catalog->lock); } diff -durpN glibc-2.1/config.make.in glibc-2.1.1/config.make.in --- glibc-2.1/config.make.in Thu Nov 5 12:24:39 1998 +++ glibc-2.1.1/config.make.in Wed May 19 14:19:37 1999 @@ -1,5 +1,5 @@ # @configure_input@ -# From $Id: config.make.in,v 1.60 1998/11/05 12:24:39 drepper Exp $. +# From $Id: config.make.in,v 1.61 1999/05/19 14:19:37 drepper Exp $. # Don't edit this file. Put configuration parameters in configparms instead. version = @VERSION@ @@ -9,6 +9,7 @@ release = @RELEASE@ install_root = prefix = @prefix@ exec_prefix = @exec_prefix@ +libdir = @libdir@ slibdir = @libc_cv_slibdir@ sysconfdir = @libc_cv_sysconfdir@ libexecdir = @libexecdir@ diff -durpN glibc-2.1/configure glibc-2.1.1/configure --- glibc-2.1/configure Tue Dec 8 01:26:25 1998 +++ glibc-2.1.1/configure Thu May 20 21:56:44 1999 @@ -12,7 +12,7 @@ # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12.2 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -385,7 +385,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12.2" + echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) @@ -907,6 +907,8 @@ sparc | sparcv[67]) base_machine=sparc machine=sparc/sparc32 ;; sparcv8 | supersparc | hypersparc) base_machine=sparc machine=sparc/sparc32/sparcv8 ;; +sparcv8plus | sparcv8plusa | sparcv9) + base_machine=sparc machine=sparc/sparc32/sparcv9 ;; sparc64 | ultrasparc) base_machine=sparc machine=sparc/sparc64 ;; esac @@ -923,7 +925,7 @@ fi # This can take a while to compute. sysdep_dir=$srcdir/sysdeps echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6 -echo "configure:927: checking sysdep dirs" >&5 +echo "configure:929: checking sysdep dirs" >&5 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1. os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`" @@ -972,7 +974,7 @@ while b=`echo $tail | sed 's@^\(.*\)/\([ tail="$2" done -# For sparc/sparc9, try sparc/sparc9 and then sparc. +# For sparc/sparc32, try sparc/sparc32 and then sparc. mach= tail=$machine while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do @@ -1125,7 +1127,7 @@ echo "$ac_t""$default_sysnames" 1>&6 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1129: checking for a BSD compatible install" >&5 +echo "configure:1131: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1182,7 +1184,7 @@ if test "$INSTALL" = "${srcdir}/install- INSTALL='\$(..)./install-sh -c' fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1186: checking whether ln -s works" >&5 +echo "configure:1188: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1205,7 +1207,7 @@ fi # These programs are version sensitive. echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1209: checking build system type" >&5 +echo "configure:1211: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1233,7 +1235,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1237: checking for $ac_word" >&5 +echo "configure:1239: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1267,11 +1269,11 @@ if test -z "$CC"; then else # Found it, now check the version. echo $ac_n "checking version of $CC""... $ac_c" 1>&6 -echo "configure:1271: checking version of $CC" >&5 +echo "configure:1273: checking version of $CC" >&5 ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustp-]*[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|pgcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*) + egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; @@ -1287,7 +1289,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1291: checking for $ac_word" >&5 +echo "configure:1293: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1321,7 +1323,7 @@ if test -z "$MAKE"; then else # Found it, now check the version. echo $ac_n "checking version of $MAKE""... $ac_c" 1>&6 -echo "configure:1325: checking version of $MAKE" >&5 +echo "configure:1327: checking version of $MAKE" >&5 ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*version \([0-9][0-9.]*\), by.*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1342,7 +1344,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1346: checking for $ac_word" >&5 +echo "configure:1348: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1376,7 +1378,7 @@ if test -z "$MSGFMT"; then else # Found it, now check the version. echo $ac_n "checking version of $MSGFMT""... $ac_c" 1>&6 -echo "configure:1380: checking version of $MSGFMT" >&5 +echo "configure:1382: checking version of $MSGFMT" >&5 ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1396,7 +1398,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1400: checking for $ac_word" >&5 +echo "configure:1402: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1430,7 +1432,7 @@ if test -z "$MAKEINFO"; then else # Found it, now check the version. echo $ac_n "checking version of $MAKEINFO""... $ac_c" 1>&6 -echo "configure:1434: checking version of $MAKEINFO" >&5 +echo "configure:1436: checking version of $MAKEINFO" >&5 ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1459,7 +1461,7 @@ test -n "$aux_missing" && echo "configur echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1463: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1465: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1473,12 +1475,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1477 "configure" +#line 1479 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1509,7 +1511,7 @@ else cross_linkable=yes fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1513: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1515: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_cross'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1521,7 +1523,7 @@ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1525: checking whether we are using GNU C" >&5 +echo "configure:1527: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1530,7 +1532,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1534: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1543,7 +1545,7 @@ if test $ac_cv_prog_gcc != yes; then fi echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1547: checking build system type" >&5 +echo "configure:1549: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1566,7 +1568,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1570: checking for $ac_word" >&5 +echo "configure:1572: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1598,7 +1600,7 @@ done fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1602: checking how to run the C preprocessor" >&5 +echo "configure:1604: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1613,13 +1615,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1630,13 +1632,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1647,13 +1649,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1696,7 +1698,7 @@ if test $RANLIB = ranlib; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1700: checking for $ac_word" >&5 +echo "configure:1702: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1728,7 +1730,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1732: checking for $ac_word" >&5 +echo "configure:1734: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1765,7 +1767,7 @@ fi # Determine whether we are using GNU binutils. echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6 -echo "configure:1769: checking whether $AS is GNU as" >&5 +echo "configure:1771: checking whether $AS is GNU as" >&5 if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1784,7 +1786,7 @@ rm -f a.out gnu_as=$libc_cv_prog_as_gnu echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6 -echo "configure:1788: checking whether $LD is GNU ld" >&5 +echo "configure:1790: checking whether $LD is GNU ld" >&5 if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1804,7 +1806,7 @@ gnu_ld=$libc_cv_prog_ld_gnu # Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args. set dummy ${ac_tool_prefix}mig; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1808: checking for $ac_word" >&5 +echo "configure:1810: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1845,7 +1847,7 @@ fi # check if ranlib is necessary echo $ac_n "checking whether ranlib is necessary""... $ac_c" 1>&6 -echo "configure:1849: checking whether ranlib is necessary" >&5 +echo "configure:1851: checking whether ranlib is necessary" >&5 if eval "test \"`echo '$''{'libc_cv_ranlib_necessary'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1879,7 +1881,7 @@ fi # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking LD_LIBRARY_PATH variable""... $ac_c" 1>&6 -echo "configure:1883: checking LD_LIBRARY_PATH variable" >&5 +echo "configure:1885: checking LD_LIBRARY_PATH variable" >&5 case ${LD_LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) ld_library_path_setting="contains current directory" @@ -1899,7 +1901,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1903: checking for $ac_word" >&5 +echo "configure:1905: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1945,7 +1947,7 @@ if test "$BASH" = no; then # Extract the first word of "ksh", so it can be a program name with args. set dummy ksh; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1949: checking for $ac_word" >&5 +echo "configure:1951: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1995,7 +1997,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1999: checking for $ac_word" >&5 +echo "configure:2001: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2027,7 +2029,7 @@ done # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2031: checking for $ac_word" >&5 +echo "configure:2033: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2061,11 +2063,10 @@ else fi -install_info_path=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin # Extract the first word of "install-info", so it can be a program name with args. set dummy install-info; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2069: checking for $ac_word" >&5 +echo "configure:2070: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_INSTALL_INFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2078,7 +2079,7 @@ else ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$install_info_path" + ac_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then @@ -2101,7 +2102,7 @@ fi if test "$INSTALL_INFO" != "no"; then echo $ac_n "checking for old Debian install-info""... $ac_c" 1>&6 -echo "configure:2105: checking for old Debian install-info" >&5 +echo "configure:2106: checking for old Debian install-info" >&5 if eval "test \"`echo '$''{'libc_cv_old_debian_install_info'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2134,7 +2135,7 @@ fi echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6 -echo "configure:2138: checking for signed size_t type" >&5 +echo "configure:2139: checking for signed size_t type" >&5 if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2158,12 +2159,12 @@ EOF fi echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6 -echo "configure:2162: checking for libc-friendly stddef.h" >&5 +echo "configure:2163: checking for libc-friendly stddef.h" >&5 if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_friendly_stddef=yes else @@ -2197,7 +2198,7 @@ override stddef.h = # The installed &6 -echo "configure:2201: checking whether we need to use -P to assemble .S files" >&5 +echo "configure:2202: checking whether we need to use -P to assemble .S files" >&5 if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2220,7 +2221,7 @@ asm-CPPFLAGS = -P # The assembler can't fi echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6 -echo "configure:2224: checking for assembler global-symbol directive" >&5 +echo "configure:2225: checking for assembler global-symbol directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2250,7 +2251,7 @@ EOF fi echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6 -echo "configure:2254: checking for .set assembler directive" >&5 +echo "configure:2255: checking for .set assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2284,7 +2285,7 @@ EOF fi echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6 -echo "configure:2288: checking for .symver assembler directive" >&5 +echo "configure:2289: checking for .symver assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2303,7 +2304,7 @@ fi echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6 echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6 -echo "configure:2307: checking for ld --version-script" >&5 +echo "configure:2308: checking for ld --version-script" >&5 if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2326,7 +2327,7 @@ EOF if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o -nostartfiles -nostdlib -Wl,--version-script,conftest.map - 1>&5'; { (eval echo configure:2330: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; + 1>&5'; { (eval echo configure:2331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_version_script_option=yes else @@ -2364,7 +2365,7 @@ if test $VERSIONING = no; then fi if test $elf = yes; then echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6 -echo "configure:2368: checking for .previous assembler directive" >&5 +echo "configure:2369: checking for .previous assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2372,7 +2373,7 @@ else .section foo_section .previous EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_previous_directive=yes else libc_cv_asm_previous_directive=no @@ -2388,7 +2389,7 @@ EOF else echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6 -echo "configure:2392: checking for .popsection assembler directive" >&5 +echo "configure:2393: checking for .popsection assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2396,7 +2397,7 @@ else .pushsection foo_section .popsection EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2400: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_popsection_directive=yes else libc_cv_asm_popsection_directive=no @@ -2416,12 +2417,12 @@ fi if test $elf != yes; then echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6 -echo "configure:2420: checking for .init and .fini sections" >&5 +echo "configure:2421: checking for .init and .fini sections" >&5 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_have_initfini=yes else @@ -2458,19 +2459,19 @@ if test $elf = yes; then else if test $ac_cv_prog_cc_works = yes; then echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 -echo "configure:2462: checking for _ prefix on C symbol names" >&5 +echo "configure:2463: checking for _ prefix on C symbol names" >&5 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* libc_cv_asm_underscores=yes else @@ -2485,17 +2486,17 @@ fi echo "$ac_t""$libc_cv_asm_underscores" 1>&6 else echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 -echo "configure:2489: checking for _ prefix on C symbol names" >&5 +echo "configure:2490: checking for _ prefix on C symbol names" >&5 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _underscore_test conftest* >/dev/null; then rm -f conftest* libc_cv_asm_underscores=yes @@ -2527,7 +2528,7 @@ if test $elf = yes; then fi echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6 -echo "configure:2531: checking for assembler .weak directive" >&5 +echo "configure:2532: checking for assembler .weak directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2550,7 +2551,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive if test $libc_cv_asm_weak_directive = no; then echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6 -echo "configure:2554: checking for assembler .weakext directive" >&5 +echo "configure:2555: checking for assembler .weakext directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2588,7 +2589,7 @@ EOF fi echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6 -echo "configure:2592: checking for ld --no-whole-archive" >&5 +echo "configure:2593: checking for ld --no-whole-archive" >&5 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2599,7 +2600,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c 1>&5'; { (eval echo configure:2603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5'; { (eval echo configure:2604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no @@ -2613,7 +2614,7 @@ if test $libc_cv_ld_no_whole_archive = y fi echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6 -echo "configure:2617: checking for gcc -fexceptions" >&5 +echo "configure:2618: checking for gcc -fexceptions" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2624,7 +2625,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fexceptions - -o conftest conftest.c 1>&5'; { (eval echo configure:2628: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5'; { (eval echo configure:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_exceptions=yes else libc_cv_gcc_exceptions=no @@ -2639,14 +2640,14 @@ fi if test "$base_machine" = alpha ; then echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6 -echo "configure:2643: checking for function ..ng prefix" >&5 +echo "configure:2644: checking for function ..ng prefix" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <<\EOF foo () { } EOF -if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; +if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_alpha_ng_prefix=yes else @@ -2673,19 +2674,19 @@ if test "$host_cpu" = powerpc ; then # Check for a bug present in at least versions 2.8.x of GCC # and versions 1.0.x of EGCS. echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6 -echo "configure:2677: checking whether clobbering cr0 causes problems" >&5 +echo "configure:2678: checking whether clobbering cr0 causes problems" >&5 if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_c_asmcr0_bug='no' else @@ -2707,12 +2708,12 @@ fi fi echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6 -echo "configure:2711: checking for DWARF2 unwind info support" >&5 +echo "configure:2712: checking for DWARF2 unwind info support" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_dwarf2_unwind_info=static else libc_cv_gcc_dwarf2_unwind_info=no @@ -2747,7 +2748,7 @@ fi if test $libc_cv_gcc_dwarf2_unwind_info = no; then if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2752: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_dwarf2_unwind_info=yes else libc_cv_gcc_dwarf2_unwind_info=no @@ -2777,12 +2778,12 @@ EOF esac echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6 -echo "configure:2781: checking for __builtin_expect" >&5 +echo "configure:2782: checking for __builtin_expect" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_builtin_expect=yes else libc_cv_gcc_builtin_expect=no @@ -2851,7 +2852,7 @@ if test "$uname" = "sysdeps/generic"; th fi echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 -echo "configure:2855: checking OS release for uname" >&5 +echo "configure:2856: checking OS release for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2873,7 +2874,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>& uname_release="$libc_cv_uname_release" echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 -echo "configure:2877: checking OS version for uname" >&5 +echo "configure:2878: checking OS version for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2895,7 +2896,7 @@ else fi echo $ac_n "checking stdio selection""... $ac_c" 1>&6 -echo "configure:2899: checking stdio selection" >&5 +echo "configure:2900: checking stdio selection" >&5 case $stdio in libio) cat >> confdefs.h <<\EOF @@ -2909,7 +2910,7 @@ echo "$ac_t""$stdio" 1>&6 # Test for old glibc 2.0.x headers so that they can be removed properly # Search only in includedir. echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6 -echo "configure:2913: checking for old glibc 2.0.x headers" >&5 +echo "configure:2914: checking for old glibc 2.0.x headers" >&5 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h" then old_glibc_headers=yes @@ -2963,7 +2964,7 @@ if test $shared = default; then fi echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6 -echo "configure:2967: checking whether -fPIC is default" >&5 +echo "configure:2968: checking whether -fPIC is default" >&5 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3097,7 +3098,7 @@ do echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12.2" + echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; diff -durpN glibc-2.1/configure.in glibc-2.1.1/configure.in --- glibc-2.1/configure.in Tue Dec 8 01:25:51 1998 +++ glibc-2.1.1/configure.in Thu May 20 21:56:00 1999 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION([$CVSid$]) -AC_PREREQ(2.11)dnl dnl Minimum Autoconf version required. +AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required. AC_INIT(include/features.h) AC_CONFIG_HEADER(config.h) AC_CONFIG_AUX_DIR(scripts) @@ -223,6 +223,8 @@ sparc | sparcv[67]) base_machine=sparc machine=sparc/sparc32 ;; sparcv8 | supersparc | hypersparc) base_machine=sparc machine=sparc/sparc32/sparcv8 ;; +sparcv8plus | sparcv8plusa | sparcv9) + base_machine=sparc machine=sparc/sparc32/sparcv9 ;; sparc64 | ultrasparc) base_machine=sparc machine=sparc/sparc64 ;; esac @@ -287,7 +289,7 @@ while b=`echo $tail | sed 's@^\(.*\)/\([ tail="$2" done -# For sparc/sparc9, try sparc/sparc9 and then sparc. +# For sparc/sparc32, try sparc/sparc32 and then sparc. mach= tail=$machine while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do @@ -443,7 +445,7 @@ AC_PROG_LN_S AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v, [version \([egcygnustp-]*[0-9.]*\)], - [egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|pgcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*], + [egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]], critic_missing=t) AC_CHECK_PROG_VER(MAKE, make gmake, --version, [version \([0-9][0-9.]*\), by], @@ -561,9 +563,8 @@ AC_SUBST(libc_cv_have_ksh) AC_PROG_AWK AC_PATH_PROG(PERL, perl, no) AC_SUBST(PERL) -dnl This works around a bug in autoconf. -install_info_path=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin -AC_PATH_PROG(INSTALL_INFO, install-info, no, $install_info_path) +AC_PATH_PROG(INSTALL_INFO, install-info, no, + $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin) AC_SUBST(INSTALL_INFO) if test "$INSTALL_INFO" != "no"; then AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info, diff -durpN glibc-2.1/csu/Makefile glibc-2.1.1/csu/Makefile --- glibc-2.1/csu/Makefile Sat Jul 4 21:34:00 1998 +++ glibc-2.1.1/csu/Makefile Mon Apr 12 17:54:04 1999 @@ -1,6 +1,6 @@ # Makefile for csu code for GNU C library. -# Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -21,7 +21,7 @@ # This directory contains the C startup code (that which calls main). This # consists of the startfile, built from start.c and installed as crt0.o # (traditionally) or crt1.o (for ELF). In ELF we also install crti.o and -# crtn.o, special "initializer" and "finalizer" files in used in the link +# crtn.o, special "initializer" and "finalizer" files used in the link # to make the .init and .fini sections work right; both these files are # built (in an arcane manner) from initfini.c. diff -durpN glibc-2.1/csu/Versions glibc-2.1.1/csu/Versions --- glibc-2.1/csu/Versions Mon Jan 25 17:28:31 1999 +++ glibc-2.1.1/csu/Versions Sun Feb 7 23:39:54 1999 @@ -15,9 +15,6 @@ libc { errno; } GLIBC_2.1 { - # global variables - __libc_stack_end; - # New special glibc functions. gnu_get_libc_release; gnu_get_libc_version; } diff -durpN glibc-2.1/ctype/ctype-extn.c glibc-2.1.1/ctype/ctype-extn.c --- glibc-2.1/ctype/ctype-extn.c Sat Feb 15 04:26:09 1997 +++ glibc-2.1.1/ctype/ctype-extn.c Thu Apr 29 16:55:58 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1997, 1999 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 @@ -22,20 +22,21 @@ /* Real function versions of the non-ANSI ctype functions. */ int -isblank (int c) +__isblank (int c) { return __isctype (c, _ISblank); } +weak_alias (__isblank, isblank) int _tolower (int c) { - return __tolower (c); + return __ctype_tolower[c]; } int _toupper (int c) { - return __toupper (c); + return __ctype_toupper[c]; } int @@ -43,26 +44,18 @@ toascii (int c) { return __toascii (c); } +weak_alias (toascii, __toascii_l) + int isascii (int c) { return __isascii (c); } +weak_alias (isascii, __isascii_l) int __isblank_l (int c, __locale_t l) { return __isctype_l (c, _ISblank, l); -} - -int -__toascii_l (int c, __locale_t l) -{ - return __toascii (c); -} -int -__isascii_l (int c, __locale_t l) -{ - return __isascii (c); } diff -durpN glibc-2.1/ctype/ctype.c glibc-2.1.1/ctype/ctype.c --- glibc-2.1/ctype/ctype.c Mon Jan 25 17:28:33 1999 +++ glibc-2.1.1/ctype/ctype.c Sun Feb 7 23:39:56 1999 @@ -39,11 +39,11 @@ func (isxdigit, _ISxdigit) int tolower (int c) { - return c >= -128 && c < 256 ? __tolower (c) : c; + return c >= -128 && c < 256 ? __ctype_tolower[c] : c; } int toupper (int c) { - return c >= -128 && c < 256 ? __toupper (c) : c; + return c >= -128 && c < 256 ? __ctype_toupper[c] : c; } diff -durpN glibc-2.1/ctype/ctype.h glibc-2.1.1/ctype/ctype.h --- glibc-2.1/ctype/ctype.h Mon Jan 25 17:28:34 1999 +++ glibc-2.1.1/ctype/ctype.h Mon May 24 23:19:41 1999 @@ -82,9 +82,6 @@ extern __const __int32_t *__ctype_touppe #define __isascii(c) (((c) & ~0x7f) == 0) /* If C is a 7 bit value. */ #define __toascii(c) ((c) & 0x7f) /* Mask off high bits. */ -#define __tolower(c) ((int) __ctype_tolower[(int) (c)]) -#define __toupper(c) ((int) __ctype_toupper[(int) (c)]) - #define __exctype(name) extern int name __P ((int)) /* The following names are all functions: @@ -128,7 +125,8 @@ extern int toascii __P ((int __c)); #endif /* Use SVID or use misc. */ #if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN -/* These are the same as `toupper' and `tolower'. */ +/* These are the same as `toupper' and `tolower' except that they do not + check the argument for being in the range of a `char'. */ __exctype (_toupper); __exctype (_tolower); #endif @@ -151,26 +149,47 @@ __exctype (_tolower); #endif #if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \ - && defined __USE_EXTERN_INLINES + && defined __USE_EXTERN_INLINES extern __inline int -tolower (int __c) +tolower (int __c) __THROW { - return __c >= -128 && __c < 256 ? __tolower (__c) : __c; + return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c; } extern __inline int -toupper (int __c) +toupper (int __c) __THROW { - return __c >= -128 && __c < 256 ? __toupper (__c) : __c; + return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c; } #endif +#if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus +# define __tobody(c, f, a) \ + ({ int __res; \ + if (sizeof (c) > 1) \ + { \ + if (__builtin_constant_p (c)) \ + { \ + int __c = (c); \ + __res = __c < -128 || __c > 255 ? __c : a[__c]; \ + } \ + else \ + __res = f (c); \ + } \ + else \ + __res = a[(int) (c)]; \ + __res; }) + +# define tolower(c) __tobody (c, tolower, __ctype_tolower) +# define toupper(c) __tobody (c, toupper, __ctype_toupper) +#endif /* Optimizing gcc */ + #if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN -# define isascii(c) __isascii(c) -# define toascii(c) __toascii(c) +# define isascii(c) __isascii (c) +# define toascii(c) __toascii (c) -# define _tolower(c) __tolower(c) -# define _toupper(c) __toupper(c) +# define _tolower(c) ((int) __ctype_tolower[(int) (c)]) +# define _toupper(c) ((int) __ctype_toupper[(int) (c)]) #endif #endif /* Not __NO_CTYPE. */ diff -durpN glibc-2.1/db/Makefile glibc-2.1.1/db/Makefile --- glibc-2.1/db/Makefile Wed Oct 21 16:37:23 1998 +++ glibc-2.1.1/db/Makefile Tue Mar 30 00:14:36 1999 @@ -29,8 +29,11 @@ distribute := compat.h \ include ../Makeconfig -install-others := $(inst_slibdir)/libdb.so$(libdb1.so-version) \ - $(db1-headers:%=$(inst_includedir)/db1/%) +install-others := $(db1-headers:%=$(inst_includedir)/db1/%) + +ifeq (yes,$(build-shared)) +install-others += $(inst_slibdir)/libdb.so$(libdb1.so-version) +endif $(inst_slibdir)/libdb.so$(libdb1.so-version): $(inst_slibdir)/libdb1-$(version).so $(+force) rm -f $@ diff -durpN glibc-2.1/db2/LICENSE glibc-2.1.1/db2/LICENSE --- glibc-2.1/db2/LICENSE Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/db2/LICENSE Sun Sep 13 01:35:50 1998 @@ -0,0 +1,116 @@ +/*- + * @(#)LICENSE 10.8 (Sleepycat) 5/1/98 + */ + +The following are the copyrights and redistribution conditions that apply to +this copy of the Berkeley DB software. For a license to use, redistribute +or sell Berkeley DB software under conditions other than those described here, +or to purchase support for this software, please contact Sleepycat Software at +one of the following addresses: + + Sleepycat Software db@sleepycat.com + 394 E. Riding Dr. +1-617-633-2429 + Carlisle, MA 01741 + USA + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +/* + * Copyright (c) 1990, 1993, 1994, 1995, 1996, 1997, 1998 + * Sleepycat Software. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Redistributions in any form must be accompanied by information on + * how to obtain complete source code for the DB software and any + * accompanying software that uses the DB software. The source code + * must either be included in the distribution or be available for no + * more than the cost of distribution plus a nominal fee, and must be + * freely redistributable under reasonable conditions. For an + * executable file, complete source code means the source code for all + * modules it contains. It does not mean source code for modules or + * files that typically accompany the operating system on which the + * executable file runs, e.g., standard library modules or system + * header files. + * + * THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL SLEEPYCAT SOFTWARE BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +/* + * Copyright (c) 1990, 1993, 1994, 1995 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +/* + * Copyright (c) 1995, 1996 + * The President and Fellows of Harvard University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Harvard University + * and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ diff -durpN glibc-2.1/db2/Makefile glibc-2.1.1/db2/Makefile --- glibc-2.1/db2/Makefile Sat Jul 4 21:34:00 1998 +++ glibc-2.1.1/db2/Makefile Tue Feb 16 20:19:21 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +# Copyright (C) 1991,92,93,94,95,96,97,98,99 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 @@ -34,7 +34,7 @@ headers = db.h db_185.h distribute = db_int.h config.h compat.h clib/getlong.c btree/btree.src \ db/db.src db185/db185_int.h hash/hash.src log/log.src \ - txn/txn.src README \ + txn/txn.src README LICENSE \ $(addprefix include/,btree.h btree_auto.h btree_ext.h \ clib_ext.h common_ext.h cxx_int.h \ db.h.src db_185.h.src db_am.h db_auto.h \ diff -durpN glibc-2.1/db2/README glibc-2.1.1/db2/README --- glibc-2.1/db2/README Tue Mar 3 22:40:49 1998 +++ glibc-2.1.1/db2/README Tue Feb 16 23:19:14 1999 @@ -9,5 +9,5 @@ Sleepycat Software, Inc. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The LICENSE file, mentioned in the beginning of the source files, can -be found together with all the other relevant license texts in the -manual and the INSTALL file in the toplevel directory. +be found in this directory and also with all the other relevant +license texts in the manual. diff -durpN glibc-2.1/debug/Makefile glibc-2.1.1/debug/Makefile --- glibc-2.1/debug/Makefile Mon Oct 19 21:45:28 1998 +++ glibc-2.1.1/debug/Makefile Sun Mar 21 01:44:55 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999 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 @@ -40,7 +40,9 @@ include ../Makeconfig distribute += catchsegv.sh ifeq ($(elf),yes) +ifeq ($(build-shared),yes) install-bin = catchsegv +endif endif generated = catchsegv diff -durpN glibc-2.1/elf/Makefile glibc-2.1.1/elf/Makefile --- glibc-2.1/elf/Makefile Wed Jan 27 17:54:07 1999 +++ glibc-2.1.1/elf/Makefile Tue May 18 00:54:12 1999 @@ -22,7 +22,7 @@ subdir := elf headers = elf.h bits/elfclass.h bits/dlfcn.h link.h dlfcn.h routines = $(dl-routines) dl-open dl-close dl-symbol dl-support \ - dl-addr enbl-secure dl-profstub + dl-addr enbl-secure dl-profstub dl-origin # The core dynamic linking functions are in libc for the static and # profiled libraries. @@ -38,9 +38,10 @@ rtld-routines := rtld $(dl-routines) dl- distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ dl-hash.h soinit.c sofini.c ldd.bash.in eval.c \ genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \ - dl-librecon.h interp.c sln.c dl-origin.h hp-timing.h \ + dl-librecon.h interp.c sln.c dl-dst.h hp-timing.h \ testobj1.c testobj2.c testobj3.c testobj4.c testobj5.c \ - testobj6.c testobj1_1.c failobj.c + testobj6.c testobj1_1.c failobj.c do-lookup.h \ + gen-trusted-dirs.awk include ../Makeconfig @@ -55,7 +56,7 @@ endif before-compile = $(objpfx)trusted-dirs.h ifeq ($(versioning),yes) -ld-map = $(common-objpfx)libc.map +ld-map = $(common-objpfx)ld.so.map endif ifeq (yes,$(build-shared)) @@ -77,7 +78,9 @@ others += ldconfig install-rootsbin += ldconfig endif -tests = loadtest restest1 preloadtest loadfail +ifeq (yes,$(build-shared)) +tests = loadtest restest1 preloadtest loadfail multiload origtest +endif modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ testobj1_1 failobj extra-objs += $(modules-names:=.os) @@ -153,10 +156,8 @@ endif $(objpfx)trusted-dirs.h: $(objpfx)trusted-dirs.st; @: $(objpfx)trusted-dirs.st: Makefile $(..)Makeconfig $(make-target-directory) - dirs="$(subst :, ,$(default-rpath) $(user-defined-trusted-dirs))"; \ - for dir in $$dirs; do \ - echo " \"$$dir/\","; \ - done > ${@:st=T} + echo "$(subst :, ,$(default-rpath) $(user-defined-trusted-dirs))" \ + | $(AWK) -f gen-trusted-dirs.awk > ${@:st=T}; $(move-if-change) ${@:st=T} ${@:st=h} touch $@ CPPFLAGS-dl-load.c = -I$(objpfx). @@ -166,6 +167,7 @@ CFLAGS-dl-load.c += -Wno-uninitialized # rule to build a shared library. $(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so +ifeq (yes,$(build-shared)) $(inst_slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so $(+force) $(do-install-program) @@ -176,6 +178,7 @@ $(inst_slibdir)/$(rtld-installed-name): # Special target called by parent to install just the dynamic linker. .PHONY: ldso_install ldso_install: $(inst_slibdir)/$(rtld-installed-name) +endif common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ @@ -210,7 +213,7 @@ $(objpfx)ldd: ldd.bash.in $(common-objpf $(objpfx)sprof: $(libdl) test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) -generated += $(test-modules) +generated += $(addsuffix .so,$(modules-names)) $(objpfx)testobj1.so: $(libdl) $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl) @@ -244,7 +247,16 @@ preloadtest-ENV = \ $(objpfx)loadfail: $(libdl) LDFLAGS-loadfail = -rdynamic -$(objpfx)loadfile.out: $(objpfx)failobj.so +$(objpfx)loadfail.out: $(objpfx)failobj.so + +$(objpfx)multiload: $(libdl) +LDFLAGS-multiload = -rdynamic +CFLAGS-multiload.c = -DOBJDIR=\"$(elf-objpfx)\" + +$(objpfx)multiload.out: $(objpfx)testobj1.so + +$(objpfx)origtest: $(libdl) +$(objpfx)origtest.out: $(objpfx)testobj1.so # muwahaha diff -durpN glibc-2.1/elf/Versions glibc-2.1.1/elf/Versions --- glibc-2.1/elf/Versions Tue Nov 3 06:08:59 1998 +++ glibc-2.1.1/elf/Versions Tue May 11 19:12:26 1999 @@ -1,11 +1,19 @@ libc { GLIBC_2.0 { + # functions used in other libraries + _dl_open; _dl_close; _dl_addr; + } + GLIBC_2.1 { + # functions used in other libraries + _dl_mcount_wrapper; _dl_mcount_wrapper_check; + } +} + +ld.so { + GLIBC_2.0 { # global variables _dl_debug_impcalls; _dl_debug_fd; - # functions used in other libraries - _dl_open; _dl_close; _dl_addr; _dl_sysdep_output; _dl_debug_message; - # Those are in the dynamic linker, but used by libc.so. __libc_enable_secure; _dl_catch_error; _dl_check_all_versions; _dl_debug_initialize; _dl_debug_state; _dl_default_scope; @@ -15,15 +23,26 @@ libc { _dl_sysdep_start; _r_debug; _dl_global_scope; _dl_lookup_symbol_skip; _dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip; + _dl_debug_message; + + # Function from libc.so which must be shared with libc. + calloc; free; malloc; realloc; } GLIBC_2.1 { # global variables _dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile; _dl_loaded; _dl_main_searchlist; _dl_fpu_control; _dl_initial_searchlist; - _dl_global_scope_alloc; + _dl_global_scope_alloc; __libc_stack_end; # functions used in other libraries - _dl_mcount; _dl_mcount_wrapper; _dl_mcount_wrapper_check; _dl_unload_cache; + _dl_mcount; _dl_unload_cache; + } + GLIBC_2.1.1 { + # global variables + _dl_lazy; _dl_origin_path; _dl_platformlen; + + # functions used in other libraries + _dl_dst_count; _dl_dst_substitute; } } diff -durpN glibc-2.1/elf/dl-addr.c glibc-2.1.1/elf/dl-addr.c --- glibc-2.1/elf/dl-addr.c Sat Sep 5 01:07:43 1998 +++ glibc-2.1.1/elf/dl-addr.c Mon Feb 22 17:25:21 1999 @@ -1,5 +1,5 @@ /* Locate the shared object symbol nearest a given address. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999 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 @@ -62,8 +62,8 @@ _dl_addr (const void *address, Dl_info * info->dli_fname = match->l_name; info->dli_fbase = (void *) match->l_addr; - symtab = ((void *) match->l_addr + match->l_info[DT_SYMTAB]->d_un.d_ptr); - strtab = ((void *) match->l_addr + match->l_info[DT_STRTAB]->d_un.d_ptr); + symtab = (const void *) match->l_info[DT_SYMTAB]->d_un.d_ptr; + strtab = (const void *) match->l_info[DT_STRTAB]->d_un.d_ptr; /* We assume that the string table follows the symbol table, because there is no way in ELF to know the size of the dynamic symbol table!! */ diff -durpN glibc-2.1/elf/dl-close.c glibc-2.1.1/elf/dl-close.c --- glibc-2.1/elf/dl-close.c Thu Jan 21 17:50:23 1999 +++ glibc-2.1.1/elf/dl-close.c Mon May 17 16:51:55 1999 @@ -165,6 +165,9 @@ _dl_close (struct link_map *map) if (imap != map && imap->l_searchlist.r_list != NULL) free (imap->l_searchlist.r_list); + if (imap->l_phdr_allocated) + free ((void *) imap->l_phdr); + free (imap); } } diff -durpN glibc-2.1/elf/dl-deps.c glibc-2.1.1/elf/dl-deps.c --- glibc-2.1/elf/dl-deps.c Thu Jan 21 20:56:33 1999 +++ glibc-2.1.1/elf/dl-deps.c Thu May 6 18:14:26 1999 @@ -17,13 +17,15 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include #include #include +#include #include -#include +#include /* Whether an shared object references one or more auxiliary objects is signaled by the AUXTAG entry in l_info. */ @@ -39,6 +41,7 @@ reset if in _dl_close if the last global object is removed. */ size_t _dl_global_scope_alloc; +extern size_t _dl_platformlen; /* When loading auxiliary objects we must ignore errors. It's ok if an object is missing. */ @@ -48,7 +51,7 @@ struct openaux_args struct link_map *map; int trace_mode; const char *strtab; - const ElfW(Dyn) *d; + const char *name; /* The return value of openaux. */ struct link_map *aux; @@ -59,7 +62,7 @@ openaux (void *a) { struct openaux_args *args = (struct openaux_args *) a; - args->aux = _dl_map_object (args->map, args->strtab + args->d->d_un.d_val, 0, + args->aux = _dl_map_object (args->map, args->name, 0, (args->map->l_type == lt_executable ? lt_library : args->map->l_type), args->trace_mode); @@ -84,6 +87,43 @@ struct list }; +/* Macro to expand DST. It is an macro since we use `alloca'. */ +#define expand_dst(l, str, fatal) \ + ({ \ + const char *__str = (str); \ + const char *__result = __str; \ + size_t __cnt = DL_DST_COUNT(__str, 0); \ + \ + if (__cnt != 0) \ + { \ + char *__newp = (char *) alloca (DL_DST_REQUIRED (l, __str, \ + strlen (__str), \ + __cnt)); \ + \ + __result = DL_DST_SUBSTITUTE (l, __str, __newp, 0); \ + \ + if (*__result == '\0') \ + { \ + /* The replacement for the DST is not known. We can't \ + processed. */ \ + if (fatal) \ + _dl_signal_error (0, __str, \ + "empty dynamics string token substitution"); \ + else \ + { \ + /* This is for DT_AUXILIARY. */ \ + if (_dl_debug_libs) \ + _dl_debug_message (1, "cannot load auxiliary `", __str, \ + "' because of empty dynamic string" \ + " token substitution\n", NULL); \ + continue; \ + } \ + } \ + } \ + \ + __result; }) + + unsigned int internal_function _dl_map_object_deps (struct link_map *map, @@ -149,8 +189,7 @@ _dl_map_object_deps (struct link_map *ma if (l->l_info[DT_NEEDED] || l->l_info[AUXTAG] || l->l_info[FILTERTAG]) { - const char *strtab = ((void *) l->l_addr - + l->l_info[DT_STRTAB]->d_un.d_ptr); + const char *strtab = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr; struct openaux_args args; struct list *orig; const ElfW(Dyn) *d; @@ -167,14 +206,21 @@ _dl_map_object_deps (struct link_map *ma if (__builtin_expect (d->d_tag, DT_NEEDED) == DT_NEEDED) { /* Map in the needed object. */ - struct link_map *dep - = _dl_map_object (l, strtab + d->d_un.d_val, 0, - l->l_type == lt_executable ? lt_library : - l->l_type, trace_mode); + struct link_map *dep; /* Allocate new entry. */ - struct list *newp = alloca (sizeof (struct list)); + struct list *newp; + /* Object name. */ + const char *name; + + /* Recognize DSTs. */ + name = expand_dst (l, strtab + d->d_un.d_val, 0); + + dep = _dl_map_object (l, name, 0, + l->l_type == lt_executable ? lt_library : + l->l_type, trace_mode); /* Add it in any case to the duplicate list. */ + newp = alloca (sizeof (struct list)); newp->map = dep; newp->dup = NULL; dtail->dup = newp; @@ -203,17 +249,22 @@ _dl_map_object_deps (struct link_map *ma { char *errstring; struct list *newp; + /* Object name. */ + const char *name; + + /* Recognize DSTs. */ + name = expand_dst (l, strtab + d->d_un.d_val, + d->d_tag == DT_AUXILIARY); if (d->d_tag == DT_AUXILIARY) { /* Store the tag in the argument structure. */ - args.d = d; + args.name = name; /* Say that we are about to load an auxiliary library. */ if (_dl_debug_libs) _dl_debug_message (1, "load auxiliary object=", - strtab + d->d_un.d_val, - " requested by file=", + name, " requested by file=", l->l_name[0] ? l->l_name : _dl_argv[0], "\n", NULL); @@ -234,15 +285,14 @@ _dl_map_object_deps (struct link_map *ma { /* Say that we are about to load an auxiliary library. */ if (_dl_debug_libs) - _dl_debug_message (1, "load filtered object=", - strtab + d->d_un.d_val, + _dl_debug_message (1, "load filtered object=", name, " requested by file=", l->l_name[0] ? l->l_name : _dl_argv[0], "\n", NULL); /* For filter objects the dependency must be available. */ - args.aux = _dl_map_object (l, strtab + d->d_un.d_val, 0, + args.aux = _dl_map_object (l, name, 0, (l->l_type == lt_executable ? lt_library : l->l_type), trace_mode); @@ -386,7 +436,11 @@ _dl_map_object_deps (struct link_map *ma for (nlist = 0, runp = known; runp; runp = runp->unique) { - map->l_searchlist.r_list[nlist++] = runp->map; + if (trace_mode && runp->map->l_opencount == 0) + /* This can happen when we trace the loading. */ + --map->l_searchlist.r_nlist; + else + map->l_searchlist.r_list[nlist++] = runp->map; /* Now clear all the mark bits we set in the objects on the search list to avoid duplicates, so the next call starts fresh. */ @@ -407,7 +461,11 @@ _dl_map_object_deps (struct link_map *ma "cannot allocate symbol search list"); for (cnt = 0, runp = known; runp; runp = runp->dup) - map->l_searchlist.r_duplist[cnt++] = runp->map; + if (trace_mode && runp->map->l_opencount == 0) + /* This can happen when we trace the loading. */ + --map->l_searchlist.r_nduplist; + else + map->l_searchlist.r_duplist[cnt++] = runp->map; } /* Now that all this succeeded put the objects in the global scope if diff -durpN glibc-2.1/elf/dl-dst.h glibc-2.1.1/elf/dl-dst.h --- glibc-2.1/elf/dl-dst.h Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/elf/dl-dst.h Wed May 5 23:21:40 1999 @@ -0,0 +1,72 @@ +/* Handling of dynamic sring tokens. + Copyright (C) 1999 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 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. */ + +/* Determine the number of DST elements in the name. Only if IS_PATH is + nonzero paths are recognized (i.e., multiple, ':' separated filenames). */ +#define DL_DST_COUNT(name, is_path) \ + ({ \ + size_t __cnt = 0; \ + const char *__sf = strchr (name, '$'); \ + \ + if (__sf != NULL) \ + __cnt = _dl_dst_count (__sf, is_path); \ + \ + __cnt; }) + +/* Prototype for used function. */ +extern size_t _dl_dst_count (const char *name, int is_path); + + +/* Guess from the number of DSTs the length of the restul string. */ +#define DL_DST_REQUIRED(l, name, len, cnt) \ + ({ \ + size_t origin_len; \ + size_t __len = (len); \ + \ + /* Now we make a guess how many extra characters on top of the length \ + of S we need to represent the result. We know that we have CNT \ + replacements. Each at most can use \ + MAX (strlen (ORIGIN), strlen (_dl_platform)) \ + minus 7 (which is the length of "$ORIGIN"). \ + \ + First get the origin string if it is not available yet. This can \ + only happen for the map of the executable. */ \ + if ((l)->l_origin == NULL) \ + { \ + assert ((l)->l_name[0] == '\0'); \ + (l)->l_origin = _dl_get_origin (); \ + origin_len = ((l)->l_origin && (l)->l_origin != (char *) -1 \ + ? strlen ((l)->l_origin) : 0); \ + } \ + else \ + origin_len = (l)->l_origin == (char *) -1 ? 0 : strlen ((l)->l_origin); \ + \ + __len + cnt * (MAX (origin_len, _dl_platformlen) - 7); }) + +/* Find origin of the executable. */ +extern const char *_dl_get_origin (void); + + +/* Perform the DST substitution. */ +#define DL_DST_SUBSTITUTE(l, name, res, is_path) \ + _dl_dst_substitute (l, name, res, is_path) + +/* Prototype for used function. */ +extern char *_dl_dst_substitute (struct link_map *l, const char *name, + char *result, int is_path); diff -durpN glibc-2.1/elf/dl-error.c glibc-2.1.1/elf/dl-error.c --- glibc-2.1/elf/dl-error.c Mon Nov 30 20:04:11 1998 +++ glibc-2.1.1/elf/dl-error.c Tue Feb 23 02:01:00 1999 @@ -43,7 +43,7 @@ __libc_tsd_define (static, DL_ERROR) #define tsd_setspecific(data) __libc_tsd_set (DL_ERROR, (data)) -/* This points to a function which is called when an error is +/* This points to a function which is called when an continuable error is received. Unlike the handling of `catch' this function may return. The arguments will be the `errstring' and `objname'. @@ -84,13 +84,6 @@ _dl_signal_error (int errcode, } longjmp (lcatch->env, errcode ?: -1); } - else if (receiver) - { - /* We are inside _dl_receive_error. Call the user supplied - handler and resume the work. The receiver will still be - installed. */ - (*receiver) (errcode, objname, errstring); - } else { /* Lossage while resolving the program's own symbols is always fatal. */ @@ -104,6 +97,25 @@ _dl_signal_error (int errcode, : ""), "\n", NULL); } } + + +void +internal_function +_dl_signal_cerror (int errcode, + const char *objname, + const char *errstring) +{ + if (receiver) + { + /* We are inside _dl_receive_error. Call the user supplied + handler and resume the work. The receiver will still be + installed. */ + (*receiver) (errcode, objname, errstring); + } + else + _dl_signal_error (errcode, objname, errstring); +} + int internal_function diff -durpN glibc-2.1/elf/dl-load.c glibc-2.1.1/elf/dl-load.c --- glibc-2.1/elf/dl-load.c Wed Feb 3 16:07:36 1999 +++ glibc-2.1.1/elf/dl-load.c Fri May 7 18:05:49 1999 @@ -31,8 +31,7 @@ #include "dynamic-link.h" #include -#include - +#include /* On some systems, no flag bits are given to specify file mapping. */ #ifndef MAP_FILE @@ -107,6 +106,27 @@ static const struct r_strlenpair *capstr static size_t ncapstr; static size_t max_capstrlen; +const unsigned char _dl_pf_to_prot[8] = +{ + [0] = PROT_NONE, + [PF_R] = PROT_READ, + [PF_W] = PROT_WRITE, + [PF_R | PF_W] = PROT_READ | PROT_WRITE, + [PF_X] = PROT_EXEC, + [PF_R | PF_X] = PROT_READ | PROT_EXEC, + [PF_W | PF_X] = PROT_WRITE | PROT_EXEC, + [PF_R | PF_W | PF_X] = PROT_READ | PROT_WRITE | PROT_EXEC +}; + + +/* Get the generated information about the trusted directories. */ +#include "trusted-dirs.h" + +static const char system_dirs[] = SYSTEM_DIRS; +static const size_t system_dirs_len[] = +{ + SYSTEM_DIRS_LEN +}; /* This function has no public prototype. */ extern ssize_t __libc_read (int, void *, size_t); @@ -125,117 +145,139 @@ local_strdup (const char *s) return (char *) memcpy (new, s, len); } -/* Return copy of argument with all recognized dynamic string tokens - ($ORIGIN and $PLATFORM for now) replaced. On some platforms it - might not be possible to determine the path from which the object - belonging to the map is loaded. In this case the path element - containing $ORIGIN is left out. */ -static char * -expand_dynamic_string_token (struct link_map *l, const char *s) + +size_t +_dl_dst_count (const char *name, int is_path) { - /* We make two runs over the string. First we determine how large the - resulting string is and then we copy it over. Since this is now - frequently executed operation we are looking here not for performance - but rather for code size. */ - const char *st, *sf; size_t cnt = 0; - size_t origin_len; - size_t total; - char *result, *last_elem, *wp; - st = s; - sf = strchr (s, '$'); - while (sf != NULL) + do { size_t len = 1; - if (((strncmp (&sf[1], "ORIGIN", 6) == 0 && (len = 7) != 0) - || (strncmp (&sf[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) - && (s[len] == '\0' || s[len] == '/' || s[len] == ':')) + /* $ORIGIN is not expanded for SUID/GUID programs. */ + if ((((!__libc_enable_secure + && strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0) + || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) + && (name[len] == '\0' || name[len] == '/' + || (is_path && name[len] == ':'))) + || (name[1] == '{' + && ((!__libc_enable_secure + && strncmp (&name[2], "ORIGIN}", 7) == 0 && (len = 9) != 0) + || (strncmp (&name[2], "PLATFORM}", 9) == 0 + && (len = 11) != 0)))) ++cnt; - st = sf + len; - sf = strchr (st, '$'); + name = strchr (name + len, '$'); } + while (name != NULL); - /* If we do not have to replace anything simply copy the string. */ - if (cnt == 0) - return local_strdup (s); - - /* Now we make a guess how many extra characters on top of the length - of S we need to represent the result. We know that we have CNT - replacements. Each at most can use - MAX (strlen (ORIGIN), strlen (_dl_platform)) - minus 7 (which is the length of "$ORIGIN"). + return cnt; +} - First get the origin string if it is not available yet. This can - only happen for the map of the executable. */ - if (l->l_origin == NULL) - { - assert (l->l_name[0] == '\0'); - l->l_origin = get_origin (); - origin_len = (l->l_origin && l->l_origin != (char *) -1 - ? strlen (l->l_origin) : 0); - } - else - origin_len = l->l_origin == (char *) -1 ? 0 : strlen (l->l_origin); - total = strlen (s) + cnt * (MAX (origin_len, _dl_platformlen) - 7); - result = (char *) malloc (total + 1); - if (result == NULL) - return NULL; +char * +_dl_dst_substitute (struct link_map *l, const char *name, char *result, + int is_path) +{ + char *last_elem, *wp; /* Now fill the result path. While copying over the string we keep track of the start of the last path element. When we come accross a DST we copy over the value or (if the value is not available) leave the entire path element out. */ last_elem = wp = result; + do { - if (*s == '$') + if (*name == '$') { const char *repl; size_t len; - if (((strncmp (&s[1], "ORIGIN", 6) == 0 && (len = 7) != 0) - || (strncmp (&s[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) - && (s[len] == '\0' || s[len] == '/' || s[len] == ':')) + if ((((strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0) + || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) + && (name[len] == '\0' || name[len] == '/' + || (is_path && name[len] == ':'))) + || (name[1] == '{' + && ((strncmp (&name[2], "ORIGIN}", 7) == 0 && (len = 9) != 0) + || (strncmp (&name[2], "PLATFORM}", 9) == 0 + && (len = 11) != 0)))) { - if ((repl = len == 7 ? l->l_origin : _dl_platform) != NULL - && repl != (const char *) -1) + repl = ((len == 7 || name[2] == 'O') + ? (__libc_enable_secure ? NULL : l->l_origin) + : _dl_platform); + + if (repl != NULL && repl != (const char *) -1) { wp = __stpcpy (wp, repl); - s += len; + name += len; } else { /* We cannot use this path element, the value of the replacement is unknown. */ wp = last_elem; - s += len; - while (*s != '\0' && *s != ':') - ++s; + name += len; + while (*name != '\0' && (!is_path || *name != ':')) + ++name; } } else - /* No SDK we recognize. */ - *wp++ = *s++; + /* No DST we recognize. */ + *wp++ = *name++; } - else if (*s == ':') + else if (is_path && *name == ':') { - *wp++ = *s++; + *wp++ = *name++; last_elem = wp; } else - *wp++ = *s++; + *wp++ = *name++; } - while (*s != '\0'); + while (*name != '\0'); *wp = '\0'; return result; } + +/* Return copy of argument with all recognized dynamic string tokens + ($ORIGIN and $PLATFORM for now) replaced. On some platforms it + might not be possible to determine the path from which the object + belonging to the map is loaded. In this case the path element + containing $ORIGIN is left out. */ +static char * +expand_dynamic_string_token (struct link_map *l, const char *s) +{ + /* We make two runs over the string. First we determine how large the + resulting string is and then we copy it over. Since this is now + frequently executed operation we are looking here not for performance + but rather for code size. */ + size_t cnt; + size_t total; + char *result; + + /* Determine the nubmer of DST elements. */ + cnt = DL_DST_COUNT (s, 1); + + /* If we do not have to replace anything simply copy the string. */ + if (cnt == 0) + return local_strdup (s); + + /* Determine the length of the substituted string. */ + total = DL_DST_REQUIRED (l, s, strlen (s), cnt); + + /* Allocate the necessary memory. */ + result = (char *) malloc (total + 1); + if (result == NULL) + return NULL; + + return DL_DST_SUBSTITUTE (l, s, result, 1); +} + + /* Add `name' to the list of names for a particular shared object. `name' is expected to have been allocated with malloc and will be freed if the shared object already has this name. @@ -279,7 +321,7 @@ static size_t max_dirnamelen; static inline struct r_search_path_elem ** fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep, - const char **trusted, const char *what, const char *where) + int check_trusted, const char *what, const char *where) { char *cp; size_t nelems = 0; @@ -293,38 +335,44 @@ fillin_rpath (char *rpath, struct r_sear interpreted as `use the current directory'. */ if (len == 0) { - static char curwd[] = "./"; - cp = curwd; + static const char curwd[] = "./"; + cp = (char *) curwd; } /* Remove trailing slashes (except for "/"). */ while (len > 1 && cp[len - 1] == '/') --len; + /* Now add one if there is none so far. */ + if (len > 0 && cp[len - 1] != '/') + cp[len++] = '/'; + /* Make sure we don't use untrusted directories if we run SUID. */ - if (trusted != NULL) + if (check_trusted) { - const char **trun = trusted; + const char *trun = system_dirs; + size_t idx; /* All trusted directories must be complete names. */ if (cp[0] != '/') continue; - while (*trun != NULL - && (memcmp (*trun, cp, len) != 0 - || (*trun)[len] != '/' - || (*trun)[len + 1] != '\0')) - ++trun; + for (idx = 0; + idx < sizeof (system_dirs_len) / sizeof (system_dirs_len[0]); + ++idx) + { + if (len == system_dirs_len[idx] && memcmp (trun, cp, len) == 0) + /* Found it. */ + break; - if (*trun == NULL) + trun += system_dirs_len[idx] + 1; + } + + if (idx == sizeof (system_dirs_len) / sizeof (system_dirs_len[0])) /* It's no trusted directory, skip it. */ continue; } - /* Now add one if there is none so far. */ - if (len > 0 && cp[len - 1] != '/') - cp[len++] = '/'; - /* See if this directory is already known. */ for (dirp = all_dirs; dirp != NULL; dirp = dirp->next) if (dirp->dirnamelen == len && memcmp (cp, dirp->dirname, len) == 0) @@ -440,7 +488,7 @@ decompose_rpath (const char *rpath, stru if (result == NULL) _dl_signal_error (ENOMEM, NULL, "cannot create cache for search path"); - return fillin_rpath (copy, result, ":", NULL, "RPATH", where); + return fillin_rpath (copy, result, ":", 0, "RPATH", where); } @@ -448,12 +496,8 @@ void internal_function _dl_init_paths (const char *llp) { - static const char *system_dirs[] = - { -#include "trusted-dirs.h" - NULL - }; - const char **strp; + size_t idx; + const char *strp; struct r_search_path_elem *pelem, **aelem; size_t round_size; #ifdef PIC @@ -469,7 +513,8 @@ _dl_init_paths (const char *llp) /* First set up the rest of the default search directory entries. */ aelem = rtld_search_dirs = (struct r_search_path_elem **) - malloc ((ncapstr + 1) * sizeof (struct r_search_path_elem *)); + malloc ((sizeof (system_dirs_len) / sizeof (system_dirs_len[0])) + * sizeof (struct r_search_path_elem *)); if (rtld_search_dirs == NULL) _dl_signal_error (ENOMEM, NULL, "cannot create search path array"); @@ -484,20 +529,21 @@ _dl_init_paths (const char *llp) _dl_signal_error (ENOMEM, NULL, "cannot create cache for search path"); pelem = all_dirs = rtld_search_dirs[0]; - for (strp = system_dirs; *strp != NULL; ++strp, pelem += round_size) + strp = system_dirs; + idx = 0; + + do { size_t cnt; *aelem++ = pelem; - pelem->next = *(strp + 1) == NULL ? NULL : (pelem + round_size); - pelem->what = "system search path"; pelem->where = NULL; - pelem->dirnamelen = strlen (pelem->dirname = *strp); - if (pelem->dirnamelen > max_dirnamelen) - max_dirnamelen = pelem->dirnamelen; + pelem->dirname = strp; + pelem->dirnamelen = system_dirs_len[idx]; + strp += system_dirs_len[idx] + 1; if (pelem->dirname[0] != '/') for (cnt = 0; cnt < ncapstr; ++cnt) @@ -505,7 +551,16 @@ _dl_init_paths (const char *llp) else for (cnt = 0; cnt < ncapstr; ++cnt) pelem->status[cnt] = unknown; + + pelem->next = (++idx == (sizeof (system_dirs_len) + / sizeof (system_dirs_len[0])) + ? NULL : (pelem + round_size)); + + pelem += round_size; } + while (idx < sizeof (system_dirs_len) / sizeof (system_dirs_len[0])); + + max_dirnamelen = SYSTEM_DIRS_MAX_LEN; *aelem = NULL; #ifdef PIC @@ -519,9 +574,9 @@ _dl_init_paths (const char *llp) /* Allocate room for the search path and fill in information from RPATH. */ l->l_rpath_dirs = - decompose_rpath ((const char *) - (l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr - + l->l_info[DT_RPATH]->d_un.d_val), l); + decompose_rpath ((const void *) (l->l_info[DT_STRTAB]->d_un.d_ptr + + l->l_info[DT_RPATH]->d_un.d_val), + l); else l->l_rpath_dirs = NULL; } @@ -549,12 +604,44 @@ _dl_init_paths (const char *llp) "cannot create cache for search path"); (void) fillin_rpath (local_strdup (llp), env_path_list, ":;", - __libc_enable_secure ? system_dirs : NULL, - "LD_LIBRARY_PATH", NULL); + __libc_enable_secure, "LD_LIBRARY_PATH", NULL); } } +/* Think twice before changing anything in this function. It is placed + here and prepared using the `alloca' magic to prevent it from being + inlined. The function is only called in case of an error. But then + performance does not count. The function used to be "inlinable" and + the compiled did so all the time. This increased the code size for + absolutely no good reason. */ +#define LOSE(code, s) lose (code, fd, name, realname, l, s) +static void +__attribute__ ((noreturn)) +lose (int code, int fd, const char *name, char *realname, struct link_map *l, + const char *msg) +{ + /* The use of `alloca' here looks ridiculous but it helps. The goal + is to avoid the function from being inlined. There is no official + way to do this so we use this trick. gcc never inlines functions + which use `alloca'. */ + int *a = alloca (sizeof (int)); + a[0] = fd; + (void) __close (a[0]); + if (l != NULL) + { + /* Remove the stillborn object from the list and free it. */ + if (l->l_prev) + l->l_prev->l_next = l->l_next; + if (l->l_next) + l->l_next->l_prev = l->l_prev; + free (l); + } + free (realname); + _dl_signal_error (code, name, msg); +} + + /* Map in the shared object NAME, actually located in REALNAME, and already opened on FD. */ @@ -565,25 +652,23 @@ struct link_map * _dl_map_object_from_fd (const char *name, int fd, char *realname, struct link_map *loader, int l_type) { + /* This is the expected ELF header. */ +#define ELF32_CLASS ELFCLASS32 +#define ELF64_CLASS ELFCLASS64 + static const unsigned char expected[EI_PAD] = + { + [EI_MAG0] = ELFMAG0, + [EI_MAG1] = ELFMAG1, + [EI_MAG2] = ELFMAG2, + [EI_MAG3] = ELFMAG3, + [EI_CLASS] = ELFW(CLASS), + [EI_DATA] = byteorder, + [EI_VERSION] = EV_CURRENT, + [EI_OSABI] = ELFOSABI_SYSV, + [EI_ABIVERSION] = 0 + }; struct link_map *l = NULL; -#define LOSE(s) lose (0, (s)) - void lose (int code, const char *msg) - { - (void) __close (fd); - if (l) - { - /* Remove the stillborn object from the list and free it. */ - if (l->l_prev) - l->l_prev->l_next = l->l_next; - if (l->l_next) - l->l_next->l_prev = l->l_prev; - free (l); - } - free (realname); - _dl_signal_error (code, name, msg); - } - inline caddr_t map_segment (ElfW(Addr) mapstart, size_t len, int prot, int fixed, off_t offset) { @@ -591,7 +676,7 @@ _dl_map_object_from_fd (const char *name fixed|MAP_COPY|MAP_FILE, fd, offset); if (mapat == MAP_FAILED) - lose (errno, "failed to map segment from shared object"); + LOSE (errno, "failed to map segment from shared object"); return mapat; } @@ -602,10 +687,15 @@ _dl_map_object_from_fd (const char *name int type; char *readbuf; ssize_t readlength; + struct stat st; + + /* Get file information. */ + if (__fxstat (_STAT_VER, fd, &st) < 0) + LOSE (errno, "cannot stat shared object"); /* Look again to see if the real name matched another already loaded. */ for (l = _dl_loaded; l; l = l->l_next) - if (! strcmp (realname, l->l_name)) + if (l->l_ino == st.st_ino && l->l_dev == st.st_dev) { /* The object is already loaded. Just bump its reference count and return it. */ @@ -626,48 +716,52 @@ _dl_map_object_from_fd (const char *name /* Read the header directly. */ readbuf = alloca (_dl_pagesize); readlength = __libc_read (fd, readbuf, _dl_pagesize); - if (readlength < (ssize_t) sizeof(*header)) - lose (errno, "cannot read file data"); + if (readlength < (ssize_t) sizeof (*header)) + LOSE (errno, "cannot read file data"); header = (void *) readbuf; /* Check the header for basic validity. */ - if (*(Elf32_Word *) &header->e_ident != + if (memcmp (header->e_ident, expected, EI_PAD) != 0) + { + /* Something is wrong. */ + if (*(Elf32_Word *) &header->e_ident != #if BYTE_ORDER == LITTLE_ENDIAN - ((ELFMAG0 << (EI_MAG0 * 8)) | - (ELFMAG1 << (EI_MAG1 * 8)) | - (ELFMAG2 << (EI_MAG2 * 8)) | - (ELFMAG3 << (EI_MAG3 * 8))) + ((ELFMAG0 << (EI_MAG0 * 8)) | + (ELFMAG1 << (EI_MAG1 * 8)) | + (ELFMAG2 << (EI_MAG2 * 8)) | + (ELFMAG3 << (EI_MAG3 * 8))) #else - ((ELFMAG0 << (EI_MAG3 * 8)) | - (ELFMAG1 << (EI_MAG2 * 8)) | - (ELFMAG2 << (EI_MAG1 * 8)) | - (ELFMAG3 << (EI_MAG0 * 8))) + ((ELFMAG0 << (EI_MAG3 * 8)) | + (ELFMAG1 << (EI_MAG2 * 8)) | + (ELFMAG2 << (EI_MAG1 * 8)) | + (ELFMAG3 << (EI_MAG0 * 8))) #endif - ) - LOSE ("invalid ELF header"); -#define ELF32_CLASS ELFCLASS32 -#define ELF64_CLASS ELFCLASS64 - if (header->e_ident[EI_CLASS] != ELFW(CLASS)) - LOSE ("ELF file class not " STRING(__ELF_NATIVE_CLASS) "-bit"); - if (header->e_ident[EI_DATA] != byteorder) - LOSE ("ELF file data encoding not " byteorder_name); - if (header->e_ident[EI_VERSION] != EV_CURRENT) - LOSE ("ELF file version ident not " STRING(EV_CURRENT)); - /* XXX We should be able so set system specific versions which are - allowed here. */ - if (header->e_ident[EI_OSABI] != ELFOSABI_SYSV) - LOSE ("ELF file OS ABI not " STRING(ELFOSABI_SYSV)); - if (header->e_ident[EI_ABIVERSION] != 0) - LOSE ("ELF file ABI version not 0"); + ) + LOSE (0, "invalid ELF header"); + if (header->e_ident[EI_CLASS] != ELFW(CLASS)) + LOSE (0, "ELF file class not " STRING(__ELF_NATIVE_CLASS) "-bit"); + if (header->e_ident[EI_DATA] != byteorder) + LOSE (0, "ELF file data encoding not " byteorder_name); + if (header->e_ident[EI_VERSION] != EV_CURRENT) + LOSE (0, "ELF file version ident not " STRING(EV_CURRENT)); + /* XXX We should be able so set system specific versions which are + allowed here. */ + if (header->e_ident[EI_OSABI] != ELFOSABI_SYSV) + LOSE (0, "ELF file OS ABI not " STRING(ELFOSABI_SYSV)); + if (header->e_ident[EI_ABIVERSION] != 0) + LOSE (0, "ELF file ABI version not 0"); + LOSE (0, "internal error"); + } + if (header->e_version != EV_CURRENT) - LOSE ("ELF file version not " STRING(EV_CURRENT)); + LOSE (0, "ELF file version not " STRING(EV_CURRENT)); if (! elf_machine_matches_host (header->e_machine)) - LOSE ("ELF file machine architecture not " ELF_MACHINE_NAME); + LOSE (0, "ELF file machine architecture not " ELF_MACHINE_NAME); if (header->e_phentsize != sizeof (ElfW(Phdr))) - LOSE ("ELF file's phentsize not the expected size"); + LOSE (0, "ELF file's phentsize not the expected size"); #ifndef MAP_ANON -#define MAP_ANON 0 +# define MAP_ANON 0 if (_dl_zerofd == -1) { _dl_zerofd = _dl_sysdep_open_zero_fill (); @@ -682,7 +776,7 @@ _dl_map_object_from_fd (const char *name /* Enter the new object in the list of loaded objects. */ l = _dl_new_object (realname, name, l_type, loader); if (! l) - lose (ENOMEM, "cannot create shared object descriptor"); + LOSE (ENOMEM, "cannot create shared object descriptor"); l->l_opencount = 1; /* Extract the remaining details we need from the ELF header @@ -699,7 +793,7 @@ _dl_map_object_from_fd (const char *name phdr = alloca (maplength); __lseek (fd, SEEK_SET, header->e_phoff); if (__libc_read (fd, (void *) phdr, maplength) != maplength) - lose (errno, "cannot read file data"); + LOSE (errno, "cannot read file data"); } { @@ -712,9 +806,10 @@ _dl_map_object_from_fd (const char *name } loadcmds[l->l_phnum], *c; size_t nloadcmds = 0; + /* The struct is initialized to zero so this is not necessary: l->l_ld = 0; l->l_phdr = 0; - l->l_addr = 0; + l->l_addr = 0; */ for (ph = phdr; ph < &phdr[l->l_phnum]; ++ph) switch (ph->p_type) { @@ -732,9 +827,9 @@ _dl_map_object_from_fd (const char *name /* A load command tells us to map in part of the file. We record the load commands and process them all later. */ if (ph->p_align % _dl_pagesize != 0) - LOSE ("ELF load command alignment not page-aligned"); + LOSE (0, "ELF load command alignment not page-aligned"); if ((ph->p_vaddr - ph->p_offset) % ph->p_align) - LOSE ("ELF load command address/offset not properly aligned"); + LOSE (0, "ELF load command address/offset not properly aligned"); { struct loadcmd *c = &loadcmds[nloadcmds++]; c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); @@ -743,13 +838,21 @@ _dl_map_object_from_fd (const char *name c->dataend = ph->p_vaddr + ph->p_filesz; c->allocend = ph->p_vaddr + ph->p_memsz; c->mapoff = ph->p_offset & ~(ph->p_align - 1); - c->prot = 0; - if (ph->p_flags & PF_R) - c->prot |= PROT_READ; - if (ph->p_flags & PF_W) - c->prot |= PROT_WRITE; - if (ph->p_flags & PF_X) - c->prot |= PROT_EXEC; + + /* Optimize a common case. */ + if ((PF_R | PF_W | PF_X) == 7 + && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7) + c->prot = _dl_pf_to_prot[ph->p_flags & (PF_R | PF_W | PF_X)]; + else + { + c->prot = 0; + if (ph->p_flags & PF_R) + c->prot |= PROT_READ; + if (ph->p_flags & PF_W) + c->prot |= PROT_WRITE; + if (ph->p_flags & PF_X) + c->prot |= PROT_EXEC; + } break; } } @@ -814,6 +917,13 @@ _dl_map_object_from_fd (const char *name c->prot, MAP_FIXED, c->mapoff); postmap: + if (l->l_phdr == 0 + && c->mapoff <= header->e_phoff + && (c->mapend - c->mapstart + c->mapoff + >= header->e_phoff + header->e_phnum * sizeof (ElfW(Phdr)))) + /* Found the program header in this segment. */ + l->l_phdr = (void *) (c->mapstart + header->e_phoff - c->mapoff); + if (c->allocend > c->dataend) { /* Extra zero pages should appear at the end of this segment, @@ -837,7 +947,7 @@ _dl_map_object_from_fd (const char *name /* Dag nab it. */ if (__mprotect ((caddr_t) (zero & ~(_dl_pagesize - 1)), _dl_pagesize, c->prot|PROT_WRITE) < 0) - lose (errno, "cannot change memory protections"); + LOSE (errno, "cannot change memory protections"); } memset ((void *) zero, 0, zeropage - zero); if ((c->prot & PROT_WRITE) == 0) @@ -853,22 +963,26 @@ _dl_map_object_from_fd (const char *name c->prot, MAP_ANON|MAP_PRIVATE|MAP_FIXED, ANONFD, 0); if (mapat == MAP_FAILED) - lose (errno, "cannot map zero-fill pages"); + LOSE (errno, "cannot map zero-fill pages"); } } ++c; } - if (l->l_phdr == 0) + if (l->l_phdr == NULL) { - /* There was no PT_PHDR specified. We need to find the phdr in the - load image ourselves. We assume it is in fact in the load image - somewhere, and that the first load command starts at the - beginning of the file and thus contains the ELF file header. */ - ElfW(Addr) bof = l->l_addr + loadcmds[0].mapstart; - assert (loadcmds[0].mapoff == 0); - l->l_phdr = (void *) (bof + ((const ElfW(Ehdr) *) bof)->e_phoff); + /* The program header is not contained in any of the segmenst. + We have to allocate memory ourself and copy it over from + out temporary place. */ + ElfW(Phdr) *newp = (ElfW(Phdr) *) malloc (header->e_phnum + * sizeof (ElfW(Phdr))); + if (newp == NULL) + LOSE (ENOMEM, "cannot allocate memory for program header"); + + l->l_phdr = memcpy (newp, phdr, + (header->e_phnum * sizeof (ElfW(Phdr)))); + l->l_phdr_allocated = 1; } else /* Adjust the PT_PHDR value by the runtime load address. */ @@ -884,7 +998,7 @@ _dl_map_object_from_fd (const char *name if (l->l_ld == 0) { if (type == ET_DYN) - LOSE ("object file has no dynamic section"); + LOSE (0, "object file has no dynamic section"); } else (ElfW(Addr)) l->l_ld += l->l_addr; @@ -921,7 +1035,7 @@ _dl_map_object_from_fd (const char *name " phnum: ", buf3, "\n\n", NULL); } - elf_get_dynamic_info (l->l_ld, l->l_info); + elf_get_dynamic_info (l->l_ld, l->l_addr, l->l_info); if (l->l_info[DT_HASH]) _dl_setup_hash (l); @@ -939,7 +1053,7 @@ _dl_map_object_from_fd (const char *name (struct link_map **) malloc (sizeof (struct link_map *)); if (l->l_symbolic_searchlist.r_list == NULL) - lose (ENOMEM, "cannot create searchlist"); + LOSE (ENOMEM, "cannot create searchlist"); l->l_symbolic_searchlist.r_list[0] = l; l->l_symbolic_searchlist.r_nlist = 1; @@ -948,12 +1062,16 @@ _dl_map_object_from_fd (const char *name /* Now move the existing entries one back. */ memmove (&l->l_scope[1], &l->l_scope[0], - 3 * sizeof (struct r_scope_elem *)); + sizeof (l->l_scope) - sizeof (l->l_scope[0])); /* Now add the new entry. */ l->l_scope[0] = &l->l_symbolic_searchlist; } + /* Finally the file information. */ + l->l_dev = st.st_dev; + l->l_ino = st.st_ino; + return l; } @@ -1142,8 +1260,7 @@ _dl_map_object (struct link_map *loader, if (l->l_info[DT_SONAME] == NULL) continue; - soname = (const char *) (l->l_addr - + l->l_info[DT_STRTAB]->d_un.d_ptr + soname = (const void *) (l->l_info[DT_STRTAB]->d_un.d_ptr + l->l_info[DT_SONAME]->d_un.d_val); if (strcmp (name, soname) != 0) continue; @@ -1177,13 +1294,12 @@ _dl_map_object (struct link_map *loader, /* First try the DT_RPATH of the dependent object that caused NAME to be loaded. Then that object's dependent, and on up. */ for (l = loader; fd == -1 && l; l = l->l_loader) - if (l && l->l_info[DT_RPATH]) + if (l->l_info[DT_RPATH]) { /* Make sure the cache information is available. */ if (l->l_rpath_dirs == NULL) { - size_t ptrval = (l->l_addr - + l->l_info[DT_STRTAB]->d_un.d_ptr + size_t ptrval = (l->l_info[DT_STRTAB]->d_un.d_ptr + l->l_info[DT_RPATH]->d_un.d_val); l->l_rpath_dirs = decompose_rpath ((const char *) ptrval, l); @@ -1264,9 +1380,11 @@ _dl_map_object (struct link_map *loader, || (l = _dl_new_object (name_copy, name, type, loader)) == NULL) _dl_signal_error (ENOMEM, name, "cannot create shared object descriptor"); - /* We use an opencount of 0 as a sign for the faked entry. */ + /* We use an opencount of 0 as a sign for the faked entry. + Since the descriptor is initialized with zero we do not + have do this here. l->l_opencount = 0; - l->l_reserved = 0; + l->l_reserved = 0; */ l->l_buckets = &dummy_bucket; l->l_nbuckets = 1; l->l_relocated = 1; diff -durpN glibc-2.1/elf/dl-lookup.c glibc-2.1.1/elf/dl-lookup.c --- glibc-2.1/elf/dl-lookup.c Tue Dec 29 03:09:23 1998 +++ glibc-2.1.1/elf/dl-lookup.c Tue Feb 23 02:01:00 1999 @@ -1,5 +1,5 @@ /* Look up a symbol in the loaded objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -60,175 +60,15 @@ struct sym_val unsigned long int _dl_num_relocations; -/* Inner part of the lookup functions. We return a value > 0 if we - found the symbol, the value 0 if nothing is found and < 0 if - something bad happened. */ -static inline int -do_lookup (const char *undef_name, unsigned long int hash, - const ElfW(Sym) *ref, struct sym_val *result, - struct r_scope_elem *scope, size_t i, const char *reference_name, - const struct r_found_version *version, struct link_map *skip, - int reloc_type) -{ - struct link_map **list = scope->r_list; - size_t n = scope->r_nlist; - struct link_map *map; - - ++_dl_num_relocations; - - for (; i < n; ++i) - { - const ElfW(Sym) *symtab; - const char *strtab; - const ElfW(Half) *verstab; - ElfW(Symndx) symidx; - int num_versions = 0; - const ElfW(Sym) *sym; - const ElfW(Sym) *versioned_sym = NULL; - - map = list[i]; - - /* Here come the extra test needed for `_dl_lookup_symbol_skip'. */ - if (skip != NULL && map == skip) - continue; - - /* Skip objects that could not be opened, which can occur in trace - mode. */ - if (map->l_opencount == 0) - continue; - - /* Don't search the executable when resolving a copy reloc. */ - if (elf_machine_lookup_noexec_p (reloc_type) - && map->l_type == lt_executable) - continue; - - /* Skip objects without symbol tables. */ - if (map->l_info[DT_SYMTAB] == NULL) - continue; - - /* Print some debugging info if wanted. */ - if (_dl_debug_symbols) - _dl_debug_message (1, "symbol=", undef_name, "; lookup in file=", - map->l_name[0] ? map->l_name : _dl_argv[0], - "\n", NULL); - - symtab = ((void *) map->l_addr + map->l_info[DT_SYMTAB]->d_un.d_ptr); - strtab = ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr); - verstab = map->l_versyms; - - /* Search the appropriate hash bucket in this object's symbol table - for a definition for the same symbol name. */ - for (symidx = map->l_buckets[hash % map->l_nbuckets]; - symidx != STN_UNDEF; - symidx = map->l_chain[symidx]) - { - sym = &symtab[symidx]; - - if (sym->st_value == 0 || /* No value. */ - (elf_machine_lookup_noplt_p (reloc_type) /* Reject PLT entry. */ - && sym->st_shndx == SHN_UNDEF)) - continue; - - if (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC) - /* Ignore all but STT_NOTYPE, STT_OBJECT and STT_FUNC entries - since these are no code/data definitions. */ - continue; - - if (sym != ref && strcmp (strtab + sym->st_name, undef_name)) - /* Not the symbol we are looking for. */ - continue; - - if (version == NULL) - { - /* No specific version is selected. When the object - file also does not define a version we have a match. - Otherwise we accept the default version, or in case - there is only one version defined, this one version. */ - if (verstab != NULL) - { - ElfW(Half) ndx = verstab[symidx] & 0x7fff; - if (ndx > 2) /* map->l_versions[ndx].hash != 0) */ - { - /* Don't accept hidden symbols. */ - if ((verstab[symidx] & 0x8000) == 0 - && num_versions++ == 0) - /* No version so far. */ - versioned_sym = sym; - continue; - } - } - } - else - { - if (verstab == NULL) - { - /* We need a versioned system but haven't found any. - If this is the object which is referenced in the - verneed entry it is a bug in the library since a - symbol must not simply disappear. */ - if (version->filename != NULL - && _dl_name_match_p (version->filename, map)) - return -2; - /* Otherwise we accept the symbol. */ - } - else - { - /* We can match the version information or use the - default one if it is not hidden. */ - ElfW(Half) ndx = verstab[symidx] & 0x7fff; - if ((map->l_versions[ndx].hash != version->hash - || strcmp (map->l_versions[ndx].name, version->name)) - && (version->hidden || map->l_versions[ndx].hash - || (verstab[symidx] & 0x8000))) - /* It's not the version we want. */ - continue; - } - } - - /* There cannot be another entry for this symbol so stop here. */ - goto found_it; - } - - /* If we have seem exactly one versioned symbol while we are - looking for an unversioned symbol and the version is not the - default version we still accept this symbol since there are - no possible ambiguities. */ - sym = num_versions == 1 ? versioned_sym : NULL; - - if (sym != NULL) - { - found_it: - switch (ELFW(ST_BIND) (sym->st_info)) - { - case STB_GLOBAL: - /* Global definition. Just what we need. */ - result->s = sym; - result->m = map; - return 1; - case STB_WEAK: - /* Weak definition. Use this value if we don't find another. */ - if (! result->s) - { - result->s = sym; - result->m = map; - } - break; - default: - /* Local symbols are ignored. */ - break; - } - } +/* We have two different situations when looking up a simple: with or + without versioning. gcc is not able to optimize a single function + definition serving for both purposes so we define two functions. */ +#define VERSIONED 0 +#include "do-lookup.h" - /* If this current map is the one mentioned in the verneed entry - and we have not found a weak entry, it is a bug. */ - if (symidx == STN_UNDEF && version != NULL && version->filename != NULL - && _dl_name_match_p (version->filename, map)) - return -1; - } +#define VERSIONED 1 +#include "do-lookup.h" - /* We have not found anything until now. */ - return 0; -} /* Search loaded objects' symbol tables for a definition of the symbol UNDEF_NAME. */ @@ -244,20 +84,22 @@ _dl_lookup_symbol (const char *undef_nam struct sym_val current_value = { NULL, NULL }; struct r_scope_elem **scope; + ++_dl_num_relocations; + /* Search the relevant loaded objects for a definition. */ for (scope = symbol_scope; *scope; ++scope) if (do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, 0, reference_name, NULL, NULL, reloc_type)) + *scope, 0, reference_name, NULL, reloc_type)) break; if (current_value.s == NULL) { if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) /* We could find no value for a strong reference. */ - _dl_signal_error (0, (reference_name && reference_name[0] - ? reference_name - : (_dl_argv[0] ?: "
")), - make_string (undefined_msg, undef_name)); + _dl_signal_cerror (0, (reference_name && reference_name[0] + ? reference_name + : (_dl_argv[0] ?: "
")), + make_string (undefined_msg, undef_name)); *ref = NULL; return 0; } @@ -293,16 +135,19 @@ _dl_lookup_symbol_skip (const char *unde struct r_scope_elem **scope; size_t i; + ++_dl_num_relocations; + /* Search the relevant loaded objects for a definition. */ scope = symbol_scope; for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i) assert (i < (*scope)->r_nduplist); - if (! do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, i, reference_name, NULL, skip_map, 0)) + if (i >= (*scope)->r_nlist + || ! do_lookup (undef_name, hash, *ref, ¤t_value, + *scope, i, reference_name, skip_map, 0)) while (*++scope) if (do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, 0, reference_name, NULL, skip_map, 0)) + *scope, 0, reference_name, skip_map, 0)) break; if (current_value.s == NULL) @@ -342,38 +187,45 @@ _dl_lookup_versioned_symbol (const char struct sym_val current_value = { NULL, NULL }; struct r_scope_elem **scope; + ++_dl_num_relocations; + /* Search the relevant loaded objects for a definition. */ for (scope = symbol_scope; *scope; ++scope) { - int res = do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, 0, reference_name, version, NULL, reloc_type); + int res = do_lookup_versioned (undef_name, hash, *ref, ¤t_value, + *scope, 0, reference_name, version, NULL, + reloc_type); if (res > 0) break; if (res < 0) - /* Oh, oh. The file named in the relocation entry does not - contain the needed symbol. */ - _dl_signal_error (0, (reference_name && reference_name[0] - ? reference_name - : (_dl_argv[0] ?: "
")), - make_string ("symbol ", undef_name, ", version ", - version->name, - " not defined in file ", - version->filename, - " with link time reference", - res == -2 - ? " (no version symbols)" : "")); + { + /* Oh, oh. The file named in the relocation entry does not + contain the needed symbol. */ + _dl_signal_cerror (0, (reference_name && reference_name[0] + ? reference_name + : (_dl_argv[0] ?: "
")), + make_string ("symbol ", undef_name, ", version ", + version->name, + " not defined in file ", + version->filename, + " with link time reference", + res == -2 + ? " (no version symbols)" : "")); + *ref = NULL; + return 0; + } } if (current_value.s == NULL) { if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) /* We could find no value for a strong reference. */ - _dl_signal_error (0, (reference_name && reference_name[0] - ? reference_name - : (_dl_argv[0] ?: "
")), - make_string (undefined_msg, undef_name, - ", version ", version->name ?: NULL)); + _dl_signal_cerror (0, (reference_name && reference_name[0] + ? reference_name + : (_dl_argv[0] ?: "
")), + make_string (undefined_msg, undef_name, + ", version ", version->name ?: NULL)); *ref = NULL; return 0; } @@ -409,16 +261,19 @@ _dl_lookup_versioned_symbol_skip (const struct r_scope_elem **scope; size_t i; + ++_dl_num_relocations; + /* Search the relevant loaded objects for a definition. */ scope = symbol_scope; for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i) assert (i < (*scope)->r_nduplist); - if (! do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, i, reference_name, version, skip_map, 0)) + if (i >= (*scope)->r_nlist + || ! do_lookup_versioned (undef_name, hash, *ref, ¤t_value, *scope, + i, reference_name, version, skip_map, 0)) while (*++scope) - if (do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, 0, reference_name, version, skip_map, 0)) + if (do_lookup_versioned (undef_name, hash, *ref, ¤t_value, *scope, + 0, reference_name, version, skip_map, 0)) break; if (current_value.s == NULL) @@ -430,9 +285,9 @@ _dl_lookup_versioned_symbol_skip (const char buf[sizeof undefined_msg + len]; __mempcpy (__mempcpy (buf, undefined_msg, sizeof undefined_msg - 1), undef_name, len + 1); - _dl_signal_error (0, (reference_name && reference_name[0] - ? reference_name - : (_dl_argv[0] ?: "
")), buf); + _dl_signal_cerror (0, (reference_name && reference_name[0] + ? reference_name + : (_dl_argv[0] ?: "
")), buf); } *ref = NULL; return 0; diff -durpN glibc-2.1/elf/dl-open.c glibc-2.1.1/elf/dl-open.c --- glibc-2.1/elf/dl-open.c Thu Jan 21 21:49:39 1999 +++ glibc-2.1.1/elf/dl-open.c Tue May 11 19:11:28 1999 @@ -17,14 +17,18 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include #include #include #include /* Check whether MAP_COPY is defined. */ +#include #include #include +#include + extern ElfW(Addr) _dl_sysdep_start (void **start_argptr, void (*dl_main) (const ElfW(Phdr) *phdr, @@ -42,6 +46,8 @@ extern char **__libc_argv; extern char **__environ; +extern int _dl_lazy; /* Do we do lazy relocations? */ + /* Undefine the following for debugging. */ /* #define SCOPE_DEBUG 1 */ #ifdef SCOPE_DEBUG @@ -57,6 +63,7 @@ static void show_scope (struct link_map At this time it is not anymore a problem to modify the tables. */ __libc_lock_define_initialized_recursive (, _dl_load_lock) +extern size_t _dl_platformlen; /* We must be carefull not to leave us in an inconsistent state. Thus we catch any error and re-raise it after cleaning up. */ @@ -65,6 +72,7 @@ struct dl_open_args { const char *file; int mode; + const void *caller; struct link_map *map; }; @@ -78,6 +86,51 @@ dl_open_worker (void *a) ElfW(Addr) init; struct r_debug *r; unsigned int global_add; + const char *dst; + int lazy; + + /* Maybe we have to expand a DST. */ + dst = strchr (file, '$'); + if (dst != NULL) + { + const void *caller = args->caller; + size_t len = strlen (file); + size_t required; + struct link_map *call_map; + char *new_file; + + /* We have to find out from which object the caller is calling. + Find the highest-addressed object that ADDRESS is not below. */ + call_map = NULL; + for (l = _dl_loaded; l; l = l->l_next) + if (l->l_addr != 0 /* Make sure we do not currently set this map up + in this moment. */ + && caller >= (const void *) l->l_addr + && (call_map == NULL || call_map->l_addr < l->l_addr)) + call_map = l; + + if (call_map == NULL) + /* In this case we assume this is the main application. */ + call_map = _dl_loaded; + + /* Determine how much space we need. We have to allocate the + memory locally. */ + required = DL_DST_REQUIRED (call_map, file, len, _dl_dst_count (dst, 0)); + + /* Get space for the new file name. */ + new_file = (char *) alloca (required + 1); + + /* Generate the new file name. */ + DL_DST_SUBSTITUTE (call_map, file, new_file, 0); + + /* If the substitution failed don't try to load. */ + if (*new_file == '\0') + _dl_signal_error (0, "dlopen", + "empty dynamics string token substitution"); + + /* Now we have a new file name. */ + file = new_file; + } /* Load the named object. */ args->map = new = _dl_map_object (NULL, file, 0, lt_loaded, 0); @@ -95,6 +148,9 @@ dl_open_worker (void *a) show_scope (new); #endif + /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ + lazy = (mode & RTLD_BINDING_MASK) == RTLD_LAZY && _dl_lazy; + /* Relocate the objects loaded. We do this in reverse order so that copy relocs of earlier objects overwrite the data written by later objects. */ @@ -123,8 +179,7 @@ dl_open_worker (void *a) } else #endif - _dl_relocate_object (l, l->l_scope, - (mode & RTLD_BINDING_MASK) == RTLD_LAZY, 0); + _dl_relocate_object (l, l->l_scope, lazy, 0); } if (l == new) @@ -157,7 +212,7 @@ dl_open_worker (void *a) struct link_map * internal_function -_dl_open (const char *file, int mode) +_dl_open (const char *file, int mode, const void *caller) { struct dl_open_args args; char *errstring; @@ -172,6 +227,7 @@ _dl_open (const char *file, int mode) args.file = file; args.mode = mode; + args.caller = caller; args.map = NULL; errcode = _dl_catch_error (&errstring, dl_open_worker, &args); diff -durpN glibc-2.1/elf/dl-reloc.c glibc-2.1.1/elf/dl-reloc.c --- glibc-2.1/elf/dl-reloc.c Fri Sep 4 03:04:37 1998 +++ glibc-2.1.1/elf/dl-reloc.c Mon Feb 22 17:25:28 1999 @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -66,8 +66,8 @@ _dl_relocate_object (struct link_map *l, { /* Do the actual relocation of the object's GOT and other data. */ - const char *strtab /* String table object symbols. */ - = ((void *) l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr); + /* String table object symbols. */ + const char *strtab = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr; /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ #define RESOLVE(ref, version, flags) \ @@ -108,11 +108,21 @@ _dl_relocate_object (struct link_map *l, caddr_t mapend = ((caddr_t) l->l_addr + ((ph->p_vaddr + ph->p_memsz + _dl_pagesize - 1) & ~(_dl_pagesize - 1))); - int prot = 0; - if (ph->p_flags & PF_R) - prot |= PROT_READ; - if (ph->p_flags & PF_X) - prot |= PROT_EXEC; + extern unsigned char _dl_pf_to_prot[8]; + int prot; + + if ((PF_R | PF_W | PF_X) == 7 + && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7) + prot = _dl_pf_to_prot[ph->p_flags & (PF_R | PF_X)]; + else + { + prot = 0; + if (ph->p_flags & PF_R) + prot |= PROT_READ; + if (ph->p_flags & PF_X) + prot |= PROT_EXEC; + } + if (__mprotect (mapstart, mapend - mapstart, prot) < 0) _dl_signal_error (errno, l->l_name, "can't restore segment prot after reloc"); diff -durpN glibc-2.1/elf/dl-runtime.c glibc-2.1.1/elf/dl-runtime.c --- glibc-2.1/elf/dl-runtime.c Thu Nov 26 17:31:55 1998 +++ glibc-2.1.1/elf/dl-runtime.c Mon Feb 22 17:25:29 1999 @@ -1,5 +1,5 @@ /* On-demand PLT fixup for shared objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -48,13 +48,11 @@ fixup ( struct link_map *l, ElfW(Word) reloc_offset) { const ElfW(Sym) *const symtab - = (const ElfW(Sym) *) (l->l_addr + l->l_info[DT_SYMTAB]->d_un.d_ptr); - const char *strtab = - (const char *) (l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr); + = (const void *) l->l_info[DT_SYMTAB]->d_un.d_ptr; + const char *strtab = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr; const PLTREL *const reloc - = (const void *) (l->l_addr + l->l_info[DT_JMPREL]->d_un.d_ptr + - reloc_offset); + = (const void *) (l->l_info[DT_JMPREL]->d_un.d_ptr + reloc_offset); const ElfW(Sym) *sym = &symtab[ELFW(R_SYM) (reloc->r_info)]; void *const rel_addr = (void *)(l->l_addr + reloc->r_offset); ElfW(Addr) value; @@ -67,8 +65,8 @@ fixup ( { default: { - const ElfW(Half) *vernum = (const ElfW(Half) *) - (l->l_addr + l->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr); + const ElfW(Half) *vernum = + (const void *) l->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr; ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info)]; const struct r_found_version *version = &l->l_versions[ndx]; @@ -121,13 +119,11 @@ profile_fixup ( { /* This is the first time we have to relocate this object. */ const ElfW(Sym) *const symtab - = (const ElfW(Sym) *) (l->l_addr + l->l_info[DT_SYMTAB]->d_un.d_ptr); - const char *strtab = - (const char *) (l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr); + = (const void *) l->l_info[DT_SYMTAB]->d_un.d_ptr; + const char *strtab = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr; const PLTREL *const reloc - = (const void *) (l->l_addr + l->l_info[DT_JMPREL]->d_un.d_ptr + - reloc_offset); + = (const void *) (l->l_info[DT_JMPREL]->d_un.d_ptr + reloc_offset); const ElfW(Sym) *sym = &symtab[ELFW(R_SYM) (reloc->r_info)]; /* Sanity check that we're really looking at a PLT relocation. */ @@ -138,8 +134,8 @@ profile_fixup ( { default: { - const ElfW(Half) *vernum = (const ElfW(Half) *) - (l->l_addr + l->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr); + const ElfW(Half) *vernum = + (const void *) l->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr; ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info)]; const struct r_found_version *version = &l->l_versions[ndx]; diff -durpN glibc-2.1/elf/dl-support.c glibc-2.1.1/elf/dl-support.c --- glibc-2.1/elf/dl-support.c Wed Oct 7 20:24:10 1998 +++ glibc-2.1.1/elf/dl-support.c Tue May 11 19:16:59 1999 @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999 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 @@ -40,6 +40,7 @@ int _dl_debug_symbols; int _dl_debug_versions; int _dl_debug_reloc; int _dl_debug_files; +int _dl_lazy; /* If nonzero print warnings about problematic situations. */ int _dl_verbose; @@ -89,6 +90,8 @@ non_dynamic_init (void) /* Initialize the data structures for the search paths for shared objects. */ _dl_init_paths (getenv ("LD_LIBRARY_PATH")); + + _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; #ifdef DL_PLATFORM_INIT DL_PLATFORM_INIT; diff -durpN glibc-2.1/elf/dl-version.c glibc-2.1.1/elf/dl-version.c --- glibc-2.1/elf/dl-version.c Sat Sep 5 01:11:38 1998 +++ glibc-2.1.1/elf/dl-version.c Tue Feb 23 02:01:00 1999 @@ -1,5 +1,5 @@ /* Handle symbol and library versioning. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -28,7 +28,9 @@ #include -#define VERSTAG(tag) (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (tag)) +#ifndef VERSYMIDX +# define VERSYMIDX(tag) (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (tag)) +#endif #define make_string(string, rest...) \ @@ -75,8 +77,7 @@ internal_function match_symbol (const char *name, ElfW(Word) hash, const char *string, struct link_map *map, int verbose, int weak) { - const char *strtab = (const char *) (map->l_addr - + map->l_info[DT_STRTAB]->d_un.d_ptr); + const char *strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr; ElfW(Addr) def_offset; ElfW(Verdef) *def; @@ -86,19 +87,20 @@ match_symbol (const char *name, ElfW(Wor map->l_name[0] ? map->l_name : _dl_argv[0], " required by file ", name, "\n", NULL); - if (map->l_info[VERSTAG (DT_VERDEF)] == NULL) + if (map->l_info[VERSYMIDX (DT_VERDEF)] == NULL) { /* The file has no symbol versioning. I.e., the dependent object was linked against another version of this file. We only print a message if verbose output is requested. */ if (verbose) - _dl_signal_error (0, map->l_name, make_string ("\ + _dl_signal_cerror (0, map->l_name, + make_string ("\ no version information available (required by ", - name, ")")); + name, ")")); return 0; } - def_offset = map->l_info[VERSTAG (DT_VERDEF)]->d_un.d_ptr; + def_offset = map->l_info[VERSYMIDX (DT_VERDEF)]->d_un.d_ptr; assert (def_offset != 0); def = (ElfW(Verdef) *) ((char *) map->l_addr + def_offset); @@ -142,16 +144,16 @@ no version information available (requir if (weak) { if (verbose) - _dl_signal_error (0, map->l_name, - make_string ("weak version `", string, - "' not found (required by ", name, - ")")); + _dl_signal_cerror (0, map->l_name, + make_string ("weak version `", string, + "' not found (required by ", name, + ")")); return 0; } - _dl_signal_error (0, map->l_name, - make_string ("version `", string, - "' not found (required by ", name, ")")); + _dl_signal_cerror (0, map->l_name, + make_string ("version `", string, + "' not found (required by ", name, ")")); return 1; } @@ -173,10 +175,10 @@ _dl_check_map_versions (struct link_map /* If we don't have a string table, we must be ok. */ if (map->l_info[DT_STRTAB] == NULL) return 0; - strtab = (const char *) (map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr); + strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr; - dyn = map->l_info[VERSTAG (DT_VERNEED)]; - def = map->l_info[VERSTAG (DT_VERDEF)]; + dyn = map->l_info[VERSYMIDX (DT_VERNEED)]; + def = map->l_info[VERSYMIDX (DT_VERDEF)]; if (dyn != NULL) { @@ -282,8 +284,8 @@ _dl_check_map_versions (struct link_map map->l_nversions = ndx_high + 1; /* Compute the pointer to the version symbols. */ - map->l_versyms = ((void *) map->l_addr - + map->l_info[VERSTAG (DT_VERSYM)]->d_un.d_ptr); + map->l_versyms = + (void *) map->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr; if (dyn != NULL) { diff -durpN glibc-2.1/elf/dlfcn.h glibc-2.1.1/elf/dlfcn.h --- glibc-2.1/elf/dlfcn.h Sat Dec 5 00:38:11 1998 +++ glibc-2.1.1/elf/dlfcn.h Tue Feb 16 23:11:03 1999 @@ -1,5 +1,5 @@ /* User functions for run-time dynamic loading. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -24,7 +24,7 @@ #define __need_NULL #include -/* Collect various system dependand definitions and declarations. */ +/* Collect various system dependent definitions and declarations. */ #include /* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT diff -durpN glibc-2.1/elf/dlopen.c glibc-2.1.1/elf/dlopen.c --- glibc-2.1/elf/dlopen.c Tue Nov 3 06:15:34 1998 +++ glibc-2.1.1/elf/dlopen.c Thu May 6 18:14:30 1999 @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -28,6 +28,8 @@ struct dlopen_args int mode; /* The return value of dlopen_doit. */ struct link_map *new; + /* Address of the caller. */ + const void *caller; }; @@ -36,7 +38,7 @@ dlopen_doit (void *a) { struct dlopen_args *args = (struct dlopen_args *) a; - args->new = _dl_open (args->file ?: "", args->mode); + args->new = _dl_open (args->file ?: "", args->mode, args->caller); } @@ -46,6 +48,7 @@ __dlopen_check (const char *file, int mo struct dlopen_args args; args.file = file; args.mode = mode; + args.caller = __builtin_return_address (0); return _dlerror_run (dlopen_doit, &args) ? NULL : args.new; } diff -durpN glibc-2.1/elf/dlopenold.c glibc-2.1.1/elf/dlopenold.c --- glibc-2.1/elf/dlopenold.c Thu Nov 5 07:03:01 1998 +++ glibc-2.1.1/elf/dlopenold.c Thu May 6 18:14:31 1999 @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -17,14 +17,14 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* This file is for compatibility with glibc 2.0. Compile it only if - versioning is used. */ -#if defined PIC && DO_VERSIONING - #include #include #include +/* This file is for compatibility with glibc 2.0. Compile it only if + versioning is used. */ +#if defined PIC && DO_VERSIONING + struct dlopen_args { /* The arguments for dlopen_doit. */ @@ -32,6 +32,8 @@ struct dlopen_args int mode; /* The return value of dlopen_doit. */ struct link_map *new; + /* Address of the caller. */ + const void *caller; }; @@ -40,7 +42,7 @@ dlopen_doit (void *a) { struct dlopen_args *args = (struct dlopen_args *) a; - args->new = _dl_open (args->file ?: "", args->mode); + args->new = _dl_open (args->file ?: "", args->mode, args->caller); } @@ -49,6 +51,7 @@ __dlopen_nocheck (const char *file, int { struct dlopen_args args; args.file = file; + args.caller = __builtin_return_address (0); if ((mode & RTLD_BINDING_MASK) == 0) /* By default assume RTLD_LAZY. */ diff -durpN glibc-2.1/elf/do-lookup.h glibc-2.1.1/elf/do-lookup.h --- glibc-2.1/elf/do-lookup.h Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/elf/do-lookup.h Tue May 11 19:38:57 1999 @@ -0,0 +1,193 @@ +/* Look up a symbol in the loaded objects. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 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. */ + +#if VERSIONED +# define FCT do_lookup_versioned +# define ARG const struct r_found_version *const version, +#else +# define FCT do_lookup +# define ARG +#endif + +/* Inner part of the lookup functions. We return a value > 0 if we + found the symbol, the value 0 if nothing is found and < 0 if + something bad happened. */ +static inline int +FCT (const char *undef_name, unsigned long int hash, + const ElfW(Sym) *ref, struct sym_val *result, + struct r_scope_elem *scope, size_t i, const char *reference_name, + ARG struct link_map *skip, int reloc_type) +{ + struct link_map **list = scope->r_list; + size_t n = scope->r_nlist; + struct link_map *map; + + do + { + const ElfW(Sym) *symtab; + const char *strtab; + const ElfW(Half) *verstab; + ElfW(Symndx) symidx; + const ElfW(Sym) *sym; +#if ! VERSIONED + int num_versions = 0; + const ElfW(Sym) *versioned_sym = NULL; +#endif + + map = list[i]; + + /* Here come the extra test needed for `_dl_lookup_symbol_skip'. */ + if (skip != NULL && map == skip) + continue; + + /* Don't search the executable when resolving a copy reloc. */ + if (elf_machine_lookup_noexec_p (reloc_type) + && map->l_type == lt_executable) + continue; + + /* Print some debugging info if wanted. */ + if (_dl_debug_symbols) + _dl_debug_message (1, "symbol=", undef_name, "; lookup in file=", + map->l_name[0] ? map->l_name : _dl_argv[0], + "\n", NULL); + + symtab = (const void *) map->l_info[DT_SYMTAB]->d_un.d_ptr; + strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr; + verstab = map->l_versyms; + + /* Search the appropriate hash bucket in this object's symbol table + for a definition for the same symbol name. */ + for (symidx = map->l_buckets[hash % map->l_nbuckets]; + symidx != STN_UNDEF; + symidx = map->l_chain[symidx]) + { + sym = &symtab[symidx]; + + if (sym->st_value == 0 || /* No value. */ + (elf_machine_lookup_noplt_p (reloc_type) /* Reject PLT entry. */ + && sym->st_shndx == SHN_UNDEF)) + continue; + + if (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC) + /* Ignore all but STT_NOTYPE, STT_OBJECT and STT_FUNC entries + since these are no code/data definitions. */ + continue; + + if (sym != ref && strcmp (strtab + sym->st_name, undef_name)) + /* Not the symbol we are looking for. */ + continue; + +#if VERSIONED + if (verstab == NULL) + { + /* We need a versioned symbol but haven't found any. If + this is the object which is referenced in the verneed + entry it is a bug in the library since a symbol must + not simply disappear. */ + if (version->filename != NULL + && _dl_name_match_p (version->filename, map)) + return -2; + /* Otherwise we accept the symbol. */ + } + else + { + /* We can match the version information or use the + default one if it is not hidden. */ + ElfW(Half) ndx = verstab[symidx] & 0x7fff; + if ((map->l_versions[ndx].hash != version->hash + || strcmp (map->l_versions[ndx].name, version->name)) + && (version->hidden || map->l_versions[ndx].hash + || (verstab[symidx] & 0x8000))) + /* It's not the version we want. */ + continue; + } +#else + /* No specific version is selected. When the object file + also does not define a version we have a match. + Otherwise we accept the default version, or in case there + is only one version defined, this one version. */ + if (verstab != NULL) + { + ElfW(Half) ndx = verstab[symidx] & 0x7fff; + if (ndx > 2) /* map->l_versions[ndx].hash != 0) */ + { + /* Don't accept hidden symbols. */ + if ((verstab[symidx] & 0x8000) == 0 && num_versions++ == 0) + /* No version so far. */ + versioned_sym = sym; + continue; + } + } +#endif + + /* There cannot be another entry for this symbol so stop here. */ + goto found_it; + } + + /* If we have seen exactly one versioned symbol while we are + looking for an unversioned symbol and the version is not the + default version we still accept this symbol since there are + no possible ambiguities. */ +#if VERSIONED + sym = NULL; +#else + sym = num_versions == 1 ? versioned_sym : NULL; +#endif + + if (sym != NULL) + { + found_it: + switch (ELFW(ST_BIND) (sym->st_info)) + { + case STB_GLOBAL: + /* Global definition. Just what we need. */ + result->s = sym; + result->m = map; + return 1; + case STB_WEAK: + /* Weak definition. Use this value if we don't find another. */ + if (! result->s) + { + result->s = sym; + result->m = map; + } + break; + default: + /* Local symbols are ignored. */ + break; + } + } + +#if VERSIONED + /* If this current map is the one mentioned in the verneed entry + and we have not found a weak entry, it is a bug. */ + if (symidx == STN_UNDEF && version->filename != NULL + && _dl_name_match_p (version->filename, map)) + return -1; +#endif + } + while (++i < n); + + /* We have not found anything until now. */ + return 0; +} + +#undef FCT +#undef ARG +#undef VERSIONED diff -durpN glibc-2.1/elf/do-rel.h glibc-2.1.1/elf/do-rel.h --- glibc-2.1/elf/do-rel.h Sat Aug 29 05:15:02 1998 +++ glibc-2.1.1/elf/do-rel.h Mon Feb 22 17:25:31 1999 @@ -1,5 +1,5 @@ /* Do relocations for ELF dynamic linking. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -40,8 +40,8 @@ elf_dynamic_do_rel (struct link_map *map ElfW(Addr) reladdr, ElfW(Addr) relsize, int lazy) { - const ElfW(Rel) *r = (const ElfW(Rel) *)(map->l_addr + reladdr); - const ElfW(Rel) *end = (const ElfW(Rel) *)(map->l_addr + reladdr + relsize); + const ElfW(Rel) *r = (const void *) reladdr; + const ElfW(Rel) *end = (const void *) (reladdr + relsize); if (lazy) { @@ -53,13 +53,12 @@ elf_dynamic_do_rel (struct link_map *map else { const ElfW(Sym) *const symtab = - (const ElfW(Sym) *) (map->l_addr + map->l_info[DT_SYMTAB]->d_un.d_ptr); + (const void *) map->l_info[DT_SYMTAB]->d_un.d_ptr; if (map->l_info[VERSYMIDX (DT_VERSYM)]) { const ElfW(Half) *const version = - (const ElfW(Half) *) (map->l_addr - + map->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr); + (const void *) map->l_info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr; for (; r < end; ++r) { diff -durpN glibc-2.1/elf/dynamic-link.h glibc-2.1.1/elf/dynamic-link.h --- glibc-2.1/elf/dynamic-link.h Thu Nov 12 19:11:07 1998 +++ glibc-2.1.1/elf/dynamic-link.h Mon Feb 22 17:25:33 1999 @@ -1,5 +1,5 @@ /* Inline functions for dynamic linking. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -21,6 +21,10 @@ #include #include +#ifndef VERSYMIDX +# define VERSYMIDX(sym) (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym)) +#endif + /* Global read-only variable defined in rtld.c which is nonzero if we shall give more warning messages. */ @@ -30,15 +34,10 @@ extern int _dl_verbose __attribute__ ((u /* Read the dynamic section at DYN and fill in INFO with indices DT_*. */ static inline void __attribute__ ((unused)) -elf_get_dynamic_info (ElfW(Dyn) *dyn, +elf_get_dynamic_info (ElfW(Dyn) *dyn, ElfW(Addr) l_addr, ElfW(Dyn) *info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM]) { - unsigned int i; - - for (i = 0; i < DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM; ++i) - info[i] = NULL; - if (! dyn) return; @@ -50,7 +49,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, dyn->d_tag < DT_LOPROC + DT_PROCNUM) info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn; else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM) - info[DT_VERSIONTAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM] = dyn; + info[VERSYMIDX (dyn->d_tag)] = dyn; else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM) info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM] = dyn; @@ -59,13 +58,41 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ++dyn; } - if (info[DT_RELA]) - assert (info[DT_RELAENT]->d_un.d_val == sizeof (ElfW(Rela))); - if (info[DT_REL]) - assert (info[DT_RELENT]->d_un.d_val == sizeof (ElfW(Rel))); - if (info[DT_PLTREL]) - assert (info[DT_PLTREL]->d_un.d_val == DT_REL || - info[DT_PLTREL]->d_un.d_val == DT_RELA); + if (info[DT_PLTGOT] != NULL) + info[DT_PLTGOT]->d_un.d_ptr += l_addr; + if (info[DT_STRTAB] != NULL) + info[DT_STRTAB]->d_un.d_ptr += l_addr; + if (info[DT_SYMTAB] != NULL) + info[DT_SYMTAB]->d_un.d_ptr += l_addr; +#if ! ELF_MACHINE_NO_RELA + if (info[DT_RELA] != NULL) + { + assert (info[DT_RELAENT]->d_un.d_val == sizeof (ElfW(Rela))); + info[DT_RELA]->d_un.d_ptr += l_addr; + } +#endif +#if ! ELF_MACHINE_NO_REL + if (info[DT_REL] != NULL) + { + assert (info[DT_RELENT]->d_un.d_val == sizeof (ElfW(Rel))); + info[DT_REL]->d_un.d_ptr += l_addr; + } +#endif + if (info[DT_PLTREL] != NULL) + { +#if ELF_MACHINE_NO_RELA + assert (info[DT_PLTREL]->d_un.d_val == DT_REL); +#elif ELF_MACHINE_NO_REL + assert (info[DT_PLTREL]->d_un.d_val == DT_RELA); +#else + assert (info[DT_PLTREL]->d_un.d_val == DT_REL + || info[DT_PLTREL]->d_un.d_val == DT_RELA); +#endif + } + if (info[DT_JMPREL] != NULL) + info[DT_JMPREL]->d_un.d_ptr += l_addr; + if (info[VERSYMIDX (DT_VERSYM)] != NULL) + info[VERSYMIDX (DT_VERSYM)]->d_un.d_ptr += l_addr; } #ifdef RESOLVE @@ -75,13 +102,13 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, duplicating their code. It cannot be done in a more general function because we must be able to completely inline. */ -/* On some machines, notably Sparc, DT_REL* includes DT_JMPREL in its +/* On some machines, notably SPARC, DT_REL* includes DT_JMPREL in its range. Note that according to the ELF spec, this is completely legal! But conditionally define things so that on machines we know this will not happen we do something more optimal. */ -#ifdef ELF_MACHINE_PLTREL_OVERLAP -#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \ +# ifdef ELF_MACHINE_PLTREL_OVERLAP +# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ do { \ struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \ int ranges_index; \ @@ -98,7 +125,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, \ if ((do_lazy) \ && (map)->l_info[DT_PLTREL] \ - && (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC) \ + && (!test_rel || (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC)) \ { \ ranges[1].start = (map)->l_info[DT_JMPREL]->d_un.d_ptr; \ ranges[1].size = (map)->l_info[DT_PLTRELSZ]->d_un.d_val; \ @@ -113,8 +140,8 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ranges[ranges_index].size, \ ranges[ranges_index].lazy); \ } while (0) -#else -#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \ +# else +# define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, test_rel) \ do { \ struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \ int ranges_index; \ @@ -127,8 +154,8 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ranges[0].start = (map)->l_info[DT_##RELOC]->d_un.d_ptr; \ ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val; \ } \ - if ((map)->l_info[DT_PLTREL] && \ - (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC) \ + if ((map)->l_info[DT_PLTREL] \ + && (!test_rel || (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC)) \ { \ ElfW(Addr) start = (map)->l_info[DT_JMPREL]->d_un.d_ptr; \ \ @@ -153,28 +180,34 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ranges[ranges_index].size, \ ranges[ranges_index].lazy); \ } while (0) -#endif +# endif -#if ! ELF_MACHINE_NO_REL -#include "do-rel.h" -#define ELF_DYNAMIC_DO_REL(map, lazy) \ - _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy) -#else -#define ELF_DYNAMIC_DO_REL(map, lazy) /* Nothing to do. */ -#endif +# if ELF_MACHINE_NO_REL || ELF_MACHINE_NO_RELA +# define _ELF_CHECK_REL 0 +# else +# define _ELF_CHECK_REL 1 +# endif -#if ! ELF_MACHINE_NO_RELA -#define DO_RELA -#include "do-rel.h" -#define ELF_DYNAMIC_DO_RELA(map, lazy) \ - _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy) -#else -#define ELF_DYNAMIC_DO_RELA(map, lazy) /* Nothing to do. */ -#endif +# if ! ELF_MACHINE_NO_REL +# include "do-rel.h" +# define ELF_DYNAMIC_DO_REL(map, lazy) \ + _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, _ELF_CHECK_REL) +# else +# define ELF_DYNAMIC_DO_REL(map, lazy) /* Nothing to do. */ +# endif + +# if ! ELF_MACHINE_NO_RELA +# define DO_RELA +# include "do-rel.h" +# define ELF_DYNAMIC_DO_RELA(map, lazy) \ + _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, _ELF_CHECK_REL) +# else +# define ELF_DYNAMIC_DO_RELA(map, lazy) /* Nothing to do. */ +# endif /* This can't just be an inline function because GCC is too dumb to inline functions containing inlines themselves. */ -#define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile) \ +# define ELF_DYNAMIC_RELOCATE(map, lazy, consider_profile) \ do { \ int edr_lazy = elf_machine_runtime_setup ((map), (lazy), \ (consider_profile)); \ diff -durpN glibc-2.1/elf/elf.h glibc-2.1.1/elf/elf.h --- glibc-2.1/elf/elf.h Wed Dec 2 21:43:51 1998 +++ glibc-2.1.1/elf/elf.h Mon Apr 12 17:55:16 1999 @@ -1,5 +1,5 @@ /* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ian Lance Taylor . @@ -1323,6 +1323,18 @@ typedef Elf32_Addr Elf32_Conflict; /* HPPA specific definitions. */ +/* Legal values for e_flags field of Elf32_Ehdr. */ + +#define EF_PARISC_TRAPNL 1 /* Trap nil pointer dereference. */ +#define EF_PARISC_EXT 2 /* Program uses arch. extensions. */ +#define EF_PARISC_ARCH 0xffff0000 /* Architecture version. */ +/* Defined values are: + 0x020b PA-RISC 1.0 big-endian + 0x0210 PA-RISC 1.1 big-endian + 0x028b PA-RISC 1.0 little-endian + 0x0290 PA-RISC 1.1 little-endian +*/ + /* Legal values for sh_type field of Elf32_Shdr. */ #define SHT_PARISC_GOT 0x70000000 /* GOT for external data. */ @@ -1338,12 +1350,39 @@ typedef Elf32_Addr Elf32_Conflict; /* Legal values for sh_flags field of Elf32_Shdr. */ +#define SHF_PARISC_GLOBAL 0x10000000 /* Section defines dp. */ #define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */ /* Legal values for ST_TYPE subfield of st_info (symbol type). */ #define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */ +/* HPPA relocs. */ + +#define R_PARISC_NONE 0 /* No reloc. */ +#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */ +#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */ +#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */ +#define R_PARISC_DIR14R 4 /* Right 14 bits of eff. address. */ +#define R_PARISC_PCREL21L 5 /* PC-relative, left 21 bits. */ +#define R_PARISC_PCREL14R 6 /* PC-relative, right 14 bits. */ +#define R_PARISC_PCREL17C 7 /* Conditional PC-relative, ignore + if displacement > 17bits. */ +#define R_PARISC_PCREL17F 8 /* Conditional PC-relative, must + fit in 17bits. */ +#define R_PARISC_DPREL21L 9 /* DP-relative, left 21 bits. */ +#define R_PARISC_DPREL14R 10 /* DP-relative, right 14 bits. */ +#define R_PARISC_DPREL14F 11 /* DP-relative, must bit in 14 bits. */ +#define R_PARISC_DLTREL21L 12 /* DLT-relative, left 21 bits. */ +#define R_PARISC_DLTREL14R 13 /* DLT-relative, right 14 bits. */ +#define R_PARISC_DLTREL14F 14 /* DLT-relative, must fit in 14 bits.*/ +#define R_PARISC_DLTIND21L 15 /* DLT-relative indirect, left + 21 bits. */ +#define R_PARISC_DLTIND14R 16 /* DLT-relative indirect, right + 14 bits. */ +#define R_PARISC_DLTIND14F 17 /* DLT-relative indirect, must fit + int 14 bits. */ +#define R_PARISC_PLABEL32 18 /* Direct 32-bit reference to proc. */ /* Alpha specific definitions. */ @@ -1484,6 +1523,9 @@ typedef Elf32_Addr Elf32_Conflict; #define EF_ARM_APCS_26 0x08 #define EF_ARM_APCS_FLOAT 0x10 #define EF_ARM_PIC 0x20 +#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use */ +#define EF_NEW_ABI 0x80 +#define EF_OLD_ABI 0x100 /* Additional symbol types for Thumb */ #define STT_ARM_TFUNC 0xd @@ -1502,17 +1544,19 @@ typedef Elf32_Addr Elf32_Conflict; #define R_ARM_PC24 1 /* PC relative 26 bit branch */ #define R_ARM_ABS32 2 /* Direct 32 bit */ #define R_ARM_REL32 3 /* PC relative 32 bit */ -#define R_ARM_ABS8 4 /* Direct 8 bit */ +#define R_ARM_PC13 4 #define R_ARM_ABS16 5 /* Direct 16 bit */ #define R_ARM_ABS12 6 /* Direct 12 bit */ #define R_ARM_THM_ABS5 7 -#define R_ARM_THM_PC22 8 +#define R_ARM_ABS8 8 /* Direct 8 bit */ #define R_ARM_SBREL32 9 -#define R_ARM_AMP_VCALL9 10 -#define R_ARM_THM_PC11 11 /* Thumb unconditional branch */ -#define R_ARM_THM_PC9 12 /* Thumb conditional branch */ -#define R_ARM_GNU_VTINHERIT 13 -#define R_ARM_GNU_VTENTRY 14 +#define R_ARM_THM_PC22 10 +#define R_ARM_THM_PC8 11 +#define R_ARM_AMP_VCALL9 12 +#define R_ARM_SWI24 13 +#define R_ARM_THM_SWI8 14 +#define R_ARM_XPC25 15 +#define R_ARM_THM_XPC22 16 #define R_ARM_COPY 20 /* Copy symbol at runtime */ #define R_ARM_GLOB_DAT 21 /* Create GOT entry */ #define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ @@ -1521,6 +1565,11 @@ typedef Elf32_Addr Elf32_Conflict; #define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */ #define R_ARM_GOT32 26 /* 32 bit GOT entry */ #define R_ARM_PLT32 27 /* 32 bit PLT address */ +#define R_ARM_GNU_VTENTRY 100 +#define R_ARM_GNU_VTINHERIT 101 +#define R_ARM_THM_PC11 102 /* thumb unconditional branch */ +#define R_ARM_THM_PC9 103 /* thumb conditional branch */ +#define R_ARM_RXPC25 249 #define R_ARM_RSBREL32 250 #define R_ARM_THM_RPC22 251 #define R_ARM_RREL32 252 diff -durpN glibc-2.1/elf/gen-trusted-dirs.awk glibc-2.1.1/elf/gen-trusted-dirs.awk --- glibc-2.1/elf/gen-trusted-dirs.awk Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/elf/gen-trusted-dirs.awk Mon May 3 21:55:30 1999 @@ -0,0 +1,37 @@ +BEGIN { + FS = " "; +} + +{ + for (i = 1; i <= NF; ++i) { + s[cnt++] = $i"/"; + } +} + +END { + printf ("#define SYSTEM_DIRS \\\n"); + + printf (" \"%s\"", s[0]); + + for (i = 1; i < cnt; ++i) { + printf (" \"\\0\" \"%s\"", s[i]); + } + + printf ("\n\n"); + + printf ("#define SYSTEM_DIRS_LEN \\\n"); + + printf (" %d", length (s[0])); + m = length (s[0]); + + for (i = 1; i < cnt; ++i) { + printf (", %d", length(s[i])); + if (length(s[i]) > m) { + m = length(s[i]); + } + } + + printf ("\n\n"); + + printf ("#define SYSTEM_DIRS_MAX_LEN\t%d\n", m); +} diff -durpN glibc-2.1/elf/ldsodefs.h glibc-2.1.1/elf/ldsodefs.h --- glibc-2.1/elf/ldsodefs.h Tue Nov 3 01:30:55 1998 +++ glibc-2.1.1/elf/ldsodefs.h Thu May 6 18:14:33 1999 @@ -1,5 +1,5 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -205,6 +205,14 @@ extern int _dl_secure; extern void _dl_signal_error (int errcode, const char *object, const char *errstring) + internal_function + __attribute__ ((__noreturn__)); + +/* Like _dl_signal_error, but may return when called in the context of + _dl_receive_error. */ +extern void _dl_signal_cerror (int errcode, + const char *object, + const char *errstring) internal_function; /* Call OPERATE, catching errors from `dl_signal_error'. If there is no @@ -218,7 +226,7 @@ extern int _dl_catch_error (char **errst void *args) internal_function; -/* Call OPERATE, receiving errors from `dl_signal_error'. Unlike +/* Call OPERATE, receiving errors from `dl_signal_cerror'. Unlike `_dl_catch_error' the operation is resumed after the OPERATE function returns. ARGS is passed as argument to OPERATE. */ @@ -262,7 +270,8 @@ extern void _dl_setup_hash (struct link_ /* Open the shared object NAME, relocate it, and run its initializer if it hasn't already been run. MODE is as for `dlopen' (see ). If the object is already opened, returns its existing map. */ -extern struct link_map *_dl_open (const char *name, int mode) +extern struct link_map *_dl_open (const char *name, int mode, + const void *caller) internal_function; /* Close an object previously opened by _dl_open. */ diff -durpN glibc-2.1/elf/link.h glibc-2.1.1/elf/link.h --- glibc-2.1/elf/link.h Tue Nov 3 00:12:50 1998 +++ glibc-2.1.1/elf/link.h Fri May 7 18:05:58 1999 @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -24,6 +24,7 @@ #include #include #include +#include /* We use this macro to refer to ELF types independent of the native wordsize. `ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */ @@ -193,6 +194,14 @@ struct link_map /* A similar array, this time only with the local scope. This is used occasionally. */ struct r_scope_elem *l_local_scope[2]; + + /* This information is kept to check for sure whether a shared + object is the same as one already loaded. */ + dev_t l_dev; + ino_t l_ino; + + /* Nonzero if the data structure pointed to by `l_phdr' is allocated. */ + int l_phdr_allocated; }; #endif /* link.h */ diff -durpN glibc-2.1/elf/multiload.c glibc-2.1.1/elf/multiload.c --- glibc-2.1/elf/multiload.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/elf/multiload.c Thu Feb 18 23:59:48 1999 @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include + +int +main (void) +{ + void *a; + void *b; + void *c; + void *d; + char *wd; + char *base; + char *buf; + + /* Change to the binary directory. */ + if (chdir (OBJDIR) != 0) + { + printf ("cannot change to `%s': %m", OBJDIR); + exit (EXIT_FAILURE); + } + + wd = getcwd (NULL, 0); + base = basename (wd); + buf = alloca (strlen (wd) + strlen (base) + 5 + sizeof "testobj1.so"); + + printf ("loading `%s'\n", "./testobj1.so"); + a = dlopen ("./testobj1.so", RTLD_NOW); + if (a == NULL) + { + printf ("cannot load `./testobj1.so': %s\n", dlerror ()); + exit (EXIT_FAILURE); + } + + stpcpy (stpcpy (stpcpy (buf, "../"), base), "/testobj1.so"); + printf ("loading `%s'\n", buf); + b = dlopen (buf, RTLD_NOW); + if (b == NULL) + { + printf ("cannot load `%s': %s\n", buf, dlerror ()); + exit (EXIT_FAILURE); + } + + stpcpy (stpcpy (buf, wd), "/testobj1.so"); + printf ("loading `%s'\n", buf); + c = dlopen (buf, RTLD_NOW); + if (c == NULL) + { + printf ("cannot load `%s': %s\n", buf, dlerror ()); + exit (EXIT_FAILURE); + } + + stpcpy (stpcpy (stpcpy (stpcpy (buf, wd), "/../"), base), "/testobj1.so"); + printf ("loading `%s'\n", buf); + d = dlopen (buf, RTLD_NOW); + if (d == NULL) + { + printf ("cannot load `%s': %s\n", buf, dlerror ()); + exit (EXIT_FAILURE); + } + + if (a != b || b != c || c != d) + { + puts ("shared object loaded more than once"); + exit (EXIT_FAILURE); + } + + return 0; +} + +int +foo (int a) +{ + return a; +} diff -durpN glibc-2.1/elf/origtest.c glibc-2.1.1/elf/origtest.c --- glibc-2.1/elf/origtest.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/elf/origtest.c Wed May 5 23:26:10 1999 @@ -0,0 +1,38 @@ +#include +#include +#include +#include + +int +main (void) +{ + void *h; + int (*fp) (int); + int res; + + h = dlopen ("${ORIGIN}/testobj1.so", RTLD_LAZY); + if (h == NULL) + error (EXIT_FAILURE, 0, "while loading `%s': %s", "testobj1.so", + dlerror ()); + + fp = dlsym (h, "obj1func1"); + if (fp == NULL) + error (EXIT_FAILURE, 0, "getting `obj1func1' in `%s': %s", + "testobj1.so", dlerror ()); + + res = fp (10); + printf ("fp(10) = %d\n", res); + + if (dlclose (h) != 0) + error (EXIT_FAILURE, 0, "while close `%s': %s", + "testobj1.so", dlerror ()); + + return res != 42; +} + + +int +foo (int a) +{ + return a + 10; +} diff -durpN glibc-2.1/elf/rtld.c glibc-2.1.1/elf/rtld.c --- glibc-2.1/elf/rtld.c Tue Dec 29 03:09:25 1998 +++ glibc-2.1.1/elf/rtld.c Tue May 11 19:07:33 1999 @@ -1,5 +1,5 @@ /* Run time dynamic linker. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -82,6 +82,7 @@ struct r_search_path *_dl_search_paths; const char *_dl_profile; const char *_dl_profile_output; struct link_map *_dl_profile_map; +int _dl_lazy; int _dl_debug_libs; int _dl_debug_impcalls; int _dl_debug_bindings; @@ -156,7 +157,8 @@ _dl_start (void *arg) /* Read our own dynamic section and fill in the info array. */ bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + elf_machine_dynamic (); - elf_get_dynamic_info (bootstrap_map.l_ld, bootstrap_map.l_info); + elf_get_dynamic_info (bootstrap_map.l_ld, bootstrap_map.l_addr, + bootstrap_map.l_info); #ifdef ELF_MACHINE_BEFORE_RTLD_RELOC ELF_MACHINE_BEFORE_RTLD_RELOC (bootstrap_map.l_info); @@ -290,8 +292,7 @@ find_needed (const char *name) static int match_version (const char *string, struct link_map *map) { - const char *strtab = (const char *) (map->l_addr - + map->l_info[DT_STRTAB]->d_un.d_ptr); + const char *strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr; ElfW(Verdef) *def; #define VERDEFTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (DT_VERDEF)) @@ -332,7 +333,6 @@ dl_main (const ElfW(Phdr) *phdr, ElfW(Addr) *user_entry) { const ElfW(Phdr) *ph; - int lazy; enum mode mode; struct link_map **preloads; unsigned int npreloads; @@ -340,13 +340,13 @@ dl_main (const ElfW(Phdr) *phdr, char *file; int has_interp = 0; unsigned int i; - int paths_initialized = 0; + int rtld_is_main = 0; hp_timing_t start; hp_timing_t stop; hp_timing_t diff; /* Process the environment variable which control the behaviour. */ - process_envvars (&mode, &lazy); + process_envvars (&mode, &_dl_lazy); /* Set up a flag which tells we are just starting. */ _dl_starting_up = 1; @@ -368,6 +368,7 @@ dl_main (const ElfW(Phdr) *phdr, pay attention to its PT_INTERP command (we are the interpreter ourselves). This is an easy way to test a new ld.so before installing it. */ + rtld_is_main = 1; /* Note the place where the dynamic linker actually came from. */ _dl_rtld_map.l_name = _dl_argv[0]; @@ -376,7 +377,7 @@ dl_main (const ElfW(Phdr) *phdr, if (! strcmp (_dl_argv[1], "--list")) { mode = list; - lazy = -1; /* This means do no dependency analysis. */ + _dl_lazy = -1; /* This means do no dependency analysis. */ ++_dl_skip_args; --_dl_argc; @@ -441,7 +442,6 @@ of this helper program; chances are you /* Initialize the data structures for the search paths for shared objects. */ _dl_init_paths (library_path); - paths_initialized = 1; if (__builtin_expect (mode, normal) == verify) { @@ -461,7 +461,7 @@ of this helper program; chances are you HP_TIMING_NOW (start); _dl_map_object (NULL, _dl_argv[0], 0, lt_library, 0); HP_TIMING_NOW (stop); - + HP_TIMING_DIFF (load_time, start, stop); } @@ -486,6 +486,21 @@ of this helper program; chances are you _dl_loaded->l_entry = *user_entry; _dl_loaded->l_opencount = 1; + /* At this point we are in a bit of trouble. We would have to + fill in the values for l_dev and l_ino. But in general we + do not know where the file is. We also do not handle AT_EXECFD + even if it would be passed up. + + We leave the values here defined to 0. This is normally no + problem as the program code itself is normally no shared + object and therefore cannot be loaded dynamically. Nothing + prevent the use of dynamic binaries and in these situations + we might get problems. We might not be able to find out + whether the object is already loaded. But since there is no + easy way out and because the dynamic binary must also not + have an SONAME we ignore this program for now. If it becomes + a problem we can force people using SONAMEs. */ + /* We delay initializing the path structure until we got the dynamic information for the program. */ } @@ -559,11 +574,15 @@ of this helper program; chances are you else assert (_dl_rtld_map.l_libname); /* How else did we get here? */ - /* Extract the contents of the dynamic section for easy access. */ - elf_get_dynamic_info (_dl_loaded->l_ld, _dl_loaded->l_info); - if (_dl_loaded->l_info[DT_HASH]) - /* Set up our cache of pointers into the hash table. */ - _dl_setup_hash (_dl_loaded); + if (! rtld_is_main) + { + /* Extract the contents of the dynamic section for easy access. */ + elf_get_dynamic_info (_dl_loaded->l_ld, _dl_loaded->l_addr, + _dl_loaded->l_info); + if (_dl_loaded->l_info[DT_HASH]) + /* Set up our cache of pointers into the hash table. */ + _dl_setup_hash (_dl_loaded); + } if (__builtin_expect (mode, normal) == verify) { @@ -581,7 +600,7 @@ of this helper program; chances are you _exit (has_interp ? 0 : 2); } - if (! paths_initialized) + if (! rtld_is_main) /* Initialize the data structures for the search paths for shared objects. */ _dl_init_paths (library_path); @@ -834,13 +853,13 @@ of this helper program; chances are you } else { - if (lazy >= 0) + if (_dl_lazy >= 0) { /* We have to do symbol dependency testing. */ struct relocate_args args; struct link_map *l; - args.lazy = lazy; + args.lazy = _dl_lazy; l = _dl_loaded; while (l->l_next) @@ -874,8 +893,7 @@ of this helper program; chances are you if (dyn == NULL) continue; - strtab = (const char *) - (map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr); + strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr; ent = (ElfW(Verneed) *) (map->l_addr + dyn->d_un.d_ptr); if (first) @@ -956,7 +974,7 @@ of this helper program; chances are you hp_timing_t add; /* If we are profiling we also must do lazy reloaction. */ - lazy |= consider_profiling; + _dl_lazy |= consider_profiling; l = _dl_loaded; while (l->l_next) @@ -966,7 +984,7 @@ of this helper program; chances are you do { if (l != &_dl_rtld_map) - _dl_relocate_object (l, l->l_scope, lazy, consider_profiling); + _dl_relocate_object (l, l->l_scope, _dl_lazy, consider_profiling); l = l->l_prev; } @@ -1378,7 +1396,7 @@ process_envvars (enum mode *modep, int * if (__builtin_expect (mode, normal) == trace) *lazyp = _dl_verbose ? !bind_now : -1; else - *lazyp = !__libc_enable_secure && !bind_now; + *lazyp = !bind_now; *modep = mode; } diff -durpN glibc-2.1/elf/sprof.c glibc-2.1.1/elf/sprof.c --- glibc-2.1/elf/sprof.c Mon Jan 4 21:34:51 1999 +++ glibc-2.1.1/elf/sprof.c Tue Feb 9 17:31:34 1999 @@ -39,10 +39,6 @@ #include #include -/* Undefine the following line line in the production version. */ -/* #define _NDEBUG 1 */ -#include - /* Get libc version number. */ #include "../version.h" diff -durpN glibc-2.1/glibcbug.in glibc-2.1.1/glibcbug.in --- glibc-2.1/glibcbug.in Fri May 29 17:07:54 1998 +++ glibc-2.1.1/glibcbug.in Thu May 13 17:17:59 1999 @@ -38,7 +38,7 @@ fi if test "$RELEASE" = "stable"; then BUGGLIBC="bugs@gnu.org" else - BUGGLIBC="libc-alpha@cygnus.com" + BUGGLIBC="libc-alpha@sourceware.cygnus.com" fi BUGADDR=${1-$BUGGLIBC} diff -durpN glibc-2.1/grp/Makefile glibc-2.1.1/grp/Makefile --- glibc-2.1/grp/Makefile Sun Oct 18 22:16:15 1998 +++ glibc-2.1.1/grp/Makefile Sun Mar 21 01:45:01 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1992, 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999 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 @@ -29,6 +29,12 @@ routines := fgetgrent initgroups setgrou tests := testgrp include ../Rules + +ifeq (yes,$(build-static-nss)) +otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ + $(resolvobjdir)/libresolv.a +endif + ifeq ($(have-thread-library),yes) diff -durpN glibc-2.1/grp/initgroups.c glibc-2.1.1/grp/initgroups.c --- glibc-2.1/grp/initgroups.c Tue Sep 15 01:42:54 1998 +++ glibc-2.1.1/grp/initgroups.c Thu Apr 29 16:56:28 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989, 91, 93, 96, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1989, 91, 93, 96, 97, 98, 99 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 @@ -52,7 +52,7 @@ static enum nss_status compat_call (service_user *nip, const char *user, gid_t group, long int *start, long int *size, gid_t *groups, long int limit, int *errnop) { - struct group grpbuf, *g; + struct group grpbuf; size_t buflen = __sysconf (_SC_GETPW_R_SIZE_MAX); char *tmpbuf; enum nss_status status; @@ -90,25 +90,24 @@ compat_call (service_user *nip, const ch if (status != NSS_STATUS_SUCCESS) goto done; - g = &grpbuf; - if (g->gr_gid != group) + if (grpbuf.gr_gid != group) { char **m; - for (m = g->gr_mem; *m != NULL; ++m) + for (m = grpbuf.gr_mem; *m != NULL; ++m) if (strcmp (*m, user) == 0) { /* Matches user. Insert this group. */ if (*start == *size && limit <= 0) { /* Need a bigger buffer. */ - groups = realloc (groups, *size * sizeof (*groups)); + groups = realloc (groups, 2 * *size * sizeof (*groups)); if (groups == NULL) goto done; *size *= 2; } - groups[*start] = g->gr_gid; + groups[*start] = grpbuf.gr_gid; *start += 1; if (*start == limit) @@ -196,9 +195,10 @@ initgroups (user, group) /* This is really only for debugging. */ if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) - __libc_fatal ("illegal status in " __FUNCTION__); + __libc_fatal ("illegal status in " __FUNCTION__); - if (nss_next_action (nip, status) == NSS_ACTION_RETURN) + if (status != NSS_STATUS_SUCCESS + && nss_next_action (nip, status) == NSS_ACTION_RETURN) break; if (nip->next == NULL) diff -durpN glibc-2.1/hesiod/Versions glibc-2.1.1/hesiod/Versions --- glibc-2.1/hesiod/Versions Wed Jul 1 21:31:16 1998 +++ glibc-2.1.1/hesiod/Versions Mon May 10 20:29:23 1999 @@ -1,9 +1,9 @@ libnss_hesiod { GLIBC_2.1 { _nss_hesiod_setpwent; _nss_hesiod_endpwent; - _nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid; + _nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid_r; _nss_hesiod_setgrent; _nss_hesiod_endgrent; - _nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid; + _nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid_r; _nss_hesiod_setservent; _nss_hesiod_endservent; _nss_hesiod_getservbyname_r; } diff -durpN glibc-2.1/hurd/Makefile glibc-2.1.1/hurd/Makefile --- glibc-2.1/hurd/Makefile Mon Dec 7 19:00:50 1998 +++ glibc-2.1.1/hurd/Makefile Fri Mar 5 22:37:09 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +# Copyright (C) 1991,92,93,94,95,96,97,98,99 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 @@ -48,6 +48,7 @@ routines = hurdstartup hurdinit \ pid2task task2pid \ geteuids seteuids getumask fchroot \ hurdsock hurdauth \ + hurdchdir hurdfchdir \ privports \ msgportdemux \ fopenport \ diff -durpN glibc-2.1/hurd/ctty-input.c glibc-2.1.1/hurd/ctty-input.c --- glibc-2.1/hurd/ctty-input.c Sat Feb 15 04:26:36 1997 +++ glibc-2.1.1/hurd/ctty-input.c Wed Mar 10 04:50:09 1999 @@ -1,5 +1,5 @@ /* _hurd_ctty_input -- Do an input RPC and generate SIGTTIN if necessary. - Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1995,97,99 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 @@ -28,46 +28,49 @@ _hurd_ctty_input (io_t port, io_t ctty, { error_t err; + if (ctty == MACH_PORT_NULL) + return (*rpc) (port); + do { - err = (*rpc) (ctty != MACH_PORT_NULL ? ctty : port); - if (ctty != MACH_PORT_NULL && err == EBACKGROUND) + err = (*rpc) (ctty); + if (err == EBACKGROUND) { /* We are a background job and tried to read from the tty. We should probably get a SIGTTIN signal. */ - struct hurd_sigstate *ss; if (_hurd_orphaned) /* Our process group is orphaned. Don't stop; just fail. */ err = EIO; else { - ss = _hurd_self_sigstate (); + struct hurd_sigstate *ss = _hurd_self_sigstate (); __spin_lock (&ss->lock); if (__sigismember (&ss->blocked, SIGTTIN) || ss->actions[SIGTTIN].sa_handler == SIG_IGN) /* We are blocking or ignoring SIGTTIN. Just fail. */ err = EIO; __spin_unlock (&ss->lock); - } - if (err == EBACKGROUND) - { - /* Send a SIGTTIN signal to our process group. - We must remember here not to clobber ERR, since - the loop condition below uses it to recall that - we should retry after a stop. */ + if (err == EBACKGROUND) + { + /* Send a SIGTTIN signal to our process group. - __USEPORT (CTTYID, _hurd_sig_post (0, SIGTTIN, port)); - /* XXX what to do if error here? */ + We must remember here not to clobber ERR, since + the loop condition below uses it to recall that + we should retry after a stop. */ - /* At this point we should have just run the handler for - SIGTTIN or resumed after being stopped. Now this is - still a "system call", so check to see if we should - restart it. */ - __spin_lock (&ss->lock); - if (!(ss->actions[SIGTTIN].sa_flags & SA_RESTART)) - err = EINTR; - __spin_unlock (&ss->lock); + __USEPORT (CTTYID, _hurd_sig_post (0, SIGTTIN, port)); + /* XXX what to do if error here? */ + + /* At this point we should have just run the handler for + SIGTTIN or resumed after being stopped. Now this is + still a "system call", so check to see if we should + restart it. */ + __spin_lock (&ss->lock); + if (!(ss->actions[SIGTTIN].sa_flags & SA_RESTART)) + err = EINTR; + __spin_unlock (&ss->lock); + } } } /* If the last RPC generated a SIGTTIN, loop to try it again. */ diff -durpN glibc-2.1/hurd/ctty-output.c glibc-2.1.1/hurd/ctty-output.c --- glibc-2.1/hurd/ctty-output.c Sat Feb 15 04:26:37 1997 +++ glibc-2.1.1/hurd/ctty-output.c Wed Mar 10 04:50:10 1999 @@ -1,5 +1,5 @@ /* _hurd_ctty_output -- Do an output RPC and generate SIGTTOU if necessary. - Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1995,97,99 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 @@ -26,57 +26,60 @@ error_t _hurd_ctty_output (io_t port, io_t ctty, error_t (*rpc) (io_t)) { - error_t err; - struct hurd_sigstate *ss; - io_t ioport; - - /* Don't use the ctty io port if we are blocking or ignoring SIGTTOU. */ if (ctty == MACH_PORT_NULL) - ioport = port; + return (*rpc) (port); else { - ss = _hurd_self_sigstate (); - __spin_lock (&ss->lock); - if (__sigismember (&ss->blocked, SIGTTOU) || - ss->actions[SIGTTOU].sa_handler == SIG_IGN) - ioport = port; - else - ioport = ctty; - __spin_unlock (&ss->lock); - } + struct hurd_sigstate *ss = _hurd_self_sigstate (); + error_t err; - do - { - err = (*rpc) (ioport); - if (ioport == ctty && err == EBACKGROUND) + do { - if (_hurd_orphaned) - /* Our process group is orphaned, so we never generate a - signal; we just fail. */ + /* Don't use the ctty io port if we are blocking or ignoring + SIGTTOU. We redo this check at the top of the loop in case + the signal handler changed the state. */ + __spin_lock (&ss->lock); + if (__sigismember (&ss->blocked, SIGTTOU) || + ss->actions[SIGTTOU].sa_handler == SIG_IGN) err = EIO; else + err = 0; + __spin_unlock (&ss->lock); + + if (err) + return (*rpc) (port); + + err = (*rpc) (ctty); + if (err == EBACKGROUND) { - /* Send a SIGTTOU signal to our process group. + if (_hurd_orphaned) + /* Our process group is orphaned, so we never generate a + signal; we just fail. */ + err = EIO; + else + { + /* Send a SIGTTOU signal to our process group. - We must remember here not to clobber ERR, since - the loop condition below uses it to recall that - we should retry after a stop. */ + We must remember here not to clobber ERR, since + the loop condition below uses it to recall that + we should retry after a stop. */ - __USEPORT (CTTYID, _hurd_sig_post (0, SIGTTOU, port)); - /* XXX what to do if error here? */ + __USEPORT (CTTYID, _hurd_sig_post (0, SIGTTOU, port)); + /* XXX what to do if error here? */ - /* At this point we should have just run the handler for - SIGTTOU or resumed after being stopped. Now this is - still a "system call", so check to see if we should - restart it. */ - __spin_lock (&ss->lock); - if (!(ss->actions[SIGTTOU].sa_flags & SA_RESTART)) - err = EINTR; - __spin_unlock (&ss->lock); + /* At this point we should have just run the handler for + SIGTTOU or resumed after being stopped. Now this is + still a "system call", so check to see if we should + restart it. */ + __spin_lock (&ss->lock); + if (!(ss->actions[SIGTTOU].sa_flags & SA_RESTART)) + err = EINTR; + __spin_unlock (&ss->lock); + } } - } - /* If the last RPC generated a SIGTTOU, loop to try it again. */ - } while (err == EBACKGROUND); + /* If the last RPC generated a SIGTTOU, loop to try it again. */ + } while (err == EBACKGROUND); - return err; + return err; + } } diff -durpN glibc-2.1/hurd/fchroot.c glibc-2.1.1/hurd/fchroot.c --- glibc-2.1/hurd/fchroot.c Sun Feb 23 22:08:51 1997 +++ glibc-2.1.1/hurd/fchroot.c Fri Mar 5 22:37:10 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1999 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 @@ -25,23 +25,6 @@ int fchroot (int fd) { - error_t err; - file_t dir; - - err = HURD_DPORT_USE (fd, - ({ - dir = __file_name_lookup_under (port, "", O_EXEC, 0); - dir == MACH_PORT_NULL ? errno : 0; - })); - - if (! err) - { - file_t root; - err = __file_reparent (dir, MACH_PORT_NULL, &root); - __mach_port_deallocate (__mach_task_self (), dir); - if (! err) - _hurd_port_set (&_hurd_ports[INIT_PORT_CRDIR], root); - } - - return err ? __hurd_fail (err) : 0; + return _hurd_change_directory_port_from_fd (&_hurd_ports[INIT_PORT_CRDIR], + fd); } diff -durpN glibc-2.1/hurd/get-host.c glibc-2.1.1/hurd/get-host.c --- glibc-2.1/hurd/get-host.c Sat Feb 15 04:26:42 1997 +++ glibc-2.1.1/hurd/get-host.c Tue May 11 19:39:09 1999 @@ -1,5 +1,5 @@ /* Get a host configuration item kept as the whole contents of a file. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 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 @@ -19,6 +19,7 @@ #include #include +#include #include "hurdhost.h" ssize_t @@ -27,9 +28,26 @@ _hurd_get_host_config (const char *item, error_t err; char *data; mach_msg_type_number_t nread, more; - file_t config = __file_name_lookup (item, O_RDONLY, 0); - if (config == MACH_PORT_NULL) - return -1; + file_t config; + + err = __hurd_file_name_lookup (&_hurd_ports_use, &__getdport, 0, + item, O_RDONLY, 0, &config); + switch (err) + { + case 0: /* Success; read file contents below. */ + break; + + case ENOENT: /* ? Others? All errors? */ + /* The file does not exist, so no value has been set. Rather than + causing gethostname et al to fail with ENOENT, give an empty value + as other systems do before sethostname has been called. */ + if (buflen != 0) + *buf = '\0'; + return 0; + + default: + return __hurd_fail (err); + } data = buf; err = __io_read (config, &data, &nread, -1, buflen); @@ -45,6 +63,14 @@ _hurd_get_host_config (const char *item, __vm_deallocate (__mach_task_self (), (vm_address_t) data, nread); } + /* If the file is empty, give an empty value. */ + if (nread == 0) + { + if (buflen != 0) + *buf = '\0'; + return 0; + } + /* Remove newlines in case someone wrote the file by hand. */ while (buf[nread - 1] == '\n') buf[--nread] = '\0'; diff -durpN glibc-2.1/hurd/hurd-raise.c glibc-2.1.1/hurd/hurd-raise.c --- glibc-2.1/hurd/hurd-raise.c Sat Feb 15 04:26:45 1997 +++ glibc-2.1.1/hurd/hurd-raise.c Fri Mar 5 22:37:12 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994,95,96,97,99 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 @@ -41,7 +41,11 @@ _hurd_raise_signal (struct hurd_sigstate __spin_unlock (&ss->lock); - /* Send a message to the signal thread so it - will wake up and check for pending signals. */ - __msg_sig_post (_hurd_msgport, signo, detail->code, __mach_task_self ()); + /* Send a message to the signal thread so it will wake up and check for + pending signals. This is a generic "poll request" message (SIGNO==0) + rather than delivering this signal and its detail, because we have + already marked the signal as pending for the particular thread we + want. Generating the signal with an RPC might deliver it to some + other thread. */ + __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); } diff -durpN glibc-2.1/hurd/hurd.h glibc-2.1.1/hurd/hurd.h --- glibc-2.1/hurd/hurd.h Mon Nov 30 17:03:16 1998 +++ glibc-2.1.1/hurd/hurd.h Fri Mar 5 22:37:13 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1993,94,95,96,97,98,99 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 @@ -153,6 +153,17 @@ extern int setcttyid (mach_port_t); /* Does reauth with the proc server and fd io servers. */ extern int __setauth (auth_t), setauth (auth_t); + + +/* Modify a port cell by looking up a directory name. + This verifies that it is a directory and that we have search permission. */ +extern int _hurd_change_directory_port_from_name (struct hurd_port *portcell, + const char *name); +/* Same thing, but using an open file descriptor. + Also verifies that it is a directory and that we have search permission. */ +extern int _hurd_change_directory_port_from_fd (struct hurd_port *portcell, + int fd); + /* Get and set the effective UID set. */ diff -durpN glibc-2.1/hurd/hurdchdir.c glibc-2.1.1/hurd/hurdchdir.c --- glibc-2.1/hurd/hurdchdir.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/hurd/hurdchdir.c Sat Feb 27 20:00:59 1999 @@ -0,0 +1,56 @@ +/* Change a port cell to a directory by looking up a name. + Copyright (C) 1999 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 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 +#include +#include +#include +#include +#include + +int +_hurd_change_directory_port_from_name (struct hurd_port *portcell, + const char *name) +{ + size_t len; + const char *lookup; + file_t dir; + + /* Append trailing "/." to directory name to force ENOTDIR if it's not a + directory and EACCES if we don't have search permission. */ + len = strlen (name); + if (name[len - 2] == '/' && name[len - 1] == '.') + lookup = name; + else + { + char *n = alloca (len + 2); + memcpy (n, name, len); + n[len] = '/'; + n[len + 1] = '.'; + n[len + 2] = '\0'; + lookup = n; + } + + dir = __file_name_lookup (lookup, 0, 0); + if (dir == MACH_PORT_NULL) + return -1; + + _hurd_port_set (portcell, dir); + return 0; +} diff -durpN glibc-2.1/hurd/hurdexec.c glibc-2.1.1/hurd/hurdexec.c --- glibc-2.1/hurd/hurdexec.c Sat Feb 15 04:26:47 1997 +++ glibc-2.1.1/hurd/hurdexec.c Tue Apr 27 19:10:26 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,96,97,99 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 @@ -49,9 +49,13 @@ _hurd_exec (task_t task, file_t file, mach_port_t *please_dealloc, *pdp; /* XXX needs to be hurdmalloc XXX */ - if (err = __argz_create (argv, &args, &argslen)) + if (argv == NULL) + args = NULL, argslen = 0; + else if (err = __argz_create (argv, &args, &argslen)) return err; - if (err = __argz_create (envp, &env, &envlen)) + if (envp == NULL) + env = NULL, envlen = 0; + else if (err = __argz_create (envp, &env, &envlen)) goto outargs; /* Load up the ports to give to the new program. */ @@ -185,6 +189,8 @@ _hurd_exec (task_t task, file_t file, /* The information is all set up now. Try to exec the file. */ { + int flags; + if (pdp) { /* Request the exec server to deallocate some ports from us if the exec @@ -200,7 +206,15 @@ _hurd_exec (task_t task, file_t file, *pdp++ = dtable[i]; } - err = __file_exec (file, task, 0, + flags = 0; +#ifdef EXEC_SIGTRAP + /* PTRACE_TRACEME sets all bits in _hurdsig_traced, which is propagated + through exec by INIT_TRACEMASK, so this checks if PTRACE_TRACEME has + been called in this process in any of its current or prior lives. */ + if (__sigismember (&_hurdsig_traced, SIGKILL)) + flags |= EXEC_SIGTRAP; +#endif + err = __file_exec (file, task, flags, args, argslen, env, envlen, dtable, MACH_MSG_TYPE_COPY_SEND, dtablesize, ports, MACH_MSG_TYPE_COPY_SEND, _hurd_nports, diff -durpN glibc-2.1/hurd/hurdfchdir.c glibc-2.1.1/hurd/hurdfchdir.c --- glibc-2.1/hurd/hurdfchdir.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/hurd/hurdfchdir.c Sat Feb 27 20:00:58 1999 @@ -0,0 +1,43 @@ +/* Change a port cell to a directory in an open file descriptor. + Copyright (C) 1999 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 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 +#include +#include +#include +#include +#include + +int +_hurd_change_directory_port_from_fd (struct hurd_port *portcell, int fd) +{ + error_t err; + file_t dir; + + err = HURD_DPORT_USE (fd, + ({ + dir = __file_name_lookup_under (port, ".", 0, 0); + dir == MACH_PORT_NULL ? errno : 0; + })); + + if (! err) + _hurd_port_set (portcell, dir); + + return err ? __hurd_fail (err) : 0; +} diff -durpN glibc-2.1/hurd/hurdinit.c glibc-2.1.1/hurd/hurdinit.c --- glibc-2.1/hurd/hurdinit.c Sat Dec 5 04:00:16 1998 +++ glibc-2.1.1/hurd/hurdinit.c Fri Apr 30 22:33:39 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1992,93,94,95,96,97,98,99 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 @@ -154,7 +154,16 @@ _hurd_new_proc_init (char **argv, here, like _hurd_pid, are already initialized. */ RUN_HOOK (_hurd_proc_subinit, ()); - if (_hurdsig_traced) + /* XXX This code should probably be removed entirely at some point. This + conditional should make it reasonably usable with old gdb's for a + while. Eventually it probably makes most sense for the exec server to + mask out EXEC_SIGTRAP so the debugged program is closer to not being + able to tell it's being debugged. */ + if (_hurdsig_traced +#ifdef EXEC_SIGTRAP + && !(_hurd_exec_flags & EXEC_SIGTRAP) +#endif + ) /* This process is "traced", meaning it should stop on signals or exec. We are all set up now to handle signals. Stop ourselves, to inform our parent (presumably a debugger) that the exec has completed. */ diff -durpN glibc-2.1/hurd/hurdlookup.c glibc-2.1.1/hurd/hurdlookup.c --- glibc-2.1/hurd/hurdlookup.c Sat Feb 15 04:26:51 1997 +++ glibc-2.1.1/hurd/hurdlookup.c Mon Mar 15 19:14:22 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1992, 93, 94, 95, 96, 97, 99 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 @@ -23,6 +23,7 @@ #include #include "stdio-common/_itoa.h" #include +#include /* Translate the error from dir_lookup into the error the user sees. */ @@ -55,12 +56,10 @@ __hurd_file_name_lookup (error_t (*use_i error_t err; enum retry_type doretry; char retryname[1024]; /* XXX string_t LOSES! */ + int startport; error_t lookup_op (mach_port_t startdir) { - while (file_name[0] == '/') - file_name++; - return lookup_error ((*lookup) (startdir, file_name, flags, mode, &doretry, retryname, result)); } @@ -68,13 +67,36 @@ __hurd_file_name_lookup (error_t (*use_i if (! lookup) lookup = __dir_lookup; - err = (*use_init_port) (file_name[0] == '/' - ? INIT_PORT_CRDIR : INIT_PORT_CWDIR, - &lookup_op); + startport = (file_name[0] == '/') ? INIT_PORT_CRDIR : INIT_PORT_CWDIR; + while (file_name[0] == '/') + file_name++; + + if (flags & O_NOFOLLOW) /* See comments below about O_NOFOLLOW. */ + flags |= O_NOTRANS; + + if (flags & O_DIRECTORY) + { + /* The caller wants to require that the file we look up is a directory. + We can do this without an extra RPC by appending a trailing slash + to the file name we look up. */ + size_t len = strlen (file_name); + if (len == 0) + file_name = "/"; + else if (file_name[len - 1] != '/') + { + char *n = alloca (len + 2); + memcpy (n, file_name, len); + n[len] = '/'; + n[len + 1] = '\0'; + file_name = n; + } + } + + err = (*use_init_port) (startport, &lookup_op); if (! err) - err = __hurd_file_name_lookup_retry (use_init_port, get_dtable_port, lookup, - doretry, retryname, flags, mode, - result); + err = __hurd_file_name_lookup_retry (use_init_port, get_dtable_port, + lookup, doretry, retryname, + flags, mode, result); return err; } @@ -85,7 +107,8 @@ __hurd_file_name_lookup_retry (error_t ( (int which, error_t (*operate) (file_t)), file_t (*get_dtable_port) (int fd), error_t (*lookup) - (file_t dir, char *name, int flags, mode_t mode, + (file_t dir, char *name, + int flags, mode_t mode, retry_type *do_retry, string_t retry_name, mach_port_t *result), enum retry_type doretry, @@ -152,9 +175,53 @@ __hurd_file_name_lookup_retry (error_t ( translator a chance to make a new port for us. */ doretry == FS_RETRY_NORMAL) { + if (flags & O_NOFOLLOW) + { + /* In Linux, O_NOFOLLOW means to reject symlinks. If we + did an O_NOLINK lookup above and io_stat here to check + for S_IFLNK, a translator like firmlink could easily + spoof this check by not showing S_IFLNK, but in fact + redirecting the lookup to some other name + (i.e. opening the very same holes a symlink would). + + Instead we do an O_NOTRANS lookup above, and stat the + underlying node: if it has a translator set, and its + owner is not root (st_uid 0) then we reject it. + Since the motivation for this feature is security, and + that security presumes we trust the containing + directory, this check approximates the security of + refusing symlinks while accepting mount points. + Note that we actually permit something Linux doesn't: + we follow root-owned symlinks; if that is deemed + undesireable, we can add a final check for that + one exception to our general translator-based rule. */ + struct stat st; + err = __io_stat (*result, &st); + if (!err + && (st.st_mode & (S_IPTRANS|S_IATRANS))) + { + if (st.st_uid != 0) + err = ENOENT; + else if (st.st_mode & S_IPTRANS) + { + char buf[1024]; + char *trans = buf; + size_t translen = sizeof buf; + err = __file_get_translator (*result, + &trans, &translen); + if (!err + && translen > sizeof _HURD_SYMLINK + && !memcmp (trans, + _HURD_SYMLINK, sizeof _HURD_SYMLINK)) + err = ENOENT; + } + } + } + /* We got a successful translation. Now apply any open-time action flags we were passed. */ - if (flags & O_TRUNC) + + if (!err && (flags & O_TRUNC)) /* Asked to truncate the file. */ err = __file_set_size (*result, 0); if (err) diff -durpN glibc-2.1/hurd/hurdselect.c glibc-2.1.1/hurd/hurdselect.c --- glibc-2.1/hurd/hurdselect.c Sun Dec 6 00:39:44 1998 +++ glibc-2.1.1/hurd/hurdselect.c Sun Feb 28 01:04:22 1999 @@ -1,5 +1,5 @@ /* Guts of both `select' and `poll' for Hurd. - Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc. + Copyright (C) 1991,92,93,94,95,96,97,98, 99 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 @@ -172,8 +172,9 @@ _hurd_select (int nfds, { /* If one descriptor is bogus, we fail completely. */ while (i-- > 0) - _hurd_port_free (&d[i].cell->port, &d[i].ulink, - d[i].io_port); + if (d[i].type != 0) + _hurd_port_free (&d[i].cell->port, &d[i].ulink, + d[i].io_port); break; } lastfd = i; diff -durpN glibc-2.1/hurd/set-host.c glibc-2.1.1/hurd/set-host.c --- glibc-2.1/hurd/set-host.c Sun Mar 16 17:39:22 1997 +++ glibc-2.1.1/hurd/set-host.c Mon May 24 15:58:55 1999 @@ -1,5 +1,5 @@ /* Set a host configuration item kept as the whole contents of a file. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 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 @@ -27,23 +27,24 @@ _hurd_set_host_config (const char *item, error_t err; mach_msg_type_number_t nwrote; file_t new, dir; + char *name; - dir = __file_name_split (item, (char **)&item); + dir = __file_name_split (item, &name); if (dir == MACH_PORT_NULL) return -1; /* Create a new node. */ - err = __dir_mkfile (dir, O_CREAT|O_TRUNC, 0600, &new); + err = __dir_mkfile (dir, O_CREAT|O_TRUNC, 0644, &new); if (! err) { /* Write the contents. */ err = __io_write (new, value, valuelen, 0, &nwrote); if (! err) /* Atomically link the new node onto the name. */ - err = __dir_link (dir, new, item, 0); + err = __dir_link (dir, new, name, 0); __mach_port_deallocate (__mach_task_self (), new); } __mach_port_deallocate (__mach_task_self (), dir); - return nwrote; + return err ? __hurd_fail (err) : nwrote; } diff -durpN glibc-2.1/iconv/gconv.c glibc-2.1.1/iconv/gconv.c --- glibc-2.1/iconv/gconv.c Mon Oct 19 21:53:34 1998 +++ glibc-2.1.1/iconv/gconv.c Wed Mar 17 21:03:38 1999 @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -27,8 +27,8 @@ int internal_function -__gconv (gconv_t cd, const char **inbuf, const char *inbufend, char **outbuf, - char *outbufend, size_t *converted) +__gconv (gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend, + unsigned char **outbuf, unsigned char *outbufend, size_t *converted) { size_t last_step = cd->nsteps - 1; int result; @@ -45,7 +45,7 @@ __gconv (gconv_t cd, const char **inbuf, (cd->steps, cd->data, NULL, NULL, converted, 1)); else { - const char *last_start; + const unsigned char *last_start; assert (outbuf != NULL && *outbuf != NULL); cd->data[last_step].outbuf = *outbuf; diff -durpN glibc-2.1/iconv/gconv.h glibc-2.1.1/iconv/gconv.h --- glibc-2.1/iconv/gconv.h Tue Jan 12 17:21:30 1999 +++ glibc-2.1.1/iconv/gconv.h Thu Apr 29 16:56:35 1999 @@ -57,8 +57,9 @@ struct gconv_loaded_object; /* Type of a conversion function. */ typedef int (*gconv_fct) __PMT ((struct gconv_step *, - struct gconv_step_data *, __const char **, - __const char *, size_t *, int)); + struct gconv_step_data *, + __const unsigned char **, + __const unsigned char *, size_t *, int)); /* Constructor and destructor for local data for conversion step. */ typedef int (*gconv_init_fct) __PMT ((struct gconv_step *)); @@ -97,8 +98,8 @@ struct gconv_step allocated by the `init' function. */ struct gconv_step_data { - char *outbuf; /* Output buffer for this step. */ - char *outbufend; /* Address of first byte after the output buffer. */ + unsigned char *outbuf; /* Output buffer for this step. */ + unsigned char *outbufend; /* Address of first byte after the output buffer.*/ /* Is this the last module in the chain. */ int is_last; @@ -122,7 +123,7 @@ typedef struct gconv_info { size_t nsteps; struct gconv_step *steps; - struct gconv_step_data *data; + struct gconv_step_data data[0]; } *gconv_t; #endif /* gconv.h */ diff -durpN glibc-2.1/iconv/gconv_builtin.h glibc-2.1.1/iconv/gconv_builtin.h --- glibc-2.1/iconv/gconv_builtin.h Wed Jan 20 17:11:44 1999 +++ glibc-2.1.1/iconv/gconv_builtin.h Sun Apr 25 18:06:00 1999 @@ -1,5 +1,5 @@ /* Builtin transformations. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -79,3 +79,15 @@ BUILTIN_TRANSFORMATION (NULL, "INTERNAL" 1, "=INTERNAL->ucs2little", __gconv_transform_internal_ucs2little, NULL, NULL, 4, 4, 2, 2) + +BUILTIN_ALIAS ("UTF-16//", "UTF16//") + +BUILTIN_TRANSFORMATION (NULL, "INTERNAL", 8, "UTF16//", + 1, "=INTERNAL->utf16", + __gconv_transform_internal_utf16, NULL, NULL, + 4, 4, 2, 4) + +BUILTIN_TRANSFORMATION (NULL, "UTF16//", 7, "INTERNAL", + 1, "=utf16->INTERNAL", + __gconv_transform_utf16_internal, NULL, NULL, + 2, 4, 4, 4) diff -durpN glibc-2.1/iconv/gconv_close.c glibc-2.1.1/iconv/gconv_close.c --- glibc-2.1/iconv/gconv_close.c Sat Apr 4 06:51:30 1998 +++ glibc-2.1.1/iconv/gconv_close.c Thu Apr 29 16:56:36 1999 @@ -1,5 +1,5 @@ /* Release any resource associated with given conversion descriptor. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -44,7 +44,6 @@ __gconv_close (gconv_t cd) while (!(drunp++)->is_last); /* Free the data allocated for the descriptor. */ - free (cd->data); free (cd); /* Close the participating modules. */ diff -durpN glibc-2.1/iconv/gconv_conf.c glibc-2.1.1/iconv/gconv_conf.c --- glibc-2.1/iconv/gconv_conf.c Fri Jan 29 00:26:46 1999 +++ glibc-2.1.1/iconv/gconv_conf.c Sat May 1 00:33:11 1999 @@ -67,8 +67,7 @@ static struct gconv_module builtin_modul #undef BUILTIN_TRANSFORMATION #undef BUILTIN_ALIAS -static const char * -builtin_aliases[] = +static const char *builtin_aliases[] = { #define BUILTIN_TRANSFORMATION(From, ConstPfx, ConstLen, To, Cost, Name, \ Fct, Init, End, MinF, MaxF, MinT, MaxT) @@ -201,14 +200,16 @@ add_alias (char *rp, void *modules) 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); - if (__tfind (new_alias, &__gconv_alias_db, __gconv_alias_compare) != NULL - || (__tsearch (new_alias, &__gconv_alias_db, __gconv_alias_compare) - == NULL)) + 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); } diff -durpN glibc-2.1/iconv/gconv_db.c glibc-2.1.1/iconv/gconv_db.c --- glibc-2.1/iconv/gconv_db.c Thu Jan 28 22:58:34 1999 +++ glibc-2.1.1/iconv/gconv_db.c Thu Apr 29 16:56:38 1999 @@ -139,14 +139,17 @@ add_derivation (const char *fromset, con malloc (sizeof (struct known_derivation) + fromset_len + toset_len); if (new_deriv != NULL) { - new_deriv->from = memcpy (new_deriv + 1, fromset, fromset_len); - new_deriv->to = memcpy ((char *) new_deriv->from + fromset_len, + new_deriv->from = (char *) (new_deriv + 1); + new_deriv->to = memcpy (__mempcpy (new_deriv + 1, fromset, fromset_len), toset, toset_len); new_deriv->steps = handle; new_deriv->nsteps = nsteps; - __tsearch (new_deriv, &known_derivations, derivation_compare); + 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 @@ -655,7 +658,7 @@ __gconv_find_transform (const char *tose size_t cnt = *nsteps; struct gconv_step *steps = *handle; - do + while (cnt > 0) if (steps[--cnt].counter++ == 0) { steps[cnt].shlib_handle = @@ -670,7 +673,6 @@ __gconv_find_transform (const char *tose break; } } - while (cnt > 0); } #endif diff -durpN glibc-2.1/iconv/gconv_dl.c glibc-2.1.1/iconv/gconv_dl.c --- glibc-2.1/iconv/gconv_dl.c Fri Jan 29 00:41:06 1999 +++ glibc-2.1.1/iconv/gconv_dl.c Thu May 6 18:14:37 1999 @@ -64,7 +64,7 @@ do_open (void *a) { struct gconv_loaded_object *args = (struct gconv_loaded_object *) a; /* Open and relocate the shared object. */ - args->handle = _dl_open (args->name, RTLD_LAZY); + args->handle = _dl_open (args->name, RTLD_LAZY, NULL); } diff -durpN glibc-2.1/iconv/gconv_int.h glibc-2.1.1/iconv/gconv_int.h --- glibc-2.1/iconv/gconv_int.h Wed Jan 20 17:11:48 1999 +++ glibc-2.1.1/iconv/gconv_int.h Sun Apr 25 18:06:01 1999 @@ -106,8 +106,9 @@ extern int __gconv_close (gconv_t cd) according to rules described by CD and place up to *OUTBYTESLEFT bytes in buffer starting at *OUTBUF. Return number of written characters in *CONVERTED if this pointer is not null. */ -extern int __gconv (gconv_t __cd, const char **__inbuf, const char *inbufend, - char **__outbuf, char *outbufend, size_t *converted) +extern int __gconv (gconv_t __cd, const unsigned char **__inbuf, + const unsigned char *inbufend, unsigned char **__outbuf, + unsigned char *outbufend, size_t *converted) internal_function; /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing @@ -154,8 +155,9 @@ extern void __gconv_get_builtin_trans (c #ifdef _LIBC # define __BUILTIN_TRANS(Name) \ extern int Name (struct gconv_step *__step, struct gconv_step_data *__data, \ - const char **__inbuf, const char *__inbufend, \ - size_t *__written, int __do_flush) + const unsigned char **__inbuf, \ + const unsigned char *__inbufend, size_t *__written, \ + int __do_flush) __BUILTIN_TRANS (__gconv_transform_ascii_internal); __BUILTIN_TRANS (__gconv_transform_internal_ascii); @@ -166,6 +168,8 @@ __BUILTIN_TRANS (__gconv_transform_inter __BUILTIN_TRANS (__gconv_transform_ucs2little_internal); __BUILTIN_TRANS (__gconv_transform_internal_ucs2little); __BUILTIN_TRANS (__gconv_transform_internal_ucs4); +__BUILTIN_TRANS (__gconv_transform_internal_utf16); +__BUILTIN_TRANS (__gconv_transform_utf16_internal); # undef __BUITLIN_TRANS #endif diff -durpN glibc-2.1/iconv/gconv_open.c glibc-2.1.1/iconv/gconv_open.c --- glibc-2.1/iconv/gconv_open.c Sat May 16 00:59:56 1998 +++ glibc-2.1.1/iconv/gconv_open.c Thu Apr 29 16:56:40 1999 @@ -1,5 +1,5 @@ /* Find matching transformation algorithms and initialize steps. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -38,7 +38,8 @@ __gconv_open (const char *toset, const c if (res == GCONV_OK) { /* Allocate room for handle. */ - result = (gconv_t) malloc (sizeof (struct gconv_info)); + result = (gconv_t) malloc (sizeof (struct gconv_info) + + nsteps * sizeof (struct gconv_step_data)); if (result == NULL) res = GCONV_NOMEM; else @@ -47,47 +48,41 @@ __gconv_open (const char *toset, const c result->steps = steps; result->nsteps = nsteps; - /* Allocate array for the step data. */ - result->data = (struct gconv_step_data *) - calloc (nsteps, sizeof (struct gconv_step_data)); + /* Clear the array for the step data. */ + memset (result->data, '\0', + nsteps * sizeof (struct gconv_step_data)); - if (result->data == NULL) - res = GCONV_NOMEM; - else + /* Call all initialization functions for the transformation + step implemenations. */ + for (cnt = 0; cnt < nsteps; ++cnt) { - /* Call all initialization functions for the transformation - step implemenations. */ - struct gconv_step_data *data = result->data; + /* If this is the last step we must not allocate an + output buffer. */ + result->data[cnt].is_last = cnt == nsteps - 1; - for (cnt = 0; cnt < nsteps; ++cnt) - { - /* If this is the last step we must not allocate an output - buffer. */ - data[cnt].is_last = cnt == nsteps - 1; + /* Reset the counter. */ + result->data[cnt].invocation_counter = 0; - /* Reset the counter. */ - data[cnt].invocation_counter = 0; + /* It's a regular use. */ + result->data[cnt].internal_use = 0; - /* It's a regular use. */ - data[cnt].internal_use = 0; + /* We use the `mbstate_t' member in DATA. */ + result->data[cnt].statep = &result->data[cnt].__state; - /* We use the `mbstate_t' member in DATA. */ - data[cnt].statep = &data[cnt].__state; + /* Allocate the buffer. */ + if (!result->data[cnt].is_last) + { + size_t size = (GCONV_NCHAR_GOAL + * steps[cnt].max_needed_to); - /* Allocate the buffer. */ - if (!data[cnt].is_last) + result->data[cnt].outbuf = (char *) malloc (size); + if (result->data[cnt].outbuf == NULL) { - size_t size = (GCONV_NCHAR_GOAL - * steps[cnt].max_needed_to); - - data[cnt].outbuf = (char *) malloc (size); - if (data[cnt].outbuf == NULL) - { - res = GCONV_NOMEM; - break; - } - data[cnt].outbufend = data[cnt].outbuf + size; + res = GCONV_NOMEM; + break; } + result->data[cnt].outbufend = (result->data[cnt].outbuf + + size); } } } @@ -100,13 +95,8 @@ __gconv_open (const char *toset, const c if (result != NULL) { - if (result->data != NULL) - { - while (cnt-- > 0) - free (result->data[cnt].outbuf); - - free (result->data); - } + while (cnt-- > 0) + free (result->data[cnt].outbuf); free (result); result = NULL; diff -durpN glibc-2.1/iconv/gconv_simple.c glibc-2.1.1/iconv/gconv_simple.c --- glibc-2.1/iconv/gconv_simple.c Wed Jan 20 17:11:49 1999 +++ glibc-2.1.1/iconv/gconv_simple.c Sun Apr 25 18:06:02 1999 @@ -1,5 +1,5 @@ /* Simple transformations functions. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -447,6 +447,176 @@ internal_ucs4_loop (const unsigned char } \ *((uint16_t *) outptr)++ = bswap_16 (((uint16_t *) inptr)[1]); \ inptr += 4; \ + } +#endif +#include +#include + + +/* Convert from the internal (UCS4-like) format to UTF-16. */ +#define DEFINE_INIT 0 +#define DEFINE_FINI 0 +#define MIN_NEEDED_FROM 4 +#define MIN_NEEDED_TO 2 +#define MAX_NEEDED_TO 4 +#define FROM_DIRECTION 1 +#define FROM_LOOP internal_utf16_loop +#define TO_LOOP internal_utf16_loop /* This is not used. */ +#define FUNCTION_NAME __gconv_transform_internal_utf16 + +#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 +#if __BYTE_ORDER == __LITTLE_ENDIAN +# define BODY \ + { \ + if (*((uint32_t *) inptr) >= 0x10000) \ + { \ + if (*((uint32_t *) inptr) >= 0x110000) \ + { \ + result = GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + \ + /* Generate a surrogate character. */ \ + if (NEED_LENGTH_TEST && outptr + 4 > outend) \ + { \ + /* Overflow in the output buffer. */ \ + result = GCONV_FULL_OUTPUT; \ + break; \ + } \ + \ + *((uint16_t *) outptr)++ = bswap_16 (0xd7c0 \ + + (*((uint32_t *) inptr) >> 10));\ + *((uint16_t *) outptr)++ = bswap_16 (0xdc00 \ + + (*((uint32_t *) inptr) \ + & 0x3ff)); \ + } \ + else \ + /* Please note that we use the `uint32_t' from-pointer as an `uint16_t' \ + pointer which works since we are on a little endian machine. */ \ + *((uint16_t *) outptr)++ = bswap_16 (*((uint16_t *) inptr)); \ + inptr += 4; \ + } +#else +# define BODY \ + { \ + if (*((uint32_t *) inptr) >= 0x10000) \ + { \ + if (*((uint32_t *) inptr) >= 0x110000) \ + { \ + result = GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + \ + /* Generate a surrogate character. */ \ + if (NEED_LENGTH_TEST && outptr + 4 > outend) \ + { \ + /* Overflow in the output buffer. */ \ + result = GCONV_FULL_OUTPUT; \ + break; \ + } \ + \ + *((uint16_t *) outptr)++ = 0xd7c0 + (*((uint32_t *) inptr) >> 10); \ + *((uint16_t *) outptr)++ = 0xdc00 + (*((uint32_t *) inptr) & 0x3ff); \ + } \ + else \ + *((uint16_t *) outptr)++ = *((uint32_t *) inptr)++; \ + } +#endif +#include +#include + + +/* Convert from UTF-16 to the internal (UCS4-like) format. */ +#define DEFINE_INIT 0 +#define DEFINE_FINI 0 +#define MIN_NEEDED_FROM 2 +#define MAX_NEEDED_FROM 4 +#define MIN_NEEDED_TO 4 +#define FROM_DIRECTION 1 +#define FROM_LOOP utf16_internal_loop +#define TO_LOOP utf16_internal_loop /* This is not used.*/ +#define FUNCTION_NAME __gconv_transform_utf16_internal + +#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 +#if __BYTE_ORDER == __LITTLE_ENDIAN +# define BODY \ + { \ + uint16_t u1 = bswap_16 (*(uint16_t *) inptr); \ + \ + if (u1 < 0xd800 || u1 > 0xdfff) \ + { \ + /* No surrogate. */ \ + *((uint32_t *) outptr)++ = u1; \ + inptr += 2; \ + } \ + else \ + { \ + uint16_t u2; \ + \ + /* It's a surrogate character. At least the first word says \ + it is. */ \ + if (NEED_LENGTH_TEST && inptr + 4 > inend) \ + { \ + /* We don't have enough input for another complete input \ + character. */ \ + result = GCONV_INCOMPLETE_INPUT; \ + break; \ + } \ + \ + u2 = bswap_16 (((uint16_t *) inptr)[1]); \ + if (u2 < 0xdc00 || u2 >= 0xdfff) \ + { \ + /* This is no valid second word for a surrogate. */ \ + result = GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + \ + *((uint32_t *) outptr)++ = ((u1 - 0xd7c0) << 10) + (u2 - 0xdc00); \ + inptr += 4; \ + } \ + } +#else +# define BODY \ + { \ + uint16_t u1 = *(uint16_t *) inptr; \ + \ + if (u1 < 0xd800 || u1 > 0xdfff) \ + { \ + /* No surrogate. */ \ + *((uint32_t *) outptr)++ = u1; \ + inptr += 2; \ + } \ + else \ + { \ + uint16_t u2; \ + \ + /* It's a surrogate character. At least the first word says \ + it is. */ \ + if (NEED_LENGTH_TEST && inptr + 4 > inend) \ + { \ + /* We don't have enough input for another complete input \ + character. */ \ + result = GCONV_INCOMPLETE_INPUT; \ + break; \ + } \ + \ + u2 = ((uint16_t *) inptr)[1]; \ + if (u2 < 0xdc00 || u2 >= 0xdfff) \ + { \ + /* This is no valid second word for a surrogate. */ \ + result = GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + \ + *((uint32_t *) outptr)++ = ((u1 - 0xd7c0) << 10) + (u2 - 0xdc00); \ + inptr += 4; \ + } \ } #endif #include diff -durpN glibc-2.1/iconv/iconv.c glibc-2.1.1/iconv/iconv.c --- glibc-2.1/iconv/iconv.c Mon Apr 20 04:55:44 1998 +++ glibc-2.1.1/iconv/iconv.c Wed Mar 17 21:03:42 1999 @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -38,15 +38,19 @@ iconv (iconv_t cd, const char **inbuf, s if (inbuf == NULL || *inbuf == NULL) { - result = __gconv (gcd, NULL, NULL, outbuf, outstart + *outbytesleft, + result = __gconv (gcd, NULL, NULL, (unsigned char **) outbuf, + (unsigned char *) (outstart + *outbytesleft), &converted); } else { const char *instart = *inbuf; - result = __gconv (gcd, inbuf, *inbuf + *inbytesleft, outbuf, - *outbuf + *outbytesleft, &converted); + result = __gconv (gcd, (const unsigned char **) inbuf, + (const unsigned char *) (*inbuf + *inbytesleft), + (unsigned char **) outbuf, + (unsigned char *) (*outbuf + *outbytesleft), + &converted); *inbytesleft -= *inbuf - instart; } diff -durpN glibc-2.1/iconv/skeleton.c glibc-2.1.1/iconv/skeleton.c --- glibc-2.1/iconv/skeleton.c Fri Jan 22 20:56:11 1999 +++ glibc-2.1.1/iconv/skeleton.c Wed Mar 17 21:03:43 1999 @@ -196,8 +196,8 @@ gconv_init (struct gconv_step *step) int FUNCTION_NAME (struct gconv_step *step, struct gconv_step_data *data, - const char **inbuf, const char *inbufend, size_t *written, - int do_flush) + const unsigned char **inbuf, const unsigned char *inbufend, + size_t *written, int do_flush) { struct gconv_step *next_step = step + 1; struct gconv_step_data *next_data = data + 1; @@ -224,10 +224,10 @@ FUNCTION_NAME (struct gconv_step *step, else { /* We preserve the initial values of the pointer variables. */ - const char *inptr = *inbuf; - char *outbuf = data->outbuf; - char *outend = data->outbufend; - char *outptr; + const unsigned char *inptr = *inbuf; + unsigned char *outbuf = data->outbuf; + unsigned char *outend = data->outbufend; + unsigned char *outstart; /* This variable is used to count the number of characters we actually converted. */ @@ -242,7 +242,7 @@ FUNCTION_NAME (struct gconv_step *step, /* Remember the start value for this round. */ inptr = *inbuf; /* The outbuf buffer is empty. */ - outptr = outbuf; + outstart = outbuf; #ifdef SAVE_RESET_STATE SAVE_RESET_STATE (1); @@ -250,18 +250,12 @@ FUNCTION_NAME (struct gconv_step *step, if (FROM_DIRECTION) /* Run the conversion loop. */ - status = FROM_LOOP ((const unsigned char **) inbuf, - (const unsigned char *) inbufend, - (unsigned char **) &outbuf, - (unsigned char *) outend, + status = FROM_LOOP (inbuf, inbufend, &outbuf, outend, data->statep, step->data, &converted EXTRA_LOOP_ARGS); else /* Run the conversion loop. */ - status = TO_LOOP ((const unsigned char **) inbuf, - (const unsigned char *) inbufend, - (unsigned char **) &outbuf, - (unsigned char *) outend, + status = TO_LOOP (inbuf, inbufend, &outbuf, outend, data->statep, step->data, &converted EXTRA_LOOP_ARGS); @@ -279,9 +273,9 @@ FUNCTION_NAME (struct gconv_step *step, } /* Write out all output which was produced. */ - if (outbuf > outptr) + if (outbuf > outstart) { - const char *outerr = data->outbuf; + const unsigned char *outerr = data->outbuf; int result; result = DL_CALL_FCT (fct, (next_step, next_data, &outerr, @@ -300,7 +294,7 @@ FUNCTION_NAME (struct gconv_step *step, /* Reload the pointers. */ *inbuf = inptr; - outbuf = outptr; + outbuf = outstart; /* Reset the state. */ # ifdef SAVE_RESET_STATE diff -durpN glibc-2.1/iconvdata/Makefile glibc-2.1.1/iconvdata/Makefile --- glibc-2.1/iconvdata/Makefile Wed Jan 20 20:05:03 1999 +++ glibc-2.1.1/iconvdata/Makefile Mon Apr 19 16:04:21 1999 @@ -32,7 +32,7 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 EBCDIC-FI-SE-A EBCDIC-FR EBCDIC-IS-FRISS EBCDIC-IT EBCDIC-PT \ EBCDIC-UK EBCDIC-US IBM037 IBM038 IBM274 IBM275 IBM423 \ IBM500 IBM870 IBM871 IBM891 IBM903 IBM904 IBM905 IBM1047 \ - CP874 CP737 CP775 ISO-2022-KR \ + IBM874 CP737 CP775 ISO-2022-KR \ KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \ IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM424 \ IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM860 IBM861 \ @@ -44,7 +44,7 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 GOST_19768-74 GREEK-CCITT GREEK7 GREEK7-OLD INIS INIS-8 \ INIS-CYRILLIC ISO_6937-2 ISO_2033 ISO_5427 ISO_5427-EXT \ ISO_5428 ISO_10367-BOX MAC-IS MAC-UK NATS-DANO NATS-SEFI \ - SAMI-WS2 ISO-IR-197 + SAMI-WS2 ISO-IR-197 TIS-620 KOI8-U modules.so := $(addsuffix .so, $(modules)) @@ -84,9 +84,9 @@ distribute := gconv-modules extra-module TESTS $(wildcard testdata/*) run-iconv-test.sh \ 8bit-generic.c 8bit-gap.c \ ansi_x3.110.c asmo_449.c baltic.c big5.c cp737.c cp737.h \ - cp775.c cp775.h cp874.c cp874.h cns11643.c cns11643.h \ + cp775.c cp775.h ibm874.c cns11643.c cns11643.h \ cns11643l1.c cns11643l1.h cp1250.c cp1251.c cp1252.c cp1253.c \ - cp1254.c cp1255.c cp1256.c cp1257.c cp1258.c cp1258.h \ + cp1254.c cp1255.c cp1256.c cp1257.c cp1258.c \ csn_369103.c cwi.c dec-mcs.c ebcdic-at-de.c ebcdic-at-de-a.c \ ebcdic-ca-fr.c ebcdic-dk-no.c ebcdic-dk-no-a.c ebcdic-es.c \ ebcdic-es-a.c ebcdic-es-s.c ebcdic-fr.c ebcdic-fi-se.c \ @@ -111,16 +111,14 @@ distribute := gconv-modules extra-module jis0208.c jis0208.h jis0212.c jis0212.h johab.c koi-8.c \ koi8-r.c ksc5601.c ksc5601.h latin-greek.c latin-greek-1.c \ macintosh.c mac-is.c mac-uk.c nats-dano.c nats-sefi.c sjis.c \ - t.61.c uhc.c sami-ws2.c iso-ir-197.c + t.61.c uhc.c sami-ws2.c iso-ir-197.c tis-620.c koi8-u.c # We build the transformation modules only when we build shared libs. ifeq (yes,$(build-shared)) # Rule to generate the shared objects. charmaps = ../localedata/charmaps -ifndef no_deps -include $(objpfx)iconv-rules -endif extra-modules-left := $(modules) include extra-module.mk @@ -153,7 +151,7 @@ gen-8bit-gap-modules := koi8-r latin-gre inis-cyrillic iso_2033 iso_5427 iso_5427-ext \ iso_5428 iso_10367-box mac-is nats-dano nats-sefi \ iso8859-13 iso8859-14 iso8859-15 mac-uk sami-ws2 \ - iso-ir-197 + iso-ir-197 cp1258 tis-620 koi8-u ibm874 gen-special-modules := iso8859-7jp @@ -186,6 +184,7 @@ endef # The headers must be generated before the compilation. before-compile = $(addprefix $(objpfx),$(generated-modules:=.h)) +ifndef avoid-generated $(objpfx)iconv-rules: Makefile $(make-target-directory) { echo $(filter-out lib%, $(modules)); \ @@ -207,6 +206,7 @@ $(objpfx)iconv-rules: Makefile } \ }' > $@.new mv -f $@.new $@ +endif $(generated-modules:%=$(objpfx)%.h): $(objpfx)%.h: $(objpfx)%.stmp @: @@ -232,7 +232,9 @@ endif # build-shared = yes include ../Rules +ifeq (yes,$(build-shared)) tests: $(objpfx)iconv-test.out +endif $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ $(addprefix $(objpfx),$(modules.so)) \ diff -durpN glibc-2.1/iconvdata/TESTS glibc-2.1.1/iconvdata/TESTS --- glibc-2.1/iconvdata/TESTS Thu May 21 06:19:52 1998 +++ glibc-2.1.1/iconvdata/TESTS Thu Apr 1 17:08:27 1999 @@ -1,5 +1,5 @@ # Available tests for iconv(1) (and therefore iconv(3)) in GNU libc. -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1998. # @@ -39,6 +39,8 @@ ISO-8859-7 ISO-8859-7 Y UTF8 ISO-8859-8 ISO-8859-8 Y UTF8 ISO-8859-9 ISO-8859-9 Y UTF8 ISO-8859-10 ISO-8859-10 Y UCS2 UTF8 +ISO-8859-14 ISO-8859-14 Y UTF8 +ISO-8859-15 ISO-8859-15 Y UTF8 ANSI_X3.4-1968 ANSI_X3.4-1968 Y UTF8 BS_4730 BS_4730 Y UTF8 CSA_Z243.4-1985-1 CSA_Z243.4-1985-1 Y UCS2 @@ -73,5 +75,6 @@ CP1254 CP1254 Y UTF8 CP1255 CP1255 Y UTF8 CP1256 CP1256 Y UTF8 CP1257 CP1257 Y UTF8 +CP1258 CP1258 Y UTF8 ISO-2022-KR ISO-2022-KR N UTF8 EUC-KR EUC-KR Y UTF8 diff -durpN glibc-2.1/iconvdata/asmo_449.c glibc-2.1.1/iconvdata/asmo_449.c --- glibc-2.1/iconvdata/asmo_449.c Fri Sep 11 06:03:57 1998 +++ glibc-2.1.1/iconvdata/asmo_449.c Mon Apr 12 17:56:17 1999 @@ -1,5 +1,5 @@ -/* Conversion from and to MACINTOSH. - Copyright (C) 1998 Free Software Foundation, Inc. +/* Conversion from and to ASMO_449. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. diff -durpN glibc-2.1/iconvdata/cp1258.h glibc-2.1.1/iconvdata/cp1258.h --- glibc-2.1/iconvdata/cp1258.h Wed Dec 16 08:26:42 1998 +++ glibc-2.1.1/iconvdata/cp1258.h Thu Jan 1 00:00:00 1970 @@ -1,306 +0,0 @@ -static const uint32_t to_ucs4[256] = { - [0x01] = 0x0001, - [0x02] = 0x0002, - [0x03] = 0x0003, - [0x04] = 0x0004, - [0x05] = 0x0005, - [0x06] = 0x0006, - [0x07] = 0x0007, - [0x08] = 0x0008, - [0x09] = 0x0009, - [0x0A] = 0x000A, - [0x0B] = 0x000B, - [0x0C] = 0x000C, - [0x0D] = 0x000D, - [0x0E] = 0x000E, - [0x0F] = 0x000F, - [0x10] = 0x0010, - [0x11] = 0x0011, - [0x12] = 0x0012, - [0x13] = 0x0013, - [0x14] = 0x0014, - [0x15] = 0x0015, - [0x16] = 0x0016, - [0x17] = 0x0017, - [0x18] = 0x0018, - [0x19] = 0x0019, - [0x1A] = 0x001A, - [0x1B] = 0x001B, - [0x1C] = 0x001C, - [0x1D] = 0x001D, - [0x1E] = 0x001E, - [0x1F] = 0x001F, - [0x20] = 0x0020, - [0x21] = 0x0021, - [0x22] = 0x0022, - [0x23] = 0x0023, - [0x24] = 0x0024, - [0x25] = 0x0025, - [0x26] = 0x0026, - [0x27] = 0x0027, - [0x28] = 0x0028, - [0x29] = 0x0029, - [0x2A] = 0x002A, - [0x2B] = 0x002B, - [0x2C] = 0x002C, - [0x2D] = 0x002D, - [0x2E] = 0x002E, - [0x2F] = 0x002F, - [0x30] = 0x0030, - [0x31] = 0x0031, - [0x32] = 0x0032, - [0x33] = 0x0033, - [0x34] = 0x0034, - [0x35] = 0x0035, - [0x36] = 0x0036, - [0x37] = 0x0037, - [0x38] = 0x0038, - [0x39] = 0x0039, - [0x3A] = 0x003A, - [0x3B] = 0x003B, - [0x3C] = 0x003C, - [0x3D] = 0x003D, - [0x3E] = 0x003E, - [0x3F] = 0x003F, - [0x40] = 0x0040, - [0x41] = 0x0041, - [0x42] = 0x0042, - [0x43] = 0x0043, - [0x44] = 0x0044, - [0x45] = 0x0045, - [0x46] = 0x0046, - [0x47] = 0x0047, - [0x48] = 0x0048, - [0x49] = 0x0049, - [0x4A] = 0x004A, - [0x4B] = 0x004B, - [0x4C] = 0x004C, - [0x4D] = 0x004D, - [0x4E] = 0x004E, - [0x4F] = 0x004F, - [0x50] = 0x0050, - [0x51] = 0x0051, - [0x52] = 0x0052, - [0x53] = 0x0053, - [0x54] = 0x0054, - [0x55] = 0x0055, - [0x56] = 0x0056, - [0x57] = 0x0057, - [0x58] = 0x0058, - [0x59] = 0x0059, - [0x5A] = 0x005A, - [0x5B] = 0x005B, - [0x5C] = 0x005C, - [0x5D] = 0x005D, - [0x5E] = 0x005E, - [0x5F] = 0x005F, - [0x60] = 0x0060, - [0x61] = 0x0061, - [0x62] = 0x0062, - [0x63] = 0x0063, - [0x64] = 0x0064, - [0x65] = 0x0065, - [0x66] = 0x0066, - [0x67] = 0x0067, - [0x68] = 0x0068, - [0x69] = 0x0069, - [0x6A] = 0x006A, - [0x6B] = 0x006B, - [0x6C] = 0x006C, - [0x6D] = 0x006D, - [0x6E] = 0x006E, - [0x6F] = 0x006F, - [0x70] = 0x0070, - [0x71] = 0x0071, - [0x72] = 0x0072, - [0x73] = 0x0073, - [0x74] = 0x0074, - [0x75] = 0x0075, - [0x76] = 0x0076, - [0x77] = 0x0077, - [0x78] = 0x0078, - [0x79] = 0x0079, - [0x7A] = 0x007A, - [0x7B] = 0x007B, - [0x7C] = 0x007C, - [0x7D] = 0x007D, - [0x7E] = 0x007E, - [0x7F] = 0x007F, - [0x82] = 0x201A, - [0x83] = 0x0192, - [0x84] = 0x201E, - [0x85] = 0x2026, - [0x86] = 0x2020, - [0x87] = 0x2021, - [0x88] = 0x02C6, - [0x89] = 0x2030, - [0x8B] = 0x2039, - [0x8C] = 0x0152, - [0x91] = 0x2018, - [0x92] = 0x2019, - [0x93] = 0x201C, - [0x94] = 0x201D, - [0x95] = 0x2022, - [0x96] = 0x2013, - [0x97] = 0x2014, - [0x98] = 0x02DC, - [0x99] = 0x2122, - [0x9B] = 0x203A, - [0x9C] = 0x0153, - [0x9F] = 0x0178, - [0xA0] = 0x00A0, - [0xA1] = 0x00A1, - [0xA2] = 0x00A2, - [0xA3] = 0x00A3, - [0xA4] = 0x00A4, - [0xA5] = 0x00A5, - [0xA6] = 0x00A6, - [0xA7] = 0x00A7, - [0xA8] = 0x00A8, - [0xA9] = 0x00A9, - [0xAA] = 0x00AA, - [0xAB] = 0x00AB, - [0xAC] = 0x00AC, - [0xAD] = 0x00AD, - [0xAE] = 0x00AE, - [0xAF] = 0x00AF, - [0xB0] = 0x00B0, - [0xB1] = 0x00B1, - [0xB2] = 0x00B2, - [0xB3] = 0x00B3, - [0xB4] = 0x00B4, - [0xB5] = 0x00B5, - [0xB6] = 0x00B6, - [0xB7] = 0x00B7, - [0xB8] = 0x00B8, - [0xB9] = 0x00B9, - [0xBA] = 0x00BA, - [0xBB] = 0x00BB, - [0xBC] = 0x00BC, - [0xBD] = 0x00BD, - [0xBE] = 0x00BE, - [0xBF] = 0x00BF, - [0xC0] = 0x00C0, - [0xC1] = 0x00C1, - [0xC2] = 0x00C2, - [0xC3] = 0x0102, - [0xC4] = 0x00C4, - [0xC5] = 0x00C5, - [0xC6] = 0x00C6, - [0xC7] = 0x00C7, - [0xC8] = 0x00C8, - [0xC9] = 0x00C9, - [0xCA] = 0x00CA, - [0xCB] = 0x00CB, - [0xCC] = 0x0340, - [0xCD] = 0x00CD, - [0xCE] = 0x00CE, - [0xCF] = 0x00CF, - [0xD0] = 0x0110, - [0xD1] = 0x00D1, - [0xD2] = 0x0309, - [0xD3] = 0x00D3, - [0xD4] = 0x00D4, - [0xD5] = 0x01A0, - [0xD6] = 0x00D6, - [0xD7] = 0x00D7, - [0xD8] = 0x00D8, - [0xD9] = 0x00D9, - [0xDA] = 0x00DA, - [0xDB] = 0x00DB, - [0xDC] = 0x00DC, - [0xDD] = 0x01AF, - [0xDE] = 0x0303, - [0xDF] = 0x00DF, - [0xE0] = 0x00E0, - [0xE1] = 0x00E1, - [0xE2] = 0x00E2, - [0xE3] = 0x0103, - [0xE4] = 0x00E4, - [0xE5] = 0x00E5, - [0xE6] = 0x00E6, - [0xE7] = 0x00E7, - [0xE8] = 0x00E8, - [0xE9] = 0x00E9, - [0xEA] = 0x00EA, - [0xEB] = 0x00EB, - [0xEC] = 0x0341, - [0xED] = 0x00ED, - [0xEE] = 0x00EE, - [0xEF] = 0x00EF, - [0xF0] = 0x0111, - [0xF1] = 0x00F1, - [0xF2] = 0x0323, - [0xF3] = 0x00F3, - [0xF4] = 0x00F4, - [0xF5] = 0x01A1, - [0xF6] = 0x00F6, - [0xF7] = 0x00F7, - [0xF8] = 0x00F8, - [0xF9] = 0x00F9, - [0xFA] = 0x00FA, - [0xFB] = 0x00FB, - [0xFC] = 0x00FC, - [0xFD] = 0x01B0, - [0xFE] = 0x20AB, - [0xFF] = 0x00FF, -}; -static const struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x0103, idx: -32 }, - { start: 0x0110, end: 0x0111, idx: -44 }, - { start: 0x0152, end: 0x0153, idx: -108 }, - { start: 0x0178, end: 0x0178, idx: -144 }, - { start: 0x0192, end: 0x0192, idx: -169 }, - { start: 0x01a0, end: 0x01a1, idx: -182 }, - { start: 0x01af, end: 0x01b0, idx: -195 }, - { start: 0x02c6, end: 0x02c6, idx: -472 }, - { start: 0x02dc, end: 0x02dc, idx: -493 }, - { start: 0x0303, end: 0x0309, idx: -531 }, - { start: 0x0323, end: 0x0323, idx: -556 }, - { start: 0x0340, end: 0x0341, idx: -584 }, - { start: 0x2013, end: 0x2026, idx: -7961 }, - { start: 0x2030, end: 0x2030, idx: -7970 }, - { start: 0x2039, end: 0x203a, idx: -7978 }, - { start: 0x20ab, end: 0x20ab, idx: -8090 }, - { start: 0x2122, end: 0x2122, idx: -8208 }, - { start: 0xffff, end: 0xffff, idx: 0 } -}; -static const char from_ucs4[] = { - - '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', - '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', - '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', - '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', - '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27', - '\x28', '\x29', '\x2a', '\x2b', '\x2c', '\x2d', '\x2e', '\x2f', - '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', - '\x38', '\x39', '\x3a', '\x3b', '\x3c', '\x3d', '\x3e', '\x3f', - '\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47', - '\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f', - '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57', - '\x58', '\x59', '\x5a', '\x5b', '\x5c', '\x5d', '\x5e', '\x5f', - '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', - '\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f', - '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77', - '\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', '\x7f', - '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', - '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', - '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', - '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', - '\xc0', '\xc1', '\xc2', '\x00', '\xc4', '\xc5', '\xc6', '\xc7', - '\xc8', '\xc9', '\xca', '\xcb', '\x00', '\xcd', '\xce', '\xcf', - '\x00', '\xd1', '\x00', '\xd3', '\xd4', '\x00', '\xd6', '\xd7', - '\xd8', '\xd9', '\xda', '\xdb', '\xdc', '\x00', '\x00', '\xdf', - '\xe0', '\xe1', '\xe2', '\x00', '\xe4', '\xe5', '\xe6', '\xe7', - '\xe8', '\xe9', '\xea', '\xeb', '\x00', '\xed', '\xee', '\xef', - '\x00', '\xf1', '\x00', '\xf3', '\xf4', '\x00', '\xf6', '\xf7', - '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\x00', '\x00', '\xff', - '\x00', '\x00', '\xc3', '\xe3', '\xd0', '\xf0', '\x8c', '\x9c', - '\x9f', '\x83', '\xd5', '\xf5', '\xdd', '\xfd', '\x88', '\x98', - '\xde', '\x00', '\x00', '\x00', '\x00', '\x00', '\xd2', '\xf2', - '\xcc', '\xec', '\x96', '\x97', '\x00', '\x00', '\x00', '\x91', - '\x92', '\x82', '\x00', '\x93', '\x94', '\x84', '\x00', '\x86', - '\x87', '\x95', '\x00', '\x00', '\x00', '\x85', '\x89', '\x8b', - '\x9b', '\xfe', '\x99', -}; diff -durpN glibc-2.1/iconvdata/cp874.c glibc-2.1.1/iconvdata/cp874.c --- glibc-2.1/iconvdata/cp874.c Fri Apr 24 17:19:06 1998 +++ glibc-2.1.1/iconvdata/cp874.c Thu Jan 1 00:00:00 1970 @@ -1,29 +0,0 @@ -/* Conversion from and to CP874. - Copyright (C) 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - - 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 - -/* Specify the conversion table. */ -#define TABLES - -#define CHARSET_NAME "CP874//" -#define HAS_HOLES 1 /* Not all 256 character are defined. */ - -#include <8bit-gap.c> diff -durpN glibc-2.1/iconvdata/cp874.h glibc-2.1.1/iconvdata/cp874.h --- glibc-2.1/iconvdata/cp874.h Fri Apr 24 17:19:06 1998 +++ glibc-2.1.1/iconvdata/cp874.h Thu Jan 1 00:00:00 1970 @@ -1,312 +0,0 @@ -/* Mapping table for CP874. - Copyright (C) 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1998. - - 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. */ - -/* Table to map to UCS4. It can be generated using - (I know, this is a useless use of cat, but the linebreak requires it): - - cat .../unix/mappings/vendors/micsft/pc/cp874.txt | - sed -e 's/\(0x..\)[[:space:]]*\(0x....\).*$/ [\1] = \2,/p' -e d - - */ -static const uint32_t to_ucs4[256] = -{ - [0x00] = 0x0000, - [0x01] = 0x0001, - [0x02] = 0x0002, - [0x03] = 0x0003, - [0x04] = 0x0004, - [0x05] = 0x0005, - [0x06] = 0x0006, - [0x07] = 0x0007, - [0x08] = 0x0008, - [0x09] = 0x0009, - [0x0a] = 0x000a, - [0x0b] = 0x000b, - [0x0c] = 0x000c, - [0x0d] = 0x000d, - [0x0e] = 0x000e, - [0x0f] = 0x000f, - [0x10] = 0x0010, - [0x11] = 0x0011, - [0x12] = 0x0012, - [0x13] = 0x0013, - [0x14] = 0x0014, - [0x15] = 0x0015, - [0x16] = 0x0016, - [0x17] = 0x0017, - [0x18] = 0x0018, - [0x19] = 0x0019, - [0x1a] = 0x001a, - [0x1b] = 0x001b, - [0x1c] = 0x001c, - [0x1d] = 0x001d, - [0x1e] = 0x001e, - [0x1f] = 0x001f, - [0x20] = 0x0020, - [0x21] = 0x0021, - [0x22] = 0x0022, - [0x23] = 0x0023, - [0x24] = 0x0024, - [0x25] = 0x0025, - [0x26] = 0x0026, - [0x27] = 0x0027, - [0x28] = 0x0028, - [0x29] = 0x0029, - [0x2a] = 0x002a, - [0x2b] = 0x002b, - [0x2c] = 0x002c, - [0x2d] = 0x002d, - [0x2e] = 0x002e, - [0x2f] = 0x002f, - [0x30] = 0x0030, - [0x31] = 0x0031, - [0x32] = 0x0032, - [0x33] = 0x0033, - [0x34] = 0x0034, - [0x35] = 0x0035, - [0x36] = 0x0036, - [0x37] = 0x0037, - [0x38] = 0x0038, - [0x39] = 0x0039, - [0x3a] = 0x003a, - [0x3b] = 0x003b, - [0x3c] = 0x003c, - [0x3d] = 0x003d, - [0x3e] = 0x003e, - [0x3f] = 0x003f, - [0x40] = 0x0040, - [0x41] = 0x0041, - [0x42] = 0x0042, - [0x43] = 0x0043, - [0x44] = 0x0044, - [0x45] = 0x0045, - [0x46] = 0x0046, - [0x47] = 0x0047, - [0x48] = 0x0048, - [0x49] = 0x0049, - [0x4a] = 0x004a, - [0x4b] = 0x004b, - [0x4c] = 0x004c, - [0x4d] = 0x004d, - [0x4e] = 0x004e, - [0x4f] = 0x004f, - [0x50] = 0x0050, - [0x51] = 0x0051, - [0x52] = 0x0052, - [0x53] = 0x0053, - [0x54] = 0x0054, - [0x55] = 0x0055, - [0x56] = 0x0056, - [0x57] = 0x0057, - [0x58] = 0x0058, - [0x59] = 0x0059, - [0x5a] = 0x005a, - [0x5b] = 0x005b, - [0x5c] = 0x005c, - [0x5d] = 0x005d, - [0x5e] = 0x005e, - [0x5f] = 0x005f, - [0x60] = 0x0060, - [0x61] = 0x0061, - [0x62] = 0x0062, - [0x63] = 0x0063, - [0x64] = 0x0064, - [0x65] = 0x0065, - [0x66] = 0x0066, - [0x67] = 0x0067, - [0x68] = 0x0068, - [0x69] = 0x0069, - [0x6a] = 0x006a, - [0x6b] = 0x006b, - [0x6c] = 0x006c, - [0x6d] = 0x006d, - [0x6e] = 0x006e, - [0x6f] = 0x006f, - [0x70] = 0x0070, - [0x71] = 0x0071, - [0x72] = 0x0072, - [0x73] = 0x0073, - [0x74] = 0x0074, - [0x75] = 0x0075, - [0x76] = 0x0076, - [0x77] = 0x0077, - [0x78] = 0x0078, - [0x79] = 0x0079, - [0x7a] = 0x007a, - [0x7b] = 0x007b, - [0x7c] = 0x007c, - [0x7d] = 0x007d, - [0x7e] = 0x007e, - [0x7f] = 0x007f, - [0x85] = 0x2026, - [0x91] = 0x2018, - [0x92] = 0x2019, - [0x93] = 0x201c, - [0x94] = 0x201d, - [0x95] = 0x2022, - [0x96] = 0x2013, - [0x97] = 0x2014, - [0xa0] = 0x00a0, - [0xa1] = 0x0e01, - [0xa2] = 0x0e02, - [0xa3] = 0x0e03, - [0xa4] = 0x0e04, - [0xa5] = 0x0e05, - [0xa6] = 0x0e06, - [0xa7] = 0x0e07, - [0xa8] = 0x0e08, - [0xa9] = 0x0e09, - [0xaa] = 0x0e0a, - [0xab] = 0x0e0b, - [0xac] = 0x0e0c, - [0xad] = 0x0e0d, - [0xae] = 0x0e0e, - [0xaf] = 0x0e0f, - [0xb0] = 0x0e10, - [0xb1] = 0x0e11, - [0xb2] = 0x0e12, - [0xb3] = 0x0e13, - [0xb4] = 0x0e14, - [0xb5] = 0x0e15, - [0xb6] = 0x0e16, - [0xb7] = 0x0e17, - [0xb8] = 0x0e18, - [0xb9] = 0x0e19, - [0xba] = 0x0e1a, - [0xbb] = 0x0e1b, - [0xbc] = 0x0e1c, - [0xbd] = 0x0e1d, - [0xbe] = 0x0e1e, - [0xbf] = 0x0e1f, - [0xc0] = 0x0e20, - [0xc1] = 0x0e21, - [0xc2] = 0x0e22, - [0xc3] = 0x0e23, - [0xc4] = 0x0e24, - [0xc5] = 0x0e25, - [0xc6] = 0x0e26, - [0xc7] = 0x0e27, - [0xc8] = 0x0e28, - [0xc9] = 0x0e29, - [0xca] = 0x0e2a, - [0xcb] = 0x0e2b, - [0xcc] = 0x0e2c, - [0xcd] = 0x0e2d, - [0xce] = 0x0e2e, - [0xcf] = 0x0e2f, - [0xd0] = 0x0e30, - [0xd1] = 0x0e31, - [0xd2] = 0x0e32, - [0xd3] = 0x0e33, - [0xd4] = 0x0e34, - [0xd5] = 0x0e35, - [0xd6] = 0x0e36, - [0xd7] = 0x0e37, - [0xd8] = 0x0e38, - [0xd9] = 0x0e39, - [0xda] = 0x0e3a, - [0xdf] = 0x0e3f, - [0xe0] = 0x0e40, - [0xe1] = 0x0e41, - [0xe2] = 0x0e42, - [0xe3] = 0x0e43, - [0xe4] = 0x0e44, - [0xe5] = 0x0e45, - [0xe6] = 0x0e46, - [0xe7] = 0x0e47, - [0xe8] = 0x0e48, - [0xe9] = 0x0e49, - [0xea] = 0x0e4a, - [0xeb] = 0x0e4b, - [0xec] = 0x0e4c, - [0xed] = 0x0e4d, - [0xee] = 0x0e4e, - [0xef] = 0x0e4f, - [0xf0] = 0x0e50, - [0xf1] = 0x0e51, - [0xf2] = 0x0e52, - [0xf3] = 0x0e53, - [0xf4] = 0x0e54, - [0xf5] = 0x0e55, - [0xf6] = 0x0e56, - [0xf7] = 0x0e57, - [0xf8] = 0x0e58, - [0xf9] = 0x0e59, - [0xfa] = 0x0e5a, - [0xfb] = 0x0e5b, -}; - - -/* Index table for mapping from UCS4. The table can be generated with - - cat .../unix/mappings/vendors/micsft/pc/cp874.txt | - awk '/^0x/ { if (NF > 2) print $2; }' | perl gap.pl - - where gap.pl is the file in this directory. - */ -static struct gap from_idx[] = -{ - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x00a0, idx: -32 }, - { start: 0x0e01, end: 0x0e5b, idx: -3456 }, - { start: 0x2013, end: 0x2026, idx: -7991 }, - { start: 0xffff, end: 0xffff, idx: 0 } -}; - -/* Table accessed through above index table. It can be generated using: - - cat .../unix/mappings/vendors/micsft/pc/cp874.txt | - awk '/^0x/ { if (NF > 2) print $2, $1; }' | perl gaptab.pl - - where gaptab.pl is the file in this directory. - */ -static const char from_ucs4[] = -{ - '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', - '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', - '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', - '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', - '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27', - '\x28', '\x29', '\x2a', '\x2b', '\x2c', '\x2d', '\x2e', '\x2f', - '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', - '\x38', '\x39', '\x3a', '\x3b', '\x3c', '\x3d', '\x3e', '\x3f', - '\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47', - '\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f', - '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57', - '\x58', '\x59', '\x5a', '\x5b', '\x5c', '\x5d', '\x5e', '\x5f', - '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', - '\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f', - '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77', - '\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', '\x7f', - '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', - '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', - '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', - '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', - '\xc0', '\xc1', '\xc2', '\xc3', '\xc4', '\xc5', '\xc6', '\xc7', - '\xc8', '\xc9', '\xca', '\xcb', '\xcc', '\xcd', '\xce', '\xcf', - '\xd0', '\xd1', '\xd2', '\xd3', '\xd4', '\xd5', '\xd6', '\xd7', - '\xd8', '\xd9', '\xda', '\x00', '\x00', '\x00', '\x00', '\xdf', - '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', - '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', - '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7', - '\xf8', '\xf9', '\xfa', '\xfb', '\x96', '\x97', '\x00', '\x00', - '\x00', '\x91', '\x92', '\x00', '\x00', '\x93', '\x94', '\x00', - '\x00', '\x00', '\x00', '\x95', '\x00', '\x00', '\x00', '\x85', -}; diff -durpN glibc-2.1/iconvdata/gconv-modules glibc-2.1.1/iconvdata/gconv-modules --- glibc-2.1/iconvdata/gconv-modules Wed Jan 20 20:08:30 1999 +++ glibc-2.1.1/iconvdata/gconv-modules Tue May 11 20:21:53 1999 @@ -872,8 +872,9 @@ module INTERNAL BIG5// BIG5 1 # from to module cost alias EUCJP// EUC-JP// -alais CSEUCPKDFMTJAPANESE// EUC-JP// +alias CSEUCPKDFMTJAPANESE// EUC-JP// alias OSF00030010// EUC-JP// +alias UJIS// EUC-JP// module EUC-JP// INTERNAL EUC-JP 1 module INTERNAL EUC-JP// EUC-JP 1 @@ -914,7 +915,7 @@ module CP1254// INTERNAL CP1254 1 module INTERNAL CP1254// CP1254 1 # from to module cost -alias MS-TURK// CP1255// +alias MS-HEBR// CP1255// module CP1255// INTERNAL CP1255 1 module INTERNAL CP1255// CP1255 1 @@ -933,9 +934,10 @@ module CP1258// INTERNAL CP1258 1 module INTERNAL CP1258// CP1258 1 # from to module cost -alias 874// CP874// -module CP874// INTERNAL CP874 1 -module INTERNAL CP874// CP874 1 +alias 874// IBM874// +alias CP874// IBM874// +module IBM874// INTERNAL IBM874 1 +module INTERNAL IBM874// IBM874 1 # from to module cost module CP737// INTERNAL CP737 1 @@ -1129,3 +1131,16 @@ module INTERNAL WIN-SAMI-2// SAMI-WS2 # from to module cost module ISO-IR-197// INTERNAL ISO-IR-197 1 module INTERNAL ISO-IR-197// ISO-IR-197 1 + +# from to module cost +alias TIS620// TIS-620// +alias TIS620-0// TIS-620// +alias TIS620.2529-1// TIS-620// +alias TIS620.2533-0// TIS-620// +alias ISO-IR-166// TIS-620// +module TIS-620// INTERNAL TIS-620 1 +module INTERNAL TIS-620// TIS-620 1 + +# from to module cost +module KOI8-U// INTERNAL KOI8-U 1 +module INTERNAL KOI8-U// KOI8-U 1 diff -durpN glibc-2.1/iconvdata/ibm874.c glibc-2.1.1/iconvdata/ibm874.c --- glibc-2.1/iconvdata/ibm874.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/ibm874.c Sat Apr 17 09:33:15 1999 @@ -0,0 +1,29 @@ +/* Conversion from and to IBM874. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1998. + + 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 + +/* Specify the conversion table. */ +#define TABLES + +#define CHARSET_NAME "IBM874//" +#define HAS_HOLES 1 /* Not all 256 character are defined. */ + +#include <8bit-gap.c> diff -durpN glibc-2.1/iconvdata/iso-2022-jp.c glibc-2.1.1/iconvdata/iso-2022-jp.c --- glibc-2.1/iconvdata/iso-2022-jp.c Mon Jan 18 19:30:59 1999 +++ glibc-2.1.1/iconvdata/iso-2022-jp.c Wed Mar 17 21:03:56 1999 @@ -199,7 +199,7 @@ gconv_end (struct gconv_step *data) data->statep->count = ASCII_set; \ else \ { \ - char *outbuf = data->outbuf; \ + unsigned char *outbuf = data->outbuf; \ \ /* We are not in the initial state. To switch back we have \ to emit the sequence `Esc ( B'. */ \ diff -durpN glibc-2.1/iconvdata/iso-2022-kr.c glibc-2.1.1/iconvdata/iso-2022-kr.c --- glibc-2.1/iconvdata/iso-2022-kr.c Sun May 17 04:56:25 1998 +++ glibc-2.1.1/iconvdata/iso-2022-kr.c Wed Mar 17 21:03:57 1999 @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-KR. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -80,7 +80,7 @@ enum data->statep->count = ASCII_set; \ else \ { \ - char *outbuf = data->outbuf; \ + unsigned char *outbuf = data->outbuf; \ \ /* We are not in the initial state. To switch back we have \ to emit `SI'. */ \ diff -durpN glibc-2.1/iconvdata/koi8-u.c glibc-2.1.1/iconvdata/koi8-u.c --- glibc-2.1/iconvdata/koi8-u.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/koi8-u.c Thu Apr 15 19:52:41 1999 @@ -0,0 +1,29 @@ +/* Conversion from and to KOI8-U. + Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1999. + + 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 + +/* Specify the conversion table. */ +#define TABLES + +#define CHARSET_NAME "KOI8-U//" +#define HAS_HOLES 0 /* All 256 character are defined. */ + +#include <8bit-gap.c> diff -durpN glibc-2.1/iconvdata/testdata/CP1254 glibc-2.1.1/iconvdata/testdata/CP1254 --- glibc-2.1/iconvdata/testdata/CP1254 Mon Apr 27 06:48:29 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1254 Wed Mar 31 20:37:17 1999 @@ -4,7 +4,7 @@ P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  - ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ + € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ ‘ ’ “ ” • – — ˜ ™ š › œ Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ diff -durpN glibc-2.1/iconvdata/testdata/CP1254..UTF8 glibc-2.1.1/iconvdata/testdata/CP1254..UTF8 --- glibc-2.1/iconvdata/testdata/CP1254..UTF8 Mon Apr 27 06:49:52 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1254..UTF8 Wed Mar 31 21:14:32 1999 @@ -4,11 +4,11 @@ P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  - ‚ Æ’ „ … † ‡ ˆ ‰ Å  ‹ Å’ + € ‚ Æ’ „ … † ‡ ˆ ‰ Å  ‹ Å’ ‘ ’ “ †• – — Ëœ â„¢ Å¡ › Å“ Ÿ   ¡ ¢ £ ¤ Â¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À à Â Ã Ä Ã… Æ Ç È É Ê Ë ÃŒ à Î à Ğ Ñ Ã’ Ó Ô Õ Ö × Ø Ù Ú Û Ãœ Ä° Åž ß - à á â ã ä Ã¥ æ ç è é Ä™ ë Ä— í î Ä« + à á â ã ä Ã¥ æ ç è é ê ë ì í î ï ÄŸ ñ ò ó ô õ ö ÷ ø ù ú û ü ı ÅŸ ÿ diff -durpN glibc-2.1/iconvdata/testdata/CP1255 glibc-2.1.1/iconvdata/testdata/CP1255 --- glibc-2.1/iconvdata/testdata/CP1255 Mon Apr 27 06:58:15 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1255 Wed Mar 31 21:22:16 1999 @@ -7,7 +7,8 @@ ‚ ƒ „ … † ‡ ‰ ‹ ‘ ’ “ ” • – — ™ ›   ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ - ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ - ß + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + À Á Â Ã Ä Å Æ Ç È É Ë Ì Í Î Ï + Ð Ñ Ò Ó Ô Õ Ö × Ø à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú ý þ diff -durpN glibc-2.1/iconvdata/testdata/CP1255..UTF8 glibc-2.1.1/iconvdata/testdata/CP1255..UTF8 --- glibc-2.1/iconvdata/testdata/CP1255..UTF8 Mon Apr 27 06:59:18 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1255..UTF8 Wed Mar 31 23:03:00 1999 @@ -6,8 +6,9 @@ p q r s t u v w x y z { | } ~  ‚ Æ’ „ … † ‡ ‰ ‹ ‘ ’ “ †• – — â„¢ › -   ¢ £ ¤ Â¥ ¦ § ¨ © × « ¬ ­ ® ‾ - ° ± ² ³ ´ µ ¶ · ¸ ¹ ÷ » ¼ ½ ¾ - ‗ +   ¢ £ ₪ Â¥ ¦ § ¨ © × « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ ÷ » ¼ ½ ¾ ¿ + Ö° Ö± Ö² Ö³ Ö´ Öµ Ö¶ Ö· Ö¸ Ö¹ Ö» Ö¼ Ö½ Ö¾ Ö¿ + ×€ × ×‚ ׃ ×° ×± ײ ׳ ×´ × ×‘ ×’ ד ×” ו ×– ×— ט ×™ ך ×› ל × ×ž ן ×  ס ×¢ ×£ פ ×¥ צ ק ר ש ת ‎ †diff -durpN glibc-2.1/iconvdata/testdata/CP1256 glibc-2.1.1/iconvdata/testdata/CP1256 --- glibc-2.1/iconvdata/testdata/CP1256 Mon Apr 27 07:02:06 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1256 Thu Apr 1 00:50:39 1999 @@ -11,4 +11,4 @@ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï - ð ñ ò ó ô õ ö ÷ ù û ü ý þ ÿ + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/testdata/CP1256..UTF8 glibc-2.1.1/iconvdata/testdata/CP1256..UTF8 --- glibc-2.1/iconvdata/testdata/CP1256..UTF8 Mon Apr 27 07:06:22 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1256..UTF8 Thu Apr 1 00:46:21 1999 @@ -4,11 +4,11 @@ P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  - ØŒ Ù  ‚ Ù¡ „ … † ‡ Ù¢ Ù£ Ù¤ ‹ Ù¥ Ù¦ Ù§ Ù¨ - Ù© ‘ ’ “ †• – — Ø› â„¢ ØŸ › Ø¡ Ø¢ Ø£ Ÿ -   ؤ Ø¥ £ ¤ ئ ¦ § ا © ب « ¬ ­ ® Ù¾ - ° ± Ø© ت Ø« µ ¶ · ج Ú† Ø­ » Ø® د Ø° ر - À ز  ژ س Ø´ ص Ç È É Ê Ë ض Ø· ÃŽ à - ã„“ ع غ Ù€ Ô Ù Ù‚ × Ùƒ Ù Ú¯ Û Ãœ Ù„ Ù… Ù† - à Ù‡ â Ú Ùˆ Ù‰ ÙŠ ç è é ê ë Ù‹ ÙŒ î ï - Ù ÙŽ ٠٠ô Ù‘ Ù’ ÷ ù û ü ‎ †ÿ + € Ù¾ ‚ Æ’ „ … † ‡ ˆ ‰ Ù¹ ‹ Å’ Ú† Ú˜ Úˆ + Ú¯ ‘ ’ “ †• – — Ú© â„¢ Ú‘ › Å“ ‌ †ں +   ØŒ ¢ £ ¤ Â¥ ¦ § ¨ © Ú¾ « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ Ø› » ¼ ½ ¾ ØŸ + Û Ø¡ Ø¢ Ø£ ؤ Ø¥ ئ ا ب Ø© ت Ø« ج Ø­ Ø® د + Ø° ر ز س Ø´ ص ض × Ø· ظ ع غ Ù€ Ù Ù‚ Ùƒ + à Ù„ â Ù… Ù† Ù‡ Ùˆ ç è é ê ë Ù‰ ÙŠ î ï + Ù‹ ÙŒ Ù ÙŽ ô ٠٠÷ Ù‘ ù Ù’ û ü ‎ †ے diff -durpN glibc-2.1/iconvdata/testdata/CP1257 glibc-2.1.1/iconvdata/testdata/CP1257 --- glibc-2.1/iconvdata/testdata/CP1257 Mon Apr 27 07:10:06 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1257 Thu Apr 1 01:11:09 1999 @@ -4,11 +4,11 @@ P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  - ‚ „ … † ‡ ‰ ‹ - ‘ ’ “ ” • – — ™ › + € ‚ „ … † ‡ ‰ ‹ Ž + ‘ ’ “ ” • – — ™ › ž   ¢ £ ¤ ¦ § ¨ © ª « ¬ ­ ® ¯ - ° ± ² ³ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï - ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/testdata/CP1257..UTF8 glibc-2.1.1/iconvdata/testdata/CP1257..UTF8 --- glibc-2.1/iconvdata/testdata/CP1257..UTF8 Mon Apr 27 18:54:41 1998 +++ glibc-2.1.1/iconvdata/testdata/CP1257..UTF8 Thu Apr 1 01:32:24 1999 @@ -4,11 +4,11 @@ P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  - ‚ „ … † ‡ ‰ ‹ - ‘ ’ “ †• – — â„¢ › + € ‚ „ … † ‡ ‰ ‹ ¨ ˇ ¸ + ‘ ’ “ †• – — â„¢ › ¯ Ë›   ¢ £ ¤ ¦ § Ø © Å– « ¬ ­ ® Æ - ° ± ² ³ µ ¶ · ø ¹ Å— » ¼ ½ ¾ æ + ° ± ² ³ ´ µ ¶ · ø ¹ Å— » ¼ ½ ¾ æ Ä„ Ä® Ä€ Ć Ä Ã… Ę Ä’ ÄŒ É Ź Ä– Ä¢ Ķ Ī Ä» Å  Ń Å… Ó ÅŒ Õ Ö × Ų Å Åš Ū Ãœ Å» Ž ß Ä… į Ä Ä‡ ä Ã¥ Ä™ Ä“ Ä Ã© ź Ä— Ä£ Ä· Ä« ļ - Å¡ Å„ ņ ó Šõ ö ÷ ų Å‚ Å› Å« ü ż ž + Å¡ Å„ ņ ó Šõ ö ÷ ų Å‚ Å› Å« ü ż ž Ë™ diff -durpN glibc-2.1/iconvdata/testdata/CP1258 glibc-2.1.1/iconvdata/testdata/CP1258 --- glibc-2.1/iconvdata/testdata/CP1258 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/CP1258 Wed Mar 31 23:10:34 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + € ‚ ƒ „ … † ‡ ˆ ‰ ‹ Œ + ‘ ’ “ ” • – — ˜ ™ › œ Ÿ +   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï + Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß + à á â ã ä å æ ç è é ê ë í î ï + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/testdata/CP1258..UTF8 glibc-2.1.1/iconvdata/testdata/CP1258..UTF8 --- glibc-2.1/iconvdata/testdata/CP1258..UTF8 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/CP1258..UTF8 Wed Mar 31 23:10:34 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + € ‚ Æ’ „ … † ‡ ˆ ‰ ‹ Å’ + ‘ ’ “ †• – — Ëœ â„¢ › Å“ Ÿ +   ¡ ¢ £ ¤ Â¥ ¦ § ¨ © ª « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + À à  Ă Ä Ã… Æ Ç È É Ê Ë Ì€ à Î à + Ä Ã‘ ̉ Ó Ô Æ  Ö × Ø Ù Ú Û Ãœ Ư ̃ ß + à á â ă ä Ã¥ æ ç è é ê ë í î ï + Ä‘ ñ Ì£ ó ô Æ¡ ö ÷ ø ù ú û ü Æ° â‚« ÿ diff -durpN glibc-2.1/iconvdata/testdata/CVS/Entries glibc-2.1.1/iconvdata/testdata/CVS/Entries --- glibc-2.1/iconvdata/testdata/CVS/Entries Thu Sep 10 21:41:54 1998 +++ glibc-2.1.1/iconvdata/testdata/CVS/Entries Thu Apr 1 17:08:39 1999 @@ -60,17 +60,10 @@ /CP1251/1.1/Mon Apr 27 06:22:35 1998// /CP1252/1.1/Mon Apr 27 06:27:01 1998// /CP1253/1.1/Mon Apr 27 06:38:07 1998// -/CP1254/1.1/Mon Apr 27 06:48:29 1998// -/CP1255/1.1/Mon Apr 27 06:58:15 1998// -/CP1256/1.1/Mon Apr 27 07:02:06 1998// -/CP1257/1.1/Mon Apr 27 07:10:06 1998// /CP1250..UTF8/1.1/Mon Apr 27 06:01:17 1998// /CP1251..UTF8/1.1/Mon Apr 27 06:25:13 1998// /CP1252..UTF8/1.1/Mon Apr 27 06:28:51 1998// /CP1253..UTF8/1.1/Mon Apr 27 06:38:53 1998// -/CP1254..UTF8/1.1/Mon Apr 27 06:49:52 1998// -/CP1255..UTF8/1.1/Mon Apr 27 06:59:18 1998// -/CP1256..UTF8/1.1/Mon Apr 27 07:06:22 1998// /KOI-8/1.1/Mon Apr 27 05:05:28 1998// /KOI-8..UTF8/1.1/Mon Apr 27 05:06:06 1998// /KOI8-R/1.1/Mon Apr 27 05:11:45 1998// @@ -78,8 +71,21 @@ /CSA_Z243.4-1985-1..UCS2/1.1/Mon Apr 27 20:24:22 1998/-kb/ /CSA_Z243.4-1985-2..UCS4/1.1/Mon Apr 27 20:24:50 1998/-kb/ /ISO-8859-2..UCS4/1.1/Mon Apr 27 20:24:50 1998/-kb/ -/CP1257..UTF8/1.2/Mon Apr 27 18:54:41 1998// /ISO-2022-KR/1.1/Sat May 16 00:20:15 1998// /EUC-KR/1.1/Thu May 21 06:17:38 1998// /ISO-8859-10..UCS2/1.2/Thu Sep 10 21:41:04 1998/-kb/ +/CP1254/1.2/Wed Mar 31 20:37:17 1999// +/CP1254..UTF8/1.2/Wed Mar 31 21:14:32 1999// +/CP1255/1.2/Wed Mar 31 21:22:16 1999// +/CP1255..UTF8/1.2/Wed Mar 31 23:03:00 1999// +/CP1256/1.2/Thu Apr 1 00:50:39 1999// +/CP1256..UTF8/1.2/Thu Apr 1 00:46:21 1999// +/CP1257/1.2/Thu Apr 1 01:11:09 1999// +/CP1257..UTF8/1.3/Thu Apr 1 01:32:24 1999// +/CP1258/1.1/Wed Mar 31 23:10:34 1999// +/CP1258..UTF8/1.1/Wed Mar 31 23:10:34 1999// +/ISO-8859-14/1.1/Thu Apr 1 08:22:59 1999// +/ISO-8859-14..UTF8/1.1/Thu Apr 1 08:22:59 1999// +/ISO-8859-15/1.1/Thu Apr 1 08:22:59 1999// +/ISO-8859-15..UTF8/1.1/Thu Apr 1 08:22:59 1999// D diff -durpN glibc-2.1/iconvdata/testdata/ISO-8859-14 glibc-2.1.1/iconvdata/testdata/ISO-8859-14 --- glibc-2.1/iconvdata/testdata/ISO-8859-14 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/ISO-8859-14 Thu Apr 1 08:22:59 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž + ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ +   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï + Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß + à á â ã ä å æ ç è é ê ë ì í î ï + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/testdata/ISO-8859-14..UTF8 glibc-2.1.1/iconvdata/testdata/ISO-8859-14..UTF8 --- glibc-2.1/iconvdata/testdata/ISO-8859-14..UTF8 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/ISO-8859-14..UTF8 Thu Apr 1 08:22:59 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + €  ‚ ƒ „ Â… † ‡ ˆ ‰ Š ‹ ÂŒ  Ž  +  ‘ Â’ “ ” • – — ˜ ™ š › Âœ  ž Ÿ +   Ḃ ḃ £ ÄŠ Ä‹ Ḋ § Ẁ © Ẃ ḋ Ỳ ­ ® Ÿ + Ḟ ḟ Ä  Ä¡ á¹€ Ṡ¶ á¹– Ạṗ ẃ á¹  ỳ Ẅ ẅ ṡ + À à Â Ã Ä Ã… Æ Ç È É Ê Ë ÃŒ à Î à + Å´ Ñ Ã’ Ó Ô Õ Ö Ṫ Ø Ù Ú Û Ãœ à Ŷ ß + à á â ã ä Ã¥ æ ç è é ê ë ì í î ï + ŵ ñ ò ó ô õ ö ṫ ø ù ú û ü ý Å· ÿ diff -durpN glibc-2.1/iconvdata/testdata/ISO-8859-15 glibc-2.1.1/iconvdata/testdata/ISO-8859-15 --- glibc-2.1/iconvdata/testdata/ISO-8859-15 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/ISO-8859-15 Thu Apr 1 08:22:59 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž + ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ +   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ + ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ + À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï + Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß + à á â ã ä å æ ç è é ê ë ì í î ï + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/testdata/ISO-8859-15..UTF8 glibc-2.1.1/iconvdata/testdata/ISO-8859-15..UTF8 --- glibc-2.1/iconvdata/testdata/ISO-8859-15..UTF8 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/testdata/ISO-8859-15..UTF8 Thu Apr 1 08:22:59 1999 @@ -0,0 +1,14 @@ + ! " # $ % & ' ( ) * + , - . / + 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + @ A B C D E F G H I J K L M N O + P Q R S T U V W X Y Z [ \ ] ^ _ + ` a b c d e f g h i j k l m n o + p q r s t u v w x y z { | } ~  + €  ‚ ƒ „ Â… † ‡ ˆ ‰ Š ‹ ÂŒ  Ž  +  ‘ Â’ “ ” • – — ˜ ™ š › Âœ  ž Ÿ +   ¡ ¢ £ € Â¥ Å  § Å¡ © ª « ¬ ­ ® ¯ + ° ± ² ³ Ž µ ¶ · ž ¹ º » Å’ Å“ Ÿ ¿ + À à Â Ã Ä Ã… Æ Ç È É Ê Ë ÃŒ à Î à + à Ñ Ã’ Ó Ô Õ Ö × Ø Ù Ú Û Ãœ à Þ ß + à á â ã ä Ã¥ æ ç è é ê ë ì í î ï + ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ diff -durpN glibc-2.1/iconvdata/tis-620.c glibc-2.1.1/iconvdata/tis-620.c --- glibc-2.1/iconvdata/tis-620.c Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/iconvdata/tis-620.c Sat Apr 10 13:30:08 1999 @@ -0,0 +1,29 @@ +/* Conversion from and to TIS-620. + Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1999. + + 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 + +/* Get the conversion table. */ +#define TABLES + +#define CHARSET_NAME "TIS-620//" +#define HAS_HOLES 1 /* Not all 256 character are defined. */ + +#include <8bit-gap.c> diff -durpN glibc-2.1/include/dirent.h glibc-2.1.1/include/dirent.h --- glibc-2.1/include/dirent.h Mon Aug 10 22:33:22 1998 +++ glibc-2.1.1/include/dirent.h Tue Apr 27 18:52:53 1999 @@ -8,6 +8,8 @@ extern struct dirent *__readdir __P ((DI extern struct dirent64 *__readdir64 __P ((DIR *__dirp)); extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry, struct dirent **__result)); -extern __ssize_t __getdirentries __P ((int __fd, char *__buf, - size_t __nbytes, __off_t *__basep)); +extern __ssize_t __getdents __P ((int __fd, char *__buf, size_t __nbytes)) + internal_function; +extern __ssize_t __getdents64 __P ((int __fd, char *__buf, size_t __nbytes)) + internal_function; #endif diff -durpN glibc-2.1/include/signal.h glibc-2.1.1/include/signal.h --- glibc-2.1/include/signal.h Sun Sep 6 17:51:29 1998 +++ glibc-2.1.1/include/signal.h Mon Feb 8 17:44:48 1999 @@ -23,5 +23,8 @@ extern int __sigvec __P ((int __sig, __c extern int __sigreturn __P ((struct sigcontext *__scp)); extern int __sigaltstack __P ((__const struct sigaltstack *__ss, struct sigaltstack *__oss)); + +/* Allocate real-time signal with highest/lowest available priority. */ +extern int __libc_allocate_rtsig __P ((int __high)); #endif #endif diff -durpN glibc-2.1/include/string.h glibc-2.1.1/include/string.h --- glibc-2.1/include/string.h Mon Jan 18 19:31:30 1999 +++ glibc-2.1.1/include/string.h Thu Apr 29 16:56:50 1999 @@ -18,4 +18,6 @@ extern char *__strndup __P ((__const cha extern __ptr_t __rawmemchr __P ((__const __ptr_t __s, int __c)); +extern char *__strchrnul __P ((__const char *__s, int __c)); + #endif diff -durpN glibc-2.1/include/time.h glibc-2.1.1/include/time.h --- glibc-2.1/include/time.h Tue Dec 8 22:22:09 1998 +++ glibc-2.1.1/include/time.h Thu Apr 29 16:56:52 1999 @@ -22,7 +22,9 @@ extern size_t __tzname_cur_max; extern int __use_tzfile; -extern void __tzfile_read __P ((const char *file));extern int __tzfile_compute __P ((time_t timer, int use_localtime, +extern void __tzfile_read __P ((const char *file, size_t extra, + char **extrap)); +extern int __tzfile_compute __P ((time_t timer, int use_localtime, long int *leap_correct, int *leap_hit, struct tm *tp)); extern void __tzfile_default __P ((const char *std, const char *dst, diff -durpN glibc-2.1/inet/Makefile glibc-2.1.1/inet/Makefile --- glibc-2.1/inet/Makefile Mon Oct 19 21:46:14 1998 +++ glibc-2.1.1/inet/Makefile Mon May 17 16:53:22 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99 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 @@ -21,7 +21,8 @@ # subdir := inet -headers := netinet/ether.h netinet/in.h netinet/if_ether.h \ +headers := netinet/ether.h netinet/in.h netinet/in_systm.h \ + netinet/if_ether.h \ netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ aliases.h netinet/ip6.h netinet/icmp6.h bits/in.h diff -durpN glibc-2.1/inet/arpa/tftp.h glibc-2.1.1/inet/arpa/tftp.h --- glibc-2.1/inet/arpa/tftp.h Sat Jun 21 00:58:08 1997 +++ glibc-2.1.1/inet/arpa/tftp.h Tue May 18 00:22:52 1999 @@ -56,9 +56,9 @@ struct tftphdr { unsigned short tu_block; /* block # */ short tu_code; /* error code */ char tu_stuff[1]; /* request packet stuff */ - } th_u; + } th_u __attribute__ ((__packed__)); char th_data[1]; /* data or error string */ -}; +} __attribute__ ((__packed__)); #define th_block th_u.tu_block #define th_code th_u.tu_code diff -durpN glibc-2.1/inet/ether_hton.c glibc-2.1.1/inet/ether_hton.c --- glibc-2.1/inet/ether_hton.c Wed Nov 20 03:43:00 1996 +++ glibc-2.1.1/inet/ether_hton.c Thu Apr 29 16:57:00 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -44,7 +44,7 @@ extern int __nss_ethers_lookup (service_ int ether_hostton (const char *hostname, struct ether_addr *addr) { - static service_user *startp = NULL; + static service_user *startp; static lookup_function start_fct; service_user *nip; lookup_function fct; diff -durpN glibc-2.1/inet/ether_line.c glibc-2.1.1/inet/ether_line.c --- glibc-2.1/inet/ether_line.c Mon Jan 25 17:29:13 1999 +++ glibc-2.1.1/inet/ether_line.c Thu Apr 29 16:57:01 1999 @@ -62,9 +62,7 @@ ether_line (const char *line, struct eth } /* Remove trailing white space. */ - cp = strchr (line, '#'); - if (cp == NULL) - cp = strchr (line, '\0'); + cp = __strchrnul (line, '#'); while (cp > line && isspace (cp[-1])) --cp; *cp = '\0'; diff -durpN glibc-2.1/inet/ether_ntoh.c glibc-2.1.1/inet/ether_ntoh.c --- glibc-2.1/inet/ether_ntoh.c Wed Nov 5 23:09:18 1997 +++ glibc-2.1.1/inet/ether_ntoh.c Thu Apr 29 16:57:02 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -45,7 +45,7 @@ extern int __nss_ethers_lookup (service_ int ether_ntohost (char *hostname, const struct ether_addr *addr) { - static service_user *startp = NULL; + static service_user *startp; static lookup_function start_fct; service_user *nip; lookup_function fct; diff -durpN glibc-2.1/inet/getnameinfo.c glibc-2.1.1/inet/getnameinfo.c --- glibc-2.1/inet/getnameinfo.c Thu Jul 16 03:41:31 1998 +++ glibc-2.1.1/inet/getnameinfo.c Thu Apr 29 19:39:04 1999 @@ -66,15 +66,15 @@ static char * internal_function nrl_domainname (void) { - static char *domain = NULL; - static int first = 1; + static char *domain; + static int not_first; - if (first) + if (! not_first) { __libc_lock_define_initialized (static, lock); __libc_lock_lock (lock); - if (first) + if (! not_first) { char *c; struct hostent *h, th; @@ -82,7 +82,7 @@ nrl_domainname (void) char *tmpbuf = alloca (tmpbuflen); int herror; - first = 0; + not_first = 1; while (__gethostbyname_r ("localhost", &th, tmpbuf, tmpbuflen, &h, &herror)) diff -durpN glibc-2.1/inet/getnetgrent_r.c glibc-2.1.1/inet/getnetgrent_r.c --- glibc-2.1/inet/getnetgrent_r.c Thu Dec 10 17:45:02 1998 +++ glibc-2.1.1/inet/getnetgrent_r.c Thu Apr 29 16:57:06 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 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 @@ -48,7 +48,7 @@ static enum nss_status setup (void **fctp, const char *func_name, int all) { /* Remember the first service_entry, it's always the same. */ - static service_user *startp = NULL; + static service_user *startp; int no_more; if (startp == NULL) diff -durpN glibc-2.1/inet/netinet/in.h glibc-2.1.1/inet/netinet/in.h --- glibc-2.1/inet/netinet/in.h Fri Dec 11 23:09:58 1998 +++ glibc-2.1.1/inet/netinet/in.h Tue May 11 18:57:04 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,96,97,98,99 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 @@ -20,6 +20,7 @@ #define _NETINET_IN_H 1 #include +#include #include #include @@ -164,7 +165,7 @@ struct in6_addr uint8_t u6_addr8[16]; uint16_t u6_addr16[8]; uint32_t u6_addr32[4]; -#if (~0UL) > 0xffffffff +#if ULONG_MAX > 0xffffffff uint64_t u6_addr64[2]; #endif } in6_u; diff -durpN glibc-2.1/inet/ruserpass.c glibc-2.1.1/inet/ruserpass.c --- glibc-2.1/inet/ruserpass.c Thu Jul 16 00:56:35 1998 +++ glibc-2.1.1/inet/ruserpass.c Thu Apr 29 16:57:09 1999 @@ -31,14 +31,13 @@ * SUCH DAMAGE. */ -#ifndef lint +#if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)ruserpass.c 8.3 (Berkeley) 4/2/94"; #endif /* not lint */ #include #include -#include #include #include #include @@ -62,18 +61,35 @@ static FILE *cfile; static char tokval[100]; -static struct toktab { - const char *tokstr; +static const char tokstr[] = +{ +#define TOK_DEFAULT_IDX 0 + "default\0" +#define TOK_LOGIN_IDX (TOK_DEFAULT_IDX + sizeof "default") + "login\0" +#define TOK_PASSWORD_IDX (TOK_LOGIN_IDX + sizeof "login") + "password\0" +#define TOK_PASSWD_IDX (TOK_PASSWORD_IDX + sizeof "password") + "passwd\0" +#define TOK_ACCOUNT_IDX (TOK_PASSWD_IDX + sizeof "passwd") + "account\0" +#define TOK_MACHINE_IDX (TOK_ACCOUNT_IDX + sizeof "account") + "machine\0" +#define TOK_MACDEF_IDX (TOK_MACHINE_IDX + sizeof "machine") + "macdef" +}; + +static const struct toktab { + int tokstr_off; int tval; } toktab[]= { - { "default", DEFAULT }, - { "login", LOGIN }, - { "password", PASSWD }, - { "passwd", PASSWD }, - { "account", ACCOUNT }, - { "machine", MACHINE }, - { "macdef", MACDEF }, - { NULL, 0 } + { TOK_DEFAULT_IDX, DEFAULT }, + { TOK_LOGIN_IDX, LOGIN }, + { TOK_PASSWORD_IDX, PASSWD }, + { TOK_PASSWD_IDX, PASSWD }, + { TOK_ACCOUNT_IDX, ACCOUNT }, + { TOK_MACHINE_IDX, MACHINE }, + { TOK_MACDEF_IDX, MACDEF } }; @@ -107,8 +123,7 @@ ruserpass(host, aname, apass) } if (__gethostname(myname, sizeof(myname)) < 0) myname[0] = '\0'; - if ((mydomain = strchr(myname, '.')) == NULL) - mydomain = ""; + mydomain = __strchrnul(myname, '.'); next: while ((t = token())) switch(t) { @@ -263,7 +278,7 @@ token() { char *cp; int c; - struct toktab *t; + int i; if (feof_unlocked(cfile) || ferror_unlocked(cfile)) return (0); @@ -291,8 +306,8 @@ token() *cp = 0; if (tokval[0] == 0) return (0); - for (t = toktab; t->tokstr; t++) - if (!strcmp(t->tokstr, tokval)) - return (t->tval); + for (i = 0; i < sizeof (toktab) / sizeof (toktab[0]); ++i) + if (!strcmp(&tokstr[toktab[i].tokstr_off], tokval)) + return toktab[i].tval; return (ID); } diff -durpN glibc-2.1/intl/dcgettext.c glibc-2.1.1/intl/dcgettext.c --- glibc-2.1/intl/dcgettext.c Thu Jul 9 16:42:33 1998 +++ glibc-2.1.1/intl/dcgettext.c Tue Feb 9 17:09:43 1999 @@ -1,5 +1,5 @@ /* Implementation of the dcgettext(3) function. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. @@ -77,6 +77,10 @@ void free (); #if defined HAVE_UNISTD_H || defined _LIBC # include +#endif + +#if defined HAVE_LOCALE_H || defined _LIBC +# include #endif #include "gettext.h" diff -durpN glibc-2.1/intl/finddomain.c glibc-2.1.1/intl/finddomain.c --- glibc-2.1/intl/finddomain.c Thu Jan 28 19:57:57 1999 +++ glibc-2.1.1/intl/finddomain.c Thu Apr 29 16:57:12 1999 @@ -47,11 +47,6 @@ void free (); # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif -#if !HAVE_STRCHR && !defined _LIBC -# ifndef strchr -# define strchr index -# endif -#endif #if defined HAVE_UNISTD_H || defined _LIBC # include diff -durpN glibc-2.1/intl/loadmsgcat.c glibc-2.1.1/intl/loadmsgcat.c --- glibc-2.1/intl/loadmsgcat.c Mon Aug 3 17:18:05 1998 +++ glibc-2.1.1/intl/loadmsgcat.c Thu Apr 29 16:57:14 1999 @@ -1,5 +1,5 @@ /* Load needed message catalogs. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. @@ -63,7 +63,7 @@ /* We need a sign, whether a new catalog was loaded, which can be associated with all translations. This is important if the translations are cached by one of GCC's features. */ -int _nl_msg_cat_cntr = 0; +int _nl_msg_cat_cntr; /* Load the message catalogs specified by FILENAME. If it is no valid diff -durpN glibc-2.1/intl/locale.alias glibc-2.1.1/intl/locale.alias --- glibc-2.1/intl/locale.alias Mon Nov 16 21:54:44 1998 +++ glibc-2.1.1/intl/locale.alias Mon Mar 15 18:06:49 1999 @@ -1,5 +1,5 @@ # Locale name alias data base. -# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. # # 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 @@ -26,6 +26,7 @@ # it with the rest of us. Send it using the `glibcbug' script to # bugs@gnu.org. +croatian hr_HR.ISO-8859-2 czech cs_CZ.ISO-8859-2 danish da_DK.ISO-8859-1 dansk da_DK.ISO-8859-1 @@ -37,6 +38,7 @@ french fr_FR.ISO-8859-1 german de_DE.ISO-8859-1 greek el_GR.ISO-8859-7 hebrew iw_IL.ISO-8859-8 +hrvatski hr_HR.ISO-8859-2 hungarian hu_HU.ISO-8859-2 icelandic is_IS.ISO-8859-1 italian it_IT.ISO-8859-1 @@ -48,7 +50,8 @@ portuguese pt_PT.ISO-8859-1 romanian ro_RO.ISO-8859-2 russian ru_RU.ISO-8859-5 slovak sk_SK.ISO-8859-2 -slovene sl_CS.ISO-8859-2 +slovene sl_SI.ISO-8859-2 +slovenian sl_SI.ISO-8859-2 spanish es_ES.ISO-8859-1 swedish sv_SE.ISO-8859-1 turkish tr_TR.ISO-8859-9 diff -durpN glibc-2.1/intl/localealias.c glibc-2.1.1/intl/localealias.c --- glibc-2.1/intl/localealias.c Wed Dec 2 01:54:56 1998 +++ glibc-2.1.1/intl/localealias.c Thu Apr 29 16:57:15 1999 @@ -1,5 +1,5 @@ /* Handle aliases for locale names. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. @@ -150,12 +150,12 @@ struct alias_map }; -static char *string_space = NULL; -static size_t string_space_act = 0; -static size_t string_space_max = 0; +static char *string_space; +static size_t string_space_act; +static size_t string_space_max; static struct alias_map *map; -static size_t nmap = 0; -static size_t maxmap = 0; +static size_t nmap; +static size_t maxmap; /* Prototypes for local functions. */ diff -durpN glibc-2.1/io/Makefile glibc-2.1.1/io/Makefile --- glibc-2.1/io/Makefile Wed Nov 18 18:07:04 1998 +++ glibc-2.1.1/io/Makefile Thu Feb 18 17:22:20 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. +# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 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 @@ -35,7 +35,7 @@ routines := \ statvfs fstatvfs statvfs64 fstatvfs64 \ umask chmod fchmod mkdir \ open open64 close read write lseek lseek64 access euidaccess \ - fcntl flock lockf \ + fcntl flock lockf lockf64 \ dup dup2 pipe \ creat creat64 \ chdir fchdir \ diff -durpN glibc-2.1/io/Versions glibc-2.1.1/io/Versions --- glibc-2.1/io/Versions Thu Jul 2 21:11:14 1998 +++ glibc-2.1.1/io/Versions Mon Apr 12 17:57:45 1999 @@ -9,6 +9,9 @@ libc { __xstat; __fxstat; __lxstat; __xmknod; __write; __close; __fcntl; __lseek; __open; __read; + # functions used by libstdc++ 2.7.2 + __dup2; __pipe; + # a* access; @@ -79,5 +82,9 @@ libc { # s* statfs64; statvfs; statvfs64; + } + GLIBC_2.1.1 { + # l* + lockf64; } } diff -durpN glibc-2.1/io/ftw.c glibc-2.1.1/io/ftw.c --- glibc-2.1/io/ftw.c Mon Jan 25 17:29:21 1999 +++ glibc-2.1.1/io/ftw.c Thu Apr 29 16:57:17 1999 @@ -78,7 +78,7 @@ struct ftw_data /* Conversion array for flag values. It is the identity mapping for `nftw' calls, otherwise it maps the values to those know by `ftw'. */ - int *cvt_arr; + const int *cvt_arr; /* Callback function. We always use the `nftw' form. */ NFTW_FUNC_T func; @@ -95,12 +95,12 @@ struct ftw_data /* Internally we use the FTW_* constants used for `nftw'. When the process called `ftw' we must reduce the flag to the known flags for `ftw'. */ -static int nftw_arr[] = +static const int nftw_arr[] = { FTW_F, FTW_D, FTW_DNR, FTW_NS, FTW_SL, FTW_DP, FTW_SLN }; -static int ftw_arr[] = +static const int ftw_arr[] = { FTW_F, FTW_D, FTW_DNR, FTW_NS, FTW_F, FTW_D, FTW_NS }; diff -durpN glibc-2.1/libio/Makefile glibc-2.1.1/libio/Makefile --- glibc-2.1/libio/Makefile Wed Jan 27 17:58:44 1999 +++ glibc-2.1.1/libio/Makefile Mon Apr 12 17:58:19 1999 @@ -47,8 +47,6 @@ routines += oldiofopen oldiofdopen oldio oldtmpfile endif -CPPFLAGS-.o += -DIO_DEBUG - ifneq (,$(filter %REENTRANT, $(defines))) routines += clearerr_u feof_u ferror_u fputc_u getc_u getchar_u \ iofflush_u putc_u putchar_u peekc iofread_u iofwrite_u iofgets_u \ diff -durpN glibc-2.1/libio/iofopncook.c glibc-2.1.1/libio/iofopncook.c --- glibc-2.1/libio/iofopncook.c Mon Oct 6 00:33:12 1997 +++ glibc-2.1.1/libio/iofopncook.c Wed Apr 28 16:57:31 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -81,10 +81,7 @@ _IO_cookie_seek (fp, offset, dir) pos = _IO_pos_0; _IO_pos_adjust (pos, offset); - if (cfile->io_functions.seek (cfile->cookie, pos, dir)) - return _IO_pos_BAD; - - return pos; + return cfile->io_functions.seek (cfile->cookie, pos, dir); } static int diff -durpN glibc-2.1/libio/iopopen.c glibc-2.1.1/libio/iopopen.c --- glibc-2.1/libio/iopopen.c Mon Nov 23 15:22:46 1998 +++ glibc-2.1.1/libio/iopopen.c Thu Apr 29 16:57:22 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. Written by Per Bothner . @@ -101,7 +101,7 @@ struct _IO_proc_file }; typedef struct _IO_proc_file _IO_proc_file; -static struct _IO_proc_file *proc_file_chain = NULL; +static struct _IO_proc_file *proc_file_chain; _IO_FILE * _IO_new_proc_open (fp, command, mode) @@ -139,6 +139,8 @@ _IO_new_proc_open (fp, command, mode) if (child_pid == 0) { int child_std_end = mode[0] == 'r' ? 1 : 0; + struct _IO_proc_file *p; + _IO_close (parent_end); if (child_end != child_std_end) { @@ -148,11 +150,8 @@ _IO_new_proc_open (fp, command, mode) /* POSIX.2: "popen() shall ensure that any streams from previous popen() calls that remain open in the parent process are closed in the new child process." */ - while (proc_file_chain) - { - _IO_close (_IO_fileno ((_IO_FILE *) proc_file_chain)); - proc_file_chain = proc_file_chain->next; - } + for (p = proc_file_chain; p; p = p->next) + _IO_close (_IO_fileno ((_IO_FILE *) p)); _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); _IO__exit (127); diff -durpN glibc-2.1/libio/obprintf.c glibc-2.1.1/libio/obprintf.c --- glibc-2.1/libio/obprintf.c Wed Nov 5 23:13:31 1997 +++ glibc-2.1.1/libio/obprintf.c Tue Apr 13 17:28:59 1999 @@ -1,5 +1,5 @@ /* Print output of stream to given obstack. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -31,8 +31,7 @@ struct _IO_obstack_file { - struct _IO_FILE file; - const void *vtable; + struct _IO_FILE_plus file; struct obstack *obstack; }; @@ -50,7 +49,7 @@ _IO_obstack_overflow (_IO_FILE *fp, int /* Setup the buffer pointers again. */ fp->_IO_write_base = obstack_base (obstack); fp->_IO_write_ptr = obstack_next_free (obstack); - fp->_IO_write_end = fp->_IO_write_base + obstack_room (obstack); + fp->_IO_write_end = fp->_IO_write_ptr + obstack_room (obstack); /* Now allocate the rest of the current chunk. */ obstack_blank_fast (obstack, fp->_IO_write_end - fp->_IO_write_ptr); @@ -67,15 +66,15 @@ _IO_obstack_xsputn (_IO_FILE *fp, const { /* We need some more memory. First shrink the buffer to the space we really currently need. */ - obstack_blank (obstack, fp->_IO_write_ptr - fp->_IO_write_end); + obstack_blank_fast (obstack, fp->_IO_write_ptr - fp->_IO_write_end); - /* Now grow for N bytes. */ - obstack_blank (obstack, n); + /* Now grow for N bytes, and put the data there. */ + obstack_grow (obstack, data, n); /* Setup the buffer pointers again. */ fp->_IO_write_base = obstack_base (obstack); fp->_IO_write_ptr = obstack_next_free (obstack); - fp->_IO_write_end = (fp->_IO_write_base + obstack_room (obstack)); + fp->_IO_write_end = (fp->_IO_write_ptr + obstack_room (obstack)); /* Now allocate the rest of the current chunk. */ obstack_blank_fast (obstack, fp->_IO_write_end - fp->_IO_write_ptr); } @@ -125,25 +124,25 @@ _IO_obstack_vprintf (struct obstack *obs int result; #ifdef _IO_MTSAFE_IO - new_f.ofile.file._lock = &new_f.lock; + new_f.ofile.file.file._lock = &new_f.lock; #endif - _IO_init ((_IO_FILE *) &new_f.ofile, 0); - _IO_JUMPS (&new_f.ofile.file) = &_IO_obstack_jumps; - _IO_str_init_static (&new_f.ofile.file, obstack_base (obstack), - (obstack_object_size (obstack) + - obstack_room (obstack)), obstack_next_free (obstack)); + _IO_init (&new_f.ofile.file.file, 0); + _IO_JUMPS (&new_f.ofile.file.file) = &_IO_obstack_jumps; + _IO_str_init_static (&new_f.ofile.file.file, obstack_base (obstack), + obstack_object_size (obstack) + obstack_room (obstack), + obstack_next_free (obstack)); /* Now allocate the rest of the current chunk. */ obstack_blank_fast (obstack, - (new_f.ofile.file._IO_write_end - - new_f.ofile.file._IO_write_ptr)); + (new_f.ofile.file.file._IO_write_end + - new_f.ofile.file.file._IO_write_ptr)); new_f.ofile.obstack = obstack; - result = _IO_vfprintf ((_IO_FILE *) &new_f, format, args); + result = _IO_vfprintf (&new_f.ofile.file.file, format, args); /* Shrink the buffer to the space we really currently need. */ - obstack_blank (obstack, (new_f.ofile.file._IO_write_ptr - - new_f.ofile.file._IO_write_end)); + obstack_blank_fast (obstack, (new_f.ofile.file.file._IO_write_ptr + - new_f.ofile.file.file._IO_write_end)); return result; } diff -durpN glibc-2.1/libio/oldfileops.c glibc-2.1.1/libio/oldfileops.c --- glibc-2.1/libio/oldfileops.c Thu Nov 5 06:40:23 1998 +++ glibc-2.1.1/libio/oldfileops.c Tue Mar 30 00:15:37 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. Written by Per Bothner . @@ -39,6 +39,9 @@ #include #include #include +#ifdef __STDC__ +#include +#endif #ifndef errno extern int errno; #endif @@ -318,7 +321,15 @@ _IO_old_file_underflow (fp) return *(unsigned char *) fp->_IO_read_ptr; if (fp->_IO_buf_base == NULL) - _IO_doallocbuf (fp); + { + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { + free (fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); + } /* Flush all line buffered files before reading. */ /* FIXME This can/should be moved to genops ?? */ @@ -408,11 +419,9 @@ int _IO_old_file_sync (fp) _IO_FILE *fp; { - _IO_size_t delta; + _IO_ssize_t delta; int retval = 0; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); /* char* ptr = cur_ptr(); */ if (fp->_IO_write_ptr > fp->_IO_write_base) if (_IO_old_do_flush(fp)) return EOF; @@ -437,8 +446,6 @@ _IO_old_file_sync (fp) fp->_old_offset = _IO_pos_BAD; /* FIXME: Cleanup - can this be shared? */ /* setg(base(), ptr, ptr); */ - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); return retval; } @@ -474,6 +481,12 @@ _IO_old_file_seekoff (fp, offset, dir, m if (fp->_IO_buf_base == NULL) { + /* It could be that we already have a pushback buffer. */ + if (fp->_IO_read_base != NULL) + { + free (fp->_IO_read_base); + fp->_flags &= ~_IO_IN_BACKUP; + } _IO_doallocbuf (fp); _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base); _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); @@ -507,6 +520,10 @@ _IO_old_file_seekoff (fp, offset, dir, m } /* At this point, dir==_IO_seek_set. */ + /* If we are only interested in the current position we've found it now. */ + if (mode == 0) + return offset; + /* If destination is within current buffer, optimize: */ if (fp->_old_offset != _IO_pos_BAD && fp->_IO_read_base != NULL && !_IO_in_backup (fp)) @@ -525,7 +542,10 @@ _IO_old_file_seekoff (fp, offset, dir, m _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base + rel_offset, fp->_IO_read_end); _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base); - goto resync; + { + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + goto resync; + } } #ifdef TODO /* If we have streammarkers, seek forward by reading ahead. */ @@ -535,6 +555,7 @@ _IO_old_file_seekoff (fp, offset, dir, m - (fp->_IO_read_ptr - fp->_IO_read_base); if (ignore (to_skip) != to_skip) goto dumb; + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); goto resync; } #endif @@ -545,6 +566,7 @@ _IO_old_file_seekoff (fp, offset, dir, m if (!_IO_in_backup (fp)) _IO_switch_to_backup_area (fp); gbump (fp->_IO_read_end + rel_offset - fp->_IO_read_ptr); + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); goto resync; } #endif @@ -680,7 +702,12 @@ _IO_old_file_xsputn (f, data, n) count = to_do; if (count > 20) { +#ifdef _LIBC + f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count); +#else memcpy (f->_IO_write_ptr, s, count); + f->_IO_write_ptr += count; +#endif s += count; } else @@ -689,8 +716,8 @@ _IO_old_file_xsputn (f, data, n) register int i = (int) count; while (--i >= 0) *p++ = *s++; + f->_IO_write_ptr = p; } - f->_IO_write_ptr += count; to_do -= count; } if (to_do + must_flush > 0) diff -durpN glibc-2.1/libio/oldiofclose.c glibc-2.1.1/libio/oldiofclose.c --- glibc-2.1/libio/oldiofclose.c Sat Jun 6 23:45:38 1998 +++ glibc-2.1.1/libio/oldiofclose.c Tue Mar 30 00:15:38 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -46,6 +46,8 @@ _IO_old_fclose (fp) _IO_FINISH (fp); _IO_funlockfile (fp); _IO_cleanup_region_end (0); + if (_IO_have_backup (fp)) + _IO_free_backup_area (fp); if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr) { fp->_IO_file_flags = 0; diff -durpN glibc-2.1/libio/oldiofdopen.c glibc-2.1.1/libio/oldiofdopen.c --- glibc-2.1/libio/oldiofdopen.c Wed Dec 23 01:14:34 1998 +++ glibc-2.1.1/libio/oldiofdopen.c Tue Mar 30 00:15:39 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1994, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -127,7 +127,7 @@ _IO_old_fdopen (fd, mode) _IO_mask_flags (&new_f->fp.file, read_write, _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING); - return (_IO_FILE *) &new_f->fp; + return &new_f->fp.file; } strong_alias (_IO_old_fdopen, __old_fdopen) diff -durpN glibc-2.1/libio/oldiofopen.c glibc-2.1.1/libio/oldiofopen.c --- glibc-2.1/libio/oldiofopen.c Sun Dec 14 21:38:12 1997 +++ glibc-2.1.1/libio/oldiofopen.c Tue Mar 30 00:15:40 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -55,7 +55,7 @@ _IO_old_fopen (filename, mode) new_f->fp.vtable = NULL; #endif if (_IO_old_file_fopen (&new_f->fp.file, filename, mode) != NULL) - return (_IO_FILE *) &new_f->fp; + return &new_f->fp.file; _IO_un_link (&new_f->fp.file); free (new_f); return NULL; diff -durpN glibc-2.1/libio/oldiopopen.c glibc-2.1.1/libio/oldiopopen.c --- glibc-2.1/libio/oldiopopen.c Mon Nov 23 15:22:21 1998 +++ glibc-2.1.1/libio/oldiopopen.c Thu Apr 29 16:57:24 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. Written by Per Bothner . @@ -102,7 +102,7 @@ struct _IO_proc_file }; typedef struct _IO_proc_file _IO_proc_file; -static struct _IO_proc_file *old_proc_file_chain = NULL; +static struct _IO_proc_file *old_proc_file_chain; _IO_FILE * _IO_old_proc_open (fp, command, mode) diff -durpN glibc-2.1/locale/langinfo.h glibc-2.1.1/locale/langinfo.h --- glibc-2.1/locale/langinfo.h Thu Jul 9 18:38:05 1998 +++ glibc-2.1.1/locale/langinfo.h Mon Apr 12 17:59:08 1999 @@ -1,5 +1,5 @@ /* Access to locale-dependent parameters. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -263,7 +263,7 @@ enum #define THOUSANDS_SEP THOUSANDS_SEP #ifdef __USE_XOPEN THOUSEP = THOUSANDS_SEP, -#define THOUSANDS_SEP THOUSANDS_SEP +#define THOUSEP THOUSEP #endif GROUPING, #define GROUPING GROUPING diff -durpN glibc-2.1/locale/lc-collate.c glibc-2.1.1/locale/lc-collate.c --- glibc-2.1/locale/lc-collate.c Sat Feb 15 04:28:02 1997 +++ glibc-2.1.1/locale/lc-collate.c Thu Apr 29 16:57:40 1999 @@ -1,5 +1,5 @@ /* Define current locale data for LC_COLLATE category. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 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 @@ -28,12 +28,12 @@ extern const u_int32_t _nl_C_LC_COLLATE_ _NL_CURRENT_DEFINE (LC_COLLATE); -const u_int32_t *__collate_table = NULL; -const u_int32_t *__collate_extra = NULL; +const u_int32_t *__collate_table; +const u_int32_t *__collate_extra; -const u_int32_t *__collate_element_hash = NULL; -const char *__collate_element_strings = NULL; -const wchar_t *__collate_element_values = NULL; +const u_int32_t *__collate_element_hash; +const char *__collate_element_strings; +const wchar_t *__collate_element_values; const u_int32_t *__collate_symbol_hash = _nl_C_LC_COLLATE_symbol_hash; const char *__collate_symbol_strings = _nl_C_LC_COLLATE_symbol_strings; diff -durpN glibc-2.1/locale/loadlocale.c glibc-2.1.1/locale/loadlocale.c --- glibc-2.1/locale/loadlocale.c Thu Jan 28 23:57:02 1999 +++ glibc-2.1.1/locale/loadlocale.c Thu Apr 29 16:57:41 1999 @@ -97,13 +97,17 @@ _nl_load_locale (struct loaded_l10nfile /* LOCALE/LC_foo is a directory; open LOCALE/LC_foo/SYS_LC_foo instead. */ char *newp; + size_t filenamelen; __close (fd); - newp = (char *) alloca (strlen (file->filename) + filenamelen = strlen (file->filename); + newp = (char *) alloca (filenamelen + 5 + _nl_category_name_sizes[category] + 1); - __stpcpy (__stpcpy (__stpcpy (newp, file->filename), "/SYS_"), - _nl_category_names[category]); + __mempcpy (__mempcpy (__mempcpy (newp, file->filename, filenamelen), + "/SYS_", 5), + _nl_category_names[category], + _nl_category_name_sizes[category] + 1); fd = __open (newp, O_RDONLY); if (fd < 0) diff -durpN glibc-2.1/locale/localeinfo.h glibc-2.1.1/locale/localeinfo.h --- glibc-2.1/locale/localeinfo.h Tue Sep 30 16:39:42 1997 +++ glibc-2.1.1/locale/localeinfo.h Sat May 1 00:34:52 1999 @@ -1,5 +1,5 @@ /* localeinfo.h -- declarations for internal libc locale interfaces - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 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 @@ -104,7 +104,7 @@ extern struct locale_data *_nl_current_# #include "categories.def" #undef DEFINE_CATEGORY -extern const char *const _nl_category_names[LC_ALL + 1]; +extern const char _nl_category_names[LC_ALL + 1][16]; extern const size_t _nl_category_name_sizes[LC_ALL + 1]; extern struct locale_data * *const _nl_current[LC_ALL + 1]; diff -durpN glibc-2.1/locale/nl_langinfo.c glibc-2.1.1/locale/nl_langinfo.c --- glibc-2.1/locale/nl_langinfo.c Sat Feb 15 04:28:09 1997 +++ glibc-2.1.1/locale/nl_langinfo.c Thu Apr 29 16:57:45 1999 @@ -1,5 +1,5 @@ /* User interface for extracting locale-dependent parameters. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 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 @@ -22,18 +22,6 @@ #include #include "localeinfo.h" -/* This array duplicates `_nl_current' defined in setlocale.c; but since - the references here are not weak references, this guarantees that the - data for all the categories will be linked in. */ - -static struct locale_data * *const nldata[] = -{ -#define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \ - [category] = &_nl_current_##category, -#include "categories.def" -#undef DEFINE_CATEGORY -}; - /* Return a string with the data for locale-dependent parameter ITEM. */ @@ -52,7 +40,7 @@ nl_langinfo (item) return NULL; } - data = *nldata[category]; + data = *_nl_current[category]; if (index >= data->nstrings) { diff -durpN glibc-2.1/locale/programs/ld-collate.c glibc-2.1.1/locale/programs/ld-collate.c --- glibc-2.1/locale/programs/ld-collate.c Mon Jan 25 17:29:40 1999 +++ glibc-2.1.1/locale/programs/ld-collate.c Mon Apr 26 19:43:33 1999 @@ -608,6 +608,8 @@ Computing table size for collation infor size_t idx, cnt; undefined_offset = obstack_object_size (&non_simple); + assert (undefined_offset % sizeof (u_int32_t) == 0); + undefined_offset /= sizeof (u_int32_t); idx = collate->nrules; for (cnt = 0; cnt < collate->nrules; ++cnt) @@ -634,7 +636,7 @@ Computing table size for collation infor table2[cnt] = SWAPU32 (table[cnt]); for (cnt = 0; cnt < extra_len / sizeof (u_int32_t); ++cnt) - extra2[cnt] = SWAPU32 (extra2[cnt]); + extra2[cnt] = SWAPU32 (extra[cnt]); /* We need a simple hashing table to get a collation-element->chars mapping. We again use internal hashing using a secondary hashing diff -durpN glibc-2.1/locale/programs/ld-ctype.c glibc-2.1.1/locale/programs/ld-ctype.c --- glibc-2.1/locale/programs/ld-ctype.c Thu Dec 10 17:50:09 1998 +++ glibc-2.1.1/locale/programs/ld-ctype.c Mon Apr 26 19:47:28 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -268,7 +268,7 @@ ctype_finish (struct localedef_t *locale if (!be_quiet) error (0, 0, _("\ character %s'%s' in class `%s' must be in class `%s'"), value > 256 ? "L" : "", - cp, valid_table[cls1].name, + buf, valid_table[cls1].name, valid_table[cls2].name); } break; @@ -293,7 +293,7 @@ character %s'%s' in class `%s' must be i if (!be_quiet) error (0, 0, _("\ character %s'%s' in class `%s' must not be in class `%s'"), - value > 256 ? "L" : "", cp, + value > 256 ? "L" : "", buf, valid_table[cls1].name, valid_table[cls2].name); } @@ -882,7 +882,7 @@ implementation limit: no more than %d ch /* We have to be prepared that TABLE, MAX, and ACT can be NULL. This - is possible if we only want ot extend the name array. */ + is possible if we only want to extend the name array. */ static u_int32_t * find_idx (struct locale_ctype_t *ctype, u_int32_t **table, size_t *max, size_t *act, unsigned int idx) @@ -896,7 +896,7 @@ find_idx (struct locale_ctype_t *ctype, if (ctype->charnames[cnt] == idx) break; - /* We have to distinguish two cases: the names is found or not. */ + /* We have to distinguish two cases: the name is found or not. */ if (cnt == ctype->charnames_act) { /* Extend the name array. */ diff -durpN glibc-2.1/locale/programs/ld-messages.c glibc-2.1.1/locale/programs/ld-messages.c --- glibc-2.1/locale/programs/ld-messages.c Mon Oct 19 19:45:13 1998 +++ glibc-2.1.1/locale/programs/ld-messages.c Mon Apr 26 19:47:28 1999 @@ -91,7 +91,7 @@ messages_finish (struct localedef_t *loc int result; regex_t re; - /* Test whether it are correct regular expressions. */ + /* Test whether it is a correct regular expression. */ result = regcomp (&re, messages->yesexpr, REG_EXTENDED); if (result != 0 && !be_quiet) { @@ -115,7 +115,7 @@ no correct regular expression for field int result; regex_t re; - /* Test whether it are correct regular expressions. */ + /* Test whether it is a correct regular expression. */ result = regcomp (&re, messages->noexpr, REG_EXTENDED); if (result != 0 && !be_quiet) { diff -durpN glibc-2.1/locale/programs/ld-monetary.c glibc-2.1.1/locale/programs/ld-monetary.c --- glibc-2.1/locale/programs/ld-monetary.c Fri Dec 25 00:01:20 1998 +++ glibc-2.1.1/locale/programs/ld-monetary.c Mon Apr 26 19:47:28 1999 @@ -62,7 +62,7 @@ struct locale_monetary_t }; -/* The content iof the field int_curr_symbol has to be taken from +/* The contents of the field int_curr_symbol have to be taken from ISO-4217. We test for correct values. */ #define DEFINE_INT_CURR(str) str, static const char *const valid_int_curr[] = @@ -174,8 +174,8 @@ value for field `%s' in category `%s' mu #cat, "LC_MONETARY", min, max) #if 0 - /* The following two test are not really necessary because all values - the variable could have are valid. */ + /* The following two tests are not really necessary because all values + the variable could have are valid. */ TEST_ELEM (int_frac_digits, -128, 127); /* No range check. */ TEST_ELEM (frac_digits, -128, 127); /* No range check. */ #endif diff -durpN glibc-2.1/locale/programs/ld-time.c glibc-2.1.1/locale/programs/ld-time.c --- glibc-2.1/locale/programs/ld-time.c Fri Dec 25 00:01:22 1998 +++ glibc-2.1.1/locale/programs/ld-time.c Mon Apr 26 19:47:28 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -357,8 +357,11 @@ time_finish (struct localedef_t *locale) if (!be_quiet) error (0, 0, _("missing era name in string %d in `era' field" " in category `%s'"), idx + 1, "LC_TIME"); - time->era_entries[idx].name = - time->era_entries[idx].format = ""; + /* Make sure that name and format are adjacent strings + in memory. */ + time->era_entries[idx].name = "\0"; + time->era_entries[idx].format + = time->era_entries[idx].name + 1; } else { @@ -370,8 +373,11 @@ time_finish (struct localedef_t *locale) error (0, 0, _("missing era format in string %d in `era'" " field in category `%s'"), idx + 1, "LC_TIME"); - time->era_entries[idx].name = - time->era_entries[idx].format = ""; + /* Make sure that name and format are adjacent strings + in memory. */ + time->era_entries[idx].name = "\0"; + time->era_entries[idx].format + = time->era_entries[idx].name + 1; } else time->era_entries[idx].format = str; @@ -589,22 +595,10 @@ time_output (struct localedef_t *locale, iov[2 + cnt].iov_len = sizeof (int32_t); ++cnt; iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[0]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[1]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[2]; - iov[2 + cnt].iov_len = sizeof (int32_t); + iov[2 + cnt].iov_len = 3 * sizeof (int32_t); ++cnt; iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[0]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[1]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[2]; - iov[2 + cnt].iov_len = sizeof (int32_t); + iov[2 + cnt].iov_len = 3 * sizeof (int32_t); ++cnt; l = (strchr (ERA_B1[num].format, '\0') - ERA_B1[num].name) + 1; @@ -631,22 +625,10 @@ time_output (struct localedef_t *locale, iov[2 + cnt].iov_len = sizeof (int32_t); ++cnt; iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[0]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[1]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[2]; - iov[2 + cnt].iov_len = sizeof (int32_t); + iov[2 + cnt].iov_len = 3 * sizeof (int32_t); ++cnt; iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[0]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[1]; - iov[2 + cnt].iov_len = sizeof (int32_t); - ++cnt; - iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[2]; - iov[2 + cnt].iov_len = sizeof (int32_t); + iov[2 + cnt].iov_len = 3 * sizeof (int32_t); ++cnt; l = (strchr (ERA_B2[num].format, '\0') - ERA_B2[num].name) + 1; diff -durpN glibc-2.1/locale/programs/localedef.c glibc-2.1.1/locale/programs/localedef.c --- glibc-2.1/locale/programs/localedef.c Mon Jan 25 17:29:42 1999 +++ glibc-2.1.1/locale/programs/localedef.c Mon Mar 15 19:18:13 1999 @@ -40,10 +40,6 @@ #include "locfile.h" #include "locales.h" -/* Undefine the following line in the production version. */ -/* #define NDEBUG 1 */ -#include - /* This is a special entry of the copylist. For all categories we don't have a definition we use the data for the POSIX locale. */ @@ -207,7 +203,7 @@ main (int argc, char *argv[]) beginning every time. */ do { - int cat; + int cat = 0; for (act_add_locdef = copy_list; act_add_locdef != NULL; act_add_locdef = act_add_locdef->next) diff -durpN glibc-2.1/locale/programs/locfile.c glibc-2.1.1/locale/programs/locfile.c --- glibc-2.1/locale/programs/locfile.c Mon Oct 19 19:52:19 1998 +++ glibc-2.1.1/locale/programs/locfile.c Wed Apr 14 20:45:11 1999 @@ -1,6 +1,6 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1996. + Contributed by Ulrich Drepper , 1996. 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 @@ -390,7 +390,7 @@ syntax error: not inside a locale defini continue; case 2: - HANDLE_COPY (LC_CTYPE, tok_lc_ctype, "LC_CYTPE"); + HANDLE_COPY (LC_CTYPE, tok_lc_ctype, "LC_CTYPE"); ctype_startup (ldfile, result, charset); /* FALLTHROUGH */ diff -durpN glibc-2.1/locale/programs/stringtrans.c glibc-2.1.1/locale/programs/stringtrans.c --- glibc-2.1/locale/programs/stringtrans.c Wed Sep 9 16:19:21 1998 +++ glibc-2.1.1/locale/programs/stringtrans.c Tue Feb 9 17:32:37 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -21,7 +21,6 @@ # include #endif -#include #include #include "charset.h" diff -durpN glibc-2.1/locale/setlocale.c glibc-2.1.1/locale/setlocale.c --- glibc-2.1/locale/setlocale.c Thu Jan 28 23:52:48 1999 +++ glibc-2.1.1/locale/setlocale.c Tue May 11 19:14:16 1999 @@ -40,9 +40,8 @@ extern struct locale_data _nl_C_##catego #include "categories.def" #undef DEFINE_CATEGORY -/* Array indexed by category of pointers to _nl_current_CATEGORY slots. - Elements are zero for categories whose data is never used. */ -static struct locale_data * *const _nl_current[] = +/* Array indexed by category of pointers to _nl_current_CATEGORY slots. */ +struct locale_data * *const _nl_current[] = { #define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \ [category] = &_nl_current_##category, @@ -65,8 +64,12 @@ struct locale_data *const _nl_C[] = /* Define an array of category names (also the environment variable names), - indexed by integral category. */ -const char *const _nl_category_names[] = + indexed by integral category. + + We have entries of fixed width (16 for now) do avoid an array of + pointers. Update the size of the outer array if new, longer locale + names are introduced. */ +const char _nl_category_names[][16] = { #define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \ [category] = category_name, @@ -146,7 +149,7 @@ new_composite_name (int category, const _nl_current_names[i]); last_len = strlen (name); cumlen += _nl_category_name_sizes[i] + 1 + last_len + 1; - if (i > 0 && same && strcmp (name, newnames[0]) != 0) + if (same && strcmp (name, newnames[0]) != 0) same = 0; } diff -durpN glibc-2.1/localedata/CHECKSUMS glibc-2.1.1/localedata/CHECKSUMS --- glibc-2.1/localedata/CHECKSUMS Wed Dec 16 22:28:46 1998 +++ glibc-2.1.1/localedata/CHECKSUMS Mon Mar 15 18:06:49 1999 @@ -212,7 +212,7 @@ d9e85f9c1dc5d2d9396afac293f0553c locale 8c17257001e3d33e8ab8c5dc9fae87a7 locales/fr_LU fe6ba034da4ce416f480a11a0b1f7356 locales/ga_IE e5730342b747e9445b6448792d39d121 locales/he_IL -99d3fcad5951491c47d694370240757e locales/hr_HR +1291e71feb2a02bf24717857c936ad16 locales/hr_HR 0b21f01202e6ca3de0835191205c54ab locales/hu_HU 2325701702c17598f3a4e1321da6d84b locales/is_IS 69b619bf7fad926c3c04349f1a316d0d locales/it_IT diff -durpN glibc-2.1/localedata/ChangeLog glibc-2.1.1/localedata/ChangeLog --- glibc-2.1/localedata/ChangeLog Wed Dec 23 01:14:47 1998 +++ glibc-2.1.1/localedata/ChangeLog Wed May 19 17:16:49 1999 @@ -1,11 +1,136 @@ -1998-12-20 Andreas Schwab - - * Makefile (test-input): Add hr_HR.ISO-8859-2. - (test-input-data): New variable. - (distribute): Use it. - (do-collate-test): Use it. - * hr_HR.in: New file. - +1999-05-18 Ulrich Drepper + + * Makefile (LOCALEDEF): Add I18NPATH definition to find the + correct sources. + +1999-05-05 Ulrich Drepper + + * locales/ru_RU: Abbreviate Saturday Sbt. + Patch by Sergei Ivanov . + +1999-05-03 Ulrich Drepper + + * Makefile (distribute): Temporarily add th_TH.in and cs_CZ.in. + +1999-04-29 Ulrich Drepper + + * Makefile (install-locales): Allow specifying charset in locale + name but omit it in locale definition file. + + * SUPPORTED: Don't generate ru_SU. + * locales/ru_SU: Removed. + + * locales/zh_CN: Update. + * charmaps/GB2312: New file. + Contributed by hashao@china.com. + +1999-04-20 Andreas Schwab + + * charmaps/UTF8: Fix entries for , , <1!> and , and + correct some character names. + + * repertoiremaps/mnemonic.ds: Correct name of entry. + +1999-04-26 Ulrich Drepper + + * charmaps/SAMI-WS2: Add one more alias. + +1999-04-16 Ulrich Drepper + + * charmaps/IBM874: New file. + + * charmaps/IBM869: Correct entries 8b, 8e, and ef. + + * charmaps/IBM865: Correct entries af, ed, f8, f9, and fa. + + * charmaps/IBM864: Major update from Unicode data. + + * charmaps/IBM863: Correct entries 8d, ed, f8, f9, and fa. + + * charmaps/IBM862: Correct entries 9d, 9f, a9, f9, and fa. + + * charmaps/IBM861: Correct entries 9f, a9, f9, and fa. + + * charmaps/IBM860: Correct entries 8b, 9f, a9, f9, and fa. + + * charmaps/IBM857: Correct entries ee, f7, and fa. + + * charmaps/IBM855: Correct entries 95, ef, and fd. + + * charmaps/IBM437: Correct entries f9 and fa. + + * charmaps/UTF8: Correct BULLET OPERATOR mnemonic. + + * locales/th_TH: New file. Thai locale description. + * th_TH.in: New file. + Contributed by Theppitak Karoonboonyanan . + +1999-04-14 Cristian Gafton + + * SUPPORTED: Add support for Ukraine Russian. + * locales/ru_UA: New file. + * locales/uk_UA: New file. + * charmaps/KOI8-U: New file. + +1999-04-12 Ulrich Drepper + + * locales/id_ID: New file. + +1999-04-10 Ulrich Drepper + + * charmaps/TIS-620: New file. + Contributed by Theppitak Karoonboonyanan . + +1999-03-31 Ulrich Drepper + + * locales/en_ZA: New file. Contributed by nic@sig.co.za. + + * charmaps/CP1256: Cosmetic changes. + * charmaps/CP1257: Likewise. + + * charmaps/CP1258: New file. + + * charmaps/CP1257: Add some marks. + * charmaps/CP1256: Update from Unicode page. + * charmaps/CP1255: Lots of punctuation character changes. + * charmaps/CP1254: Add Euro character. Fix a few lowercase characters. + * charmaps/CP1253: Add Euro character. + * charmaps/CP1252: Add Euro character and z caron. + * charmaps/CP1251: Add Euro character. + * charmaps/CP1250: Add Euro character. + +1999-03-15 Ulrich Drepper + + * locales/hr_HR: Various corrections. + Patch by Tomislav Vujec . + +1999-03-08 Ulrich Drepper + + * locales/ru_RU (mon): Fix March and May month name translations. + Reported by Vadim V. Zhytnikov . + +1999-02-16 Ulrich Drepper + + * Makefile (test-input): Prepare for cs_CZ test. + * locales/cs_CZ: New version from Vladimir Michl . + * cs_CZ.in: New file. + +1999-02-11 Ulrich Drepper + + * locales/it_CH: New file. + * SUPPORTED: Add it_CH. + + * locales/in_ID: New file. + * SUPPORTED: Add in_ID. + +1998-12-20 Andreas Schwab + + * Makefile (test-input): Add hr_HR.ISO-8859-2. + (test-input-data): New variable. + (distribute): Use it. + (do-collate-test): Use it. + * locales/hr_HR.in: New file. + 1998-12-16 Ulrich Drepper * charmaps/IBM866: New file. diff -durpN glibc-2.1/localedata/Makefile glibc-2.1.1/localedata/Makefile --- glibc-2.1/localedata/Makefile Wed Dec 23 01:14:48 1998 +++ glibc-2.1.1/localedata/Makefile Wed May 19 17:16:51 1999 @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999 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 @@ -37,7 +37,7 @@ repertoiremaps := $(filter-out $(addpref test-srcs := collate-test xfrm-test tst-fmon tst-rpmatch test-input := de_DE.ISO-8859-1 da_DK.ISO-8859-1 fr_CA,2.13.ISO-8859-1 \ - hr_HR.ISO-8859-2 + hr_HR.ISO-8859-2 # once it is fixed: cs_CZ.ISO-8859-2 test-input-data = $(addsuffix .in, $(basename $(test-input))) test-output := $(foreach s, .out .xout, \ $(addsuffix $s, $(basename $(test-input)))) @@ -51,7 +51,8 @@ generated-dirs := $(basename $(test-inpu distribute := CHECKSUMS README SUPPORTED ChangeLog \ $(charmaps) $(locales) $(repertoiremaps) \ tst-rpmatch.sh tst-locale.sh tst-fmon.sh sort-test.sh \ - tst-fmon.data $(test-input-data) $(ld-test-srcs) + tst-fmon.data $(test-input-data) $(ld-test-srcs) \ + th_TH.in cs_CZ.in # Get $(inst_i18ndir) defined. include ../Makeconfig @@ -69,6 +70,7 @@ $(inst_i18ndir)/repertoiremaps/%: repert ifeq (no,$(cross-compiling)) +ifeq (yes,$(build-shared)) .PHONY: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch tests: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-collate-test: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \ @@ -81,13 +83,15 @@ do-tst-locale: tst-locale.sh $(ld-test-s do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch do-tst-fmon $(SHELL) -e $< $(common-objpfx) endif +endif # Sometimes the whole collection of locale files should be installed. -LOCALEDEF=$(common-objpfx)elf/ld.so --library-path $(rpath-link) $(common-objpfx)locale/localedef +LOCALEDEF=I18NPATH=. $(common-objpfx)elf/ld.so --library-path $(rpath-link) $(common-objpfx)locale/localedef install-locales: while read locale charset; do \ case $$locale in \#*) continue;; esac; \ - $(LOCALEDEF) -c -i locales/$$locale -f charmaps/$$charset \ + $(LOCALEDEF) -i locales/`echo $$locale | sed 's/\([^.]*\).*/\1/'` \ + -c -f charmaps/$$charset \ -u repertoiremaps/mnemonic.ds \ $(inst_localedir)/$$locale; \ done < SUPPORTED diff -durpN glibc-2.1/localedata/SUPPORTED glibc-2.1.1/localedata/SUPPORTED --- glibc-2.1/localedata/SUPPORTED Mon Dec 7 18:02:59 1998 +++ glibc-2.1.1/localedata/SUPPORTED Thu Apr 29 21:57:42 1999 @@ -28,7 +28,9 @@ fr_LU ISO-8859-1 ga_IE ISO-8859-1 hr_HR ISO-8859-2 hu_HU ISO-8859-2 +in_ID ISO-8859-1 is_IS ISO-8859-1 +it_CH ISO-8859-1 it_IT ISO-8859-1 iw_IL ISO-8859-8 kl_GL ISO-8859-1 @@ -42,10 +44,12 @@ pt_BR ISO-8859-1 pt_PT ISO-8859-1 ro_RO ISO-8859-2 ru_RU ISO-8859-5 -ru_SU KOI8-R +ru_RU.KOI8-R KOI8-R +ru_UA KOI8-U sk_SK ISO-8859-2 sl_SI ISO-8859-2 sr_YU ISO-8859-2 sv_FI ISO-8859-1 sv_SE ISO-8859-1 tr_TR ISO-8859-9 +uk_UA KOI8-U diff -durpN glibc-2.1/localedata/charmaps/CP1250 glibc-2.1.1/localedata/charmaps/CP1250 --- glibc-2.1/localedata/charmaps/CP1250 Sun Jan 25 19:13:52 1998 +++ glibc-2.1.1/localedata/charmaps/CP1250 Wed Mar 31 20:15:18 1999 @@ -135,6 +135,7 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK <.3> /x85 HORIZONTAL ELLIPSIS diff -durpN glibc-2.1/localedata/charmaps/CP1251 glibc-2.1.1/localedata/charmaps/CP1251 --- glibc-2.1/localedata/charmaps/CP1251 Sun Jan 25 19:13:53 1998 +++ glibc-2.1.1/localedata/charmaps/CP1251 Wed Mar 31 20:15:20 1999 @@ -143,6 +143,7 @@ CHARMAP <.3> /x85 HORIZONTAL ELLIPSIS /x86 DAGGER /x87 DOUBLE DAGGER + /x88 EURO SIGN <%0> /x89 PER MILLE SIGN /x8A CYRILLIC CAPITAL LETTER LJE <<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK diff -durpN glibc-2.1/localedata/charmaps/CP1252 glibc-2.1.1/localedata/charmaps/CP1252 --- glibc-2.1/localedata/charmaps/CP1252 Sun Jan 25 19:13:54 1998 +++ glibc-2.1.1/localedata/charmaps/CP1252 Wed Mar 31 20:15:21 1999 @@ -135,6 +135,7 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK /x83 LATIN SMALL LETTER F WITH HOOK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK @@ -146,6 +147,7 @@ CHARMAP /x8A LATIN CAPITAL LETTER S WITH CARON <<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK /x8C LATIN CAPITAL LIGATURE OE + /x8e LATIN CAPITAL LETTER Z WITH CARON <'6> /x91 LEFT SINGLE QUOTATION MARK <'9> /x92 RIGHT SINGLE QUOTATION MARK <"6> /x93 LEFT DOUBLE QUOTATION MARK @@ -158,6 +160,7 @@ CHARMAP /x9A LATIN SMALL LETTER S WITH CARON 1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK /x9C LATIN SMALL LIGATURE OE + /x9E LATIN SMALL LETTER Z WITH CARON /x9F LATIN CAPITAL LETTER Y WITH DIAERESIS /xA0 NO-BREAK SPACE /xA1 INVERTED EXCLAMATION MARK diff -durpN glibc-2.1/localedata/charmaps/CP1253 glibc-2.1.1/localedata/charmaps/CP1253 --- glibc-2.1/localedata/charmaps/CP1253 Sun Jan 25 19:13:55 1998 +++ glibc-2.1.1/localedata/charmaps/CP1253 Wed Mar 31 20:15:22 1999 @@ -135,6 +135,7 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK /x83 LATIN SMALL LETTER F WITH HOOK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK diff -durpN glibc-2.1/localedata/charmaps/CP1254 glibc-2.1.1/localedata/charmaps/CP1254 --- glibc-2.1/localedata/charmaps/CP1254 Sun Jan 25 19:13:56 1998 +++ glibc-2.1.1/localedata/charmaps/CP1254 Wed Mar 31 20:15:24 1999 @@ -135,6 +135,7 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK /x83 LATIN SMALL LETTER F WITH HOOK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK @@ -233,12 +234,12 @@ CHARMAP /xE7 LATIN SMALL LETTER C WITH CEDILLA /xE8 LATIN SMALL LETTER E WITH GRAVE /xE9 LATIN SMALL LETTER E WITH ACUTE - /xEA LATIN SMALL LETTER E WITH OGONEK +> /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX /xEB LATIN SMALL LETTER E WITH DIAERESIS - /xEC LATIN SMALL LETTER E WITH DOT ABOVE + /xEC LATIN SMALL LETTER E WITH GRAVE /xED LATIN SMALL LETTER I WITH ACUTE > /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX - /xEF LATIN SMALL LETTER I WITH MACRON + /xEF LATIN SMALL LETTER I WITH DIAERESIS /xF0 LATIN SMALL LETTER G WITH BREVE /xF1 LATIN SMALL LETTER N WITH TILDE /xF2 LATIN SMALL LETTER O WITH GRAVE diff -durpN glibc-2.1/localedata/charmaps/CP1255 glibc-2.1.1/localedata/charmaps/CP1255 --- glibc-2.1/localedata/charmaps/CP1255 Sun Jan 25 19:13:57 1998 +++ glibc-2.1.1/localedata/charmaps/CP1255 Wed Mar 31 20:15:25 1999 @@ -135,12 +135,14 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK /x83 LATIN SMALL LETTER F WITH HOOK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK <.3> /x85 HORIZONTAL ELLIPSIS /x86 DAGGER /x87 DOUBLE DAGGER +<1/>> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT <%0> /x89 PER MILLE SIGN <<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK <'6> /x91 LEFT SINGLE QUOTATION MARK @@ -150,12 +152,14 @@ CHARMAP /x95 BULLET <-N> /x96 EN DASH <-M> /x97 EM DASH +<1?> /x98 SMALL TILDE /x99 TRADE MARK SIGN 1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK /xA0 NO-BREAK SPACE + /xA1 INVERTED EXCLAMATION MARK /xA2 CENT SIGN /xA3 POUND SIGN - /xA4 CURRENCY SIGN + /xA4 NEW SHEQEL SIGN /xA5 YEN SIGN /xA6 BROKEN BAR /xA7 SECTION SIGN @@ -166,7 +170,7 @@ CHARMAP /xAC NOT SIGN <--> /xAD SOFT HYPHEN /xAE REGISTERED SIGN -<'-> /xAF OVERLINE +<'m> /xAF MACRON /xB0 DEGREE SIGN <+-> /xB1 PLUS-MINUS SIGN <2S> /xB2 SUPERSCRIPT TWO @@ -182,7 +186,31 @@ CHARMAP <14> /xBC VULGAR FRACTION ONE QUARTER <12> /xBD VULGAR FRACTION ONE HALF <34> /xBE VULGAR FRACTION THREE QUARTERS -<=2> /xDF DOUBLE LOW LINE + /xBF INVERTED QUESTION MARK +<.H:> /xC0 HEBREW POINT SHEVA +<.H:.:> /xC1 HEBREW POINT HATAF SEGOL +<.H-:> /xC2 HEBREW POINT HATAF PATAH +<.HT:> /xC3 HEBREW POINT HATAF QAMATS +<.H.> /xC4 HEBREW POINT HIRIQ +<.H..> /xC5 HEBREW POINT TSERE +<.H:.> /xC6 HEBREW POINT SEGOL +<.H-> /xC7 HEBREW POINT PATAH +<.HT> /xC8 HEBREW POINT QAMATS +<'H.HL> /xC9 HEBREW POINT HOLAM +<.H...> /xCB HEBREW POINT QUBUTS +<.MH> /xCC HEBREW POINT DAGESH OR MAPIQ +<.H!> /xCD HEBREW POINT METEG + /xCE HEBREW PUNCTUATION MAQAF +<'H-> /xCF HEBREW POINT RAFE + /xD0 HEBREW PUNCTUATION PASEQ +<'H.R> /xD1 HEBREW POINT SHIN DOT +<'H.L> /xD2 HEBREW POINT SIN DOT + /xD3 HEBREW PUNCTUATION SOF PASUQ + /xD4 HEBREW LIGATURE YIDDISH DOUBLE VAV + /xD5 HEBREW LIGATURE YIDDISH VAV YOD + /xD6 HEBREW LIGATURE YIDDISH DOUBLE YOD + /xD7 HEBREW PUNCTUATION GERESH + /xD8 HEBREW PUNCTUATION GERSHAYIM /xE0 HEBREW LETTER ALEF /xE1 HEBREW LETTER BET /xE2 HEBREW LETTER GIMEL diff -durpN glibc-2.1/localedata/charmaps/CP1256 glibc-2.1.1/localedata/charmaps/CP1256 --- glibc-2.1/localedata/charmaps/CP1256 Sun Jan 25 19:13:58 1998 +++ glibc-2.1.1/localedata/charmaps/CP1256 Wed Mar 31 23:06:20 1999 @@ -135,23 +135,23 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) -<,+> /x80 ARABIC COMMA -<0a> /x81 ARABIC-INDIC DIGIT ZERO + /x80 EURO SIGN + /x81 ARABIC LETTER PEH <.9> /x82 SINGLE LOW-9 QUOTATION MARK -<1a> /x83 ARABIC-INDIC DIGIT ONE + /x83 LATIN SMALL LETTER F WITH HOOK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK <.3> /x85 HORIZONTAL ELLIPSIS /x86 DAGGER /x87 DOUBLE DAGGER -<2a> /x88 ARABIC-INDIC DIGIT TWO -<3a> /x89 ARABIC-INDIC DIGIT THREE -<4a> /x8A ARABIC-INDIC DIGIT FOUR +<1/>> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT +<%0> /x89 PER MILLE SIGN + /x8A ARABIC LETTER TTEH <<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK -<5a> /x8C ARABIC-INDIC DIGIT FIVE -<6a> /x8D ARABIC-INDIC DIGIT SIX -<7a> /x8E ARABIC-INDIC DIGIT SEVEN -<8a> /x8F ARABIC-INDIC DIGIT EIGHT -<9a> /x90 ARABIC-INDIC DIGIT NINE + /x8C LATIN CAPITAL LIGATURE OE + /x8D ARABIC LETTER TCHEH + /x8E ARABIC LETTER JEH + /x8F ARABIC LETTER DDAL + /x90 ARABIC LETTER GAF <'6> /x91 LEFT SINGLE QUOTATION MARK <'9> /x92 RIGHT SINGLE QUOTATION MARK <"6> /x93 LEFT DOUBLE QUOTATION MARK @@ -159,108 +159,110 @@ CHARMAP /x95 BULLET <-N> /x96 EN DASH <-M> /x97 EM DASH -<;+> /x98 ARABIC SEMICOLON + /x98 ARABIC LETTER KEHEH /x99 TRADE MARK SIGN - /x9A ARABIC QUESTION MARK + /x9A ARABIC LETTER RREH 1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - /x9C ARABIC LETTER HAMZA - /x9D ARABIC LETTER ALEF WITH MADDA ABOVE - /x9E ARABIC LETTER ALEF WITH HAMZA ABOVE - /x9F LATIN CAPITAL LETTER Y WITH DIAERESIS + /x9C LATIN SMALL LIGATURE OE +<0NJ> /x9D ZERO WIDTH NON-JOINER +<0J> /x9E ZERO WIDTH JOINER + /x9F ARABIC LETTER NOON /xA0 NO-BREAK SPACE - /xA1 ARABIC LETTER WAW WITH HAMZA ABOVE - /xA2 ARABIC LETTER ALEF WITH HAMZA BELOW +<,A> /xA1 ARABIC COMMA + /xA2 CENT SIGN /xA3 POUND SIGN /xA4 CURRENCY SIGN - /xA5 ARABIC LETTER YEH WITH HAMZA ABOVE + /xA5 YEN SIGN /xA6 BROKEN BAR /xA7 SECTION SIGN - /xA8 ARABIC LETTER ALEF +<':> /xA8 DIAERESIS /xA9 COPYRIGHT SIGN - /xAA ARABIC LETTER BEH + /xAA ARABIC LETTER HEH DOACHASHMEE <<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK /xAC NOT SIGN <--> /xAD SOFT HYPHEN /xAE REGISTERED SIGN - /xAF ARABIC LETTER PEH +<'m> /xAF MACRON /xB0 DEGREE SIGN <+-> /xB1 PLUS-MINUS SIGN - /xB2 ARABIC LETTER TEH MARBUTA - /xB3 ARABIC LETTER TEH - /xB4 ARABIC LETTER THEH +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT /xB5 MICRO SIGN /xB6 PILCROW SIGN <.M> /xB7 MIDDLE DOT - /xB8 ARABIC LETTER JEEM - /xB9 ARABIC LETTER TCHEH - /xBA ARABIC LETTER HAH +<',> /xB8 CEDILLA +<1S> /xB9 SUPERSCRIPT ONE +<;+> /xBA ARABIC SEMICOLON />> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - /xBC ARABIC LETTER KHAH - /xBD ARABIC LETTER DAL - /xBE ARABIC LETTER THAL - /xBF ARABIC LETTER REH - /xC0 LATIN CAPITAL LETTER A WITH GRAVE - /xC1 ARABIC LETTER ZAIN -> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX - /xC3 ARABIC LETTER JEH - /xC4 ARABIC LETTER SEEN - /xC5 ARABIC LETTER SHEEN - /xC6 ARABIC LETTER SAD - /xC7 LATIN CAPITAL LETTER C WITH CEDILLA - /xC8 LATIN CAPITAL LETTER E WITH GRAVE - /xC9 LATIN CAPITAL LETTER E WITH ACUTE -> /xCA LATIN CAPITAL LETTER E WITH CIRCUMFLEX - /xCB LATIN CAPITAL LETTER E WITH DIAERESIS -
/xCC ARABIC LETTER DAD - /xCD ARABIC LETTER TAH -> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX - /xCF LATIN CAPITAL LETTER I WITH DIAERESIS - /xD0 BOPOMOFO LETTER ZH - /xD1 ARABIC LETTER AIN - /xD2 ARABIC LETTER GHAIN -<++> /xD3 ARABIC TATWEEL -> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX - /xD5 ARABIC LETTER FEH - /xD6 ARABIC LETTER QAF +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS + /xBF ARABIC QUESTION MARK + /xC0 ARABIC LETTER HEH GOAL + /xC1 ARABIC LETTER HAMZA + /xC2 ARABIC LETTER ALEF WITH MADDA ABOVE + /xC3 ARABIC LETTER ALEF WITH HAMZA ABOVE + /xC4 ARABIC LETTER WAW WITH HAMZA ABOVE + /xC5 ARABIC LETTER ALEF WITH HAMZA BELOW + /xC6 ARABIC LETTER YEH WITH HAMZA ABOVE + /xC7 ARABIC LETTER ALEF + /xC8 ARABIC LETTER BEH + /xC9 ARABIC LETTER TEH MARBUTA + /xCA ARABIC LETTER TEH + /xCB ARABIC LETTER THEH + /xCC ARABIC LETTER JEEM + /xCD ARABIC LETTER HAH + /xCE ARABIC LETTER KHAH + /xCF ARABIC LETTER DAL + /xD0 ARABIC LETTER THAL + /xD1 ARABIC LETTER REH + /xD2 ARABIC LETTER ZAIN + /xD3 ARABIC LETTER SEEN + /xD4 ARABIC LETTER SHEEN + /xD5 ARABIC LETTER SAD +
/xD6 ARABIC LETTER DAD <*X> /xD7 MULTIPLICATION SIGN - /xD8 ARABIC LETTER KAF - /xD9 LATIN CAPITAL LETTER U WITH GRAVE - /xDA ARABIC LETTER GAF -> /xDB LATIN CAPITAL LETTER U WITH CIRCUMFLEX - /xDC LATIN CAPITAL LETTER U WITH DIAERESIS - /xDD ARABIC LETTER LAM - /xDE ARABIC LETTER MEEM - /xDF ARABIC LETTER NOON + /xD8 ARABIC LETTER TAH + /xD9 ARABIC LETTER ZAH + /xDA ARABIC LETTER AIN + /xDB ARABIC LETTER GHAIN +<++> /xDC ARABIC TATWEEL + /xDD ARABIC LETTER FEH + /xDE ARABIC LETTER QAF + /xDF ARABIC LETTER KAF /xE0 LATIN SMALL LETTER A WITH GRAVE - /xE1 ARABIC LETTER HEH + /xE1 ARABIC LETTER LAM > /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX - /xE3 ARABIC LETTER HAH WITH HAMZA ABOVE - /xE4 ARABIC LETTER WAW - /xE5 ARABIC LETTER ALEF MAKSURA - /xE6 ARABIC LETTER YEH + /xE3 ARABIC LETTER MEEM + /xE4 ARABIC LETTER NOON + /xE5 ARABIC LETTER HEH + /xE6 ARABIC LETTER WAW /xE7 LATIN SMALL LETTER C WITH CEDILLA /xE8 LATIN SMALL LETTER E WITH GRAVE /xE9 LATIN SMALL LETTER E WITH ACUTE > /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX /xEB LATIN SMALL LETTER E WITH DIAERESIS -<:+> /xEC ARABIC FATHATAN -<"+> /xED ARABIC DAMMATAN + /xEC ARABIC LETTER ALEF MAKSURA + /xED ARABIC LETTER YEH > /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX /xEF LATIN SMALL LETTER I WITH DIAERESIS -<=+> /xF0 ARABIC KASRATAN - /xF1 ARABIC FATHA -<'+> /xF2 ARABIC DAMMA -<1+> /xF3 ARABIC KASRA +<:+> /xF0 ARABIC FATHATAN +<"+> /xF1 ARABIC DAMMATAN +<=+> /xF2 ARABIC KASRATAN + /xF3 ARABIC FATHA > /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX -<3+> /xF5 ARABIC SHADDA -<0+> /xF6 ARABIC SUKUN +<'+> /xF5 ARABIC DAMMA +<1+> /xF6 ARABIC KASRA <-:> /xF7 DIVISION SIGN +<3+> /xF8 ARABIC SHADDA /xF9 LATIN SMALL LETTER U WITH GRAVE +<0+> /xFA ARABIC SUKUN > /xFB LATIN SMALL LETTER U WITH CIRCUMFLEX /xFC LATIN SMALL LETTER U WITH DIAERESIS /xFD LEFT-TO-RIGHT MARK /xFE RIGHT-TO-LEFT MARK - /xFF LATIN SMALL LETTER Y WITH DIAERESIS + /xff ARABIC LETTER YEH BARREE /x00 NUL /x01 START OF HEADING (SOH) /x02 START OF TEXT (STX) diff -durpN glibc-2.1/localedata/charmaps/CP1257 glibc-2.1.1/localedata/charmaps/CP1257 --- glibc-2.1/localedata/charmaps/CP1257 Sun Jan 25 19:13:59 1998 +++ glibc-2.1.1/localedata/charmaps/CP1257 Thu Apr 1 01:43:18 1999 @@ -3,7 +3,7 @@ / % version: 1.0 % repertoiremap: mnemonic,ds -% source: CEN/TC304 N283 +% source: CEN/TC304 N283 % alias WINBALTRIM CHARMAP @@ -135,6 +135,7 @@ CHARMAP /x7D RIGHT CURLY BRACKET <'?> /x7E TILDE
/x7F DELETE (DEL) + /x80 EURO SIGN <.9> /x82 SINGLE LOW-9 QUOTATION MARK <:9> /x84 DOUBLE LOW-9 QUOTATION MARK <.3> /x85 HORIZONTAL ELLIPSIS @@ -142,6 +143,9 @@ CHARMAP /x87 DOUBLE DAGGER <%0> /x89 PER MILLE SIGN <<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK +<':> /x8D DIAERESIS +<'<> /x8E CARON (Mandarin Chinese third tone) +<',> /x8F CEDILLA <'6> /x91 LEFT SINGLE QUOTATION MARK <'9> /x92 RIGHT SINGLE QUOTATION MARK <"6> /x93 LEFT DOUBLE QUOTATION MARK @@ -151,6 +155,8 @@ CHARMAP <-M> /x97 EM DASH /x99 TRADE MARK SIGN 1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +<'m> /x9D MACRON +<';> /x9E OGONEK /xA0 NO-BREAK SPACE /xA2 CENT SIGN /xA3 POUND SIGN @@ -169,6 +175,7 @@ CHARMAP <+-> /xB1 PLUS-MINUS SIGN <2S> /xB2 SUPERSCRIPT TWO <3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT /xB5 MICRO SIGN /xB6 PILCROW SIGN <.M> /xB7 MIDDLE DOT @@ -243,6 +250,7 @@ CHARMAP /xFC LATIN SMALL LETTER U WITH DIAERESIS /xFD LATIN SMALL LETTER Z WITH DOT ABOVE /xFE LATIN SMALL LETTER Z WITH CARON +<'.> /xFF DOT ABOVE (Mandarin Chinese light tone) /x00 NUL /x01 START OF HEADING (SOH) /x02 START OF TEXT (STX) diff -durpN glibc-2.1/localedata/charmaps/CP1258 glibc-2.1.1/localedata/charmaps/CP1258 --- glibc-2.1/localedata/charmaps/CP1258 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/localedata/charmaps/CP1258 Wed Mar 31 10:37:11 1999 @@ -0,0 +1,348 @@ + CP1258 + % + / +% automatically generated from the charDB + +CHARMAP + /x00 NULL + /x00 NULL + /x01 START OF HEADING + /x01 START OF HEADING + /x02 START OF TEXT + /x02 START OF TEXT + /x03 END OF TEXT + /x03 END OF TEXT + /x04 END OF TRANSMISSION + /x04 END OF TRANSMISSION + /x05 ENQUIRY + /x05 ENQUIRY + /x06 ACKNOWLEDGE + /x06 ACKNOWLEDGE + /x07 BELL + /x07 BELL + /x07 BELL + /x08 BACKSPACE + /x08 BACKSPACE + /x09 HORIZONTAL TABULATION + /x09 HORIZONTAL TABULATION + /x0A LINE FEED + /x0A LINE FEED + /x0B VERTICAL TABULATION + /x0B VERTICAL TABULATION + /x0C FORM FEED + /x0C FORM FEED + /x0D CARRIAGE RETURN + /x0D CARRIAGE RETURN + /x0E SHIFT OUT + /x0F SHIFT IN +
/x10 DATA LINK ESCAPE + /x10 DATA LINK ESCAPE + /x11 DEVICE CONTROL ONE + /x11 DEVICE CONTROL ONE + /x12 DEVICE CONTROL TWO + /x12 DEVICE CONTROL TWO + /x13 DEVICE CONTROL THREE + /x13 DEVICE CONTROL THREE + /x14 DEVICE CONTROL FOUR + /x14 DEVICE CONTROL FOUR + /x15 NEGATIVE ACKNOWLEDGE + /x15 NEGATIVE ACKNOWLEDGE + /x16 SYNCHRONOUS IDLE + /x16 SYNCHRONOUS IDLE + /x17 END OF TRANSMISSION BLOCK + /x17 END OF TRANSMISSION BLOCK + /x18 CANCEL + /x18 CANCEL + /x19 END OF MEDIUM + /x1A SUBSTITUTE + /x1A SUBSTITUTE + /x1B ESCAPE + /x1B ESCAPE + /x1C FILE SEPARATOR + /x1C FILE SEPARATOR + /x1D GROUP SEPARATOR + /x1D GROUP SEPARATOR + /x1D GROUP SEPARATOR + /x1E RECORD SEPARATOR + /x1E RECORD SEPARATOR + /x1F UNIT SEPARATOR + /x1F UNIT SEPARATOR + /x20 SPACE + /x20 SPACE + /x21 EXCLAMATION MARK + /x21 EXCLAMATION MARK +<"> /x22 QUOTATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x23 NUMBER SIGN + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x24 DOLLAR SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN + /x25 PERCENT SIGN +> /x25 PERCENT SIGN +<&> /x26 AMPERSAND + /x26 AMPERSAND +<'> /x27 APOSTROPHE + /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS + /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS + /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK + /x2A ASTERISK +<+> /x2B PLUS SIGN + /x2B PLUS SIGN +<,> /x2C COMMA + /x2C COMMA +<-> /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x2F SOLIDUS +<0> /x30 DIGIT ZERO + /x30 DIGIT ZERO +<1> /x31 DIGIT ONE + /x31 DIGIT ONE +<2> /x32 DIGIT TWO + /x32 DIGIT TWO +<3> /x33 DIGIT THREE + /x33 DIGIT THREE +<4> /x34 DIGIT FOUR + /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE + /x35 DIGIT FIVE +<6> /x36 DIGIT SIX + /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN + /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT + /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE + /x39 DIGIT NINE +<:> /x3A COLON + /x3A COLON +<;> /x3B SEMICOLON + /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN + /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN + /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x40 COMMERCIAL AT +<@> /x40 COMMERCIAL AT + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!> /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE + /x7E TILDE + /x7F DELETE +

/x7F DELETE + /x80 EURO SIGN +<.9> /x82 SINGLE LOW-9 QUOTATION MARK + /x83 LATIN SMALL LETTER F WITH HOOK +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<1/>> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT +<%0> /x89 PER MILLE SIGN +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK + /x8C LATIN CAPITAL LIGATURE OE +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<"6> /x93 LEFT DOUBLE QUOTATION MARK +<"9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH +<1?> /x98 SMALL TILDE + /x99 TRADE MARK SIGN +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x9C LATIN SMALL LIGATURE OE + /x9F LATIN CAPITAL LETTER Y WITH DIAERESIS + /xA0 NO-BREAK SPACE + /xA1 INVERTED EXCLAMATION MARK + /xA2 CENT SIGN + /xA2 CENT SIGN + /xA3 POUND SIGN + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA4 CURRENCY SIGN + /xA5 YEN SIGN + /xA5 YEN SIGN + /xA6 BROKEN BAR + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN +<-a> /xAA FEMININE ORDINAL INDICATOR +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<7!> /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN +<'m> /xAF MACRON + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<9I> /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<',> /xB8 CEDILLA +<1S> /xB9 SUPERSCRIPT ONE +<-o> /xBA MASCULINE ORDINAL INDICATOR +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS + /xBF INVERTED QUESTION MARK + /xC0 LATIN CAPITAL LETTER A WITH GRAVE + /xC1 LATIN CAPITAL LETTER A WITH ACUTE +> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xC3 LATIN CAPITAL LETTER A WITH BREVE + /xC4 LATIN CAPITAL LETTER A WITH DIAERESIS + /xC5 LATIN CAPITAL LETTER A WITH RING ABOVE + /xC6 LATIN CAPITAL LETTER AE + /xC7 LATIN CAPITAL LETTER C WITH CEDILLA + /xC8 LATIN CAPITAL LETTER E WITH GRAVE + /xC9 LATIN CAPITAL LETTER E WITH ACUTE +> /xCA LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /xCB LATIN CAPITAL LETTER E WITH DIAERESIS +<'C!> /xCC COMBINING GRAVE ACCENT + /xCD LATIN CAPITAL LETTER I WITH ACUTE +> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xCF LATIN CAPITAL LETTER I WITH DIAERESIS + /xD0 LATIN CAPITAL LETTER D WITH STROKE + /xD1 LATIN CAPITAL LETTER N WITH TILDE +<'C2> /xD2 COMBINING HOOK ABOVE + /xD3 LATIN CAPITAL LETTER O WITH ACUTE +> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xD5 LATIN CAPITAL LETTER O WITH HORN + /xD6 LATIN CAPITAL LETTER O WITH DIAERESIS +<*X> /xD7 MULTIPLICATION SIGN + /xD8 LATIN CAPITAL LETTER O WITH STROKE + /xD9 LATIN CAPITAL LETTER U WITH GRAVE + /xDA LATIN CAPITAL LETTER U WITH ACUTE +> /xDB LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xDC LATIN CAPITAL LETTER U WITH DIAERESIS + /xDD LATIN CAPITAL LETTER U WITH HORN +<-C?> /xDE COMBINING TILDE + /xDF LATIN SMALL LETTER SHARP S + /xE0 LATIN SMALL LETTER A WITH GRAVE + /xE1 LATIN SMALL LETTER A WITH ACUTE +> /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xE3 LATIN SMALL LETTER A WITH BREVE + /xE4 LATIN SMALL LETTER A WITH DIAERESIS + /xE5 LATIN SMALL LETTER A WITH RING ABOVE + /xE6 LATIN SMALL LETTER AE + /xE7 LATIN SMALL LETTER C WITH CEDILLA + /xE8 LATIN SMALL LETTER E WITH GRAVE + /xE9 LATIN SMALL LETTER E WITH ACUTE +> /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX + /xEB LATIN SMALL LETTER E WITH DIAERESIS + /xED LATIN SMALL LETTER I WITH ACUTE +> /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX + /xEF LATIN SMALL LETTER I WITH DIAERESIS + /xF0 LATIN SMALL LETTER D WITH STROKE + /xF1 LATIN SMALL LETTER N WITH TILDE +<-C.> /xF2 COMBINING DOT BELOW + /xF3 LATIN SMALL LETTER O WITH ACUTE +> /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX + /xF5 LATIN SMALL LETTER O WITH HORN + /xF6 LATIN SMALL LETTER O WITH DIAERESIS +<-:> /xF7 DIVISION SIGN + /xF8 LATIN SMALL LETTER O WITH STROKE + /xF9 LATIN SMALL LETTER U WITH GRAVE + /xFA LATIN SMALL LETTER U WITH ACUTE +> /xFB LATIN SMALL LETTER U WITH CIRCUMFLEX + /xFC LATIN SMALL LETTER U WITH DIAERESIS + /xFD LATIN SMALL LETTER U WITH HORN + /xFE DONG SIGN + /xFF LATIN SMALL LETTER Y WITH DIAERESIS +END CHARMAP diff -durpN glibc-2.1/localedata/charmaps/GB2312 glibc-2.1.1/localedata/charmaps/GB2312 --- glibc-2.1/localedata/charmaps/GB2312 Thu Jan 1 00:00:00 1970 +++ glibc-2.1.1/localedata/charmaps/GB2312 Wed Apr 28 16:28:40 1999 @@ -0,0 +1,442 @@ + GB2312-1980 + 2 + 1 + % + / +% Chinese charmap for GB2312-1980 +% version: 1.0 +% Contact: ha_shao +% Email: hashao@china.com +% Distribution and use is free, even for comercial purpose. +% +% alias CN +% alias ISO646-CN +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<"> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) + /x80 PADDING CHARACTER (PAD) + /x81 HIGH OCTET PRESET (HOP) + /x82 BREAK PERMITTED HERE (BPH) + /x83 NO BREAK HERE (NBH) + /x84 INDEX (IND) + /x85 NEXT LINE (NEL) + /x86 START OF SELECTED AREA (SSA) + /x87 END OF SELECTED AREA (ESA) + /x88 CHARACTER TABULATION SET (HTS) + /x89 CHARACTER TABULATION WITH JUSTIFICATION (HTJ) + /x8A LINE TABULATION SET (VTS) + /x8B PARTIAL LINE FORWARD (PLD) + /x8C PARTIAL LINE BACKWARD (PLU) + /x8D REVERSE LINE FEED (RI) + /x8E SINGLE-SHIFT TWO (SS2) + /x8F SINGLE-SHIFT THREE (SS3) + /x90 DEVICE CONTROL STRING (DCS) + /x91 PRIVATE USE ONE (PU1) + /x92 PRIVATE USE TWO (PU2) + /x93 SET TRANSMIT STATE (STS) + /x94 CANCEL CHARACTER (CCH) + /x95 MESSAGE WAITING (MW) + /x96 START OF GUARDED AREA (SPA) + /x97 END OF GUARDED AREA (EPA) + /x98 START OF STRING (SOS) + /x99 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) + /x9A SINGLE CHARACTER INTRODUCER (SCI) + /x9B CONTROL SEQUENCE INTRODUCER (CSI) + /x9C STRING TERMINATOR (ST) + /x9D OPERATING SYSTEM COMMAND (OSC) + /x9E PRIVACY MESSAGE (PM) + /x9F APPLICATION PROGRAM COMMAND (APC) + /xA0 NO-BREAK SPACE + /xA1 INVERTED EXCLAMATION MARK + /xA2 CENT SIGN + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA5 YEN SIGN + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN +<-a> /xAA FEMININE ORDINAL INDICATOR +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN +<'m> /xAF MACRON + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<',> /xB8 CEDILLA +<1S> /xB9 SUPERSCRIPT ONE +<-o> /xBA MASCULINE ORDINAL INDICATOR +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS + /xBF INVERTED QUESTION MARK + /xC0 LATIN CAPITAL LETTER A WITH GRAVE + /xC1 LATIN CAPITAL LETTER A WITH ACUTE +> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xC3 LATIN CAPITAL LETTER A WITH TILDE + /xC4 LATIN CAPITAL LETTER A WITH DIAERESIS + /xC5 LATIN CAPITAL LETTER A WITH RING ABOVE + /xC6 LATIN CAPITAL LETTER AE + /xC7 LATIN CAPITAL LETTER C WITH CEDILLA + /xC8 LATIN CAPITAL LETTER E WITH GRAVE + /xC9 LATIN CAPITAL LETTER E WITH ACUTE +> /xCA LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /xCB LATIN CAPITAL LETTER E WITH DIAERESIS + /xCC LATIN CAPITAL LETTER I WITH GRAVE + /xCD LATIN CAPITAL LETTER I WITH ACUTE +> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xCF LATIN CAPITAL LETTER I WITH DIAERESIS + /xD0 LATIN CAPITAL LETTER ETH (Icelandic) + /xD1 LATIN CAPITAL LETTER N WITH TILDE + /xD2 LATIN CAPITAL LETTER O WITH GRAVE + /xD3 LATIN CAPITAL LETTER O WITH ACUTE +> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xD5 LATIN CAPITAL LETTER O WITH TILDE + /xD6 LATIN CAPITAL LETTER O WITH DIAERESIS +<*X> /xD7 MULTIPLICATION SIGN + /xD8 LATIN CAPITAL LETTER O WITH STROKE + /xD9 LATIN CAPITAL LETTER U WITH GRAVE + /xDA LATIN CAPITAL LETTER U WITH ACUTE +> /xDB LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xDC LATIN CAPITAL LETTER U WITH DIAERESIS + /xDD LATIN CAPITAL LETTER Y WITH ACUTE + /xDE LATIN CAPITAL LETTER THORN (Icelandic) + /xDF LATIN SMALL LETTER SHARP S (German) + /xE0 LATIN SMALL LETTER A WITH GRAVE + /xE1 LATIN SMALL LETTER A WITH ACUTE +> /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xE3 LATIN SMALL LETTER A WITH TILDE + /xE4 LATIN SMALL LETTER A WITH DIAERESIS + /xE5 LATIN SMALL LETTER A WITH RING ABOVE + /xE6 LATIN SMALL LETTER AE + /xE7 LATIN SMALL LETTER C WITH CEDILLA + /xE8 LATIN SMALL LETTER E WITH GRAVE + /xE9 LATIN SMALL LETTER E WITH ACUTE +> /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX + /xEB LATIN SMALL LETTER E WITH DIAERESIS + /xEC LATIN SMALL LETTER I WITH GRAVE + /xED LATIN SMALL LETTER I WITH ACUTE +> /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX + /xEF LATIN SMALL LETTER I WITH DIAERESIS + /xF0 LATIN SMALL LETTER ETH (Icelandic) + /xF1 LATIN SMALL LETTER N WITH TILDE + /xF2 LATIN SMALL LETTER O WITH GRAVE + /xF3 LATIN SMALL LETTER O WITH ACUTE +> /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX + /xF5 LATIN SMALL LETTER O WITH TILDE + /xF6 LATIN SMALL LETTER O WITH DIAERESIS +<-:> /xF7 DIVISION SIGN + /xF8 LATIN SMALL LETTER O WITH STROKE + /xF9 LATIN SMALL LETTER U WITH GRAVE + /xFA LATIN SMALL LETTER U WITH ACUTE +> /xFB LATIN SMALL LETTER U WITH CIRCUMFLEX + /xFC LATIN SMALL LETTER U WITH DIAERESIS + /xFD LATIN SMALL LETTER Y WITH ACUTE + /xFE LATIN SMALL LETTER THORN (Icelandic) + /xFF LATIN SMALL LETTER Y WITH DIAERESIS + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE + +... /xa1/xa1 region 1 +... /xa2/xb1 region 2 +... /xa2/xe5 region 2 +... /xa2/xf1 region 2 +... /xa3/xa1 region 3 +... /xa4/xa1 region 4 +... /xa5/xa1 region 5 +... /xa6/xa1 region 6 +... /xa6/xc1 region 6 +... /xa7/xa1 region 7 +... /xa7/xd1 region 7 +... /xa8/xa1 region 8 +... /xa8/xc5 region 8 +... /xa9/xa1 region 9 +... /xb0/xa1 region 16 +... /xb1/xa1 region 17 +... /xb2/xa1 region 18 +... /xb3/xa1 region 19 +... /xb4/xa1 region 20 +... /xb5/xa1 region 21 +... /xb6/xa1 region 22 +... /xb7/xa1 region 23 +... /xb8/xa1 region 24 +... /xb9/xa1 region 25 +... /xba/xa1 region 26 +... /xbb/xa1 region 27 +... /xbc/xa1 region 28 +... /xbd/xa1 region 29 +... /xbe/xa1 region 30 +... /xbf/xa1 region 31 +... /xc0/xa1 region 32 +... /xc1/xa1 region 33 +... /xc2/xa1 region 34 +... /xc3/xa1 region 35 +... /xc4/xa1 region 36 +... /xc5/xa1 region 37 +... /xc6/xa1 region 38 +... /xc7/xa1 region 39 +... /xc8/xa1 region 40 +... /xc9/xa1 region 41 +... /xca/xa1 region 42 +... /xcb/xa1 region 43 +... /xcc/xa1 region 44 +... /xcd/xa1 region 45 +... /xce/xa1 region 46 +... /xcf/xa1 region 47 +... /xd0/xa1 region 48 +... /xd1/xa1 region 49 +... /xd2/xa1 region 50 +... /xd3/xa1 region 51 +... /xd4/xa1 region 52 +... /xd5/xa1 region 53 +... /xd6/xa1 region 54 +... /xd7/xa1 region 55 +... /xd8/xa1 region 56 +... /xd9/xa1 region 57 +... /xda/xa1 region 58 +... /xdb/xa1 region 59 +... /xdc/xa1 region 60 +... /xdd/xa1 region 61 +... /xde/xa1 region 62 +... /xdf/xa1 region 63 +... /xe0/xa1 region 64 +... /xe1/xa1 region 65 +... /xe2/xa1 region 66 +... /xe3/xa1 region 67 +... /xe4/xa1 region 68 +... /xe5/xa1 region 69 +... /xe6/xa1 region 70 +... /xe7/xa1 region 71 +... /xe8/xa1 region 72 +... /xe9/xa1 region 73 +... /xea/xa1 region 74 +... /xeb/xa1 region 75 +... /xec/xa1 region 76 +... /xed/xa1 region 77 +... /xee/xa1 region 78 +... /xef/xa1 region 79 +... /xf0/xa1 region 80 +... /xf1/xa1 region 81 +... /xf2/xa1 region 82 +... /xf3/xa1 region 83 +... /xf4/xa1 region 84 +... /xf5/xa1 region 85 +... /xf6/xa1 region 86 +... /xf7/xa1 region 87 + +END CHARMAP diff -durpN glibc-2.1/localedata/charmaps/IBM437 glibc-2.1.1/localedata/charmaps/IBM437 --- glibc-2.1/localedata/charmaps/IBM437 Sun Jan 25 19:14:55 1998 +++ glibc-2.1.1/localedata/charmaps/IBM437 Sat Apr 17 00:15:17 1999 @@ -257,8 +257,8 @@ CHARMAP <-:> /xF6 DIVISION SIGN /xF7 ALMOST EQUAL TO /xF8 DEGREE SIGN -<.M> /xF9 MIDDLE DOT - /xFA BULLET + /xF9 BULLET OPERATOR +<.M> /xFA MIDDLE DOT /xFB SQUARE ROOT /xFC SUPERSCRIPT LATIN SMALL LETTER N <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM855 glibc-2.1.1/localedata/charmaps/IBM855 --- glibc-2.1/localedata/charmaps/IBM855 Sun Jan 25 19:15:00 1998 +++ glibc-2.1.1/localedata/charmaps/IBM855 Sat Apr 17 00:19:23 1999 @@ -157,7 +157,7 @@ CHARMAP /x92 CYRILLIC SMALL LETTER NJE /x93 CYRILLIC CAPITAL LETTER NJE /x94 CYRILLIC SMALL LETTER TSHE (Serbocroatian) - /x95 SET TRANSMIT STATE (STS) + /x95 CYRILLIC CAPITAL LETTER TSHE /x96 CYRILLIC SMALL LETTER KJE /x97 CYRILLIC CAPITAL LETTER KJE /x98 CYRILLIC SMALL LETTER SHORT U (Byelorussian) @@ -247,7 +247,7 @@ CHARMAP /xEC CYRILLIC CAPITAL LETTER VE <%'> /xED CYRILLIC SMALL LETTER SOFT SIGN <%"> /xEE CYRILLIC CAPITAL LETTER SOFT SIGN -<''> /xEF ACUTE ACCENT + /xEF NUMERO SIGN <--> /xF0 SOFT HYPHEN /xF1 CYRILLIC SMALL LETTER YERU /xF2 CYRILLIC CAPITAL LETTER YERU @@ -261,6 +261,7 @@ CHARMAP /xFA CYRILLIC CAPITAL LETTER SHCHA /xFB CYRILLIC SMALL LETTER CHE /xFC CYRILLIC CAPITAL LETTER CHE + /xFD SECTION SIGN /xFE BLACK SQUARE /xFF NO-BREAK SPACE /x00 NUL diff -durpN glibc-2.1/localedata/charmaps/IBM857 glibc-2.1.1/localedata/charmaps/IBM857 --- glibc-2.1/localedata/charmaps/IBM857 Sun Jan 25 19:15:01 1998 +++ glibc-2.1.1/localedata/charmaps/IBM857 Mon Apr 19 16:04:34 1999 @@ -244,7 +244,7 @@ CHARMAP /xEB LATIN CAPITAL LETTER U WITH GRAVE /xEC LATIN SMALL LETTER I WITH GRAVE /xED LATIN SMALL LETTER Y WITH DIAERESIS -<-M> /xEE EM DASH +<'m> /xEE MACRON <''> /xEF ACUTE ACCENT <--> /xF0 SOFT HYPHEN <+-> /xF1 PLUS-MINUS SIGN @@ -252,10 +252,10 @@ CHARMAP /xF4 PILCROW SIGN /xF5 SECTION SIGN <-:> /xF6 DIVISION SIGN -<';> /xF7 OGONEK +<',> /xF7 CEDILLA /xF8 DEGREE SIGN <':> /xF9 DIAERESIS -<'.> /xFA DOT ABOVE (Mandarin Chinese light tone) +<.M> /xFA MIDDLE DOT <1S> /xFB SUPERSCRIPT ONE <3S> /xFC SUPERSCRIPT THREE <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM860 glibc-2.1.1/localedata/charmaps/IBM860 --- glibc-2.1/localedata/charmaps/IBM860 Sun Jan 25 19:15:03 1998 +++ glibc-2.1.1/localedata/charmaps/IBM860 Mon Apr 19 16:04:35 1999 @@ -147,7 +147,7 @@ CHARMAP > /x88 LATIN SMALL LETTER E WITH CIRCUMFLEX > /x89 LATIN CAPITAL LETTER E WITH CIRCUMFLEX /x8A LATIN SMALL LETTER E WITH GRAVE -> /x8B LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /x8B LATIN CAPITAL LETTER I WITH ACUTE > /x8C LATIN CAPITAL LETTER O WITH CIRCUMFLEX /x8D LATIN SMALL LETTER I WITH GRAVE /x8E LATIN CAPITAL LETTER A WITH TILDE @@ -167,7 +167,7 @@ CHARMAP /x9C POUND SIGN /x9D LATIN CAPITAL LETTER U WITH GRAVE /x9E PESETA SIGN - /x9F LATIN CAPITAL LETTER O WITH GRAVE + /x9F LATIN CAPITAL LETTER O WITH ACUTE /xA0 LATIN SMALL LETTER A WITH ACUTE /xA1 LATIN SMALL LETTER I WITH ACUTE /xA2 LATIN SMALL LETTER O WITH ACUTE @@ -177,7 +177,7 @@ CHARMAP <-a> /xA6 FEMININE ORDINAL INDICATOR <-o> /xA7 MASCULINE ORDINAL INDICATOR /xA8 INVERTED QUESTION MARK - /xA9 LATIN CAPITAL LETTER O WITH ACUTE + /xA9 LATIN CAPITAL LETTER O WITH GRAVE /xAA NOT SIGN <12> /xAB VULGAR FRACTION ONE HALF <14> /xAC VULGAR FRACTION ONE QUARTER @@ -257,8 +257,8 @@ CHARMAP <-:> /xF6 DIVISION SIGN /xF7 ALMOST EQUAL TO /xF8 DEGREE SIGN -<.M> /xF9 MIDDLE DOT - /xFA BULLET + /xF9 BULLET OPERATOR +<.M> /xFA MIDDLE DOT /xFB SQUARE ROOT /xFC SUPERSCRIPT LATIN SMALL LETTER N <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM861 glibc-2.1.1/localedata/charmaps/IBM861 --- glibc-2.1/localedata/charmaps/IBM861 Sun Jan 25 19:15:04 1998 +++ glibc-2.1.1/localedata/charmaps/IBM861 Mon Apr 19 16:04:36 1999 @@ -168,7 +168,7 @@ CHARMAP /x9C POUND SIGN /x9D LATIN CAPITAL LETTER O WITH STROKE /x9E PESETA SIGN - /x9F LATIN CAPITAL LETTER O WITH GRAVE + /x9F LATIN SMALL LETTER F WITH HOOK /xA0 LATIN SMALL LETTER A WITH ACUTE /xA1 LATIN SMALL LETTER I WITH ACUTE /xA2 LATIN SMALL LETTER O WITH ACUTE @@ -178,6 +178,7 @@ CHARMAP /xA6 LATIN CAPITAL LETTER O WITH ACUTE /xA7 LATIN CAPITAL LETTER U WITH ACUTE /xA8 INVERTED QUESTION MARK + /xA9 REVERSED NOT SIGN /xAA NOT SIGN <12> /xAB VULGAR FRACTION ONE HALF <14> /xAC VULGAR FRACTION ONE QUARTER @@ -257,8 +258,8 @@ CHARMAP <-:> /xF6 DIVISION SIGN /xF7 ALMOST EQUAL TO /xF8 DEGREE SIGN -<.M> /xF9 MIDDLE DOT - /xFA BULLET + /xF9 BULLET OPERATOR +<.M> /xFA MIDDLE DOT /xFB SQUARE ROOT /xFC SUPERSCRIPT LATIN SMALL LETTER N <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM862 glibc-2.1.1/localedata/charmaps/IBM862 --- glibc-2.1/localedata/charmaps/IBM862 Sun Jan 25 19:15:05 1998 +++ glibc-2.1.1/localedata/charmaps/IBM862 Mon Apr 19 16:04:37 1999 @@ -165,9 +165,9 @@ CHARMAP /x9A HEBREW LETTER TAV /x9B CENT SIGN /x9C POUND SIGN - /x9D LATIN CAPITAL LETTER U WITH GRAVE + /x9D YEN SIGN /x9E PESETA SIGN - /x9F LATIN CAPITAL LETTER O WITH GRAVE + /x9F LATIN SMALL LETTER F WITH HOOK /xA0 LATIN SMALL LETTER A WITH ACUTE /xA1 LATIN SMALL LETTER I WITH ACUTE /xA2 LATIN SMALL LETTER O WITH ACUTE @@ -177,6 +177,7 @@ CHARMAP <-a> /xA6 FEMININE ORDINAL INDICATOR <-o> /xA7 MASCULINE ORDINAL INDICATOR /xA8 INVERTED QUESTION MARK + /xA9 REVERSED NOT SIGN /xAA NOT SIGN <12> /xAB VULGAR FRACTION ONE HALF <14> /xAC VULGAR FRACTION ONE QUARTER @@ -256,8 +257,8 @@ CHARMAP <-:> /xF6 DIVISION SIGN /xF7 ALMOST EQUAL TO /xF8 DEGREE SIGN -<.M> /xF9 MIDDLE DOT - /xFA BULLET + /xF9 BULLET OPERATOR +<.M> /xFA MIDDLE DOT /xFB SQUARE ROOT /xFC SUPERSCRIPT LATIN SMALL LETTER N <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM863 glibc-2.1.1/localedata/charmaps/IBM863 --- glibc-2.1/localedata/charmaps/IBM863 Sun Jan 25 19:15:06 1998 +++ glibc-2.1.1/localedata/charmaps/IBM863 Mon Apr 19 16:04:39 1999 @@ -149,7 +149,7 @@ CHARMAP /x8A LATIN SMALL LETTER E WITH GRAVE /x8B LATIN SMALL LETTER I WITH DIAERESIS > /x8C LATIN SMALL LETTER I WITH CIRCUMFLEX - /x8D LATIN SMALL LETTER I WITH GRAVE +<=2> /x8D DOUBLE LOW LINE /x8E LATIN CAPITAL LETTER A WITH GRAVE /x8F SECTION SIGN /x90 LATIN CAPITAL LETTER E WITH ACUTE @@ -245,7 +245,7 @@ CHARMAP /xEA GREEK CAPITAL LETTER OMEGA /xEB GREEK SMALL LETTER DELTA <00> /xEC INFINITY - /xED EMPTY SET + /xED GREEK SMALL LETTER PHI /xEE GREEK SMALL LETTER EPSILON <(U> /xEF INTERSECTION <=3> /xF0 IDENTICAL TO @@ -256,9 +256,9 @@ CHARMAP /xF5 BOTTOM HALF INTEGRAL <-:> /xF6 DIVISION SIGN /xF7 ALMOST EQUAL TO - /xF8 RING OPERATOR -<.M> /xF9 MIDDLE DOT - /xFA BULLET + /xF8 DEGREE SIGN + /xF9 BULLET OPERATOR +<.M> /xFA MIDDLE DOT /xFB SQUARE ROOT /xFC SUPERSCRIPT LATIN SMALL LETTER N <2S> /xFD SUPERSCRIPT TWO diff -durpN glibc-2.1/localedata/charmaps/IBM864 glibc-2.1.1/localedata/charmaps/IBM864 --- glibc-2.1/localedata/charmaps/IBM864 Sun Jan 25 19:15:07 1998 +++ glibc-2.1.1/localedata/charmaps/IBM864 Mon Apr 19 16:04:40 1999 @@ -1,344 +1,354 @@ IBM864 % / -% version: 1.0 -% repertoiremap: mnemonic,ds -% source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991 +% automatically generated from the charDB % alias CP864 CHARMAP - /x00 NULL (NUL) - /x01 START OF HEADING (SOH) - /x02 START OF TEXT (STX) - /x03 END OF TEXT (ETX) - /x04 END OF TRANSMISSION (EOT) - /x05 ENQUIRY (ENQ) - /x06 ACKNOWLEDGE (ACK) - /x07 BELL (BEL) - /x08 BACKSPACE (BS) - /x09 CHARACTER TABULATION (HT) - /x0A LINE FEED (LF) - /x0B LINE TABULATION (VT) - /x0C FORM FEED (FF) - /x0D CARRIAGE RETURN (CR) - /x0E SHIFT OUT (SO) - /x0F SHIFT IN (SI) -
/x10 DATALINK ESCAPE (DLE) - /x11 DEVICE CONTROL ONE (DC1) - /x12 DEVICE CONTROL TWO (DC2) - /x13 DEVICE CONTROL THREE (DC3) - /x14 DEVICE CONTROL FOUR (DC4) - /x15 NEGATIVE ACKNOWLEDGE (NAK) - /x16 SYNCHRONOUS IDLE (SYN) - /x17 END OF TRANSMISSION BLOCK (ETB) - /x18 CANCEL (CAN) - /x19 END OF MEDIUM (EM) - /x1A SUBSTITUTE (SUB) - /x1B ESCAPE (ESC) - /x1C FILE SEPARATOR (IS4) - /x1D GROUP SEPARATOR (IS3) - /x1E RECORD SEPARATOR (IS2) - /x1F UNIT SEPARATOR (IS1) - /x20 SPACE - /x21 EXCLAMATION MARK -<"> /x22 QUOTATION MARK - /x23 NUMBER SIGN - /x24 DOLLAR SIGN -<%> /x25 PERCENT SIGN -<&> /x26 AMPERSAND -<'> /x27 APOSTROPHE -<(> /x28 LEFT PARENTHESIS -<)> /x29 RIGHT PARENTHESIS -<*> /x2A ASTERISK -<+> /x2B PLUS SIGN -<,> /x2C COMMA -<-> /x2D HYPHEN-MINUS -<.> /x2E FULL STOP - /x2F SOLIDUS -<0> /x30 DIGIT ZERO -<1> /x31 DIGIT ONE -<2> /x32 DIGIT TWO -<3> /x33 DIGIT THREE -<4> /x34 DIGIT FOUR -<5> /x35 DIGIT FIVE -<6> /x36 DIGIT SIX -<7> /x37 DIGIT SEVEN -<8> /x38 DIGIT EIGHT -<9> /x39 DIGIT NINE -<:> /x3A COLON -<;> /x3B SEMICOLON -<<> /x3C LESS-THAN SIGN -<=> /x3D EQUALS SIGN -> /x3E GREATER-THAN SIGN - /x3F QUESTION MARK - /x40 COMMERCIAL AT - /x41 LATIN CAPITAL LETTER A - /x42 LATIN CAPITAL LETTER B - /x43 LATIN CAPITAL LETTER C - /x44 LATIN CAPITAL LETTER D - /x45 LATIN CAPITAL LETTER E - /x46 LATIN CAPITAL LETTER F - /x47 LATIN CAPITAL LETTER G - /x48 LATIN CAPITAL LETTER H - /x49 LATIN CAPITAL LETTER I - /x4A LATIN CAPITAL LETTER J - /x4B LATIN CAPITAL LETTER K - /x4C LATIN CAPITAL LETTER L - /x4D LATIN CAPITAL LETTER M - /x4E LATIN CAPITAL LETTER N - /x4F LATIN CAPITAL LETTER O -

/x70 LATIN SMALL LETTER P - /x71 LATIN SMALL LETTER Q - /x72 LATIN SMALL LETTER R - /x73 LATIN SMALL LETTER S - /x74 LATIN SMALL LETTER T - /x75 LATIN SMALL LETTER U - /x76 LATIN SMALL LETTER V - /x77 LATIN SMALL LETTER W - /x78 LATIN SMALL LETTER X - /x79 LATIN SMALL LETTER Y - /x7A LATIN SMALL LETTER Z -<(!> /x7B LEFT CURLY BRACKET - /x7C VERTICAL LINE - /x7D RIGHT CURLY BRACKET -<'?> /x7E TILDE -

/x7F DELETE (DEL) - /x80 DEGREE SIGN -<.M> /x81 MIDDLE DOT - /x82 RING OPERATOR - /x83 SQUARE ROOT -<:S> /x84 MEDIUM SHADE - /x85 BOX DRAWINGS LIGHT HORIZONTAL - /x86 BOX DRAWINGS LIGHT VERTICAL - /x87 BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - /x88 BOX DRAWINGS LIGHT VERTICAL AND LEFT - /x89 BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - /x8A BOX DRAWINGS LIGHT VERTICAL AND RIGHT - /x8B BOX DRAWINGS LIGHT UP AND HORIZONTAL -
/x8C BOX DRAWINGS LIGHT DOWN AND LEFT - /x8D BOX DRAWINGS LIGHT DOWN AND RIGHT - /x8E BOX DRAWINGS LIGHT UP AND RIGHT -

/x50 LATIN CAPITAL LETTER P - /x51 LATIN CAPITAL LETTER Q - /x52 LATIN CAPITAL LETTER R - /x53 LATIN CAPITAL LETTER S - /x54 LATIN CAPITAL LETTER T - /x55 LATIN CAPITAL LETTER U - /x56 LATIN CAPITAL LETTER V - /x57 LATIN CAPITAL LETTER W - /x58 LATIN CAPITAL LETTER X - /x59 LATIN CAPITAL LETTER Y - /x5A LATIN CAPITAL LETTER Z -<<(> /x5B LEFT SQUARE BRACKET - /x5C REVERSE SOLIDUS -<)/>> /x5D RIGHT SQUARE BRACKET -<'/>> /x5E CIRCUMFLEX ACCENT -<_> /x5F LOW LINE -<'!> /x60 GRAVE ACCENT - /x61 LATIN SMALL LETTER A - /x62 LATIN SMALL LETTER B - /x63 LATIN SMALL LETTER C - /x64 LATIN SMALL LETTER D - /x65 LATIN SMALL LETTER E - /x66 LATIN SMALL LETTER F - /x67 LATIN SMALL LETTER G - /x68 LATIN SMALL LETTER H - /x69 LATIN SMALL LETTER I - /x6A LATIN SMALL LETTER J - /x6B LATIN SMALL LETTER K - /x6C LATIN SMALL LETTER L - /x6D LATIN SMALL LETTER M - /x6E LATIN SMALL LETTER N - /x6F LATIN SMALL LETTER O -

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET + /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE + /x5F LOW LINE + /x5F LOW LINE +<'!> /x60 GRAVE ACCENT + /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +