* sysdeps/mach/i386/sysdep.h (RETURN_TO): New macro.
* Makerules (install-lib.so): Add %.so for each %_pic.a.
* sysdeps/mach/hurd/i386/init-first.c: New file.
* Makeconfig (+gccwarn): Add -Winline.
* hurd/hurdsig.c (_hurd_internal_post_signal): If SS->context is
set, avoid abort_rpcs, and use reply and intr ports saved in
SS->context.
* sysdeps/mach/hurd/i386/trampoline.c: Don't set SS->intr_port
from SS->context. Don't clear SS->context.
* sysdeps/mach/hurd/i386/sigreturn.c: Don't set SS->intr_port when
setting SS->context. If msg_sig_post returns, re-lock and clear
SS->context.
Fri May 5 10:37:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* mach/Makefile (errsystems.c): Comment out generation rule.
* sysdeps/mach/_strerror.c: Consider a system unknown if its
bad_sub member is null.
* mach/mig-alloc.c: Add weak alias to non-__ name.
* sysdeps/mach/hurd/dup2.c: Fixed broken test in last change.
* elf/dl-error.c (_dl_catch_error): Actually call the OPERATE
function. Duh.
* hurd/Makefile (distribute): Added hurdstartup.h.
* hurd/hurd.h: Remove _hurd_startup decl.
* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS): Use __attribute__
((__unused__)) instead of gratuitous self reference.
* sysdeps/mach/hurd/dup2.c: Call _hurd_alloc_fd to expand the
table if FD2 doesn't fit.
* sysdeps/mach/hurd/getdtsz.c: Return the RLIM_NOFILE soft limit,
not the current table size.
* sysdeps/i386/init-first.c: New file.
* sysdeps/stub/init-first.c: New file.
* mach/Machrules [interface-library]
(LDFLAGS-$(interface-library:lib%=%.so)): New variable, set to
-nostdlib.
* sysdeps/mach/hurd/fork.c: Subfunction `unlockss' removed. Lock
_hurd_siglock only around initial task creation in parent. Use
_hurd_critical_section_unlock at end. Handle dead name rights
properly, and deal with a send right dying while we try to copy
it. For the time being, use assert_perror for kernel and proc RPC
failures.
Fri Apr 21 01:10:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* extra-lib.mk: Don't include $(o-iterator); construct it by hand
using $(object-suffixes-$(lib)) instead.
* sysdeps/mach/hurd/Makefile (LDLIBS-c.so): New variable.
* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS-$(notdir $*).so).
(LDFLAGS-c.so): New variable.
* resolv/res_init.c (res_init): Don't clobber _res.options with
RES_DEFAULT. If RES_INIT is clear, OR in RES_DEFAULT.
* hurd/hurd.h: Declare _hurd_startup.
* hurd/hurdstartup.c: New file.
* hurd/Makefile (routines): Add hurdstartup.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Point the return address for sigreturn's frame at a "hlt" insn so
it will definitely crash if sigreturn returns.
HAVE_WEAK_SYMBOLS for doing weak_alias.
* misc/progname.c (program_invocation_name,
program_invocation_short_name): Make these initialized data
definitions.
* sysdeps/mach/hurd/setitimer.c (fork_itimer): Add self reference
so gcc doesn't optimize out the function entirely.
* sysdeps/mach/hurd/i386/trampoline.c: Add a link to
SS->active_resources, so that _hurdsig_longjmp_from_handler will
be called when a longjmp unwinds the signal frame.
* sysdeps/mach/hurd/i386/sigreturn.c: Remove the link on the
SS->active_resources chain added by _hurd_setup_sighandler.
* hurd/sigunwind.c: New file.
* hurd/Makefile (sig): Add sigunwind.
* Makerules (lib%.so: lib%_pic.a): Remove dir name from $*.
* MakeTAGS (tags-sources): Include $(all-dist).
[subdir] (all-dist): Define to $(distribute).
* posix/unistd.h [__USE_BSD] (ttyslot): Declare it.
* posix/unistd.h [__USE_BSD] (L_SET, L_INCR, L_XTND): Define
unless L_SET already defined.
* misc/sys/file.h (L_SET, L_INCR, L_XTND): Don't define if L_SET
already defined.
Incorporated -lutil library from 4.4-Lite.
* misc/Makefile (extra-libs, libutil-routines): New variables.
* misc/login.c, misc/login_tty.c, misc/logout.c, misc/logwtmp.c,
sysdeps/generic/pty.c: New files for -lutil incorporated from 4.4-Lite.
Support simple, light-weight unwind-protect mechanism for longjmp.
* setjmp/longjmp.c: Call _longjmp_unwind first thing.
* sysdeps/mach/hurd/jmp-unwind.c: New file.
* sysdeps/stub/jmp-unwind.c: New file.
* sysdeps/i386/jmp_buf.h (_JMPBUF_UNWINDS): New macro.
* sysdeps/mips/jmp_buf.h (_JMPBUF_UNWINDS): New macro.
* setjmp/Makefile (routines): Add jmp-unwind.
* hurd/hurd/userlink.h (struct hurd_userlink): Move `next' and
`prevp' members into new substructure `resource'; add another such
substructure `thread' and members `cleanup' (function ptr) and
`cleanup_data' (generic ptr).
(_hurd_userlink_link, _hurd_userlink_unlink): Insert/remove LINK
into the `_hurd_self_sigstate ()->active_resources' list via the
`thread' substructure.
* hurd/hurd/port.h (_hurd_port_cleanup): Declare it.
(_hurd_port_locked_get): Set LINK->cleanup to _hurd_port_cleanup and
LINK->cleanup_data' to the port extracted.
* hurd/hurd/signal.h (struct hurd_sigstate): New member
`active_resources'.
* hurd/port-cleanup.c: New file.
* hurd/Makefile (routines): Add port-cleanup.
* malloc/malloc.c: Include errno.h.
Sat Mar 25 18:24:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/loadlocale.c (_nl_load_locale): Avoid */ inside comment.
* stdio/vfscanf.c (%n): Use READ_IN - 1, so as not to count the
read-ahead character.
* hurd/dtable.c, hurd/getdport.c, hurd/hurd.h, hurd/hurdexec.c,
hurd/hurdinit.c, hurd/hurdprio.c, hurd/hurdsock.c,
hurd/ports-get.c, hurd/ports-set.c, hurd/setauth.c,
hurd/setuids.c, sysdeps/mach/hurd/i386/trampoline.c:
Get anal with unsigned to pacify compiler.
* stdio/vfscanf.c: Grok positional parameter specs (i.e. %3$d
means %d from 3rd arg).
* sysdeps/mach/hurd/closedir.c: Include hurd/fd.h.
* stdlib/strtol.c: If !GROUP, set END to null. In loop, test only
END, not GROUP.
* locale/C-ctype.c: New correct data generated by drepper.
* Rules: Don't use $(libc.a).
Parsing of grouped numbers contributed by Ulrich Drepper.
* stdlib/strtol.c (__strtol_internal): Renamed from strtol. Take
new flag arg; if nonzero, parse locale-dependent thousands
grouping and interpret only the prefix that is correctly grouped.
(strtol): Define this to call _strtol_internal with zero for the flag.
Use a weak symbol for the definition.
* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
Check for the exponent of the number overflowing the float format.
* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
[__OPTIMIZE__]: Define inline functions calling those.
* stdlib/grouping.h: New file, written by drepper.
* stdlib/Makefile (distribute): Add grouping.h.
* stdio/vfscanf.c: Grok %' modifier to numeric conversions. Call
__strtoX_internal with the grouping flag set iff the modifier is
present.
Wed Mar 15 00:40:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.
* mach/Machrules: Produce static deps for all object flavors.
[interface-library]: Remove all these variables and rules.
($(interface-library)-routines): Define this variable.
(extra-libs): Append $(interface-library) to this.
* mach/Makefile (interface-library): Omit .a suffix.
* hurd/Makefile: Likewise.
Tue Mar 14 23:40:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
early if no new data in buffer after priming.
* Makerules (object-suffixes, libtypes): Move all these variables
to Makeconfig.
* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.
* Makerules (build-extra-lib): New canned sequence.
* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h. Declare ERR;
fix uses of FILE and PORT. Remove bogus weak alias for `access'.
* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
Add missing semicolon.
* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h. Use a `struct
hurd_fd *' temp var, since DIRP->__fd is a `void *'.
* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.
* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
locale data format is implemented.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Pass &__sigreturn on the stack to the trampoline code, so it is
not position-dependent.
* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
Don't include <stdarg.h>.
(__printf_fp): Last arg ARGS is now `const void **const';
dereference ARGS[0] instead of using va_arg.
* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
loop to install data.
* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
to extract number from item code.
(_nl_load_locale): Close the descriptor when finished.
* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
place of malloc.
* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
* sysdeps/mach/hurd/kill.c: When the process has no message port
registered and we have its task port, translate a few signals to
task_suspend/task_resume/task_terminate.
* sysdeps/mach/hurd/euidaccess.c: New file.
* sysdeps/stub/euidaccess.c: New file.
* posix/unistd.h [__USE_GNU] (euidaccess): Declare it.
* dirent/Makefile (routines): Add dirfd.
* sysdeps/stub/dirfd.c: New file.
* sysdeps/unix/dirfd.c: New file.
* sysdeps/unix/dirstream.h (_DIR_dirfd): New macro.
* dirent/dirent.h (dirfd): Declare new function. Define as macro
_DIR_dirfd if that is defined.
* sysdeps/mach/hurd/dirstream.h (DIR): Replace `__port' member
with `void *__fd'.
* sysdeps/mach/hurd/opendir.c: Use DIRP->__fd instead of DIRP->__port.
Open the file with `open'; set FD_CLOEXEC on the fd.
* sysdeps/mach/hurd/closedir.c: Likewise.
* sysdeps/mach/hurd/readdir.c: Likewise.
* sysdeps/mach/hurd/dirfd.c: New file.
* posix/Makefile (glob/configure): Do cvs commit if there is a CVS
directory.
(glob/ChangeLog): Likewise.
* locale/locale.h (LC_*): Use small integers instead of bit masks.
* sysdeps/mach/hurd/i386/sigreturn.c: Restore the FPU state.
* stdlib/random.c (__srandom): Change algorithm used to populate
the state array.
(randtbl): Recomputed with new algorithm.
* config.h.in [HAVE_ELF || HAVE_GNU_LD]: Define HAVE_WEAK_SYMBOLS.
* stdlib/strtod.c (PASTE, PASTE1): New helper macros; use these in
access to float.h macros.
* misc/efgcvt.c: New file.
* misc/Makefile (routines): Add efgcvt.
* posix/Makefile (aux): Add environ.
* posix/environ.c: New file.
* sysdeps/unix/sparc/start.c: Remove __environ definition.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/mach/hurd/start.c: Likewise.
* sysdeps/mach/start.c: Likewise.
* sysdeps/stub/start.c: Likewise.
* sysdeps/unix/make_errlist.c: In produced program, test
HAVE_WEAK_SYMBOLS instead of HAVE_GNU_LD.
* sysdeps/unix/sysv/sysv4/dup2.c: Fix #include of renamed file.
Remove extra weak alias.
* sysdeps/unix/sysv/sysv4/sigaltstack.S: Fix unsquashed file name
in #include.
* libc-symbols.h: Put comment around ^L to pacify Solaris as.
* sysdeps/posix/Makefile (cded-objdir-includes): New variable
replaced cded-objdir-CPPFLAGS; transform $(+includes) instead of
$(CPPFLAGS).
(mk-stdiolim): Use it instead.
* mach/mach_init.c (__vm_page_size): Make it initialized. It does
not work to make a weak alias to a bss symbol.
* stdio/Makefile (distribute): Remove mpn-copy.mk; add gen-mpn-copy.
(tests): Add test-fwrite.
* stdio/test-fwrite.c: New file.
* stdlib/stdlib.h [__USE_GNU]: Declare strtof, strtold, __strtof,
__strtold.
* Makefile (autoconf-it): New canned sequence. Do cvs commit if
there is a CVS directory.
(configure, %/configure): Use $(autoconf-it) for cmds.
* Make-dist: Likewise.
* Makerules ($(gpl2lgpl)): Likewise.
inlines cause trouble for files defining global register variables.
* stdio/vfprintf.c: Set PREC to zero for %. without following digit.