about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-10-01 00:05:23 +0000
committerUlrich Drepper <drepper@redhat.com>2002-10-01 00:05:23 +0000
commitd1f69fed96fdb47aa7394d6e0ece1e16811d55fd (patch)
tree31bdbc866ae4cc7d0ef50a65b9a5d676660473e5 /sysdeps
parente3b0b8baa175848d3ff72e0494581b6eddcde29a (diff)
downloadglibc-d1f69fed96fdb47aa7394d6e0ece1e16811d55fd.tar.gz
glibc-d1f69fed96fdb47aa7394d6e0ece1e16811d55fd.tar.xz
glibc-d1f69fed96fdb47aa7394d6e0ece1e16811d55fd.zip
Update.
2002-09-19  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/ia64/dl-fptr.c (make_fdesc): Load address of "local" via
	a 64-bit gp-relative address to enable binaries with large data
	sections.

2002-09-30  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/cxa_finalize.c (__cxa_finalize): Call UNREGISTER_ATFORK
	if it is defined.
	* posix/Makefile (distribute): Add fork.h.
	* sysdeps/generic/fork.h: New file.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/fork.h8
-rw-r--r--sysdeps/ia64/dl-fptr.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/sysdeps/generic/fork.h b/sysdeps/generic/fork.h
new file mode 100644
index 0000000000..623cae28df
--- /dev/null
+++ b/sysdeps/generic/fork.h
@@ -0,0 +1,8 @@
+/* Stub version of header for fork handling.  Mainly to handle pthread_atfork
+   and friends.  Outside dependencies:
+
+   UNREGISTER_ATFORK
+     If defined it must expand to a function call which takes one void*
+     parameter which is the DSO handle for the DSO which gets unloaded.
+     The function so called has to remove the atfork handlers registered
+     by this module.  */
diff --git a/sysdeps/ia64/dl-fptr.c b/sysdeps/ia64/dl-fptr.c
index dd8eb9d391..809e11311f 100644
--- a/sysdeps/ia64/dl-fptr.c
+++ b/sysdeps/ia64/dl-fptr.c
@@ -1,5 +1,5 @@
 /* Manage function descriptors.  IA-64 version.
-   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001, 2002 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
@@ -127,7 +127,7 @@ make_fdesc (Elf64_Addr ip, Elf64_Addr gp)
   unsigned int old;
   struct local *l;
 
-  asm ("addl %0 = @gprel (local), gp" : "=r" (l));
+  asm ("movl %0 = @gprel (local);; add %0 = %0, gp" : "=&r"(l));
 
   t = l->root;
   while (1)