mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
1998-07-22 Ulrich Drepper <drepper@cygnus.com> * Makefile (headers2_0): Add sigstack.h. * sysdeps/unix/sysv/linux/alpha/getrusage.S: Also define __getrusage. 1998-07-22 11:43 Ulrich Drepper <drepper@cygnus.com> * libio/fileops.c (_IO_file_sync): Don't lock stream here. Reported by Thorsten Kukuk. * string/strcoll.c: Correct problem with empty strings. * string/strxfrm.c: Likewise. Reported by vbzoli@hbrt.hu [PR libc/719]. 1998-07-21 18:40 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/posix/tempname.c: Use the random-name generator already used by mktemp/mkstemp. Honor TMPDIR. 1998-07-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * hurd/Makefile (routines): Remove cthreads. * sysdeps/mach/hurd/Makefile (sysdep_routines): Add cthreads. * sysdeps/unix/sysv/linux/i386/Dist: Add missing files. * manual/Makefile (distribute): Add summary.texi. 1998-07-21 16:08 Zack Weinberg <zack@rabi.phys.columbia.edu>
This commit is contained in:
31
ChangeLog
31
ChangeLog
@ -1,3 +1,32 @@
|
|||||||
|
1998-07-22 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile (headers2_0): Add sigstack.h.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/getrusage.S: Also define __getrusage.
|
||||||
|
|
||||||
|
1998-07-22 11:43 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* libio/fileops.c (_IO_file_sync): Don't lock stream here.
|
||||||
|
Reported by Thorsten Kukuk.
|
||||||
|
|
||||||
|
* string/strcoll.c: Correct problem with empty strings.
|
||||||
|
* string/strxfrm.c: Likewise.
|
||||||
|
Reported by vbzoli@hbrt.hu [PR libc/719].
|
||||||
|
|
||||||
|
1998-07-21 18:40 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||||
|
|
||||||
|
* sysdeps/posix/tempname.c: Use the random-name generator
|
||||||
|
already used by mktemp/mkstemp. Honor TMPDIR.
|
||||||
|
|
||||||
|
1998-07-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* hurd/Makefile (routines): Remove cthreads.
|
||||||
|
* sysdeps/mach/hurd/Makefile (sysdep_routines): Add cthreads.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/Dist: Add missing files.
|
||||||
|
|
||||||
|
* manual/Makefile (distribute): Add summary.texi.
|
||||||
|
|
||||||
1998-07-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
1998-07-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Fix typo.
|
* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Fix typo.
|
||||||
@ -9,7 +38,7 @@
|
|||||||
* configure.in: Move test for available port after machine
|
* configure.in: Move test for available port after machine
|
||||||
variable is defined.
|
variable is defined.
|
||||||
|
|
||||||
1998-07-21 16:08 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
1998-07-21 16:08 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/sendmsg.c: If passing a SCM_CREDS
|
* sysdeps/unix/sysv/linux/sendmsg.c: If passing a SCM_CREDS
|
||||||
message, copy the buffer and resize it to what the kernel
|
message, copy the buffer and resize it to what the kernel
|
||||||
|
2
Makefile
2
Makefile
@ -306,7 +306,7 @@ headers2_0 := __math.h bytesex.h confname.h direntry.h elfclass.h \
|
|||||||
utmpbits.h utsnamelen.h waitflags.h waitstatus.h \
|
utmpbits.h utsnamelen.h waitflags.h waitstatus.h \
|
||||||
xopen_lim.h gnu/types.h sys/ipc_buf.h \
|
xopen_lim.h gnu/types.h sys/ipc_buf.h \
|
||||||
sys/kernel_termios.h sys/msq_buf.h sys/sem_buf.h \
|
sys/kernel_termios.h sys/msq_buf.h sys/sem_buf.h \
|
||||||
sys/shm_buf.h sys/socketcall.h
|
sys/shm_buf.h sys/socketcall.h sigstack.h
|
||||||
|
|
||||||
.PHONY: remove-old-headers
|
.PHONY: remove-old-headers
|
||||||
remove-old-headers:
|
remove-old-headers:
|
||||||
|
@ -42,7 +42,6 @@ routines = hurdstartup hurdinit \
|
|||||||
hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
|
hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
|
||||||
get-host set-host \
|
get-host set-host \
|
||||||
path-lookup \
|
path-lookup \
|
||||||
cthreads \
|
|
||||||
setauth \
|
setauth \
|
||||||
pid2task task2pid \
|
pid2task task2pid \
|
||||||
getuids setuids getumask fchroot \
|
getuids setuids getumask fchroot \
|
||||||
|
@ -434,8 +434,6 @@ _IO_file_sync (fp)
|
|||||||
_IO_size_t delta;
|
_IO_size_t delta;
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
|
|
||||||
_IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
|
|
||||||
_IO_flockfile (fp);
|
|
||||||
/* char* ptr = cur_ptr(); */
|
/* char* ptr = cur_ptr(); */
|
||||||
if (fp->_IO_write_ptr > fp->_IO_write_base)
|
if (fp->_IO_write_ptr > fp->_IO_write_base)
|
||||||
if (_IO_do_flush(fp)) return EOF;
|
if (_IO_do_flush(fp)) return EOF;
|
||||||
@ -460,8 +458,6 @@ _IO_file_sync (fp)
|
|||||||
fp->_offset = _IO_pos_BAD;
|
fp->_offset = _IO_pos_BAD;
|
||||||
/* FIXME: Cleanup - can this be shared? */
|
/* FIXME: Cleanup - can this be shared? */
|
||||||
/* setg(base(), ptr, ptr); */
|
/* setg(base(), ptr, ptr); */
|
||||||
_IO_funlockfile (fp);
|
|
||||||
_IO_cleanup_region_end (0);
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ doc-only-dist = Makefile COPYING.LIB
|
|||||||
distribute = $(minimal-dist) $(examples) texis stdio-fp.c \
|
distribute = $(minimal-dist) $(examples) texis stdio-fp.c \
|
||||||
libc.info* libc.?? libc.??s texinfo.tex stamp-summary \
|
libc.info* libc.?? libc.??s texinfo.tex stamp-summary \
|
||||||
xtract-typefun.awk dir-add.texinfo dir-add.info dir \
|
xtract-typefun.awk dir-add.texinfo dir-add.info dir \
|
||||||
chapters.texi top-menu.texi
|
chapters.texi top-menu.texi summary.texi
|
||||||
export distribute := $(distribute)
|
export distribute := $(distribute)
|
||||||
|
|
||||||
tar-it = tar chovf $@ $^
|
tar-it = tar chovf $@ $^
|
||||||
|
@ -82,6 +82,12 @@ STRCOLL (s1, s2, l)
|
|||||||
if (collate_nrules == 0)
|
if (collate_nrules == 0)
|
||||||
return STRCMP (s1, s2);
|
return STRCMP (s1, s2);
|
||||||
|
|
||||||
|
/* Handle empty strings as a special case. */
|
||||||
|
if (*s1 == '\0')
|
||||||
|
return *s2 == '\0' ? 0 : -1;
|
||||||
|
else if (*s2 == '\0')
|
||||||
|
return 1;
|
||||||
|
|
||||||
/* Get full information about the strings. This means we get
|
/* Get full information about the strings. This means we get
|
||||||
information for all passes in a special data structure. */
|
information for all passes in a special data structure. */
|
||||||
get_string (s1, s1forw, s1backw);
|
get_string (s1, s1forw, s1backw);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
|
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
|
||||||
|
|
||||||
@ -184,6 +184,14 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
|
|||||||
return STRLEN (src);
|
return STRLEN (src);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Handle an empty string as a special case. */
|
||||||
|
if (*src == '\0')
|
||||||
|
{
|
||||||
|
if (n != 0)
|
||||||
|
*dest = '\0';
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Get full information about the string. This means we get
|
/* Get full information about the string. This means we get
|
||||||
information for all passes in a special data structure. */
|
information for all passes in a special data structure. */
|
||||||
get_string (src, forw, backw);
|
get_string (src, forw, backw);
|
||||||
|
@ -126,5 +126,8 @@ ifeq (elf,$(subdir))
|
|||||||
$(objpfx)librtld.os: $(rpcuserlibs:.so=_pic.a)
|
$(objpfx)librtld.os: $(rpcuserlibs:.so=_pic.a)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq (hurd, $(subdir))
|
||||||
|
sysdep_routines += cthreads
|
||||||
|
endif
|
||||||
|
|
||||||
endif # in-Makerules
|
endif # in-Makerules
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
|
/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -16,15 +16,17 @@
|
|||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
#ifdef USE_IN_LIBIO
|
#ifdef USE_IN_LIBIO
|
||||||
# include "libioP.h"
|
# include "libioP.h"
|
||||||
@ -87,14 +89,11 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir,
|
|||||||
{
|
{
|
||||||
int saverrno = errno;
|
int saverrno = errno;
|
||||||
static const char tmpdir[] = P_tmpdir;
|
static const char tmpdir[] = P_tmpdir;
|
||||||
static size_t indices[2];
|
size_t plen, dlen, len;
|
||||||
size_t *idx;
|
char *XXXXXX;
|
||||||
#if 0
|
static uint64_t value;
|
||||||
static pid_t oldpid = (pid_t) 0;
|
struct timeval tv;
|
||||||
#endif
|
int count;
|
||||||
pid_t pid = __getpid();
|
|
||||||
register size_t len, plen, dlen;
|
|
||||||
int wrapped;
|
|
||||||
|
|
||||||
if (dir_search)
|
if (dir_search)
|
||||||
{
|
{
|
||||||
@ -132,56 +131,37 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir,
|
|||||||
else
|
else
|
||||||
plen = 0;
|
plen = 0;
|
||||||
|
|
||||||
if (dir != tmpdir && !strcmp (dir, tmpdir))
|
len = __snprintf (buf, bufsize, "%.*s/%.*sXXXXXX",
|
||||||
dir = tmpdir;
|
(int) dlen, dir, (int) plen, pfx);
|
||||||
idx = &indices[(plen == 0 && dir == tmpdir) ? 1 : 0];
|
|
||||||
|
|
||||||
#if 0
|
if (len < dlen + plen + 7)
|
||||||
/* XXX Is this ever useful??? At least when using a thread package
|
{
|
||||||
which uses different PIDs for the threads it is not helpful. */
|
__set_errno (EINVAL);
|
||||||
if (pid != oldpid)
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
XXXXXX = &buf[dlen + plen + 1];
|
||||||
|
|
||||||
|
/* Get some more or less random data. */
|
||||||
|
__gettimeofday (&tv, NULL);
|
||||||
|
value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ __getpid ();
|
||||||
|
|
||||||
|
for (count = 0; count < TMP_MAX; value += 7777, ++count)
|
||||||
{
|
{
|
||||||
oldpid = pid;
|
uint64_t v = value;
|
||||||
indices[0] = indices[1] = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
wrapped = 0; /* We have not yet wrapped around the index counter. */
|
/* Fill in the random bits. */
|
||||||
len = dlen + 1 + plen + 5 + 3;
|
XXXXXX[0] = letters[v % 62];
|
||||||
while (1)
|
v /= 62;
|
||||||
{
|
XXXXXX[1] = letters[v % 62];
|
||||||
size_t i;
|
v /= 62;
|
||||||
|
XXXXXX[2] = letters[v % 62];
|
||||||
if (*idx >= ((sizeof (letters) - 1) * (sizeof (letters) - 1) *
|
v /= 62;
|
||||||
(sizeof (letters) - 1)))
|
XXXXXX[3] = letters[v % 62];
|
||||||
{
|
v /= 62;
|
||||||
if (wrapped)
|
XXXXXX[4] = letters[v % 62];
|
||||||
/* We really wrapped around this call. Can't believe it
|
v /= 62;
|
||||||
but nevertheless stop the endless loop. */
|
XXXXXX[5] = letters[v % 62];
|
||||||
break;
|
|
||||||
|
|
||||||
indices[0] = indices[1] = 0;
|
|
||||||
wrapped = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
i = (*idx)++;
|
|
||||||
|
|
||||||
/* Construct a file name and see if it already exists.
|
|
||||||
|
|
||||||
We use a single counter in *IDX to cycle each of three
|
|
||||||
character positions through each of 62 possible letters. */
|
|
||||||
|
|
||||||
if (__snprintf (buf, bufsize, "%.*s/%.*s%.5d%c%c%c",
|
|
||||||
(int) dlen, dir, (int) plen,
|
|
||||||
pfx, pid % 100000,
|
|
||||||
letters[i % (sizeof (letters) - 1)],
|
|
||||||
letters[(i / (sizeof (letters) - 1))
|
|
||||||
% (sizeof (letters) - 1)],
|
|
||||||
letters[(i / ((sizeof (letters) - 1) *
|
|
||||||
(sizeof (letters) - 1)))
|
|
||||||
% (sizeof (letters) - 1)]
|
|
||||||
) != (int) len)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (streamptr != NULL)
|
if (streamptr != NULL)
|
||||||
{
|
{
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||||
#define GETRUSAGE __getrusage_tv64
|
#define GETRUSAGE __getrusage_tv64
|
||||||
#else
|
#else
|
||||||
#define GETRUSAGE getrusage
|
#define GETRUSAGE __getrusage
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LEAF(GETRUSAGE, 16)
|
LEAF(GETRUSAGE, 16)
|
||||||
@ -131,5 +131,9 @@ $error:
|
|||||||
END(GETRUSAGE)
|
END(GETRUSAGE)
|
||||||
|
|
||||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||||
|
strong_alias(__getrusage_tv64, ____getrusage_tv64)
|
||||||
|
default_symbol_version (____getrusage_tv64, __getrusage, GLIBC_2.1)
|
||||||
default_symbol_version (__getrusage_tv64, getrusage, GLIBC_2.1)
|
default_symbol_version (__getrusage_tv64, getrusage, GLIBC_2.1)
|
||||||
|
#else
|
||||||
|
weak_alias(__getrusage, getrusage)
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,3 +4,7 @@ s_pwrite64.S
|
|||||||
s_pread64.S
|
s_pread64.S
|
||||||
sys/perm.h
|
sys/perm.h
|
||||||
sys/vm86.h
|
sys/vm86.h
|
||||||
|
sys/elf.h
|
||||||
|
sys/procfs.h
|
||||||
|
sys/reg.h
|
||||||
|
sys/user.h
|
||||||
|
Reference in New Issue
Block a user