Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 27 Mar 2003 01:16:50 +0000 (01:16 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 27 Mar 2003 01:16:50 +0000 (01:16 +0000)
2003-03-26  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/generic/ldsodefs.h (ELF_RTYPE_CLASS_COPY): Define to 2
only if DL_NO_COPY_RELOCS is not defined.
* sysdeps/ia64/dl-lookupcfg.h: Define DL_NO_COPY_RELOCS.

ChangeLog
sysdeps/generic/ldsodefs.h
sysdeps/ia64/dl-lookupcfg.h

index af5fa24..197a0ff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-03-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/generic/ldsodefs.h (ELF_RTYPE_CLASS_COPY): Define to 2
+       only if DL_NO_COPY_RELOCS is not defined.
+       * sysdeps/ia64/dl-lookupcfg.h: Define DL_NO_COPY_RELOCS.
+
 2003-03-26  Roland McGrath  <roland@redhat.com>
 
        * sysdeps/unix/make-syscalls.sh: When an undefined syscall has
index 8bd2efb..e823402 100644 (file)
@@ -97,9 +97,16 @@ typedef ElfW(Addr) lookup_t;
 /* Reloc type classes as returned by elf_machine_type_class().
    ELF_RTYPE_CLASS_PLT means this reloc should not be satisfied by
    some PLT symbol, ELF_RTYPE_CLASS_COPY means this reloc should not be
-   satisfied by any symbol in the executable.  */
+   satisfied by any symbol in the executable.  Some architectures do
+   not support copy relocations.  In this case we define the macro to
+   zero so that the code for handling them gets automatically optimized
+   out.  */
 #define ELF_RTYPE_CLASS_PLT 1
-#define ELF_RTYPE_CLASS_COPY 2
+#ifndef DL_NO_COPY_RELOCS
+# define ELF_RTYPE_CLASS_COPY 2
+#else
+# define ELF_RTYPE_CLASS_COPY 0
+#endif
 
 /* ELF uses the PF_x macros to specify the segment permissions, mmap
    uses PROT_xxx.  In most cases the three macros have the values 1, 2,
index 2b15420..0ae3dd6 100644 (file)
@@ -23,6 +23,9 @@
 #define ELF_FUNCTION_PTR_IS_SPECIAL
 #define DL_UNMAP_IS_SPECIAL
 
+/* We do not support copy relocations for IA-64.  */
+#define DL_NO_COPY_RELOCS
+
 /* Forward declaration.  */
 struct link_map;