]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 22 Jul 1998 16:54:32 +0000 (16:54 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 22 Jul 1998 16:54:32 +0000 (16:54 +0000)
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>

ChangeLog
Makefile
hurd/Makefile
libio/fileops.c
manual/Makefile
string/strcoll.c
string/strxfrm.c
sysdeps/mach/hurd/Makefile
sysdeps/posix/tempname.c
sysdeps/unix/sysv/linux/alpha/getrusage.S
sysdeps/unix/sysv/linux/i386/Dist

index 60c678ee4d0f067c38517c48609ffbf16bcff398..a6b2ae30547946b3e0c9631d5691f25b03349bdd 100644 (file)
--- a/ChangeLog
+++ b/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>
 
        * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Fix typo.
@@ -9,7 +38,7 @@
        * configure.in: Move test for available port after machine
        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
        message, copy the buffer and resize it to what the kernel
index 431652c038f3eb5ddc701da2f69c30cfab27f3c6..030d66029cd958f5bfc74b0703cd6a55a93a1884 100644 (file)
--- a/Makefile
+++ b/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        \
                xopen_lim.h gnu/types.h sys/ipc_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
 remove-old-headers:
index 40440adc078fec9da08223ec66b1df4ff269b0c3..441c66c78c754d2c6a4f40f699d161bb05480ea4 100644 (file)
@@ -42,7 +42,6 @@ routines = hurdstartup hurdinit \
           hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
           get-host set-host \
           path-lookup \
-          cthreads \
           setauth \
           pid2task task2pid \
           getuids setuids getumask fchroot \
index 82e521af6b1fafc49736a9b9903e0776dcf34d2e..0192531c185effa6c1b784a1fb2d093f5884fee0 100644 (file)
@@ -434,8 +434,6 @@ _IO_file_sync (fp)
   _IO_size_t delta;
   int retval = 0;
 
-  _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
-  _IO_flockfile (fp);
   /*    char* ptr = cur_ptr(); */
   if (fp->_IO_write_ptr > fp->_IO_write_base)
     if (_IO_do_flush(fp)) return EOF;
@@ -460,8 +458,6 @@ _IO_file_sync (fp)
     fp->_offset = _IO_pos_BAD;
   /* FIXME: Cleanup - can this be shared? */
   /*    setg(base(), ptr, ptr); */
-  _IO_funlockfile (fp);
-  _IO_cleanup_region_end (0);
   return retval;
 }
 
index 47656c6c7f040dff389979528c5e6d509da06a2f..2314c0c93df67b4ff8cf6be0c95d6d310f18d7fd 100644 (file)
@@ -111,7 +111,7 @@ doc-only-dist = Makefile COPYING.LIB
 distribute = $(minimal-dist) $(examples) texis stdio-fp.c              \
             libc.info* libc.?? libc.??s texinfo.tex stamp-summary      \
             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)
 
 tar-it = tar chovf $@ $^
index cc39820fcf064588c082c5dc9457419ff4499060..8457ef8df1e4c18a45a8885a55b22a7befd3c1e2 100644 (file)
@@ -82,6 +82,12 @@ STRCOLL (s1, s2, l)
   if (collate_nrules == 0)
     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
      information for all passes in a special data structure.  */
   get_string (s1, s1forw, s1backw);
index 8222adf4359dab6f99f4855179f0e2b47cf7732a..795e8e4a733c8dd8e4f21368061253f4f9ec41cf 100644 (file)
@@ -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.
    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);
     }
 
+  /* 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
      information for all passes in a special data structure.  */
   get_string (src, forw, backw);
index f4251024b1ba654621f0ed103d424092dc41aade..c4282d1754e32ce62686c510e154e71746b3f2de 100644 (file)
@@ -126,5 +126,8 @@ ifeq (elf,$(subdir))
 $(objpfx)librtld.os: $(rpcuserlibs:.so=_pic.a)
 endif
 \f
+ifeq (hurd, $(subdir))
+sysdep_routines += cthreads
+endif
 
 endif  # in-Makerules
