From 18ef464b2fd20dcfdb57e1ad8eb86a912c874538 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 27 Mar 2003 01:16:50 +0000 Subject: [PATCH] Update. 2003-03-26 Ulrich Drepper * 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 | 6 ++++++ sysdeps/generic/ldsodefs.h | 11 +++++++++-- sysdeps/ia64/dl-lookupcfg.h | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index af5fa24..197a0ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-03-26 Ulrich Drepper + + * 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 * sysdeps/unix/make-syscalls.sh: When an undefined syscall has diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 8bd2efb..e823402 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, diff --git a/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h index 2b15420..0ae3dd6 100644 --- a/sysdeps/ia64/dl-lookupcfg.h +++ b/sysdeps/ia64/dl-lookupcfg.h @@ -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; -- 2.7.4