* 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.