]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 20 Jun 2000 04:46:22 +0000 (04:46 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 20 Jun 2000 04:46:22 +0000 (04:46 +0000)
* malloc/Makefile: Change all references to memprof into memusage.
* malloc/memprof.c: Rename to...
* malloc/memusage.c: ...this.  New file.
* malloc/memprof.sh: Rename to...
* malloc/memusage.sh: ...this.  New file.
* malloc/memprofstat.c: Rename to...
* malloc/memusagestat.c: ...this.  New file.

ChangeLog
linuxthreads/ChangeLog
linuxthreads/spinlock.c
linuxthreads/spinlock.h
localedata/ChangeLog
localedata/locales/pt_BR
malloc/memusage.c [moved from malloc/memprof.c with 96% similarity]
malloc/memusage.sh [moved from malloc/memprof.sh with 80% similarity]
malloc/memusagestat.c [moved from malloc/memprofstat.c with 99% similarity]

index b13c85009957c6b65581834d9ce8a3d1d3c7b983..0383fe1919cd214fa02582e500e031ceb5d24c80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2000-06-19  Ulrich Drepper  <drepper@redhat.com>
 
+       * malloc/Makefile: Change all references to memprof into memusage.
+       * malloc/memprof.c: Rename to...
+       * malloc/memusage.c: ...this.  New file.
+       * malloc/memprof.sh: Rename to...
+       * malloc/memusage.sh: ...this.  New file.
+       * malloc/memprofstat.c: Rename to...
+       * malloc/memusagestat.c: ...this.  New file.
+
        * elf/sprof.c (print_version): Update year.
 
        * elf/sprof.c (load_shobj): Don't always add load address to dynamic
index 0402c0fdfedfba3c7f7b8e811740b6245815c3ca..b79ee3f43e0268cbd96f538fad427f38b520ee18 100644 (file)
@@ -1,3 +1,15 @@
+2000-06-19  H.J. Lu  <hjl@gnu.org>
+
+       * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
+       HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
+       (compare_and_swap_with_release_semantics): New. Default to
+       compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
+       is not defined.
+
+       * spinlock.c (__pthread_unlock): Call
+       compare_and_swap_with_release_semantics () instead of
+       compare_and_swap ().
+
 2000-06-19  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
index 3f5b8233b0b8fbd3e57dc65320b99216ef7ad4aa..60d056aada62d0e08ed2b24ad808c0b8c1e46c2e 100644 (file)
@@ -95,7 +95,9 @@ again:
     /* No threads are waiting for this lock.  Please note that we also
        enter this case if the lock is not taken at all.  If this wouldn't
        be done here we would crash further down.  */
-    if (! compare_and_swap(&lock->__status, oldstatus, 0, &lock->__spinlock))
+    if (! compare_and_swap_with_release_semantics (&lock->__status,
+                                                  oldstatus, 0,
+                                                  &lock->__spinlock))
       goto again;
     return 0;
   }
@@ -126,9 +128,9 @@ again:
     /* If max prio thread is at head, remove it with compare-and-swap
        to guard against concurrent lock operation */
     thr = (pthread_descr) oldstatus;
