aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--inet/ether_ntoh.c5
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/Examples/ex16.c26
-rw-r--r--linuxthreads/Makefile2
-rw-r--r--linuxthreads/pthread.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/mman.h4
7 files changed, 53 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 687d045143..9cf987cdc9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ * inet/ether_ntoh.c (lookup_function): Change arguments to match
+ _nss_*_getntohost_r prototype.
+ (ether_ntohost): Pass errno pointer to NSS function.
+
+2001-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/bits/mman.h (MS_SYNC): Fix value.
+ (MAP_LOCKED): New definition.
+ (MAP_NORESERVE): New definition.
+
2001-01-12 Ulrich Drepper <drepper@redhat.com>
* assert/assert.h: Use static_cast instead of C-style cast for C++.
diff --git a/inet/ether_ntoh.c b/inet/ether_ntoh.c
index d26ec3b317..43299b9135 100644
--- a/inet/ether_ntoh.c
+++ b/inet/ether_ntoh.c
@@ -17,6 +17,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include <errno.h>
#include <netinet/ether.h>
#include <netinet/if_ether.h>
#include <string.h>
@@ -26,7 +27,7 @@
/* Type of the lookup function we need here. */
typedef int (*lookup_function) (const struct ether_addr *, struct etherent *,
- char *, int);
+ char *, size_t, int *);
/* The lookup function for the first entry of this service. */
extern int __nss_ethers_lookup (service_user **nip, const char *name,
@@ -65,7 +66,7 @@ ether_ntohost (char *hostname, const struct ether_addr *addr)
{
char buffer[1024];
- status = (*fct) (addr, &etherent, buffer, sizeof buffer);
+ status = (*fct) (addr, &etherent, buffer, sizeof buffer, &errno);
no_more = __nss_next (&nip, "getntohost_r", (void **) &fct, status, 0);
}
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index a56b99ce85..8936eac03a 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2001-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ * pthread.c (pthread_onexit_process): Clear
+ __pthread_manager_thread_bos after freeing it.
+ * Makefile (tests): Add ex16.
+ * Examples/ex16.c: New file.
+
2001-01-11 Jakub Jelinek <jakub@redhat.com>
* Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
diff --git a/linuxthreads/Examples/ex16.c b/linuxthreads/Examples/ex16.c
new file mode 100644
index 0000000000..6509ae4515
--- /dev/null
+++ b/linuxthreads/Examples/ex16.c
@@ -0,0 +1,26 @@
+/* Tst case by Jakub Jelinek <jakub@redhat.com>. */
+#include <stdlib.h>
+#include <unistd.h>
+#include <pthread.h>
+
+static void *
+task (void *p)
+{
+ sleep (30);
+ return NULL;
+}
+
+int
+main (void)
+{
+ pthread_t t;
+ int status;
+
+ status = pthread_create (&t, NULL, task, NULL);
+ if (status)
+ exit (status);
+
+ status = pthread_detach (t);
+ pthread_kill_other_threads_np ();
+ return status;
+}
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index da3c3d22f7..d3364eaf5b 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -46,7 +46,7 @@ include ../Makeconfig
librt-tests = ex10 ex11
tests = ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 $(librt-tests) ex12 ex13 joinrace \
- tststack $(tests-nodelete-$(have-z-nodelete)) ecmutex ex14 ex15
+ tststack $(tests-nodelete-$(have-z-nodelete)) ecmutex ex14 ex15 ex16
ifeq (yes,$(build-shared))
tests-nodelete-yes = unload
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index df1d00b05a..b62393fde9 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -753,6 +753,7 @@ static void pthread_onexit_process(int retcode, void *arg)
{
waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
free (__pthread_manager_thread_bos);
+ __pthread_manager_thread_bos = __pthread_manager_thread_tos = NULL;
}
}
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
index 0808b7da37..bae1ad67c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -55,11 +55,13 @@
# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */
# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x0080 /* Lock the mapping. */
+# define MAP_NORESERVE 0x0040 /* Don't check for reservations. */
#endif
/* Flags to `msync'. */
#define MS_ASYNC 1 /* Sync memory asynchronously. */
-#define MS_SYNC 0 /* Synchronous memory sync. */
+#define MS_SYNC 4 /* Synchronous memory sync. */
#define MS_INVALIDATE 2 /* Invalidate the caches. */
/* Flags for `mlockall'. */