* strftime.c (strftime):
When invoking self, check whether the subsidiary invocation failed.
Use "???" (not "") to denote unknown time zone information.
Make this source file portable to standalone contexts (e.g. GNU Emacs).
<config.h>: Include if HAVE_CONFIG_H is defined.
(HAVE_LIMITS_H, HAVE_MBLEN, HAVE_TM_ZONE, STDC_HEADERS): New symbols,
defined if _LIBC or if <config.h> defines them.
<ansidecl.h>, "../locale/localeinfo.h": Include only if _LIBC.
<sys/types.h>: New include; some hosts require it for `time_t'.
<ctype.h>: Include only if HAVE_MBLEN (since it's only needed then).
<limits.h>: Include only if HAVE_LIMITS_H.
<stddef.h, stdlib.h, string.h>: Include only if STDC_HEADERS.
(memcpy): Define in terms of bcopy if !STDC_HEADERS.
(__P, PTR): Define if not already defined.
(__tzname, __daylight, __timezone): Remove macros; no longer needed.
(add, strftime): Don't use NULL, for portability to some weird hosts.
(fmt): If !_LIBC, don't assume sprintf returns a count.
(week, strftime): Use old-style function declarations.
(weekday_name, month_name): New constants.
(strftime): Use traditional C values if locale support isn't available.
Use `const' instead of CONST. For time zones, use tm_zone if
possible, then fall back on tzname. Don't check for multibyte
characters unless mblen is supported. Use formats like %02d instead
of %.2d, for portability to older hosts.
Wed Jan 24 04:18:36 1996 Paul Eggert <eggert@twinsun.com>
* strftime.c (strftime):
When invoking self, check whether the subsidiary invocation failed.
Use "???" (not "") to denote unknown time zone information.
Make this source file portable to standalone contexts (e.g. GNU Emacs).
<config.h>: Include if HAVE_CONFIG_H is defined.
(HAVE_LIMITS_H, HAVE_MBLEN, HAVE_TM_ZONE, STDC_HEADERS): New symbols,
defined if _LIBC or if <config.h> defines them.
<ansidecl.h>, "../locale/localeinfo.h": Include only if _LIBC.
<sys/types.h>: New include; some hosts require it for `time_t'.
<ctype.h>: Include only if HAVE_MBLEN (since it's only needed then).
<limits.h>: Include only if HAVE_LIMITS_H.
<stddef.h, stdlib.h, string.h>: Include only if STDC_HEADERS.
(memcpy): Define in terms of bcopy if !STDC_HEADERS.
(__P, PTR): Define if not already defined.
(__tzname, __daylight, __timezone): Remove macros; no longer needed.
(add, strftime): Don't use NULL, for portability to some weird hosts.
(fmt): If !_LIBC, don't assume sprintf returns a count.
(week, strftime): Use old-style function declarations.
(weekday_name, month_name): New constants.
(strftime): Use traditional C values if locale support isn't available.
Use `const' instead of CONST. For time zones, use tm_zone if
possible, then fall back on tzname. Don't check for multibyte
characters unless mblen is supported. Use formats like %02d instead
of %.2d, for portability to older hosts.
Wed Jan 24 00:07:52 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio-common/vfscanf.c (GROUP, MALLOC): New flag macros.
(__vfscanf): Eliminate flag vars that were redundant with FLAGS bits.
Fix bug in recognition of %ll flag for long long.
Fix overeager checks for conflicting type modifiers.
With ' flag, match thousands separators for decimal numbers.
Tue Jan 23 22:02:40 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/Makefile (CFLAGS-locfile-lex.c): New variable.
* resolv/Makefile (CFLAGS): Disable some warnings.
* sysdeps/generic/Makefile (elided-routines): Removed hypot.
(+gccwarn): Set with override.
* stdio-common/Makefile (CFLAGS-tst-printf.c): New variable.
* posix/Makefile (CFLAGS-regex.c): New variable.
* malloc/Makefile (CFLAGS-obstack.c): New variable.
* io/Makefile (CFLAGS-fts.c): New variable.
* io/fts.c (fts_open): Use prototypes for COMPAR decl.
Tue Jan 23 21:35:32 1996 Miles Bader <miles@gnu.ai.mit.edu>
* sysdeps/mach/hurd/bind.c (bind): Ensure NAME for the AF_LOCAL
case is '\0'-terminated.
Tue Jan 23 19:49:54 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* elf/rtld.c (dl_main): Support additional args in --list mode for
debugging: look them up as symbol names and print values.
* misc/getttyent.c (skip, value): Declare with prototypes in file
scope.
* csu/initfini.c (_init): Explicitly set a variable that is
pointer to volatile with the address of __gmon_start__, to avoid
the test being optimized out.
* sysdeps/posix/getcwd.c [__GNU_LIBRARY__]: Include unistd.h.
* io/fts.h (FTSENT): Define fts_compar member with prototype.
* hurd/hurd.h: Use prototype in getcttyid decl.
* stdlib/l64a.c: Fix typo in last change.
* stdlib/drand48-iter.c: Test limits.h macros instead of sizeof
for determining size of types.
* stdlib/srand48_r.c: Likewise.
* misc/utmp.h: Declare login, logout, logwtmp.
* misc/logout.c: Declare argument as pointer to const.
* misc/login.c: Likewise.
* misc/logwtmp.c: Likewise.
Include time.h, string.h.
* misc/efgcvt_r.c: Include stdlib.h.
* io/mknod.c: Include sys/types.h.
* gmon/sys/gmon.h: Declare monstartup, _mcleanup.
* csu/gmon-start.c (_start, etext): Declare with prototypes.
* stdio-common/vfscanf.c (%[): Fix range handling.
* sysdeps/unix/sysv/linux/shmat.c: Include sys/shm.h instead of
sys/sem.h.
* stdlib/stdlib.h [__USE_SVID]: Declare a64l, l64a.
* stdlib/l64a.c: Use 6-bit numbers as indices in CONV_TABLE, not
literal byte values.
* misc/bsd-compat.c (getpgrp): Define with prototype.
* misc/init-misc.c (__progname_full): New variable.
(program_invocation_name, program_invocation_short_name): New aliases.
(__init_misc): Define with prototype. Set __progname_full.
* misc/progname.c: File removed.
* misc/Makefile (aux): Remove progname.
* misc/hsearch_r.c (isprime): Define with prototype.
* sysdeps/unix/sysv/linux/seteuid.c: Just include unix/bsd version.
* sysdeps/unix/bsd/seteuid.c: Disallow arg of -1.
* sysdeps/unix/bsd/setegid.c: Likewise.
* sysdeps/unix/mkdir.c, syspdep/unix/rmdir.c: Moved from unix/sysv.
They will be overridden with syscalls if extant by unix/syscalls.list.
Fri Jan 19 13:28:59 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/mkdir.c, syspdep/unix/rmdir.c: Moved from unix/sysv.
They will be overridden with syscalls if extant by unix/syscalls.list.
* Makeconfig (+gccwarn): Add -Wstrict-prototypes.
* stdio-common/printf_fp.c (__printf_fp): Define with prototype.
* stdio-common/vfprintf.c (_IO_helper_overflow): Likewise.
* sysdeps/unix/sysv/linux/ptrace.c: Use ... decl, and stdarg.h to
get args.
* posix/glob.c (_GNU_SOURCE): Define if undefined, so glob.h
defines GNU extensions.
* posix/fnmatch.c: Likewise.
* Makerules (COMPILE.s): New variable.
* sysdeps/unix/Makefile (sysd-syscalls): New target; generate with
make-syscalls.sh and include it.
[$(subdir)=misc] (sysdep_routines): Append extra syscalls from
sysd-syscalls.
* sysdeps/unix/make-syscalls.sh: New file.
* Makerules (COMPILE.S): New variable.
_STAT_VER_SVR4, _STAT_VER): New macros.
(_MKNOD_VER_LINUX, _MKNOD_VER_SVR4, _MKNOD_VER): New macros.
* sysdeps/unix/sysv/sysv4/i386/statbuf.h (_STAT_VER, _MKNOD_VER):
New macros.
* sysdeps/mips/bytesex.h: Add default byte sex. By Ralf Baechle.
* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
member of `struct timex' instead of `modes'. From Andreas Schwab.
* sysdeps/unix/sysv/linux/mknod.c: New file. Generic C version.
* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.
* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
[$(subdir) = misc] (headers): Append sys/mount.h.
* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
New files. Implement system calls.
* sysdeps/unix/sysv/linux/sys/mount.h: New header file.
* sysdeps/unix/sysv/linux/ptrace.c: New file. Wrapper around
ptrace system call.
* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.
* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
types for i386/Linux.
Sun Jan 14 01:01:10 1996 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/mips/bytesex.h: Add default byte sex. By Ralf Baechle.
* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
member of `struct timex' instead of `modes'. From Andreas Schwab.
* sysdeps/unix/sysv/linux/mknod.c: New file. Generic C version.
* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.
* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
[$(subdir) = misc] (headers): Append sys/mount.h.
* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
New files. Implement system calls.
* sysdeps/unix/sysv/linux/sys/mount.h: New header file.
* sysdeps/unix/sysv/linux/ptrace.c: New file. Wrapper around
ptrace system call.
* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.
* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
types for i386/Linux.
* sysdeps/unix/sysv/time.S: Moved from sysv4.
* sysdeps/unix/sysv/irix4/time.S: File removed.
* sysdeps/unix/sysv/linux/signum.h: Moved from
sysdeps/unix/sysv/linux/i386.
(_NSIG): Move inside #ifdef _SIGNAL_H.
Wed Jan 17 11:04:58 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/sysv/time.S: Moved from sysv4.
* sysdeps/unix/sysv/irix4/time.S: File removed.
* sysdeps/unix/sysv/linux/signum.h: Moved from
sysdeps/unix/sysv/linux/i386.
(_NSIG): Move inside #ifdef _SIGNAL_H.
* MakeTAGS (all-sources, all-headers): Always search the
current directory first.
* db/btree/bt_seq.c (__bt_first): Return RET_SPECIAL when key not
found.
* MakeTAGS (all-sources, all-headers): Always search the
current directory first.
* db/btree/bt_seq.c (__bt_first): Return RET_SPECIAL when key not
found.
* csu/Makefile [have-initfini=yes] (CPPFLAGS): Append -DHAVE_INITFINI.
(initfini): Compile initfini.c with -fPIC.
Sun Jan 14 17:51:09 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/vfscanf.c (inchar, conv_error, input_error,
memory_error): Add cast to void to avoid gcc warning.
(vfscanf): Rewrite character class parsing to make it more efficient.
* stdlib/strtol.c: Return correct pointer for strings
like "0xyz" and base 0 or 16.
* string/strxfrm.c: Handle case for LENGTH == 0 correct.
* sunrpc/etc.rpc: Add some more known protocols.
Sun Jan 14 01:01:10 1996 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* stdlib/strtol.c: Return correct pointer for strings
like "0xyz" and base 0 or 16.
* string/strxfrm.c: Handle case for LENGTH == 0 correct.
* sunrpc/etc.rpc: Add some more known protocols.
* posix/gnu/types.h: Moved to sysdeps/generic/gnu/types.h.
* posix/glob.c (glob): Add parens in glob call flags arg for
GLOB_BRACE case.
* string/string.h (strdupa): New macro.
* stdio-common/vfscanf.c (%[): Grok ] as first char in set, not
terminator on empty set. From drepper.
* elf/dl-load.c (_dl_map_object_from_fd): After mapping first
segment to find location, mprotect excess region to no access,
don't munmap it.
* sysdeps/mach/hurd/dl-sysdep.c (mmap): If vm_map returns
KERN_NO_SPACE for fixed location, deallocate it and try again.
* Makefile (subdirs): Added db.
* resolv/Makefile (routines): Add res_data.
* resolv/res_data.c, resolv/res_debug.c, resolv/resolv.h:
Updated from BIND 4.9.3 final release.
* elf/dynamic-link.h (elf_get_dynamic_info): Handle
processor-specific tags.
(ELF_DYNAMIC_DO_REL, ELF_DYNAMIC_DO_RELA): Handle absent DT_PLTREL tag.
* elf/elf.h (DT_MIPS_NUM, DT_PROCNUM): New macros.
* elf/link.h (struct link_map): Extend `l_info' by DT_PROCNUM.
* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Take new
arg LAZY. Only do our work if LAZY and there is a DT_JMPREL record.
* elf/dl-reloc.c (_dl_relocate_object): Call
elf_machine_runtime_setup unconditionally, and pass it LAZY flag.
* elf/dl-load.c: Fixed ELFMAG check to work for either byte order.
Align end of load segment only to page size, not to segment alignment.
* sysdeps/mach/hurd/setitimer.c: Code rearranged a bit to use new
preemption interface.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Use _hurdsig_catch_memory_fault.
* hurd/Makefile (headers): Add hurd/sigpreempt.h.
(sig): Add catch-signal.
* hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise):
Rewritten using a preempter in new interface.
* hurd/hurdfault.h (_hurdsig_catch_fault): Likewise.
(_hurdsig_catch_memory_fault): New macro.
* hurd/catch-signal.c: New file.
* hurd/intr-msg.c: When restarting RPC, fetch a new reply port.
* hurd/hurdsig.c: Use new hurdfault.h interface.
(abort_all_rpcs): Mutate return value to EINTR in threads whose
replies we will wait for.
* hurd/hurdkill.c (_hurd_sig_post): When doing pgrp, make sure we
do ourselves last.
Wed Jan 3 19:17:10 1996 Miles Bader <miles@gnu.ai.mit.edu>
* sysdeps/mach/hurd/access.c (__access): Put the uid/gid arguments
to auth_makeauth() in the right order.
Wed Jan 3 17:19:04 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/strsep.c: Rewritten.
* sysdeps/mach/hurd/fork.c: Use a different workaround for the
suspended page fault deadlock kernel bug: thread_abort our signal
thread first thing after proc_dostop.
* sysdeps/mach/hurd/setgid.c: Rewrote gid frobnication to
recognize rootness properly.
* hurd/hurdsig.c: Use new signal preemption interface.
(hurd_preempt_signals, hurd_unpreempt_signals): Decls removed.
* hurd/hurd/sigpreempt.h: New file.
* hurd/preempt-sig.c: Rewritten with new interface.
* sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Remove local signal
preempters being unwound past.
* db: New directory, 4.4 BSD db package incorporated from BSD db-1.85
release.
* sysdeps/unix/sysv/linux/sys/param.h: Several new macros for BSD
compatibility.
* sysdeps/generic/confname.h: Define all names as self-referential
macros so #ifdef works.
* hurd/preempt-sig.c (hurd_unpreempt_signals): Remove bogus asgnmt
of _hurd_signal_preempters[SIGNO].
* sysdeps/mach/hurd/bind.c: Translate EEXIST from dir_link into
EADDRINUSE. If translated node doesn't grok ifsock protocol,
return EADDRINUSE.
* sysdeps/mach/hurd/connect.c: Make address arg
`const struct sockaddr_un *'.
The redecl is kosher and avoids another variable for AF_LOCAL case.
* sysdeps/mach/hurd/sendto.c: Likewise.
* sysdeps/mach/hurd/bind.c: Likewise.
* socket/sys/socket.h (__SOCKADDR_ARG): Enable transparent_union
code for GCC >= 2.7; use __transparent_union__ for name safety;
add several sockaddr flavors.
(__SOCKADDR_ALLTYPES, __SOCKADDR_ONETYPE): New macros used in
constructing the transparent union declarations.
(__CONST_SOCKADDR_ARG): New type (or macro if not GCC 2.7).
(bind, connect, sendto): Make the sockaddr argument use that.
* stdio-common/vfscanf.c: Correctly handle white space skipping.
* stdio-common/Makefile (tests): Add bug11.
* stdio-common/bug11.c: New file.
Fri Dec 22 00:38:00 1995 H.J. Lu <hjl@nynexst.com>
* stdio-common/vfscanf.c: Correctly handle white space skipping.
* stdio-common/Makefile (tests): Add bug11.
* stdio-common/bug11.c: New file.
* sysdeps/mach/hurd/setuid.c: Rewrote ID frobnication to do the
right thing.
* sysdeps/mach/hurd/setgid.c: Likewise.
* sysdeps/mach/hurd/setreuid.c: Likewise.
* sysdeps/mach/hurd/setregid.c: Likewise.
* sysdeps/mach/hurd/setegid.c: Likewise.
* sysdeps/mach/hurd/seteuid.c: Likewise.
* sysdeps/mach/hurd/fork.c: Peek __mach_task_self_ value before
proc_dostop call to work around kernel paging bug.
Thu Dec 21 12:19:32 1995 Miles Bader <miles@gnu.ai.mit.edu>
* sysdeps/mach/hurd/setuid.c (__setuid): Actually add the new uid
instead of putting it (and other uids) in the gids and leaving the
old uids as is.
* stdio/internals.c (flushbuf): If the target is -1, always
discard the buffer of read data.
Only set TWIDDLED flag in !ALIGNED case.
Never increment target or offset when old value is -1.
* Makerules: Use $(do-install-so) for installing shared objects.
(do-install-so): New canned sequence. Make a symlink LIB.so after
installing LIB.so.VERSION.
* inet/netinet/in.h: Fixed typo in IPPORT_WHOIS.
* stdio-common/Makefile (tests): Add bug10.
* stdio-common/bug10.c: New file. From HJ Lu.
* stdio-common/tstdiomisc.c: Make more test-suite like: exit
status tells about successful run.
* stdio-common/vfscanf.c [!USE_IN_LIBIO]: Use `flags' to check
format correctness.
Correct handling of trailing white spaces in format + EOF.
Fri Dec 15 01:31:56 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* stdio-common/Makefile (tests): Add bug8 and bug9.
* stdio-common/bug8.c, stdio-common/bug9.c: New tests.
* stdio-common/vfscanf.c: Fix bug in dynamic buffer handling.
* stdlib/strtod.c: Correct spelling: nominator -> numerator.
Thanks to Jim Meyering.
Sat Nov 25 06:05:12 1995 H.J. Lu <hjl@nynexst.com>
* stdio-common/vfscanf.c: Always check width !=0.
Correctly handle %%.
* posix/glob.c (glob_in_dir): Cast result of opendir to __ptr_t,
and cast STREAM to DIR * before passing to readdir and closedir.
Wed Dec 13 22:06:07 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdsig.c (_hurd_internal_post_signal: suspend): Reply
after aborting RPCs but before calling proc_mark_stop.
* posix/glob.c [! STDC_HEADERS]: Declare getenv.
(glob): Avoid using function as value.
* elf/rtld.c (dl_main): When mapping argument executable, set
l_name to "", not l_libname.
After loading DT_NEEDED library, set its l_type to lt_library.
* sysdeps/mach/hurd/mmap.c: Don't interpret MAP_INHERIT to mean
VM_INHERIT. We can't handle MAP_INHERIT easily.
Handle non-page-aligned addresses if congruent to offset.
* elf/dl-init.c: Skip the initializer for l_type lt_executable
with l_name "". Start at _dl_loaded; don't skip the first element.
* elf/dl-load.c (MAP_FILE): Define to zero if undefined.
(MAP_COPY): Define to MAP_PRIVATE if undefined.
(_dl_map_object_from_fd): Don't use MAP_INHERIT in mmap calls.
If file it ET_EXEC, set its l_type to lt_executable.
* locale/error.c, locale/error.h: Files removed.
* locale/Makefile (distribute): Remove error.h.
(lib-modules): Remove error.
* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): For "tty"
magic, return ENXIO if no ctty.
* sysdeps/mach/hurd/mmap.c: For MAP_FIXED, deallocate a previous
mapping if vm_map fails for that reason.
* posix/glob.c: Implement new options GLOB_ALTDIRFUNC, GLOB_BRACE,
GLOB_TILDE, GLOB_NOMAGIC.
(glob): Use stat instead of lstat to determine directoriness.
* posix/glob.h (GLOB_ALTDIRFUNC, GLOB_BRACE, GLOB_NOMAGIC, GLOB_TILDE):
New flag bits.
(__GLOB_FLAGS): Include them.
(glob_t): New members gl_closedir, gl_readdir, gl_opendir, gl_lstat,
gl_stat.
* elf/elf.h (ET_NUM, SHT_NUM, STB_NUM, STT_NUM, PT_NUM): New macros.
* sysdeps/unix/sysv/linux/sys/mman.h: Include <linux/mman.h> to
define all the bit values.
(MAP_*, MCL_*): Macros removed.
* resolv/res_comp.c, resolv/res_debug.c, resolv/res_send.c:
Updated from BIND 4.9.3-BETA27.
Wed Dec 6 18:44:01 1995 Miles Bader <miles@gnu.ai.mit.edu>
* sysdeps/mach/hurd/select.c (__select): Swap size args to mach_msg.
* sysdeps/mach/hurd/select.c (__select): Frob TYPES correctly when
we get a delayed reply.
Only grab values out of entries in TYPES that have SELECT_RETURNED
turned on, and turn it on whenever an rpc returns.
Only clear bits in the user's fdsets -- those needing to be set
should be already.
Use SELECT_ALL in appropiate places.
(SELECT_RETURNED, SELECT_ALL): New macros.
Wed Dec 6 09:10:39 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/sys/param.h (NBBY): New macro.
* gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): New macro.
* misc/Makefile (headers): Add error.h, err.h.
(routines): Add error, err.
(gpl2lgpl): New variable.
* misc/err.c: New file.
* misc/err.h: New file.
* misc/error.c, misc/error.h: New files.
* sysdeps/mach/hurd/ioctl.c: Fix typo in last change.
* Makeconfig (+link): Translate libc% from $^, not just libc.a.
(link-libc): Append $(libc.so-version) to libc.so.
(built-program-cmd): Fix comma usage.
* Makerules [libc.so-version] (libc.so$(libc.so-version)): Make a
symlink to libc.so in the build directory.
* Rules ($(others) $(tests)): Depend on the library that appears
in $(link-libc).
(%.out): Use $(built-program-cmd) in commands.
* posix/unistd.h [__USE_MISC]: Declare brk, sbrk.
* sysdeps/generic/setenv.c: Added canonical portability cruft.
(setenv): Use realloc on LAST_ENVIRON instead of always copying.
(unsetenv): New function.
* stdlib/stdlib.h [__USE_BSD]: Declare unsetenv.
* sysdeps/generic/putenv.c: Rewritten using setenv and unsetenv.
* libio/Makefile (routines): Remove iofscanf, add iopopen, pclose.
* libio/Makefile [routines]: Remove iofscanf, add iopopen, pclose.
* libio/iofscanf.c: Remove file.
* libio/iogetdelim.c (_IO_getdelim): Correct stupid bug at string
termination.
* libio/iopopen.c: New file from GNU libio.
* libio/memstream.c: Fixed bug in fclose handling. Instead of
providing a close callback we need a finish callback.
* libio/pclose.c: New file. Derived from popen.c in GNU libio.
* posix/gnu/types.h: Fixed typo.
* stdio-common/errnobug.c: fputs returns EOF in error case. Do
not test for != 0.
* stdio-common/printf-parse.h (parse_one_spec): Do not force
padding with ' ' if precision is given. Fix by HJ Lu.
* stdio-common/printf_fp.c: Fix comment.
* stdio-common/tfformat.c, stdio-common/tiformat.c,
stdio-common/tstdiomisc.c: New files from GNU libio test suite.
* stdio-common/tstgetln.c: Provide ssize_t type when testing
libio.
* stdio-common/vfprintf.c (outchar): Use PUTC instead of putc.
(vfprintf): Cleasr args_type array before using it.
When printing 0 as an integer with precision 0 nothing must be
written for the number.
Based on patch by HJ Lu.
* stdio-common/vfscanf.c: Remove fixed input buffer. Now we
have a dynamically extended buffer.
* stdlib/strtod.c: Merge with version in Linux libc. This fixes
some bugs with handling of very small numbers and has different
solution for formaer patches.
* sysdeps/i386/i586/add_n.S, sysdeps/i386/i586/sub_n.S: Rename
macros r1 and r2 to t1, and t2 resp. This is necessary because
glibc headers also define r1.
Tue Dec 5 02:27:32 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* libio/Makefile [routines]: Remove iofscanf, add iopopen, pclose.
* libio/iofscanf.c: Remove file.
* libio/iogetdelim.c (_IO_getdelim): Correct stupid bug at string
termination.
* libio/iopopen.c: New file from GNU libio.
* libio/memstream.c: Fixed bug in fclose handling. Instead of
providing a close callback we need a finish callback.
* libio/pclose.c: New file. Derived from popen.c in GNU libio.
* posix/gnu/types.h: Fixed typo.
* stdio-common/errnobug.c: fputs returns EOF in error case. Do
not test for != 0.
* stdio-common/printf-parse.h (parse_one_spec): Do not force
padding with ' ' if precision is given. Fix by HJ Lu.
* stdio-common/printf_fp.c: Fix comment.
* stdio-common/tfformat.c, stdio-common/tiformat.c,
stdio-common/tstdiomisc.c: New files from GNU libio test suite.
* stdio-common/tstgetln.c: Provide ssize_t type when testing
libio.
* stdio-common/vfprintf.c (outchar): Use PUTC instead of putc.
(vfprintf): Cleasr args_type array before using it.
When printing 0 as an integer with precision 0 nothing must be
written for the number.
Based on patch by HJ Lu.
* stdio-common/vfscanf.c: Remove fixed input buffer. Now we
have a dynamically extended buffer.
* stdlib/strtod.c: Merge with version in Linux libc. This fixes
some bugs with handling of very small numbers and has different
solution for formaer patches.
* sysdeps/i386/i586/add_n.S, sysdeps/i386/i586/sub_n.S: Rename
macros r1 and r2 to t1, and t2 resp. This is necessary because
glibc headers also define r1.
* stdlib/gen-mpn-copy (translations): Updated for new layout in
GMP 1.910.
* malloc/malloc.c (__malloc_initialize): Renamed from initialize;
made global.
(malloc): Caller changed.
* malloc/realloc.c (realloc): Call __malloc_initialize if
necessary, before checking hook.
* malloc/malloc.h: Declare __malloc_initialize.
* sysdeps/mach/hurd/ioctl.c: For IOC_VOID request, send ARG itself
as integer_t arg in RPC.
(_hurd_set_brk): Try to allocate more space when we run out.
* sysdeps/generic/sbrk.c: If __curbrk is zero, call __brk with
zero and examine it again.
* sysdeps/unix/sysv/linux/i386/brk.c: New file.
* sysdeps/unix/sysv/linux/i386/brk.S: File removed.
* sysdeps/unix/sysv/linux/i386/sbrk.S: File removed.
* sysdeps/unix/sysv/linux/dl-sysdep.c: New file.
* sysdeps/unix/sysv/linux/i386/sbrk.S: File removed.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [DL_SYSDEP_INIT]:
Invoke this macro before calling DL_MAIN.
* malloc/malloc.c (malloc): Do initialization here, before
checking the hook.
(_malloc_internal): Don't do it here.
* configure.in (--enable-libio): Set $stdio based on $enableval,
not always to libio.
Thu Nov 23 18:06:48 1995 Richard Stallman <rms@gnu.ai.mit.edu>
* malloc/malloc.c (_malloc_internal): Can't use
get_contiguous_space when the heap info table
will be growing. Account for new contiguous space in _heaplimit.
* malloc/malloc.c (align): Don't check contiguity and call abort.
* hurd/hurdsig.c (post_reply): Function removed.
(abort_thread, abort_all_rpcs, _hurdsig_abort_rpcs): Don't call it.
Take single callback fn arg instead of reply port and type.
(_hurd_internal_post_signal): Callers changed.
Cache reply stub fn ptr in local var before UNTRACED might be changed.
* sysdeps/mach/hurd/mmap.c: Cope with a null write memobj for
PROT_READ|PROT_WRITE copy mapping. Pass a proper vm_inherit_t to
vm_map.
* elf/rtld.c (_dl_start): For --list, do output and exit before
relocating.
* Makeconfig (+includes): Add $($(stdio)-include).
(libio-include): New variable.
* stdlib/strtod.c: Put weak_symbol after function defn.
* stdlib/strtol.c: Likewise.
* configure.in (--enable-libio): If not present, set $stdio to
"default". Move stdio/libio check to end, so sysdeps fragments
can affect it. Reset $stdio to "stdio" if it's "default".
* sysdeps/unix/sysv/linux/configure: New file.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start_cleanup): New
function.
(_dl_sysdep_start): Move cleanup code there.
* Makeconfig (default-rpath): New variable.
(link-libc): Use it.
* elf/Makefile (ld.so): Pass -rpath=$(default-rpath).
* elf/rtld.c (_dl_rpath): New variable.
(_dl_start): Set it from rtld_map's DT_RPATH.
Call _dl_setup_hash on rtld_map.
(dl_main): Cache address of _exit in variable before relocating,
and use that in later calls. Call _dl_sysdep_start_cleanup before
relocating. Keep track of dependency order while loading; remove
rtld_map from chain, and reinsert in proper order if there is a
dependency on it.
* sysdeps/generic/Makefile (make_siglist): Pass
-DSIGNUM_H=... with config's signum.h location.
* sysdeps/generic/make_siglist.c: Include SIGNUM_H to define
signal numbers.
(HAVE_STRSIGNAL, HAVE_PSIGNAL): Define these before including signame.c
(main): Deansideclize output.
* elf/dl-load.c (_dl_map_object): Use _dl_rpath variable in place
of DEFAULT_RPATH macro.
* elf/Makefile: Undo last change.
* sysdeps/mach/hurd/dl-sysdep.c (free): Don't abort, just nop.
error if weak.
* elf/Makefile (default-rpath): New variable.
(CPPFLAGS): Append -DDEFAULT_RPATH=....
* elf/dl-load.c (_dl_map_object): Use DEFAULT_RPATH instead of
hard-coded "/lib:/usr/lib".
* sysdeps/mach/hurd/dl-sysdep.c: Include _itoa.h from stdio-common
instead of stdio.
(_dl_sysdep_start): If passed user entry is zero and
EXEC_STACK_ARGS flag set, reset user entry to &_start.
* elf/rtld.c (dl_main): Only call _dl_setup_hash if there is a
DT_HASH element.
* libc-symbols.h [HAVE_ELF] (symbol_set_declare): Gratuitously
repeat weak decl using weak_symbol macro, in case using broken GCC
(<2.8).
Wed Nov 15 18:49:55 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/i386/isnanl.c: New file.
* sysdeps/i386/isinfl.c: New file.
* malloc/malloc.c (morecore): Fix inverted test in allocating new
info table.
* malloc/malloc.c (align): Fix assertion.
* malloc/malloc.c: Include assert.h.
* libc-symbols.h: Use __attribute__ for GCC 2.8, not 2.7.
* malloc/malloc.h [emacs] (emacs_loser_valloc): Macro removed.
(valloc): Protect decl with [! (_MALLOC_INTERNAL && emacs)].
* hurd/hurdsig.c (_hurd_internal_post_signal): For SIGNO == 0,
skip straight to pending check. When UNTRACED, resume process
from suspension first.
* intl/Makefile (headers): New variable, libintl.h.
[gettext-srcdir]: New rules to copy source from $(gettext-srcdir)/intl.
* configure.in: Check for --with-gettext arg.
Fri Nov 10 13:51:30 1995 Richard Stallman <rms@gnu.ai.mit.edu>
* malloc/malloc.c (get_contiguous_space): New function.
(morecore): Rewrite allocating new malloc info table.
(_malloc_internal): Use get_contiguous_space.
Fri Nov 10 13:03:40 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdexec.c (_hurd_exec): If exec'ing self, pass
_hurd_msgport to be destroyed.
* Makerules (installed-libcs): Filter out %_pic.a.
* hurd/hurdinit.c (_hurd_proc_init): When traced, use msg_sig_post
to our msgport to take SIGTRAP, instead of _hurd_raise_signal.
* hurd/Makefile (user-interfaces): Add hurd/process_request.
* termios/Makefile (headers): Add sys/ttychars.h.
* termios/sys/ttychars.h: New file, incorporated from 4.4BSD-Lite
for compatibility.
* signal/signal.h [__USE_BSD] (sig_t): New typedef.
Wed Nov 8 15:12:47 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* sysdeps/mach/hurd/ptrace.c (ptrace) [PTRACE_TRACEME]: Notify the
proc server that we are now traced.
* elf/linux-compat.c: New file.
* elf/Makefile (distribute): Add linux-compat.c.
(generated): Add librtld.so.
[$(config-os)=linux*] (extra-objs): Add linux-compat.so.
[$(config-os)=linux*] (extra-objs): Add ld-linux.so.1.
(librtld.so): New target.
(ld.so, ld-linux.so.1): Make from librtld.so.
* elf/rtld.c (dl_main): Instead of weak call to _dl_compat_init,
call our own DT_INIT if we have one (and then clear it).
(__dgettext): New weak function.
* intl/localealias.c (read_alias_file): Avoid sprintf; use memcpy
by hand instead.
* sysdeps/generic/_strerror.c (_strerror_internal): Use _itoa
instead of snprintf.
* sysdeps/mach/_strerror.c (_strerror_internal): Don't write
BUF[BUFLEN].
* elf/rtld.c (rtld_map): New static variable.
(_dl_start): Use a differently named local BOOTSTRAP_MAP for the
bootstrapping. Then copy data into `rtld_map'.
(dl_main): Finish filling in rtld_map and link it into the chain,
instead of allocating a new structure.
(dl_main): Call _dl_compat_init if it is defined (use weak ref).
* elf/dlsym.c: Fix last change: move REF out of `doit'.
control.
using it.
and cwdir ports.
functions.
these.
$(libdir)(rtld-installed-name).
leading zeroes.
in the rhs.
pattern rule.
never know.
(fork): Use symbol_set_* macros for _hurd_fork_locks.
* sysdeps/unix/sysv/sysv4/linux/i386/sysdep.S (__syscall_error):
instead of unix/sysv.
-dynamic-linker.
(__printf_fp): Last arg ARGS is now `const void **const';
locale/C-ctype.c.
* sysdeps/mach/hurd/sigsuspend.c: Likewise.
* sysdeps/mach/hurd/mips/sigreturn.c: Likewise.
alias gethostname.
setitmr
setpgrp
(_S_msg_get_exec_flags, _S_msg_set_exec_flags,
(abort_thread, abort_rpcs): Take same new arg and pass it through.
PI_FETCH_TASKINFO to proc_getprocinfo and through
_hurd_priority_which_map.
* sysdeps/mach/hurd/setpriority.c (setpriority): Pass new arg to
_hurd_priority_which_map.
* hurd/hurdprio.c (_hurd_priority_which_map): New arg PI_FLAGS,
passed through to proc_getprocinfo RPC.
* hurd/hurd/resource.h: Add PI_FLAGS arg in decl.
* sysdeps/mach/hurd/group_member.c: New file.
* sysdeps/generic/group_member.c: New file.
* Makerules (lib-noranlib): Don't depend on $(install-lib).
(others): Do.
* extra-lib.mk: Fix test of $(lib)-no-lib-dep.
Mon Oct 30 12:33:10 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Rules (others): Depend on $(extra-objs).
* posix/unistd.h [__USE_GNU]: Declare group_member, __group_member.
* posix/Makefile (routines): Add group_member.
* sysdeps/posix/euidaccess.c: New file, adapted from fileutils.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Tighten constraint for
SIG operand in asm so it must be a register.
Add dead return to quiet gcc warning.
* Makerules (sysd-rules): Write a defn for sysd-rules-done.
[! sysd-rules-done]: Inhibit deps.
* sysdeps/unix/sysv/linux/poll.c: Don't define as stub. Use
simulation of system call using select.
* sysdeps/unix/sysv/linux/signal.c: Use POSIX implementation.
* sysdeps/unix/sysv/linux/statbuf.h: Define _STAT_VER.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Correct parameter
name usage (new->act, old->oact).
Correct asm statement because of gcc strangeness.
* sysdeps/i386/i586/strchr.S: Correct typos: cmp -> cmpb.
* sunrpc/clnt_perr.c: Remove declaration of sys_errlist. They
conflict with the ones in stdio.h.
* string/tester.c: %Z is no complete format. Change to %Zd.
* sysdeps/mach/hurd/symlink.c (__symlink): Ditto.
* sysdeps/unix/sysv/linux/i386/sigaction.c: New file.
* sysdeps/unix/sysv/linux/i386/xstat.S: Don't use JUMPTARGET macro
on syscall_error. For PIC, it is a local label;
for non-PIC, JUMPTARGET expands to the unadorned name anyway.
* sysdeps/unix/sysv/linux/i386/xmknod.S: Likewise.
* sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.
* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
* sysdeps/unix/sysv/linux/i386/sbrk.S: Likewise.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/i386/brk.S: Likewise.
* sysdeps/unix/sysv/linux/syscall.h: Strip list of syscalls in
comment to the necessary ones. Add _readv and _writev.
* sysdeps/unix/configure.in: Change syntax for system call test
candidates and adapt sed script for this. Now use : to separate
syscall name and file name.
* sysdeps/unix/sysv/linux/i386/sysdep.h (ENTRY): System call
number is now set is DO_CALL. So call with additional argument.
(DO_CALL): Takes an additional argument. Load system call
number according to new argument.
(SYSCALL_ERROR_HANDLER): Add ; after last ret statement.
* sysdeps/unix/sysv/linux/i386/brk.S [PIC]: Define __syscall_error
locally using SYSCALL_ERROR_HANDLER macro.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/i386/sbrk.S: Likewise.
* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
* sysdeps/unix/sysv/linux/i386/xmknod.S: Likewise.
* sysdeps/unix/sysv/linux/i386/xstat.S: Likewise.
* sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.
Don't use DO_CALL macro; instead use lower level macros for better
control.
* sysdeps/unix/sysv/linux/sigaction.h: New file.
* sysdeps/unix/sysv/linux/sigaction.S: File removed.
* sysdeps/unix/sysv/linux/signal.S: File removed.
exec_startup_get_info RPC from exec_startup.defs
in place of old exec_startup from exec.defs. Remove kludge to
guess user entry and phdr locations, since the new RPC gives us
that info.
* sysdeps/generic/_strerror.c: Undo last change.
New macro.
(PSEUDO): Use it instead of SYSCALL_PIC_SETUP and jmp syscall_error.
* sysdeps/unix/sysv/linux/i386/sysdep.S (__syscall_error): Define
only #ifndef PIC.
* Makeconfig (built-program-cmd): New variable.
* sunrpc/Makefile (rpcgen-cmd): Use $(built-program-cmd).
* time/Makefile (zic-cmd): Likewise.
* hurd/Makefile (user-interfaces): Add hurd/exec_startup.
* sysdeps/unix/configure.in: Check for fchdir syscall.
Improve sed script to allow / on rhs without / on lhs.
Thu Oct 19 03:47:32 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/unix/sysv/linux/termbits.h: Don't define speed constants.
* elf/rtld.c: Include _itoa.h from stdio-common instead of stdio.
* sysdeps/unix/sysv/linux/select.S: New file.
SYSCALL_PIC_SETUP before jumping to syscall_error.
* sysdeps/unix/i386/sysdep.h (SYSCALL_PIC_SETUP): New macro.
(PSEUDO): Use it before jumping to syscall_error.
* sysdeps/unix/i386/sysdep.S [! PIC]: Don't find GOT address;
expect it in %ebx on entry. Pop old %ebx value off stack after
using it.
* sysdeps/generic/_strerror.c: Declare _sys_errlist and _sys_nerr.
* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): For magic
`fd/', pass the right pointer to strtol to parse the number.
* locale/SYS_libc.c: New file.
* libc-symbols.h (_): New macro.
* configure.in (libc_cv_asm_set_directive): Link program into
conftest instead of letting it default to a.out.
* configure.in: Grok arg --enable-libio.
($stdio = libio): Define USE_IN_LIBIO.
* config.h.in (USE_IN_LIBIO): Add #undef.
* config.make.in (stdio): New variable, set by configure.
* Makeconfig (stdio): New variable.
* stdio.h [USE_IN_LIBIO]: Include libio/stdio.h instead of
stdio/stdio.h.
* stdio-common/Makefile: New file.
* stdio/Makefile: Half the contents moved to stdio-common/Makefile.
* stdio/_itoa.c: Moved to stdio-common.
* stdio/_itoa.h: Moved to stdio-common.
* stdio/asprintf.c: Moved to stdio-common.
* stdio/bug1.c: Moved to stdio-common.
* stdio/bug1.input: Moved to stdio-common.
* stdio/bug2.c: Moved to stdio-common.
* stdio/bug3.c: Moved to stdio-common.
* stdio/bug4.c: Moved to stdio-common.
* stdio/bug5.c: Moved to stdio-common.
* stdio/bug6.c: Moved to stdio-common.
* stdio/bug6.input: Moved to stdio-common.
* stdio/bug7.c: Moved to stdio-common.
* stdio/dprintf.c: Moved to stdio-common.
* stdio/errnobug.c: Moved to stdio-common.
* stdio/getline.c: Moved to stdio-common.
* stdio/getw.c: Moved to stdio-common.
* stdio/perror.c: Moved to stdio-common.
* stdio/printf-parse.h: Moved to stdio-common.
* stdio/printf-prs.c: Moved to stdio-common.
* stdio/printf.c: Moved to stdio-common.
* stdio/printf.h: Moved to stdio-common.
* stdio/printf_fp.c: Moved to stdio-common.
* stdio/psignal.c: Moved to stdio-common.
* stdio/putw.c: Moved to stdio-common.
* stdio/reg-printf.c: Moved to stdio-common.
* stdio/scanf.c: Moved to stdio-common.
* stdio/snprintf.c: Moved to stdio-common.
* stdio/sprintf.c: Moved to stdio-common.
* stdio/sscanf.c: Moved to stdio-common.
* stdio/tempnam.c: Moved to stdio-common.
* stdio/temptest.c: Moved to stdio-common.
* stdio/test-fseek.c: Moved to stdio-common.
* stdio/test-fwrite.c: Moved to stdio-common.
* stdio/test-popen.c: Moved to stdio-common.
* stdio/test_rdwr.c: Moved to stdio-common.
* stdio/tmpfile.c: Moved to stdio-common.
* stdio/tmpnam.c: Moved to stdio-common.
* stdio/tst-fileno.c: Moved to stdio-common.
* stdio/tst-printf.c: Moved to stdio-common.
* stdio/tstgetln.c: Moved to stdio-common.
* stdio/tstgetln.input: Moved to stdio-common.
* stdio/tstscanf.c: Moved to stdio-common.
* stdio/tstscanf.input: Moved to stdio-common.
* stdio/vfprintf.c: Moved to stdio-common.
* stdio/vfscanf.c: Moved to stdio-common.
* stdio/vprintf.c: Moved to stdio-common.
* stdio/xbug.c: Moved to stdio-common.
* sysdeps/generic/Makefile (siglist.c rules): Do this in subdir
stdio-common instead of stdio.
* sysdeps/unix/Makefile (errlist.c rules): Likewise.
* stdio-common/asprintf.c [USE_IN_LIBIO]: Call libio primitive
function.
* stdio-common/dprintf.c: Likewise.
* stdio-common/printf.c: Likewise.
* stdio-common/scanf.c: Likewise.
* stdio-common/snprintf.c: Likewise.
* stdio-common/sprintf.c: Likewise.
* stdio-common/sscanf.c: Likewise.
* stdio-common/vprintf.c: Likewise.
* Makerules: Include $(+depfiles) directly instead of generating
depend-$(subdir).
(depend-$(subdir)): Target removed.
(common-clean): Don't remove depend-$(subdir).
* sysdeps/mach/hurd/getcwd.c: Use __file_name_lookup_under.
* sysdeps/mach/hurd/bind.c: Likewise.
* sysdeps/mach/hurd/access.c: Use new __hurd_file_name_lookup
calling convention.
* hurd/hurdexec.c: Undo last change (10 Oct 95).
* hurd/hurdlookup.c (__file_name_lookup_under): New function.
(__hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split): Rewritten to take callback functions for
using any needed init or dtable port, instead of passing in crdir
and cwdir ports.
(__file_name_lookup, __file_name_split): Use new calling
convention; pass _hurd_ports_use and __getdport as the callback
functions.
* sysdeps/mach/hurd/chroot.c: Use __file_name_lookup_under instead
of __hurd_file_name_lookup.
* sysdeps/mach/hurd/chdir.c: Likewise.
* sysdeps/mach/hurd/fchdir.c: Likewise.
* hurd/fchroot.c: Likewise.
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
* Makeconfig (config-LDFLAGS): Add missing slash.
* sysdeps/mach/hurd/profil.c (fork_profil): Only call
update_waiter if profiling was enabled in the parent.
* csu/initfini.c: Don't pass -f flag to cp.
* Makeconfig (config-LDFLAGS): Define to
-Wl-dynamic-linker=$(libdir)$(rtld-installed-name).
(rtld-installed-name): New variable.
* elf/Makefile (install-lib): Variable removed.
(install-others): Define this instead, to
$(libdir)(rtld-installed-name).
($(libdir)(rtld-installed-name)): New target; install from ld.so.
* elf/ldd.sh.in: New file.
* elf/Makefile (distribute): Add ldd.sh.in.
(install-bin): Add ldd.
($(objpfx)ldd: ldd.sh.in): New rule.
* sysdeps/mach/hurd/dl-sysdep.c: Use __hurd_fail throughout.
* hurd/hurd.h (__hurd_fail): Replace macro with inline function.
Translate some Mach errors to Hurd errors.
* elf/rtld.c (dl_main): Under --list, print msg if executable is
statically linked.
* elf/dl-load.c (_dl_map_object_from_fd): Rewrote program header
table processing.
Sat Oct 7 01:25:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/stub/machine-gmon.h: Add #error.
Fri Oct 6 01:49:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* elf/dynamic-link.h (elf_get_dynamic_info): If DYN is null, don't
examine it.
Rewrite mktime from scratch for performance, and for correctness
in the presence of leap seconds.
* time/mktime.c (ydhms_tm_diff, not_equal_tm, print_tm, check_result):
New functions.
(LEAP_SECONDS_POSSIBLE, CHAR_BIT, INT_MIN, INT_MAX,
TIME_T_MIN, TIME_T_MAX, TM_YEAR_BASE, EPOCH_YEAR): New macros.
<limits.h>, <stdlib.h>: New #includes.
(main): Support tests with given broken-down value; support benchmarks.
(__mon_lengths, debugging_enabled, printtm, dist_tm, doit,
do_normalization, normalize, BAD_STRUCT_TM, SKIP_VALUE,
<ctype.h>): Remove.
* time/time.h, time/mktime.c (__mktime_internal): New offset arg.
* time/mktime.c (mktime), time/timegm.c (timegm): Use it.
* time/mktime.c (__mon_yday): New variable; replaces `__mon_lengths'.
time/offtime.c (__offtime), time/tzset.c (compute_change): Use it.
* time/offtime.c (__offtime): Remove useless assignment
`tp->tm_isdst = -1'.
* manual/maint.texi: Update credits.
Fri Oct 6 00:28:53 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/common/readv.S: Moved to sysdeps/unix/bsd.
* sysdeps/unix/common/writev.S: Moved to sysdeps/unix/bsd.
* sysdeps/unix/sysv/linux/readv.c: File removed.
* sysdeps/unix/sysv/linux/writev.c: File removed.
* sysdeps/unix/configure.in: Check for readv and writev syscalls.
* sysdeps/unix/configure.in: If eval doesn't set $unix_srcname,
set it to $unix_syscall instead of $unix_function.
the list.
* time/northamerica: Corrections to Canada data from ADO 95i.
* sysdeps/unix/sysv/linux/Makefile (headers): Don't append to this
unconditionally. In socket subdir, append sys/socketcall.h; in
time subdir, append sys/timex.h.
(config-LDFLAGS): New variable.
* sysdeps/unix/sysv/linux/Dist: New file.
* Makeconfig (+link): Pass $(config-LDFLAGS) before $(LDFLAGS).
kernel with args on stack, point _dl_hurd_data at zero data
instead of garbage. When ld.so run as program, grok args
-LIB=MEMOBJ and pre-load shared object files found in memory
objects loaded by the boot loader.
* elf/link.h (struct link_map): New member `l_entry'.
(_dl_map_object, _dl_map_object_from_fd): Remove last arg ENTRY_POINT.
* elf/dl-load.c (_dl_map_object, _dl_map_object_from_fd): Remove
last arg ENTRY_POINT. Store the entry point location in the
`l_entry' member of the new map.
* elf/rtld.c (dl_main): Don't pass USER_ENTRY arg to
_dl_map_object. When run as program, set *USER_ENTRY to L->l_entry.
* elf/dl-init.c (_dl_init_next): Don't pass ENTRY_POINT arg to
_dl_map_object.
* posix/tstgetopt.c, posix/tstgetopt.args: Test long options too.
* sysdeps/unix/sysv/linux/i386/init-first.c (init): Save, set, and
restore %ebx by hand for personality syscall.
GCC cannot deal with spilling the dedicated GOT register.
* misc/Makefile (routines): Add mntent, which was somehow omitted.
Fri Sep 29 15:07:10 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
Change name of field `mode' in `struct timex' to `modes'.
Linux-1.3.28 updates this name according to RFC 1489.
Merge new message handling code from GNU gettext, by Drepper.
* intl: New directory.
* Makefile (subdirs): Add intl.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Return
USER_ENTRY instead of storing it on our stack.
* elf/rtld.c (rtld_command): Variable removed.
(_dl_skip_args): New variable.
(dl_main): Increment _dl_skip_args instead of setting rtld_command.
If the link_map for the executable itself is not first in the chain,
make it so.
* sysdeps/i386/dl-machine.h (RTLD_START): Use _dl_skip_args as
count of args to skip.
Thu Sep 28 09:20:04 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* stdlib/strtod.c (STRTOF): Fix handling of numbers with lots of
leading zeroes.
* config.make.in (AS): New variable; set to `$(CC) -c'.
* posix/unistd.h [__USE_BSD]: Declare profil.
* elf/dl-load.c (_dl_map_object_from_fd): New function, broken out
of _dl_map_object.
(_dl_map_object): Call it.
* elf/link.h (_dl_map_object_from_fd): Declare it.
gettext code.
* sysdeps/unix/sysv/linux/sys/param.h: New file.
* sysdeps/unix/sysv/linux/Subdirs: File removed.
* libc-symbols.h (_LIBC): Define to 1, not just empty.
* gmon: New directory of profiling code, incorporated from
4.4BSD-Lite and modified.
* sysdeps/i386/machine-gmon.h: New file.
* sysdeps/stub/machine-gmon.h: New file.
* sysdeps/mach/hurd/profil.c: New file.
* sysdeps/stub/profil.c: New file.
* sysdeps/unix/bsd/profil.S: New file.
* Makefile (subdirs): Add gmon.
* csu/gmon-start.c: New file.
* csu/Makefile (extra-objs): Add gmon-start.o,
g$(start-installed-name).
(install-lib, omit-deps): Add g$(start-installed-name).
($(objpfx)g$(start-installed-name)): New target.
* sysdeps/stub/sys/sem_buf.h (union semun): New type.
* sysdeps/mach/hurd/i386/init-first.c (init1) [PIC]: Call
__libc_global_ctors.
* sysdeps/i386/init-first.c: Rewritten.
* sysdeps/unix/sysv/linux/i386/init-first.S: File removed.
* sysdeps/unix/sysv/linux/i386/init-first.c: New file.
* sysdeps/unix/sysv/linux/i386/fpu_control.h: Fix name in decl of
___fpu_control.
* Makerules (build-shlib): New canned sequence, broken out of
lib%.so rule. Link in $^ instead of just $<.
(lib%.so: lib%_pic.a): Use it.
(libc.so): New target; use $(build-shlib) for cmds, but also depend
on soinit.so first and sofini.so last.
* elf/soinit.c: New file.
* elf/sofini.c: New file.
* elf/Makefile (distribute): Add soinit.c and sofini.c.
(extra-objs): Add soinit.so and sofini.so.
* sysvipc/sys/shm.h (shmat): Fix return type to char *.
* sysdeps/stub/sys/ipc_buf.h (key_t): Type removed.
* misc/syslog.c (vsyslog): Rewritten using open_memstream to
dynamically allocate buffers.
* Makerules (install-lib-nosubdir): Make this, rather than
install-no-libc.a, depend on the installed shared libraries.
* mktime.c (localtime_r): Add substitute if the system doesn't
provide one.
Mon Sep 18 14:39:20 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* time/gmtime.c (gmtime_r): Define as weak alias.
* time/localtime.c (localtime_r): Define as weak alias.
* time/time.h [__USE_REENTRANT] (gmtime_r, localtime_r): Declare them.
* errno.h: Only define _ERRNO_H #ifndef __need_Emath.
#undef __need_Emath after including errnos.h.
[_ERRNO_H]: Protect decls with this.
Sun Sep 17 08:22:12 1995 Paul Eggert <eggert@twinsun.com>
Fix mktime so that it does not write over localtime's returned value.
* localtime.c (__localtime_r): New function, with extra arg
specifying where to store result.
(localtime): Use it.
(_tmbuf): New var.
* gmtime.c (__gmtime_r, gmtime, _tmbuf): Likewise.
* mktime.c (__mktime_internal): Conversion function is now
__localtime_r style, not localtime style.
(mktime): Pass __localtime_r, not localtime.
* timegm.c (timegm): Pass __gmtime_r, not gmtime.
* offtime.c (__offtime): New arg specifying where to store result.
* time.h (__mktime_internal, __offtime): Adjust decls accordingly.
(__gmtime_r, __localtime_r): New decls.
* time/localtime.c: <stddef.h>, <ctype.h>, <stdio.h>,
<stdlib.h>, <string.h>: Remove includes.
<errno.h>: Add include.
* time/mktime.c, time/time.h, time/timegm.c (__mktime_internal):
Renamed from _mktime_internal to avoid namespace pollution.
* time/gmtime.c: Clear tm_isdst.
* misc/efgcvt_r.c (ecvt_r, fcvt_r): Last arg is size_t, not int.
* stdlib/stdlib.h (ecvt_r, fcvt_r): Fix type of last arg: make it
size_t.
* sysdeps/mach/hurd/fpathconf.c: Call __io_pathconf instead of
__file_pathconf.
* sysdeps/mach/hurd/pathconf.c: Likewise.
* elf/elf.h (AT_GID): Fix typo: Read -> Real.
* misc/efgvt_r.c: New file. Reentrant version of [efg]cvt functions.
* misc/efgcvt.c: Rewrite to use reentrant functions.
* misc/hsearch_r.c: New file. Reentrant version of functions from
hsearch family.
* misc/hsearch.c, misc/tsearch.c: New files.
* misc/Makefile (routines): Add efgcvt_r, hsearch_r, hsearch, tsearch.
* posix/unistd.h (ttyname_r): Add prototype for new function.
* stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c,
stdlib/lrand48_r.c, stdlib/mrand48_r.c, stdlib/nrand48_r.c,
stdlib/seed48_r.c, stdlib/srand48_r.c, stdlib/lcong48_r.c,
stdlib/drand48-iter.c: New files implementing reentrant versions
of functions from drand48 family.
* stdlib/seed48.c, stdlib/drand48.c, stdlib/erand48.c,
stdlib/jrand48.c, stdlib/lrand48.c, stdlib/mrand48.c,
stdlib/nrand48.c, stdlib/srand48.c, stdlib/lcong48.c:
Rewrite to use reentrant versions.
* stdlib/a64l.c, stdlib/l64a.c: New files. Implement a64l()
and l64a() functions from SysV library.
* stdlib/Makefile (routines): Add drand48_r, erand48_r, lrand48_r,
nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r,
drand48-iter, a64l, l64a.
* stdlib/stdlib.h: Declare them.
* stdlib/random_r.c: New file. Reentrant version of functions
from random family.
* stdlib/stdlib.h: Declare them.
* stdlib/random.c: Rewrite to use reentrant functions.
* string/strerror_r.c: New file. Reentrant version.
* string/strerror.c: Change for new _strerror_internal form.
* string/Makefile (routines): Add strerror_r.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default
value of user_entry to `_start'.
Close AT_ENTRY case with `break'.
* sysdeps/generic/strstr.c: New and much faster implementation
by Stephen R. van den Berg.
* sysdeps/generic/_strerror.c: _strerror_internal now takes
three argument and has and explicit buffer length.
* sysdeps/mach/_strerror.c: Change for new interface with three
arguments.
* stdio/perror.c, stdio/vfprintf.c: Callers changed.
* sysdeps/mach/hurd/ttyname_r.c: New file. Reentrant version.
* sysdeps/posix/ttyname_r.c: New file. Reentrant version.
* sysdeps/stub/ttyname_r: New file. Define as dummy function.
* sysdeps/posix/utimes.c: Include <utime.h> for prototype.
(utimes): First parameter to utime must be file, not path.
* sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case
_SC_CLK_TCK and return it when available.
Test for STREAM_MAX in case _SC_STREAM_MAX and return it when
available.
Add case for _SC_2_LOCALEDEF which is now available.
* posix/sys/types.h [__USE_SVID] (key_t): New type.
* sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h,
sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h,
sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h,
sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h,
sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c,
sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c,
sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c,
sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files.
Add implementation of System V IPC.
* hurd/hurdsig.c: Include <hurd/crash.h> in place of <hurd/core.h>.
(write_corefile): Call __crash_dump_task instead of __core_dump_task.
Use envariable CRASHSERVER instead of CORESERVER.
* hurd/Makefile (user-interfaces): Replace hurd/core with hurd/crash.
* conf/portability.h (NEED_INETADDR, NEED_INETATON): Define to 1,
not empty.
* sysdeps/unix/sysv/linux/i386/Dist,
* sysdeps/unix/sysv/linux/sys/ipc_buf.h,
* sysdeps/unix/sysv/sysv4/linux: Tree removed.
Thu Sep 7 17:05:13 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdlib/msort.c (msort_with_tmp): Fixed alignment test. B1 and
B2 are always congruent; just test that B1 is aligned.
* elf/dl-lookup.c (_dl_lookup_symbol): Test WEAK_VALUE.s rather
than WEAK_VALUE.a to see if a weak value has been set. A valid
weak value may set WEAK_VALUE.a to 0.
* libc-symbols.h (link_warning): Take new first arg SYMBOL; ask
for a warning on references to that specific symbol, not the
entire containing object file.
(stub_warning): Pass symbol name to link_warning.
* stdio/gets.c: Pass function name in link_warning invocation.
* hurd/intr-msg.c: Treat apparent EINTR return from msg trap like
MACH_SEND_INTERRUPTED. That indicates interrupt_operation was
sent, but failed.
* stdlib/msort.c: Include memcopy.h.
(msort_with_tmp): If operating on aligned op_t words, use direct word
fetches and stores.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC): Add
missing backslash.
Thu Aug 31 13:23:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/i386/brk.S [PIC]: Set __curbrk through the GOT.
Rewrote i386 setjmp code in assembly, so as to avoid fighting
with the compiler for the register values.
* sysdeps/i386/setjmp.S, sysdeps/i386/__longjmp.S: New files.
* sysdeps/i386/setjmp.c, sysdeps/i386/__longjmp.c: Files removed.
* sysdeps/i386/jmp_buf.h [! _ASM] (__jmp_buf): Define as array of ints.
[__USE_MISC || _ASM] (JB_*): New macros, for indices therein.
(_JMPBUF_UNWINDS): Use JB_SP.
* sysdeps/mach/hurd/select.c: Deal with out of order replies
during io_select request loop.
Handle MACH_RCV_TIMED_OUT error from requests.
* hurd/intr-msg.c: If the user passed the MACH_RCV_TIMEOUT option,
distinguish MACH_RCV_TIMED_OUT from EINTR.
* posix/glob.c (glob): Use realloc to extend strings for GLOB_MARK
slash.
(glob_in_dir): Don't allocate extra byte here.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
Decrement the DT_RELSZ value for the skipped reloc.
* time/australasia: Updated data from ADO.
Mon Aug 28 17:47:11 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* dirent/dirent.h: Don't include <dirstream.h>.
Instead, define DIR as typedef for (undefined) `struct __dirstream'.