-    if (! compare_and_swap(&lock->__status,
-                           oldstatus, (long)(thr->p_nextlock),
-                           &lock->__spinlock))
+    if (! compare_and_swap_with_release_semantics
+           (&lock->__status, oldstatus, (long)(thr->p_nextlock),
+            &lock->__spinlock))
       goto again;
   } else {
     /* No risk of concurrent access, remove max prio thread normally */
index 96010e4636bc8dadf4a186a32b17dbab8fd407a3..d1da3c1094a2a5806f5c2dd4e2df30684fc0c6a7 100644 (file)
 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
 /* GNU Library General Public License for more details.                 */
 
+
+/* There are 2 compare and swap synchronization primitives with
+   different semantics:
+
+       1. compare_and_swap, which has acquire semantics (i.e. it
+       completes befor subsequent writes.)
+       2. compare_and_swap_with_release_semantics, which has release
+       semantics (it completes after previous writes.)
+
+   For those platforms on which they are the same. HAS_COMPARE_AND_SWAP
+   should be defined. For those platforms on which they are different, 
+   HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS has to be defined.  */
+
+#ifndef HAS_COMPARE_AND_SWAP
+#ifdef HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
+#define HAS_COMPARE_AND_SWAP
+#endif
+#endif
+
 #if defined(TEST_FOR_COMPARE_AND_SWAP)
 
 extern int __pthread_has_cas;
@@ -29,6 +48,18 @@ static inline int compare_and_swap(long * ptr, long oldval, long newval,
 
 #elif defined(HAS_COMPARE_AND_SWAP)
 
+#ifdef HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
+
+static inline int
+compare_and_swap_with_release_semantics (long * ptr, long oldval,
+                                        long newval, int * spinlock)
+{
+  return __compare_and_swap_with_release_semantics (ptr, oldval,
+                                                   newval);
+}
+
+#endif
+
 static inline int compare_and_swap(long * ptr, long oldval, long newval,
                                    int * spinlock)
 {
@@ -48,6 +79,10 @@ static inline int compare_and_swap(long * ptr, long oldval, long newval,
 
 #endif
 
+#ifndef HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
+#define compare_and_swap_with_release_semantics compare_and_swap
+#endif
+
 /* Internal locks */
 
 extern void internal_function __pthread_lock(struct _pthread_fastlock * lock,
index 29cb7c32bfa4d6ac9d3f8a12f5a3480ceccf7952..4d8d6543d964a1bbe00300929aa4f101a5c1dabe 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * locales/pt_BR: Correct day and month names.
+       Patch by Henrique M. Holschuh <hmh@rcm.org.br>.
+
 2000-06-13  Ulrich Drepper  <drepper@redhat.com>
 
        * Makefile (ld-test-srcs): Add tests/test6.c.
index ca0f8c80af3322f8deeca4258afe808050ce290e..79470553cf7b12680caf0749f8671715238c1868 100644 (file)
@@ -58,35 +58,35 @@ grouping                  0;0
 END LC_NUMERIC
 
 LC_TIME
-abday   "<d><o><m>";"<s><e><g>";/
-        "<t><e><r>";"<q><u><a>";/
-        "<q><u><i>";"<s><e><x>";/
-        "<s><a'><b>"
-day     "<d><o><m><i><n><g><o>";/
-        "<s><e><g><u><n><d><a>";/
-        "<t><e><r><c,><a>";/
-        "<q><u><a><r><t><a>";/
-        "<q><u><i><n><t><a>";/
-        "<s><e><x><t><a>";/
-        "<s><a'><b><a><d><o>"
-abmon   "<j><a><n>";"<f><e><v>";/
-        "<m><a><r>";"<a><b><r>";/
-        "<m><a><i>";"<j><u><n>";/
-        "<j><u><l>";"<a><g><o>";/
-        "<s><e><t>";"<o><u><t>";/
-        "<n><o><v>";"<d><e><z>"
-mon     "<j><a><n><e><i><r><o>";/
-        "<f><e><v><e><r><e><i><r><o>";/
-        "<m><a><r><c,><o>";/
-        "<a><b><r><i><l>";/
-        "<m><a><i><o>";/
-        "<j><u><n><h><o>";/
-        "<j><u><l><h><o>";/
-        "<a><g><o><s><t><o>";/
-        "<s><e><t><e><m><b><r><o>";/
-        "<o><u><t><u><b><r><o>";/
-        "<n><o><v><e><m><b><r><o>";/
-        "<d><e><z><e><m><b><r><o>"
+abday   "<D><o><m>";"<S><e><g>";/
+        "<T><e><r>";"<Q><u><a>";/
+        "<Q><u><i>";"<S><e><x>";/
+        "<S><a'><b>"
+day     "<D><o><m><i><n><g><o>";/
+        "<S><e><g><u><n><d><a>";/
+        "<T><e><r><c,><a>";/
+        "<Q><u><a><r><t><a>";/
+        "<Q><u><i><n><t><a>";/
+        "<S><e><x><t><a>";/
+        "<S><a'><b><a><d><o>"
+abmon   "<J><a><n>";"<F><e><v>";/
+        "<M><a><r>";"<A><b><r>";/
+        "<M><a><i>";"<J><u><n>";/
+        "<J><u><l>";"<A><g><o>";/
+        "<S><e><t>";"<O><u><t>";/
+        "<N><o><v>";"<D><e><z>"
+mon     "<J><a><n><e><i><r><o>";/
+        "<F><e><v><e><r><e><i><r><o>";/
+        "<M><a><r><c,><o>";/
+        "<A><b><r><i><l>";/
+        "<M><a><i><o>";/
+        "<J><u><n><h><o>";/
+        "<J><u><l><h><o>";/
+        "<A><g><o><s><t><o>";/
+        "<S><e><t><e><m><b><r><o>";/
+        "<O><u><t><u><b><r><o>";/
+        "<N><o><v><e><m><b><r><o>";/
+        "<D><e><z><e><m><b><r><o>"
 d_t_fmt "<%><a><SP><%><d><SP><%><b><SP><%><Y><SP><%><T><SP><%><Z>"
 d_fmt   "<%><d><-><%><m><-><%><Y>"
 t_fmt   "<%><T>"
similarity index 96%
rename from malloc/memprof.c
rename to malloc/memusage.c
index 56d3ac556ef96ebc9738d0e8082572c2de713a8e..6296d9923020ac8b8ae44805e66c934273b8e5d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Profile heap and stack memory usage of running program.
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -28,7 +28,7 @@
 #include <unistd.h>
 #include <sys/time.h>
 
-#include <memprof.h>
+#include <memusage.h>
 
 /* Pointer to the real functions.  These are determined used `dlsym'
    when really needed.  */
@@ -164,24 +164,24 @@ init (void)
 
 /* Find out whether this is the program we are supposed to profile.
    For this the name in the variable `__progname' must match the one
-   given in the environment variable MEMPROF_PROG_NAME.  If the variable
+   given in the environment variable MEMUSAGE_PROG_NAME.  If the variable
    is not present every program assumes it should be profiling.
 
    If this is the program open a file descriptor to the output file.
    We will write to it whenever the buffer overflows.  The name of the
-   output file is determined by the environment variable MEMPROF_OUTPUT.
+   output file is determined by the environment variable MEMUSAGE_OUTPUT.
 
-   If the environment variable MEMPROF_BUFFER_SIZE is set its numerical
+   If the environment variable MEMUSAGE_BUFFER_SIZE is set its numerical
    value determines the size of the internal buffer.  The number gives
    the number of elements in the buffer.  By setting the number to one
    one effectively selects unbuffered operation.
 
-   If MEMPROF_NO_TIMER is not present an alarm handler is installed
+   If MEMUSAGE_NO_TIMER is not present an alarm handler is installed
    which at the highest possible frequency records the stack pointer.  */
 static void
 me (void)
 {
-  const char *env = getenv ("MEMPROF_PROG_NAME");
+  const char *env = getenv ("MEMUSAGE_PROG_NAME");
   size_t prog_len = strlen (__progname);
   if (env != NULL)
     {
@@ -195,7 +195,7 @@ me (void)
   /* Only open the file if it's really us.  */
   if (!not_me && fd == -1)
     {
-      const char *outname = getenv ("MEMPROF_OUTPUT");
+      const char *outname = getenv ("MEMUSAGE_OUTPUT");
       if (outname != NULL)
        {
          fd = creat (outname, 0666);
@@ -216,15 +216,15 @@ me (void)
              /* Determine the buffer size.  We use the default if the
                 environment variable is not present.  */
              buffer_size = DEFAULT_BUFFER_SIZE;
-             if (getenv ("MEMPROF_BUFFER_SIZE") != NULL)
+             if (getenv ("MEMUSAGE_BUFFER_SIZE") != NULL)
                {
-                 buffer_size = atoi (getenv ("MEMPROF_BUFFER_SIZE"));
+                 buffer_size = atoi (getenv ("MEMUSAGE_BUFFER_SIZE"));
                  if (buffer_size == 0 || buffer_size > DEFAULT_BUFFER_SIZE)
                    buffer_size = DEFAULT_BUFFER_SIZE;
                }
 
              /* Possibly enable timer-based stack pointer retrieval.  */
-             if (getenv ("MEMPROF_NO_TIMER") == NULL)
+             if (getenv ("MEMUSAGE_NO_TIMER") == NULL)
                {
                  struct sigaction act;
 
similarity index 80%
rename from malloc/memprof.sh
rename to malloc/memusage.sh
index 3113f591e6116b86b1d1b2b847264553488c86be..744991ff0206e546da6597b13a4ca9feb46d8fd8 100755 (executable)
@@ -1,5 +1,5 @@
 #! @BASH@
-# Copyright (C) 1999 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 # Contributed by Ulrich Drepper <drepper@gnu.org>, 1999.
 
 # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-memprofso=@LIBDIR@/libmemprof.so
-memprofstat=@BINDIR@/memprofstat
+memusageso=@LIBDIR@/libmemusage.so
+memusagestat=@BINDIR@/memusagestat
 
 # Print usage message.
 do_usage() {
-  echo >&2 $"Try \`memprof --help' for more information."
+  echo >&2 $"Try \`memusage --help' for more information."
   exit 1
 }
 
 # Message for missing argument.
 do_missing_arg() {
-  echo >&2 $"memprof: option \`$1' requires an argument"
+  echo >&2 $"memusage: option \`$1' requires an argument"
   do_usage
 }
 
 # Print help message
 do_help() {
-  echo $"Usage: memprof [OPTION]... PROGRAM [PROGRAMOPTION]...
+  echo $"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...
 Profile memory usage of PROGRAM.
 
    -n,--progname=NAME     Name of the program file to profile
@@ -64,8 +64,8 @@ Report bugs using the \`glibcbug' script to <bugs@gnu.org>."
 }
 
 do_version() {
-  echo 'memprof (GNU libc) @VERSION@'
-  echo $"Copyright (C) 1999 Free Software Foundation, Inc.
+  echo 'memusage (GNU libc) @VERSION@'
+  echo $"Copyright (C) 2000 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 Written by Ulrich Drepper."
@@ -82,7 +82,7 @@ while test $# -gt 0; do
     do_help
     ;;
   --us | --usa | --usag | --usage)
-    echo $"Syntax: memprof [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]
+    echo $"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]
             [--buffer=SIZE] [--no-timer] [--time-based] [--total]
             [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]
             PROGRAM [PROGRAMOPTION]..."
@@ -135,43 +135,43 @@ while test $# -gt 0; do
     notimer=yes
     ;;
   -t | --tim | --time | --time- | --time-b | --time-ba | --time-bas | --time-base | --time-based)
-    memprofstat_args="$memprofstat_args -t"
+    memusagestat_args="$memusagestat_args -t"
     ;;
   -T | --to | --tot | --tota | --total)
-    memprofstat_args="$memprofstat_args -T"
+    memusagestat_args="$memusagestat_args -T"
     ;;
   --tit | --titl | --title)
     if test $# -eq 1; then
       do_missing_arg $1
     fi
     shift
-    memprofstat_args="$memprofstat_args -s $1"
+    memusagestat_args="$memusagestat_args -s $1"
     ;;
   --tit=* | --titl=* | --title=*)
-    memprofstat_args="$memprofstat_args -s ${1##*=}"
+    memusagestat_args="$memusagestat_args -s ${1##*=}"
     ;;
   -x | --x | --x- | --x-s | --x-si | --x-siz | --x-size)
     if test $# -eq 1; then
       do_missing_arg $1
     fi
     shift
-    memprofstat_args="$memprofstat_args -x $1"
+    memusagestat_args="$memusagestat_args -x $1"
     ;;
   --x=* | --x-=* | --x-s=* | --x-si=* | --x-siz=* | --x-size=*)
-    memprofstat_args="$memprofstat_args -x ${1##*=}"
+    memusagestat_args="$memusagestat_args -x ${1##*=}"
     ;;
   -y | --y | --y- | --y-s | --y-si | --y-siz | --y-size)
     if test $# -eq 1; then
       do_missing_arg $1
     fi
     shift
-    memprofstat_args="$memprofstat_args -y $1"
+    memusagestat_args="$memusagestat_args -y $1"
     ;;
   --y=* | --y-=* | --y-s=* | --y-si=* | --y-siz=* | --y-size=*)
-    memprofstat_args="$memprofstat_args -y ${1##*=}"
+    memusagestat_args="$memusagestat_args -y ${1##*=}"
     ;;
   --p | --p=* | --t | --t=* | --ti | --ti=* | --u)
-    echo >&2 $"memprof: option \`${1##*=}' is ambiguous"
+    echo >&2 $"memusage: option \`${1##*=}' is ambiguous"
     do_usage
     ;;
   --)
@@ -180,7 +180,7 @@ while test $# -gt 0; do
     break
     ;;
   --*)
-    echo >&2 $"memprof: unrecognized option \`$1'"
+    echo >&2 $"memusage: unrecognized option \`$1'"
     do_usage
     ;;
   *)
@@ -198,35 +198,35 @@ if test $# -eq 0; then
 fi
 
 # This will be in the environment.
-add_env="LD_PRELOAD=$memprofso"
+add_env="LD_PRELOAD=$memusageso"
 
 # Generate data file name.
 datafile=
 if test -n "$data"; then
   datafile="$data"
 elif test -n "$png"; then
-  datafile=$(mktemp ${TMPDIR:-/tmp}/memprof.XXXXXX 2> /dev/null)
+  datafile=$(mktemp ${TMPDIR:-/tmp}/memusage.XXXXXX 2> /dev/null)
   if test $? -ne 0; then
     # Lame, but if there is no `mktemp' program the user cannot expect more.
     if test "$RANDOM" != "$RANDOM"; then
-      datafile=${TMPDIR:-/tmp}/memprof.$RANDOM
+      datafile=${TMPDIR:-/tmp}/memusage.$RANDOM
     else
-      datafile=${TMPDIR:-/tmp}/memprof.$$
+      datafile=${TMPDIR:-/tmp}/memusage.$$
     fi
   fi
 fi
 if test -n "$datafile"; then
-  add_env="$add_env MEMPROF_OUTPUT=$datafile"
+  add_env="$add_env MEMUSAGE_OUTPUT=$datafile"
 fi
 
 # Set buffer size.
 if test -n "$buffer"; then
-  add_env="$add_env MEMPROF_BUFFER_SIZE=$buffer"
+  add_env="$add_env MEMUSAGE_BUFFER_SIZE=$buffer"
 fi
 
 # Disable timers.
 if test -n "$notimer"; then
-  add_env="$add_env MEMPROF_NO_TIMER=yes"
+  add_env="$add_env MEMUSAGE_NO_TIMER=yes"
 fi
 
 # Execute the program itself.
@@ -241,7 +241,7 @@ if test -n "$png" -a -n "$datafile" -a -s "$datafile"; then
   *.png) ;;
   *) png="$png.png" ;;
   esac
-  $memprofstat $memprofstat_args "$datafile" "$png"
+  $memusagestat $memusagestat_args "$datafile" "$png"
 fi
 
 if test -z "$data" -a -n "$datafile"; then
similarity index 99%
rename from malloc/memprofstat.c
rename to malloc/memusagestat.c
index 638b3beb73f0a8f1068762eb148fe01b54ffe7fd..1da0ff0ce930aed3c9dbd22e894c9248e8b4c9ee 100644 (file)
@@ -1,5 +1,5 @@
 /* Generate graphic from memory profiling data.
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -191,7 +191,7 @@ main (int argc, char *argv[])
 
   if (maxsize_heap == 0 && maxsize_stack == 0)
     {
-      /* The program aborted before memprof was able to write the
+      /* The program aborted before memusage was able to write the
         information about the maximum heap and stack use.  Repair
         the file now.  */
       struct entry next;