index 291817c9ef37507ddc19a7dc8218b9ba7f58398d..82e024313276f91b1320855f5a530c4049f4141c 100644 (file)
@@ -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.
 
    The GNU C Library is free software; you can redistribute it and/or
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <errno.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <sys/time.h>
 
 #ifdef USE_IN_LIBIO
 # include "libioP.h"
@@ -87,14 +89,11 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir,
 {
   int saverrno = errno;
   static const char tmpdir[] = P_tmpdir;
-  static size_t indices[2];
-  size_t *idx;
-#if 0
-  static pid_t oldpid = (pid_t) 0;
-#endif
-  pid_t pid = __getpid();
-  register size_t len, plen, dlen;
-  int wrapped;
+  size_t plen, dlen, len;
+  char *XXXXXX;
+  static uint64_t value;
+  struct timeval tv;
+  int count;
 
   if (dir_search)
     {
@@ -132,56 +131,37 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir,
   else
     plen = 0;
 
-  if (dir != tmpdir && !strcmp (dir, tmpdir))
-    dir = tmpdir;
-  idx = &indices[(plen == 0 && dir == tmpdir) ? 1 : 0];
-
-#if 0
-  /* XXX Is this ever useful???  At least when using a thread package
-     which uses different PIDs for the threads it is not helpful.  */
-  if (pid != oldpid)
-    {
-      oldpid = pid;
-      indices[0] = indices[1] = 0;
-    }
-#endif
-
-  wrapped = 0; /* We have not yet wrapped around the index counter.  */
-  len = dlen + 1 + plen + 5 + 3;
-  while (1)
-    {
-      size_t i;
+  len = __snprintf (buf, bufsize, "%.*s/%.*sXXXXXX",
+             (int) dlen, dir, (int) plen, pfx);
 
-      if (*idx >= ((sizeof (letters) - 1) * (sizeof (letters) - 1) *
-                  (sizeof (letters) - 1)))
-       {
-         if (wrapped)
-           /* We really wrapped around this call.  Can't believe it
-              but nevertheless stop the endless loop.  */
-           break;
+  if (len < dlen + plen + 7)
+  {
+      __set_errno (EINVAL);
+      return NULL;
+  }
 
-         indices[0] = indices[1] = 0;
-         wrapped = 1;
-       }
-
-      i = (*idx)++;
+  XXXXXX = &buf[dlen + plen + 1];
 
-      /* Construct a file name and see if it already exists.
+  /* Get some more or less random data.  */
+  __gettimeofday (&tv, NULL);
+  value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ __getpid ();
 
-        We use a single counter in *IDX to cycle each of three
-        character positions through each of 62 possible letters.  */
+  for (count = 0; count < TMP_MAX; value += 7777, ++count)
+    {
+      uint64_t v = value;
 
-      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;
+      /* Fill in the random bits.  */
+      XXXXXX[0] = letters[v % 62];
+      v /= 62;
+      XXXXXX[1] = letters[v % 62];
+      v /= 62;
+      XXXXXX[2] = letters[v % 62];
+      v /= 62;
+      XXXXXX[3] = letters[v % 62];
+      v /= 62;
+      XXXXXX[4] = letters[v % 62];
+      v /= 62;
+      XXXXXX[5] = letters[v % 62];
 
       if (streamptr != NULL)
        {
index fbbe6f793138b0bbaa06bbb05bf07fa4add5a84c..83cfc9e4e315621dbda4641a76d6be32eaa090df 100644 (file)
@@ -35,7 +35,7 @@
 #if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 #define GETRUSAGE      __getrusage_tv64
 #else
-#define GETRUSAGE      getrusage
+#define GETRUSAGE      __getrusage
 #endif
 
 LEAF(GETRUSAGE, 16)
@@ -131,5 +131,9 @@ $error:
 END(GETRUSAGE)
 
 #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)
+#else
+weak_alias(__getrusage, getrusage)
 #endif
index 75955fcc155bd8bcc53fd8c5cebb03cf6e9a0a24..980b3a22c9db142759ee441c5084785c6635156b 100644 (file)
@@ -4,3 +4,7 @@ s_pwrite64.S
 s_pread64.S
 sys/perm.h
 sys/vm86.h
+sys/elf.h
+sys/procfs.h
+sys/reg.h
+sys/user.h