]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 30 Sep 2003 02:15:31 +0000 (02:15 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 30 Sep 2003 02:15:31 +0000 (02:15 +0000)
* sysdeps/pthread/malloc-machine.h: New file.

2003-09-27  Wolfram Gloger  <wg@malloc.de>

ChangeLog
linuxthreads/sysdeps/pthread/malloc-machine.h [new file with mode: 0644]
nptl/ChangeLog
nptl/sysdeps/pthread/malloc-machine.h [new file with mode: 0644]

index 2eb394c9e4ba1b84cd70cb12d25c0505343e6673..d511be912ade0b04e071894bec5777e99605f6f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2003-09-27  Wolfram Gloger  <wg@malloc.de>
+
+       * sysdeps/pthread/malloc-machine.h: New file.
+
 2003-09-27  Wolfram Gloger  <wg@malloc.de>
 
        * malloc/malloc.c: Include <malloc-machine.h> earlier instead of
diff --git a/linuxthreads/sysdeps/pthread/malloc-machine.h b/linuxthreads/sysdeps/pthread/malloc-machine.h
new file mode 100644 (file)
index 0000000..7eff836
--- /dev/null
@@ -0,0 +1,83 @@
+/* Basic platform-independent macro definitions for mutexes,
+   thread-specific data and parameters for malloc.
+   Copyright (C) 2003 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _MALLOC_MACHINE_H
+#define _MALLOC_MACHINE_H
+
+#undef thread_atfork_static
+
+#include <atomic.h>
+#include <bits/libc-lock.h>
+
+__libc_lock_define (typedef, mutex_t)
+
+#if defined(__libc_maybe_call2)
+
+#define mutex_init(m)          \
+  __libc_maybe_call2 (pthread_mutex_init, (m, NULL), (*(int *)(m) = 0))
+#define mutex_lock(m)          \
+  __libc_maybe_call2 (pthread_mutex_lock, (m), ((*(int *)(m) = 1), 0))
+#define mutex_trylock(m)       \
+  __libc_maybe_call2 (pthread_mutex_trylock, (m), \
+                     (*(int *)(m) ? 1 : ((*(int *)(m) = 1), 0)))
+#define mutex_unlock(m)                \
+  __libc_maybe_call2 (pthread_mutex_unlock, (m), (*(int *)(m) = 0))
+
+#else
+
+#define mutex_init(m)          \
+  __libc_maybe_call (__pthread_mutex_init, (m, NULL), (*(int *)(m) = 0))
+#define mutex_lock(m)          \
+  __libc_maybe_call (__pthread_mutex_lock, (m), ((*(int *)(m) = 1), 0))
+#define mutex_trylock(m)       \
+  __libc_maybe_call (__pthread_mutex_trylock, (m), \
+                    (*(int *)(m) ? 1 : ((*(int *)(m) = 1), 0)))
+#define mutex_unlock(m)                \
+  __libc_maybe_call (__pthread_mutex_unlock, (m), (*(int *)(m) = 0))
+
+#endif
+
+/* This is defined by newer gcc version unique for each module.  */
+extern void *__dso_handle __attribute__ ((__weak__));
+
+#include <fork.h>
+
+#ifdef SHARED
+# define thread_atfork(prepare, parent, child) \
+   __register_atfork (prepare, parent, child, __dso_handle)
+#else
+# define thread_atfork(prepare, parent, child) \
+   __register_atfork (prepare, parent, child,                                \
+                     &__dso_handle == NULL ? NULL : __dso_handle)
+#endif
+
+/* thread specific data for glibc */
+
+#include <bits/libc-tsd.h>
+
+typedef int tsd_key_t[1];      /* no key data structure, libc magic does it */
+__libc_tsd_define (static, MALLOC)     /* declaration/common definition */
+#define tsd_key_create(key, destr)     ((void) (key))
+#define tsd_setspecific(key, data)     __libc_tsd_set (MALLOC, (data))
+#define tsd_getspecific(key, vptr)     ((vptr) = __libc_tsd_get (MALLOC))
+
+#include <sysdeps/generic/malloc-machine.h>
+
+#endif /* !defined(_MALLOC_MACHINE_H) */
index 61152e44765689cd2216345de830a783f90eb5a8..37e9c8884219387bd7c4e17a20104541a49b1624 100644 (file)
@@ -1,3 +1,7 @@
+2003-09-27  Wolfram Gloger  <wg@malloc.de>
+
+       * sysdeps/pthread/malloc-machine.h: New file
+
 2003-09-24  Roland McGrath  <roland@redhat.com>
 
        * allocatestack.c (__make_stacks_executable): Don't ignore return
diff --git a/nptl/sysdeps/pthread/malloc-machine.h b/nptl/sysdeps/pthread/malloc-machine.h
new file mode 100644 (file)
index 0000000..634e9cd
--- /dev/null
@@ -0,0 +1,64 @@
+/* Basic platform-independent macro definitions for mutexes,
+   thread-specific data and parameters for malloc.
+   Copyright (C) 2003 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _MALLOC_MACHINE_H
+#define _MALLOC_MACHINE_H
+
+#undef thread_atfork_static
+
+#include <atomic.h>
+#include <bits/libc-lock.h>
+
+__libc_lock_define (typedef, mutex_t)
+
+/* Assume NPTL.  */
+
+#define mutex_init(m)          __libc_lock_init (*(m))
+#define mutex_lock(m)          __libc_lock_lock (*(m))
+#define mutex_trylock(m)       __libc_lock_trylock (*(m))
+#define mutex_unlock(m)                __libc_lock_unlock (*(m))
+
+/* This is defined by newer gcc version unique for each module.  */
+extern void *__dso_handle __attribute__ ((__weak__));
+
+#include <fork.h>
+
+#ifdef SHARED
+# define thread_atfork(prepare, parent, child) \
+   __register_atfork (prepare, parent, child, __dso_handle)
+#else
+# define thread_atfork(prepare, parent, child) \
+   __register_atfork (prepare, parent, child,                                \
+                     &__dso_handle == NULL ? NULL : __dso_handle)
+#endif
+
+/* thread specific data for glibc */
+
+#include <bits/libc-tsd.h>
+
+typedef int tsd_key_t[1];      /* no key data structure, libc magic does it */
+__libc_tsd_define (static, MALLOC)     /* declaration/common definition */
+#define tsd_key_create(key, destr)     ((void) (key))
+#define tsd_setspecific(key, data)     __libc_tsd_set (MALLOC, (data))
+#define tsd_getspecific(key, vptr)     ((vptr) = __libc_tsd_get (MALLOC))
+
+#include <sysdeps/generic/malloc-machine.h>
+
+#endif /* !defined(_MALLOC_MACHINE_H) */