about summary refs log tree commit diff
path: root/sysdeps/generic/ldsodefs.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-27 01:16:50 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-27 01:16:50 +0000
commit18ef464b2fd20dcfdb57e1ad8eb86a912c874538 (patch)
tree0d78c2a46f58aaf39330b12672902c6fa860f623 /sysdeps/generic/ldsodefs.h
parent11d52c3193215e20d860fa1ae36daa0eb5ca5938 (diff)
downloadglibc-18ef464b2fd20dcfdb57e1ad8eb86a912c874538.tar.gz
glibc-18ef464b2fd20dcfdb57e1ad8eb86a912c874538.tar.xz
glibc-18ef464b2fd20dcfdb57e1ad8eb86a912c874538.zip
Update.
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.
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r--sysdeps/generic/ldsodefs.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 8bd2efb8f0..e8234026e8 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -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,