Sergey Bugaev
4e506f67cb
hurd: Replace reply port with a dead name on failed interruption
...
If we're trying to interrupt an interruptible RPC, but the server fails
to respond to our __interrupt_operation () call, we instead destroy the
reply port we were expecting the reply to the RPC on.
Instead of deallocating the name completely, replace it with a dead
name, so the name won't get reused for some other right, and deallocate
it in _hurd_intr_rpc_mach_msg once we return from the signal handler.
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230429201822.2605207-4-bugaevc@gmail.com>
2023-05-01 03:18:48 +02:00
Sergey Bugaev
ba00d787f3
hurd: Remove __hurd_local_reply_port
...
Now that the signal code no longer accesses it, the only real user of it
was mig-reply.c, so move the logic for managing the port there.
If we're in SHARED and outside of rtld, we know that __LIBC_NO_TLS ()
always evaluates to 0, and a TLS reply port will always be used, not
__hurd_reply_port0. Still, the compiler does not see that
__hurd_reply_port0 is never used due to its address being taken. To deal
with this, explicitly compile out __hurd_reply_port0 when we know we
won't use it.
Also, instead of accessing the port via THREAD_SELF->reply_port, this
uses THREAD_GETMEM and THREAD_SETMEM directly, avoiding possible
miscompilations.
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2023-04-14 10:31:22 +00:00
Joseph Myers
6d7e8eda9b
Update copyright dates with scripts/update-copyrights
2023-01-06 21:14:39 +00:00
Paul Eggert
581c785bf3
Update copyright dates with scripts/update-copyrights
...
I used these shell commands:
../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright
(cd ../glibc && git commit -am"[this commit message]")
and then ignored the output, which consisted lines saying "FOO: warning:
copyright statement not found" for each of 7061 files FOO.
I then removed trailing white space from math/tgmath.h,
support/tst-support-open-dev-null-range.c, and
sysdeps/x86_64/multiarch/strlen-vec.S, to work around the following
obscure pre-commit check failure diagnostics from Savannah. I don't
know why I run into these diagnostics whereas others evidently do not.
remote: *** 912-#endif
remote: *** 913:
remote: *** 914-
remote: *** error: lines with trailing whitespace found
...
remote: *** error: sysdeps/unix/sysv/linux/statx_cp.c: trailing lines
2022-01-01 11:40:24 -08:00
Paul Eggert
2b778ceb40
Update copyright dates with scripts/update-copyrights
...
I used these shell commands:
../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright
(cd ../glibc && git commit -am"[this commit message]")
and then ignored the output, which consisted lines saying "FOO: warning:
copyright statement not found" for each of 6694 files FOO.
I then removed trailing white space from benchtests/bench-pthread-locks.c
and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this
diagnostic from Savannah:
remote: *** pre-commit check failed ...
remote: *** error: lines with trailing whitespace found
remote: error: hook declined to update refs/heads/master
2021-01-02 12:17:34 -08:00
Joseph Myers
d614a75396
Update copyright dates with scripts/update-copyrights.
2020-01-01 00:14:33 +00:00
Paul Eggert
5a82c74822
Prefer https to http for gnu.org and fsf.org URLs
...
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 02:43:31 -07:00
Joseph Myers
aa0e46636a
Break further lines before not after operators.
...
This patch continues the process of fixing coding style to break lines
before not after operators in accordance with the GNU Coding
Standards, fixing such issues in a non-exhaustive selection of sysdeps
files that had them.
Tested for x86_64, and with build-many-glibcs.py.
* sysdeps/arm/sysdep.h (#if condition): Break lines before rather
than after operators.
* sysdeps/mach/hurd/fork.c (__fork): Likewise.
* sysdeps/mach/hurd/getcwd.c
(__hurd_canonicalize_directory_name_internal): Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-consistent.c
(pthread_mutex_consistent): Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-init.c (_pthread_mutex_init):
Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
(__pthread_mutex_transfer_np): Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-unlock.c
(__pthread_mutex_unlock): Likewise.
* sysdeps/mach/hurd/htl/pt-mutex.h (ROBUST_LOCK): Likewise.
(mtx_owned_p): Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
(pthread_mutexattr_getrobust): Likewise.
* sysdeps/mach/hurd/i386/init-first.c (init1): Likewise.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Likewise.
* sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
* sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise.
* sysdeps/mach/hurd/kill.c (__kill): Likewise.
* sysdeps/mach/hurd/mig-reply.c (__mig_get_reply_port): Likewise.
* sysdeps/mach/hurd/ptrace.c (ptrace): Likewise.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/aarch64/sysdep.h (#if condition):
Likewise.
* sysdeps/unix/sysv/linux/alpha/ioperm.c (process_cpuinfo):
Likewise.
* sysdeps/unix/sysv/linux/bits/timex.h (STA_RONLY): Likewise.
* sysdeps/unix/sysv/linux/csky/sysdep.h (#if condition): Likewise.
* sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
(____longjmp_chk): Likewise.
* sysdeps/unix/sysv/linux/generic/futimesat.c (futimesat):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
(INTERNAL_SYSCALL): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
(INTERNAL_SYSCALL): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
(__get_clockfreq_via_cpuinfo): Likewise.
2019-02-26 15:01:50 +00:00
Joseph Myers
04277e02d7
Update copyright dates with scripts/update-copyrights.
...
* All files with FSF copyright notices: Update copyright dates
using scripts/update-copyrights.
* locale/programs/charmap-kw.h: Regenerated.
* locale/programs/locfile-kw.h: Likewise.
2019-01-01 00:11:28 +00:00
Samuel Thibault
7a8f45e302
hurd: Avoid some libc.so PLTs
...
* hurd/catch-signal.c (hurd_catch_signal): Rename to
__hurd_catch_signal.
(hurd_catch_signal): New strong alias.
(hurd_safe_memset, hurd_safe_copyout, hurd_safe_copyin): Call
__hurd_catch_signal instead of hurd_catch_signal.
* hurd/exc2signal.c (_hurd_exception2signal): Add hidden def.
* hurd/hurdexec.c (_hurd_init): Add hidden def.
* hurd/hurdinit.c (_hurd_init): Add hidden def.
* hurd/hurdsig.c: Include <mach/mig_support.h>.
(_hurd_thread_sigstate): Add hidden def.
(_hurd_internal_post_signal): Use __mutex_unlock instead of
mutex_unlock.
* hurd/intern-fd.c (_hurd_intern_fd): Add hidden def.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Add hidden def.
* hurd/path-lookup.c (hurd_file_name_path_lookup): Rename to
__hurd_file_name_path_lookup.
(hurd_file_name_path_lookup): New strong alias.
(file_name_path_lookup): Call __hurd_file_name_path_lookup instead of
hurd_file_name_path_lookup.
* mach/errstring.c (mach_error_type): Add hidden def.
* mach/msg-destroy.c (__mach_msg_destroy): Add hidden def.
* mach/mutex-init.c (__mutex_init): Add hidden def.
* mach/spin-lock.c (__spin_lock_locked, __spin_lock, __spin_unlock,
__spin_try_lock, __mutex_lock, __mutex_trylock): Add hidden defs.
* mach/spin-solid.c (__spin_lock_solid): Add hidden def.
* sysdeps/mach/hurd/getcwd.c
(_hurd_canonicalize_directory_name_internal): Rename to
__hurd_canonicalize_directory_name_internal.
(_hurd_canonicalize_directory_name_internal): New strong alias.
(__canonicalize_directory_name_internal, __getcwd): Call
__hurd_canonicalize_directory_name_internal instead of
_hurd_canonicalize_directory_name_internal.
* sysdeps/mach/hurd/mig-reply.c: Include <mach/mig_support.h>.
(__mig_get_reply_port, __mig_dealloc_reply_port, __mig_init): Add
hidden defs.
* sysdeps/hurd/include/hurd.h: New file.
* sysdeps/hurd/include/hurd/fd.h: New file.
* sysdeps/hurd/include/hurd/signal.h: New file.
* sysdeps/mach/include/lock-intern.h: New file.
* sysdeps/mach/include/mach.h: New file.
* sysdeps/mach/include/mach/mig_support.h: New file.
* sysdeps/mach/include/mach_error.h: New file.
2018-04-02 22:08:55 +00:00
Samuel Thibault
dc33bef307
hurd: Replace threadvars with TLS
...
This gets rid of a lot of kludge and gets closer to other ports.
* hurd/Makefile (headers): Remove threadvar.h.
(inline-headers): Remove threadvar.h.
* hurd/Versions (GLIBC_2.0: Remove __hurd_sigthread_stack_base,
__hurd_sigthread_stack_end, __hurd_sigthread_variables,
__hurd_threadvar_max, __hurd_errno_location.
(HURD_CTHREADS_0.3): Add pthread_getattr_np, pthread_attr_getstack.
* hurd/hurd/signal.h: Do not include <hurd/threadvar.h>.
(_hurd_self_sigstate): Use THREAD_SELF to get _hurd_sigstate.
(_HURD_SIGNAL_H_EXTERN_INLINE): Use THREAD_SELF to get _hurd_sigstate,
unless TLS is not initialized yet, in which case we do not need a
critical section yet anyway.
* hurd/hurd/threadvar.h: Include <tls.h>, do not include
<machine-sp.h>.
(__hurd_sigthread_variables, __hurd_threadvar_max): Remove variables
declarations.
(__hurd_threadvar_index): Remove enum.
(_HURD_THREADVAR_H_EXTERN_INLINE): Remove macro.
(__hurd_threadvar_location_from_sp,__hurd_threadvar_location): Remove
inlines.
(__hurd_reply_port0): New variable declaration.
(__hurd_local_reply_port): New macro.
* hurd/hurdsig.c (__hurd_sigthread_variables): Remove variable.
(interrupted_reply_port_location): Add thread_t parameter. Use it
with THREAD_TCB to access thread-local variables.
(_hurdsig_abort_rpcs): Pass ss->thread to
interrupted_reply_port_location.
(_hurd_internal_post_signal): Likewise.
(_hurdsig_init): Use presence of cthread_fork instead of
__hurd_threadvar_stack_mask to start signal thread by hand.
Remove signal thread threadvar initialization.
* hurd/hurdstartup.c: Do not include <hurd/threadvar.h>
* hurd/sigunwind.c: Include <hurd/threadvar.h>
(_hurdsig_longjmp_from_handler): Use __hurd_local_reply_port instead
of threadvar.
* sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE): Add
__libc_lock_self0.
(ld.GLIBC_2.0): Remove __hurd_sigthread_stack_base,
__hurd_sigthread_stack_end, __hurd_sigthread_variables.
(ld.GLIBC_PRIVATE): Add __libc_lock_self0.
* sysdeps/mach/hurd/cthreads.c: Add __libc_lock_self0.
* sysdeps/mach/hurd/dl-sysdep.c (errno, __hurd_sigthread_stack_base,
__hurd_sigthread_stack_end, __hurd_sigthread_variables, threadvars,
__hurd_threadvar_stack_offset, __hurd_threadvar_stack_mask): Do not
define variables.
* sysdeps/mach/hurd/errno-loc.c: Do not include <errno.h> and
<hurd/threadvar.h>.
[IS_IN(rtld)] (rtld_errno): New variable.
[IS_IN(rtld)] (__errno_location): New weak function.
[!IS_IN(rtld)]: Include "../../../csu/errno-loc.c".
* sysdeps/mach/hurd/errno.c: Remove file.
* sysdeps/mach/hurd/fork.c: Include <hurd/threadvar.h>
(__fork): Remove THREADVAR_SPACE macro and its use.
* sysdeps/mach/hurd/i386/init-first.c (__hurd_threadvar_max): Remove
variable.
(init): Do not initialize threadvar.
* sysdeps/mach/hurd/i386/libc.abilist (__hurd_threadvar_max): Remove
symbol.
* sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use
__hurd_local_reply_port instead of threadvar.
* sysdeps/mach/hurd/i386/tls.h (tcbhead_t): Add reply_port and
_hurd_sigstate fields.
(HURD_DESC_TLS, __LIBC_NO_TLS, THREAD_TCB): New macro.
* sysdeps/mach/hurd/i386/trampoline.c: Remove outdated comment.
* sysdeps/mach/hurd/libc-lock.h: Do not include <hurd/threadvar.h>.
(__libc_lock_owner_self): Use &__libc_lock_self0 and THREAD_SELF
instead of threadvar.
* sysdeps/mach/hurd/libc-tsd.h: Remove file.
* sysdeps/mach/hurd/mig-reply.c (GETPORT, reply_port): Remove macros.
(use_threadvar, global_reply_port): Remove variables.
(__hurd_reply_port0): New variable.
(__mig_get_reply_port): Use __hurd_local_reply_port and
__hurd_reply_port0 instead of threadvar.
(__mig_dealloc_reply_port): Likewise.
(__mig_init): Do not initialize threadvar.
* sysdeps/mach/hurd/profil.c: Fix comment.
2018-03-17 23:29:57 +01:00
Joseph Myers
688903eb3e
Update copyright dates with scripts/update-copyrights.
...
* All files with FSF copyright notices: Update copyright dates
using scripts/update-copyrights.
* locale/programs/charmap-kw.h: Regenerated.
* locale/programs/locfile-kw.h: Likewise.
2018-01-01 00:32:25 +00:00
Joseph Myers
bfff8b1bec
Update copyright dates with scripts/update-copyrights.
2017-01-01 00:14:16 +00:00
Joseph Myers
f7a9f785e5
Update copyright dates with scripts/update-copyrights.
2016-01-04 16:05:18 +00:00
Joseph Myers
b168057aaa
Update copyright dates with scripts/update-copyrights.
2015-01-02 16:29:47 +00:00
Allan McRae
d4697bc93d
Update copyright notices with scripts/update-copyrights
2014-01-01 22:00:23 +10:00
Joseph Myers
568035b787
Update copyright notices with scripts/update-copyrights.
2013-01-02 19:05:09 +00:00
Paul Eggert
59ba27a63a
Replace FSF snail mail address with URLs.
2012-02-09 23:18:22 +00:00
Roland McGrath
bf3534a59e
* sysdeps/mach/hurd/mig-reply.c (reply_port): Don't use ?: as lvalue.
2005-08-05 21:16:35 +00:00
Ulrich Drepper
a334319f65
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6
2.5-18.1
2007-07-12 18:26:36 +00:00
Andreas Jaeger
41bdb6e20c
Update to LGPL v2.1.
...
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2001-07-06 04:58:11 +00:00
Ulrich Drepper
478b92f03a
Update.
...
1997-06-23 23:39 Ulrich Drepper <drepper@cygnus.com>
* string/Makefile (headers): Change bytesex.h to bits/endian.h.
* sysdeps/generic/Makefile: Don't try to generate bytesex.h, but
bits/endian.h.
* math/libm-test.c (lgamma_test): Make sure the test of the ilogb
function will not fail because of exceptions.
* math/math.h: Add warning about use of M_* constants.
Pretty print.
1997-06-23 11:36 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* hurd/path-lookup.c: Change GPL to LGPL, update and reformat
copyright, remove trailing white spaces and send through unexpand.
* inet/netinet/icmp6.h: Likewise.
* inet/netinet/in.h: Likewise.
* inet/netinet/ip6.h: Likewise.
* locale/programs/xmalloc.c: Likewise.
* locale/programs/xstrdup.c: Likewise.
* sysdeps/generic/make_siglist.c: Likewise.
* sysdeps/generic/morecore.c: Likewise.
* sysdeps/generic/sbrk.c: Likewise.
* sysdeps/generic/signame.c: Likewise.
* sysdeps/generic/signame.h: Likewise.
* sysdeps/generic/netinet/inbits.h: Likewise.
* sysdeps/posix/getpagesize.c: Likewise.
* sysdeps/unix/errnos-tmpl.c: Likewise.
* sysdeps/unix/getpagesize.c: Likewise.
* sysdeps/unix/make_errlist.c: Likewise.
* sysdeps/unix/mkfifo.c: Likewise.
* sysdeps/unix/nlist.c: Likewise.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/sysv/linux/netinet/inbits.h: Likewise.
* munch-tmpl.c: Update and reformat copyright, remove trailing
white spaces and send through unexpand.
* libio/clearerr_u.c: Likewise.
* libio/memstream.c: Likewise.
* libio/putc_u.c: Likewise.
* libio/putchar_u.c: Likewise.
* stdio-common/scanf.c: Likewise.
* stdlib/longlong.h: Likewise.
* sysdeps/alpha/__longjmp.c: Likewise.
* sysdeps/alpha/divrem.h: Likewise.
* sysdeps/alpha/machine-gmon.h: Likewise.
* sysdeps/alpha/setjmp_aux.c: Likewise.
* sysdeps/alpha/bits/setjmp.h: Likewise.
* sysdeps/arm/fpu_control.h: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* sysdeps/generic/det_endian.c: Likewise.
* sysdeps/generic/fdatasync.c: Likewise.
* sysdeps/generic/fpu_control.c: Likewise.
* sysdeps/generic/ftime.c: Likewise.
* sysdeps/generic/getdomain.c: Likewise.
* sysdeps/generic/group_member.c: Likewise.
* sysdeps/generic/ldiv.c: Likewise.
* sysdeps/generic/lldiv.c: Likewise.
* sysdeps/generic/lxstat.c: Likewise.
* sysdeps/generic/memcmp.c: Likewise.
* sysdeps/generic/memmem.c: Likewise.
* sysdeps/generic/mig-reply.c: Likewise.
* sysdeps/generic/pagecopy.h: Likewise.
* sysdeps/generic/profil-counter.h: Likewise.
* sysdeps/generic/pselect.c: Likewise.
* sysdeps/generic/setfpucw.c: Likewise.
* sysdeps/generic/stpcpy.c: Likewise.
* sysdeps/generic/uname.c: Likewise.
* sysdeps/generic/varargs.h: Likewise.
* sysdeps/generic/vlimit.c: Likewise.
* sysdeps/generic/bits/sigaction.h: Likewise.
* sysdeps/generic/bits/ustat.h: Likewise.
* sysdeps/generic/netinet/if_ether.h: Likewise.
* sysdeps/generic/sys/swap.h: Likewise.
* sysdeps/generic/sys/sysinfo.h: Likewise.
* sysdeps/i386/init-first.c: Likewise.
* sysdeps/i386/ldbl2mpn.c: Likewise.
* sysdeps/i386/memcopy.h: Likewise.
* sysdeps/i386/i586/memcopy.h: Likewise.
* sysdeps/i860/memcopy.h: Likewise.
* sysdeps/m68k/__longjmp.c: Likewise.
* sysdeps/m68k/fpu_control.h: Likewise.
* sysdeps/m68k/memcopy.h: Likewise.
* sysdeps/m68k/s_isinfl.c: Likewise.
* sysdeps/m68k/s_isnanl.c: Likewise.
* sysdeps/m68k/setjmp.c: Likewise.
* sysdeps/mach/_strerror.c: Likewise.
* sysdeps/mach/getsysstats.c: Likewise.
* sysdeps/mach/mprotect.c: Likewise.
* sysdeps/mach/munmap.c: Likewise.
* sysdeps/mach/pagecopy.h: Likewise.
* sysdeps/mach/start.c: Likewise.
* sysdeps/mach/sysdep.h: Likewise.
* sysdeps/mach/alpha/machine-lock.h: Likewise.
* sysdeps/mach/alpha/machine-sp.h: Likewise.
* sysdeps/mach/alpha/sysdep.h: Likewise.
* sysdeps/mach/alpha/thread_state.h: Likewise.
* sysdeps/mach/hppa/machine-lock.h: Likewise.
* sysdeps/mach/hurd/access.c: Likewise.
* sysdeps/mach/hurd/closedir.c: Likewise.
* sysdeps/mach/hurd/dirstream.h: Likewise.
* sysdeps/mach/hurd/dl-cache.c: Likewise.
* sysdeps/mach/hurd/euidaccess.c: Likewise.
* sysdeps/mach/hurd/fdatasync.c: Likewise.
* sysdeps/mach/hurd/fexecve.c: Likewise.
* sysdeps/mach/hurd/fork.c: Likewise.
* sysdeps/mach/hurd/fpathconf.c: Likewise.
* sysdeps/mach/hurd/fstatfs.c: Likewise.
* sysdeps/mach/hurd/fxstat.c: Likewise.
* sysdeps/mach/hurd/getcwd.c: Likewise.
* sysdeps/mach/hurd/getpriority.c: Likewise.
* sysdeps/mach/hurd/getrlimit.c: Likewise.
* sysdeps/mach/hurd/getsid.c: Likewise.
* sysdeps/mach/hurd/group_member.c: Likewise.
* sysdeps/mach/hurd/kill.c: Likewise.
* sysdeps/mach/hurd/lchown.c: Likewise.
* sysdeps/mach/hurd/lxstat.c: Likewise.
* sysdeps/mach/hurd/mig-reply.c: Likewise.
* sysdeps/mach/hurd/mmap.c: Likewise.
* sysdeps/mach/hurd/opendir.c: Likewise.
* sysdeps/mach/hurd/pathconf.c: Likewise.
* sysdeps/mach/hurd/profil.c: Likewise.
* sysdeps/mach/hurd/ptrace.c: Likewise.
* sysdeps/mach/hurd/readdir.c: Likewise.
* sysdeps/mach/hurd/readdir_r.c: Likewise.
* sysdeps/mach/hurd/send.c: Likewise.
* sysdeps/mach/hurd/sendto.c: Likewise.
* sysdeps/mach/hurd/setpriority.c: Likewise.
* sysdeps/mach/hurd/statfs.c: Likewise.
* sysdeps/mach/hurd/ttyname.c: Likewise.
* sysdeps/mach/hurd/uname.c: Likewise.
* sysdeps/mach/hurd/xstat.c: Likewise.
* sysdeps/mach/hurd/alpha/exc2signal.c: Likewise.
* sysdeps/mach/hurd/alpha/longjmp-ts.c: Likewise.
* sysdeps/mach/hurd/alpha/sigreturn.c: Likewise.
* sysdeps/mach/hurd/alpha/trampoline.c: Likewise.
* sysdeps/mach/hurd/alpha/bits/sigcontext.h: Likewise.
* sysdeps/mach/hurd/hppa/trampoline.c: Likewise.
* sysdeps/mach/hurd/hppa/bits/sigcontext.h: Likewise.
* sysdeps/mach/hurd/i386/exc2signal.c: Likewise.
* sysdeps/mach/hurd/i386/intr-msg.h: Likewise.
* sysdeps/mach/hurd/i386/longjmp-ts.c: Likewise.
* sysdeps/mach/hurd/i386/sigreturn.c: Likewise.
* sysdeps/mach/hurd/i386/trampoline.c: Likewise.
* sysdeps/mach/hurd/i386/bits/sigcontext.h: Likewise.
* sysdeps/mach/hurd/mips/bits/sigcontext.h: Likewise.
* sysdeps/mach/hurd/sys/param.h: Likewise.
* sysdeps/mach/i386/machine-lock.h: Likewise.
* sysdeps/mach/i386/machine-sp.h: Likewise.
* sysdeps/mach/i386/sysdep.h: Likewise.
* sysdeps/mach/i386/thread_state.h: Likewise.
* sysdeps/posix/dup2.c: Likewise.
* sysdeps/posix/flock.c: Likewise.
* sysdeps/posix/getdtsz.c: Likewise.
* sysdeps/posix/gettimeofday.c: Likewise.
* sysdeps/posix/isatty.c: Likewise.
* sysdeps/posix/killpg.c: Likewise.
* sysdeps/posix/mk-stdiolim.c: Likewise.
* sysdeps/posix/profil.c: Likewise.
* sysdeps/posix/remove.c: Likewise.
* sysdeps/posix/rename.c: Likewise.
* sysdeps/posix/sigsuspend.c: Likewise.
* sysdeps/posix/tempname.c: Likewise.
* sysdeps/posix/truncate.c: Likewise.
* sysdeps/posix/utimes.c: Likewise.
* sysdeps/posix/wait.c: Likewise.
* sysdeps/posix/wait3.c: Likewise.
* sysdeps/rs6000/memcopy.h: Likewise.
* sysdeps/sparc/memcopy.h: Likewise.
* sysdeps/standalone/close.c: Likewise.
* sysdeps/standalone/dirstream.h: Likewise.
* sysdeps/standalone/filedesc.h: Likewise.
* sysdeps/standalone/open.c: Likewise.
* sysdeps/standalone/read.c: Likewise.
* sysdeps/standalone/standalone.h: Likewise.
* sysdeps/standalone/write.c: Likewise.
* sysdeps/standalone/bits/stdio_lim.h: Likewise.
* sysdeps/standalone/i386/i386.h: Likewise.
* sysdeps/standalone/m68k/m68020/m68020.h: Likewise.
* sysdeps/stub/__longjmp.c: Likewise.
* sysdeps/stub/accept.c: Likewise.
* sysdeps/stub/access.c: Likewise.
* sysdeps/stub/acct.c: Likewise.
* sysdeps/stub/adjtime.c: Likewise.
* sysdeps/stub/alarm.c: Likewise.
* sysdeps/stub/bind.c: Likewise.
* sysdeps/stub/brk.c: Likewise.
* sysdeps/stub/bsd-_setjmp.c: Likewise.
* sysdeps/stub/bsd-setjmp.c: Likewise.
* sysdeps/stub/chdir.c: Likewise.
* sysdeps/stub/chflags.c: Likewise.
* sysdeps/stub/chmod.c: Likewise.
* sysdeps/stub/chown.c: Likewise.
* sysdeps/stub/chroot.c: Likewise.
* sysdeps/stub/clock.c: Likewise.
* sysdeps/stub/close.c: Likewise.
* sysdeps/stub/closedir.c: Likewise.
* sysdeps/stub/connect.c: Likewise.
* sysdeps/stub/ctermid.c: Likewise.
* sysdeps/stub/cuserid.c: Likewise.
* sysdeps/stub/dbl2mpn.c: Likewise.
* sysdeps/stub/dirstream.h: Likewise.
* sysdeps/stub/dup.c: Likewise.
* sysdeps/stub/dup2.c: Likewise.
* sysdeps/stub/exc2signal.c: Likewise.
* sysdeps/stub/execve.c: Likewise.
* sysdeps/stub/fchflags.c: Likewise.
* sysdeps/stub/fchown.c: Likewise.
* sysdeps/stub/fcntl.c: Likewise.
* sysdeps/stub/fdopen.c: Likewise.
* sysdeps/stub/fexecve.c: Likewise.
* sysdeps/stub/flock.c: Likewise.
* sysdeps/stub/fork.c: Likewise.
* sysdeps/stub/fpathconf.c: Likewise.
* sysdeps/stub/fpu_control.h: Likewise.
* sysdeps/stub/fstatfs.c: Likewise.
* sysdeps/stub/fsync.c: Likewise.
* sysdeps/stub/ftruncate.c: Likewise.
* sysdeps/stub/fxstat.c: Likewise.
* sysdeps/stub/getcwd.c: Likewise.
* sysdeps/stub/getdomain.c: Likewise.
* sysdeps/stub/getdtsz.c: Likewise.
* sysdeps/stub/getegid.c: Likewise.
* sysdeps/stub/geteuid.c: Likewise.
* sysdeps/stub/getgid.c: Likewise.
* sysdeps/stub/getgroups.c: Likewise.
* sysdeps/stub/gethostid.c: Likewise.
* sysdeps/stub/gethostname.c: Likewise.
* sysdeps/stub/getitimer.c: Likewise.
* sysdeps/stub/getpeername.c: Likewise.
* sysdeps/stub/getpgid.c: Likewise.
* sysdeps/stub/getpid.c: Likewise.
* sysdeps/stub/getppid.c: Likewise.
* sysdeps/stub/getpriority.c: Likewise.
* sysdeps/stub/getrlimit.c: Likewise.
* sysdeps/stub/getrusage.c: Likewise.
* sysdeps/stub/getsid.c: Likewise.
* sysdeps/stub/getsockname.c: Likewise.
* sysdeps/stub/getsockopt.c: Likewise.
* sysdeps/stub/getsysstats.c: Likewise.
* sysdeps/stub/gettimeofday.c: Likewise.
* sysdeps/stub/getuid.c: Likewise.
* sysdeps/stub/gtty.c: Likewise.
* sysdeps/stub/if_index.c: Likewise.
* sysdeps/stub/init-posix.c: Likewise.
* sysdeps/stub/ioctl.c: Likewise.
* sysdeps/stub/isatty.c: Likewise.
* sysdeps/stub/isfdtype.c: Likewise.
* sysdeps/stub/jmp-unwind.c: Likewise.
* sysdeps/stub/kill.c: Likewise.
* sysdeps/stub/killpg.c: Likewise.
* sysdeps/stub/ldbl2mpn.c: Likewise.
* sysdeps/stub/link.c: Likewise.
* sysdeps/stub/listen.c: Likewise.
* sysdeps/stub/lockfile.c: Likewise.
* sysdeps/stub/longjmp-ts.c: Likewise.
* sysdeps/stub/lseek.c: Likewise.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/stub/machine-lock.h: Likewise.
* sysdeps/stub/machine-sp.h: Likewise.
* sysdeps/stub/madvise.c: Likewise.
* sysdeps/stub/mkdir.c: Likewise.
* sysdeps/stub/mkfifo.c: Likewise.
* sysdeps/stub/mmap.c: Likewise.
* sysdeps/stub/morecore.c: Likewise.
* sysdeps/stub/mpn2dbl.c: Likewise.
* sysdeps/stub/mpn2flt.c: Likewise.
* sysdeps/stub/mpn2ldbl.c: Likewise.
* sysdeps/stub/mprotect.c: Likewise.
* sysdeps/stub/msgctl.c: Likewise.
* sysdeps/stub/msgget.c: Likewise.
* sysdeps/stub/msgrcv.c: Likewise.
* sysdeps/stub/msgsnd.c: Likewise.
* sysdeps/stub/munmap.c: Likewise.
* sysdeps/stub/nanosleep.c: Likewise.
* sysdeps/stub/nice.c: Likewise.
* sysdeps/stub/nlist.c: Likewise.
* sysdeps/stub/open.c: Likewise.
* sysdeps/stub/opendir.c: Likewise.
* sysdeps/stub/pathconf.c: Likewise.
* sysdeps/stub/pause.c: Likewise.
* sysdeps/stub/pipestream.c: Likewise.
* sysdeps/stub/poll.c: Likewise.
* sysdeps/stub/profil.c: Likewise.
* sysdeps/stub/ptrace.c: Likewise.
* sysdeps/stub/putenv.c: Likewise.
* sysdeps/stub/read.c: Likewise.
* sysdeps/stub/readdir.c: Likewise.
* sysdeps/stub/readdir_r.c: Likewise.
* sysdeps/stub/readlink.c: Likewise.
* sysdeps/stub/reboot.c: Likewise.
* sysdeps/stub/recv.c: Likewise.
* sysdeps/stub/recvfrom.c: Likewise.
* sysdeps/stub/recvmsg.c: Likewise.
* sysdeps/stub/remove.c: Likewise.
* sysdeps/stub/rename.c: Likewise.
* sysdeps/stub/revoke.c: Likewise.
* sysdeps/stub/rewinddir.c: Likewise.
* sysdeps/stub/rmdir.c: Likewise.
* sysdeps/stub/sbrk.c: Likewise.
* sysdeps/stub/sched_getp.c: Likewise.
* sysdeps/stub/sched_gets.c: Likewise.
* sysdeps/stub/sched_primax.c: Likewise.
* sysdeps/stub/sched_primin.c: Likewise.
* sysdeps/stub/sched_rr_gi.c: Likewise.
* sysdeps/stub/sched_setp.c: Likewise.
* sysdeps/stub/sched_sets.c: Likewise.
* sysdeps/stub/sched_yield.c: Likewise.
* sysdeps/stub/seekdir.c: Likewise.
* sysdeps/stub/select.c: Likewise.
* sysdeps/stub/semctl.c: Likewise.
* sysdeps/stub/semget.c: Likewise.
* sysdeps/stub/semop.c: Likewise.
* sysdeps/stub/send.c: Likewise.
* sysdeps/stub/sendmsg.c: Likewise.
* sysdeps/stub/sendto.c: Likewise.
* sysdeps/stub/setdomain.c: Likewise.
* sysdeps/stub/setegid.c: Likewise.
* sysdeps/stub/setenv.c: Likewise.
* sysdeps/stub/seteuid.c: Likewise.
* sysdeps/stub/setgid.c: Likewise.
* sysdeps/stub/setgroups.c: Likewise.
* sysdeps/stub/sethostid.c: Likewise.
* sysdeps/stub/sethostname.c: Likewise.
* sysdeps/stub/setjmp.c: Likewise.
* sysdeps/stub/setlogin.c: Likewise.
* sysdeps/stub/setpgid.c: Likewise.
* sysdeps/stub/setpriority.c: Likewise.
* sysdeps/stub/setregid.c: Likewise.
* sysdeps/stub/setreuid.c: Likewise.
* sysdeps/stub/setrlimit.c: Likewise.
* sysdeps/stub/setsid.c: Likewise.
* sysdeps/stub/setsockopt.c: Likewise.
* sysdeps/stub/settimeofday.c: Likewise.
* sysdeps/stub/setuid.c: Likewise.
* sysdeps/stub/shmctl.c: Likewise.
* sysdeps/stub/shmget.c: Likewise.
* sysdeps/stub/shutdown.c: Likewise.
* sysdeps/stub/sigaction.c: Likewise.
* sysdeps/stub/sigaltstack.c: Likewise.
* sysdeps/stub/sigblock.c: Likewise.
* sysdeps/stub/sigintr.c: Likewise.
* sysdeps/stub/sigpending.c: Likewise.
* sysdeps/stub/sigprocmask.c: Likewise.
* sysdeps/stub/sigreturn.c: Likewise.
* sysdeps/stub/sigsetmask.c: Likewise.
* sysdeps/stub/sigstack.c: Likewise.
* sysdeps/stub/sigsuspend.c: Likewise.
* sysdeps/stub/sigvec.c: Likewise.
* sysdeps/stub/socket.c: Likewise.
* sysdeps/stub/socketpair.c: Likewise.
* sysdeps/stub/sstk.c: Likewise.
* sysdeps/stub/statfs.c: Likewise.
* sysdeps/stub/stdio_init.c: Likewise.
* sysdeps/stub/stime.c: Likewise.
* sysdeps/stub/stty.c: Likewise.
* sysdeps/stub/swapoff.c: Likewise.
* sysdeps/stub/swapon.c: Likewise.
* sysdeps/stub/symlink.c: Likewise.
* sysdeps/stub/sync.c: Likewise.
* sysdeps/stub/syscall.c: Likewise.
* sysdeps/stub/sysd-stdio.c: Likewise.
* sysdeps/stub/system.c: Likewise.
* sysdeps/stub/tcdrain.c: Likewise.
* sysdeps/stub/tcflow.c: Likewise.
* sysdeps/stub/tcflush.c: Likewise.
* sysdeps/stub/tcgetattr.c: Likewise.
* sysdeps/stub/tcgetpgrp.c: Likewise.
* sysdeps/stub/tcsendbrk.c: Likewise.
* sysdeps/stub/tcsetpgrp.c: Likewise.
* sysdeps/stub/telldir.c: Likewise.
* sysdeps/stub/thread_state.h: Likewise.
* sysdeps/stub/time.c: Likewise.
* sysdeps/stub/times.c: Likewise.
* sysdeps/stub/trampoline.c: Likewise.
* sysdeps/stub/truncate.c: Likewise.
* sysdeps/stub/ttyname.c: Likewise.
* sysdeps/stub/ttyname_r.c: Likewise.
* sysdeps/stub/ualarm.c: Likewise.
* sysdeps/stub/ulimit.c: Likewise.
* sysdeps/stub/umask.c: Likewise.
* sysdeps/stub/unlink.c: Likewise.
* sysdeps/stub/usleep.c: Likewise.
* sysdeps/stub/ustat.c: Likewise.
* sysdeps/stub/utime.c: Likewise.
* sysdeps/stub/utimes.c: Likewise.
* sysdeps/stub/vdprintf.c: Likewise.
* sysdeps/stub/vhangup.c: Likewise.
* sysdeps/stub/wait.c: Likewise.
* sysdeps/stub/wait3.c: Likewise.
* sysdeps/stub/wait4.c: Likewise.
* sysdeps/stub/waitpid.c: Likewise.
* sysdeps/stub/write.c: Likewise.
* sysdeps/stub/xmknod.c: Likewise.
* sysdeps/stub/xstat.c: Likewise.
* sysdeps/stub/bits/errno.h: Likewise.
* sysdeps/stub/bits/sigcontext.h: Likewise.
* sysdeps/unix/fxstat.c: Likewise.
* sysdeps/unix/mk-local_lim.c: Likewise.
* sysdeps/unix/mkdir.c: Likewise.
* sysdeps/unix/nice.c: Likewise.
* sysdeps/unix/rmdir.c: Likewise.
* sysdeps/unix/stime.c: Likewise.
* sysdeps/unix/telldir.c: Likewise.
* sysdeps/unix/xstat.c: Likewise.
* sysdeps/unix/arm/sysdep.h: Likewise.
* sysdeps/unix/bsd/ftime.c: Likewise.
* sysdeps/unix/bsd/isatty.c: Likewise.
* sysdeps/unix/bsd/setegid.c: Likewise.
* sysdeps/unix/bsd/seteuid.c: Likewise.
* sysdeps/unix/bsd/setsid.c: Likewise.
* sysdeps/unix/bsd/sigaction.c: Likewise.
* sysdeps/unix/bsd/sigprocmask.c: Likewise.
* sysdeps/unix/bsd/tcgetattr.c: Likewise.
* sysdeps/unix/bsd/tcsetattr.c: Likewise.
* sysdeps/unix/bsd/times.c: Likewise.
* sysdeps/unix/bsd/ulimit.c: Likewise.
* sysdeps/unix/bsd/bits/dirent.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/tcdrain.c: Likewise.
* sysdeps/unix/bsd/bsd4.4/wait.c: Likewise.
* sysdeps/unix/bsd/bsd4.4/waitpid.c: Likewise.
* sysdeps/unix/bsd/hp/m68k/sysdep.h: Likewise.
* sysdeps/unix/bsd/osf/alpha/sysdep.h: Likewise.
* sysdeps/unix/bsd/sequent/i386/sysdep.h: Likewise.
* sysdeps/unix/bsd/sony/newsos/m68k/sysdep.h: Likewise.
* sysdeps/unix/bsd/sun/m68k/sigtramp.c: Likewise.
* sysdeps/unix/bsd/sun/m68k/sysdep.h: Likewise.
* sysdeps/unix/bsd/sun/m68k/bits/sigcontext.h: Likewise.
* sysdeps/unix/bsd/sun/sparc/sigtramp.c: Likewise.
* sysdeps/unix/bsd/sun/sparc/bits/sigcontext.h: Likewise.
* sysdeps/unix/bsd/sun/sunos4/mmap.c: Likewise.
* sysdeps/unix/bsd/sun/sunos4/speed.c: Likewise.
* sysdeps/unix/bsd/ultrix4/sysconf.c: Likewise.
* sysdeps/unix/bsd/ultrix4/bits/posix_opt.h: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h: Likewise.
* sysdeps/unix/bsd/vax/sysdep.h: Likewise.
* sysdeps/unix/common/lxstat.c: Likewise.
* sysdeps/unix/common/tcsendbrk.c: Likewise.
* sysdeps/unix/common/bits/dirent.h: Likewise.
* sysdeps/unix/i386/sysdep.h: Likewise.
* sysdeps/unix/mips/sysdep.h: Likewise.
* sysdeps/unix/sysv/setrlimit.c: Likewise.
* sysdeps/unix/sysv/settimeofday.c: Likewise.
* sysdeps/unix/sysv/sigaction.c: Likewise.
* sysdeps/unix/sysv/sysv_termio.h: Likewise.
* sysdeps/unix/sysv/tcdrain.c: Likewise.
* sysdeps/unix/sysv/tcflow.c: Likewise.
* sysdeps/unix/sysv/tcflush.c: Likewise.
* sysdeps/unix/sysv/tcgetattr.c: Likewise.
* sysdeps/unix/sysv/tcsendbrk.c: Likewise.
* sysdeps/unix/sysv/tcsetattr.c: Likewise.
* sysdeps/unix/sysv/bits/dirent.h: Likewise.
* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
* sysdeps/unix/sysv/irix4/setpriority.c: Likewise.
* sysdeps/unix/sysv/irix4/bits/confname.h: Likewise.
* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
* sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/gethostname.c: Likewise.
* sysdeps/unix/sysv/linux/if_index.c: Likewise.
* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
* sysdeps/unix/sysv/linux/reboot.c: Likewise.
* sysdeps/unix/sysv/linux/speed.c: Likewise.
* sysdeps/unix/sysv/linux/sysctl.c: Likewise.
* sysdeps/unix/sysv/linux/tcdrain.c: Likewise.
* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
* sysdeps/unix/sysv/linux/waitpid.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/signum.h: Likewise.
* sysdeps/unix/sysv/linux/i386/profil-counter.h: Likewise.
* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
* sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/sco3.2.4/bits/confname.h: Likewise.
* sysdeps/unix/sysv/sco3.2.4/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c: Likewise.
* sysdeps/unix/sysv/sysv4/siginfo.h: Likewise.
* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
* sysdeps/unix/sysv/sysv4/sysconfig.h: Likewise.
* sysdeps/unix/sysv/sysv4/waitpid.c: Likewise.
* sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/sysv4/i386/sysdep.h: Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h: Likewise.
* sysdeps/vax/fl.h: Likewise.
* sysdeps/vax/setjmp.c: Likewise.
1997-06-21 16:58 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdlib/strtod.c (INTERNAL (STRTOF)): Fix recognition of Infinity
and NaN strings.
1997-06-20 21:52 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/bits/mathinline.h (__scalbn): Fix type of second
argument.
(__ilogb): Remove special case for zero, add stupid special case
for NaN.
(__ieee754_scalb): Remove definition.
* sysdeps/m68k/fpu/mathbits.h (FP_ILOGB0, FP_ILOGBNAN): Define.
* sysdeps/m68k/fpu/s_scalbn.c: Fix type of second argument.
* sysdeps/m68k/fpu/e_scalb.c: Rewritten.
* sysdeps/m68k/fpu/e_scalbf.c: Adapted.
* sysdeps/m68k/fpu/e_scalbl.c: Adapted.
* sysdeps/libm-ieee754/e_scalb.c: Raise no exceptions when
returning NaN. Handle zero specially.
* sysdeps/libm-ieee754/e_scalbf.c: Likewise.
* sysdeps/libm-ieee754/e_scalbl.c: Likewise.
* math/libm-test.c (ilogb_test): Don't require exceptions for zero
and NaN.
(gamma_test): Use different argument when checking whether
function is implemented.
(scalb_test): Remove duplicate tests.
1997-06-03 15:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules (+depfiles): Add dependencies for $(test-srcs).
(distinfo-vars): Add test-srcs.
1997-06-23 21:55:26 +00:00
Miles Bader
aa0e1b599c
(__mig_dealloc_reply_port): Only attempt to destroy PORT if it's a valid port name.
1996-04-06 01:49:21 +00:00
Roland McGrath
28f540f45b
initial import
1995-02-18 01:27:10 +00:00