summary refs log tree commit diff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-26 22:28:16 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-26 22:28:16 +0000
commitcf5a372ec12437bf79cb130c124ace1f62d97144 (patch)
tree972a8fc7bb3612407a0e5581028b9bf28c22cfde /sysdeps/powerpc
parent107d41a9b2da96db479e9b52b0a81a9174229ff7 (diff)
downloadglibc-cf5a372ec12437bf79cb130c124ace1f62d97144.tar.gz
glibc-cf5a372ec12437bf79cb130c124ace1f62d97144.tar.xz
glibc-cf5a372ec12437bf79cb130c124ace1f62d97144.zip
Update.
2001-08-26  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-reloc.c (RESOLVE_MAP, RESOLVE): Use elf_machine_type_class
	instead of elf_machine_lookup_noexec_p and elf_machine_lookup_noplt_p.
	Pass type_class to _dl_lookup_*.
	* elf/dl-lookup.c (_dl_lookup_symbol): Take type_clas parameter now.
	Pass around just type_class instead of noexec, noplt pair.
	(_dl_lookup_versioned_symbol): Likewise.
	(_dl_lookup_symbol_skip): Pass around just type_class instead of
	noexec, noplt pair.
	(_dl_lookup_versioned_symbol_skip): Likewise.
	(_dl_do_lookup, _dl_do_lookup_versioned): Likewise.
	* elf/do-lookup.h (do_lookup): Likewise.
	* include/link.h (struct link_map): Replace noexec and noplt fields
	in l_lookup_cache with type_class field.
	* sysdeps/generic/ldsodefs.h (ELF_RTYPE_CLASS_PLT,
	ELF_RTYPE_CLASS_COPY): Define.
	Adjust prototypes for _dl_lookup_symbol and
	_dl_lookup_versioned_symbol.
	* sysdeps/alpha/dl-machine.h (elf_machine_lookup_noplt_p,
	elf_machine_lookup_noexec_p): Remove.
	(elf_machine_type_class): Define.
	* sysdeps/arm/dl-machine.h: Likewise.
	* sysdeps/hppa/dl-machine.h: Likewise.
	* sysdeps/cris/dl-machine.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* sysdeps/mips/mips64/dl-machine.h: Likewise.
	* sysdeps/mips/dl-machine.h: Likewise.
	* sysdeps/powerpc/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/sh/dl-machine.h: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/dl-machine.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/sysdeps/powerpc/dl-machine.h b/sysdeps/powerpc/dl-machine.h
index 438629a0a8..e8b5446875 100644
--- a/sysdeps/powerpc/dl-machine.h
+++ b/sysdeps/powerpc/dl-machine.h
@@ -264,18 +264,18 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
 #define ELF_PREFERRED_ADDRESS(loader, maplength, mapstartpref) \
   __elf_preferred_address (loader, maplength, mapstartpref)
 
-/* Nonzero iff TYPE should not be allowed to resolve to one of
-   the main executable's symbols, as for a COPY reloc.  */
-#define elf_machine_lookup_noexec_p(type) ((type) == R_PPC_COPY)
-
-/* Nonzero iff TYPE describes relocation of a PLT entry, so
-   PLT entries should not be allowed to define the value.  */
+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
+   PLT entries should not be allowed to define the value.
+   ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
+   of the main executable's symbols, as for a COPY reloc.  */
 /* We never want to use a PLT entry as the destination of a
    reloc, when what is being relocated is a branch. This is
    partly for efficiency, but mostly so we avoid loops.  */
-#define elf_machine_lookup_noplt_p(type) ((type) == R_PPC_REL24 ||            \
-					  (type) == R_PPC_ADDR24 ||           \
-					  (type) == R_PPC_JMP_SLOT)
+#define elf_machine_type_class(type) \
+  ((((type) == R_PPC_JMP_SLOT				\
+    || (type) == R_PPC_REL24				\
+    || (type) == R_PPC_ADDR24) * ELF_RTYPE_CLASS_PLT)	\
+   | (((type) == R_PPC_COPY) * ELF_RTYPE_CLASS_COPY))
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT	R_PPC_JMP_SLOT