about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-10-17 12:10:17 +0000
committerRoland McGrath <roland@gnu.org>2002-10-17 12:10:17 +0000
commit2430d57a13f4f10312e13c58962cd9104e6428fd (patch)
tree6690ca0a7115c798e9c34cf24f55acf14311d661 /linuxthreads
parentd29724f8706e4e46994d6fabafc8389f7624cd0f (diff)
downloadglibc-2430d57a13f4f10312e13c58962cd9104e6428fd.tar.gz
glibc-2430d57a13f4f10312e13c58962cd9104e6428fd.tar.xz
glibc-2430d57a13f4f10312e13c58962cd9104e6428fd.zip
* elf/dl-load.c (_dl_map_object_from_fd): Don't check DF_STATIC_TLS.
	* elf/dl-reloc.c (_dl_relocate_object: CHECK_STATIC_TLS): New macro
	to signal error if an IE-model TLS reloc resolved to a dlopen'd module.
	* sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela):
	Call it after performing TPOFF relocs.
	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
	* elf/dl-conflict.c (CHECK_STATIC_TLS): New macro (no-op).

	* elf/dl-close.c (remove_slotinfo): Change asserts so as not to crash
	when closing a partially-initialized object.

	* elf/dl-load.c (_dl_map_object_from_fd) [! USE_TLS]: Call lose
	instead of _dl_fatal_printf when we see PT_TLS.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog6
-rw-r--r--linuxthreads/Makefile3
-rw-r--r--linuxthreads/unload.c6
3 files changed, 11 insertions, 4 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 71b00fa253..6b185a02e8 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-17  Roland McGrath  <roland@redhat.com>
+
+	* Makefile (unload): Don't link in libpthread.so.
+	($(objpfx)unload.out): Do depend on it.
+	* unload.c (main): Improve error reporting.
+
 2002-10-09  Roland McGrath  <roland@redhat.com>
 
 	* sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index 230c75f4f6..772c691475 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -98,10 +98,11 @@ $(objpfx)libpthread.so: $(common-objpfx)libc.so \
 # Make sure we link with the thread library.
 ifeq ($(build-shared),yes)
 $(addprefix $(objpfx), \
-  $(filter-out $(tests-static), \
+  $(filter-out $(tests-static) unload, \
     $(tests) $(test-srcs))): $(objpfx)libpthread.so
 $(addprefix $(objpfx),$(librt-tests)): $(common-objpfx)rt/librt.so
 $(objpfx)unload: $(common-objpfx)dlfcn/libdl.so
+$(objpfx)unload.out: $(objpfx)libpthread.so
 else
 $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
 $(addprefix $(objpfx),$(librt-tests)): $(common-objpfx)rt/librt.a
diff --git a/linuxthreads/unload.c b/linuxthreads/unload.c
index ca949196b4..234d27f904 100644
--- a/linuxthreads/unload.c
+++ b/linuxthreads/unload.c
@@ -1,5 +1,5 @@
 /* Tests for non-unloading of libpthread.
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,13 +29,13 @@ main (void)
 
   if (p == NULL)
     {
-      puts ("failed to load " LIBPTHREAD_SO);
+      printf ("failed to load %s: %s\n", LIBPTHREAD_SO, dlerror ());
       exit (1);
     }
 
   if (dlclose (p) != 0)
     {
-      puts ("dlclose (" LIBPTHREAD_SO ") failed");
+      printf ("dlclose (%s) failed: %s\n", LIBPTHREAD_SO, dlerror ());
       exit (1);
     }