about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2005-02-14 22:44:25 +0000
committerRoland McGrath <roland@gnu.org>2005-02-14 22:44:25 +0000
commit7de00121723507e61df94dfbb6a4c5a9fbba7146 (patch)
treebe125d49c82e5fe2d83b5027dfefb2d8e0f78da5
parentc56f532fb5a95ddbd453ed4f11ee830cff7e9740 (diff)
downloadglibc-7de00121723507e61df94dfbb6a4c5a9fbba7146.tar.gz
glibc-7de00121723507e61df94dfbb6a4c5a9fbba7146.tar.xz
glibc-7de00121723507e61df94dfbb6a4c5a9fbba7146.zip
* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Define
	with auto inline, and attribute always_inline.
	(elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
	(elf_machine_rel, elf_machine_rel_relative): Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise.
	(elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
	(elf_machine_rel, elf_machine_rel_relative): Likewise.
	(elf_machine_tprel): Likewise.
-rw-r--r--ChangeLog11
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/powerpc/tcb-offsets.sym3
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.h19
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h21
5 files changed, 51 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 9214b31059..c21734bd4b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-02-14  Alan Modra  <amodra@bigpond.net.au>
+
+	* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Define
+	with auto inline, and attribute always_inline.
+	(elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
+	(elf_machine_rel, elf_machine_rel_relative): Likewise.
+	* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise.
+	(elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
+	(elf_machine_rel, elf_machine_rel_relative): Likewise.
+	(elf_machine_tprel): Likewise.
+
 2005-02-14  Andreas Schwab  <schwab@suse.de>
 
 	* manual/filesys.texi (Random Access Directory): Fix type of file
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 7d916791d7..a575a82034 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-14  Alan Modra  <amodra@bigpond.net.au>
+
+	* sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
+	gcc4.
+
 2005-02-07  Richard Henderson  <rth@redhat.com>
 
 	* sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
index a9701fb5b7..3962edbd54 100644
--- a/nptl/sysdeps/powerpc/tcb-offsets.sym
+++ b/nptl/sysdeps/powerpc/tcb-offsets.sym
@@ -6,7 +6,8 @@
 -- Abuse tls.h macros to derive offsets relative to the thread register.
 # undef __thread_register
 # define __thread_register	((void *) 0)
-# define thread_offsetof(mem)	((void *) &THREAD_SELF->mem - (void *) 0)
+# define thread_offsetof(mem)	((ptrdiff_t) THREAD_SELF + offsetof (struct pthread, mem))
+
 
 #if TLS_MULTIPLE_THREADS_IN_TCB
 MULTIPLE_THREADS_OFFSET		thread_offsetof (header.multiple_threads)
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
index de3b9e923a..6d7d91b3eb 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.h
+++ b/sysdeps/powerpc/powerpc32/dl-machine.h
@@ -204,7 +204,7 @@ extern void _dl_reloc_overflow (struct link_map *map,
    LOADADDR is the load address of the object; INFO is an array indexed
    by DT_* of the .dynamic section info.  */
 
-inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 		  const Elf32_Sym *sym, const struct r_found_version *version,
 		  void *const reloc_addr_arg)
@@ -298,7 +298,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
     }
 }
 
-static inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
 			   void *const reloc_addr_arg)
 {
@@ -306,13 +306,26 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
   *reloc_addr = l_addr + reloc->r_addend;
 }
 
-static inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
 		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
 {
   /* elf_machine_runtime_setup handles this. */
 }
 
+auto inline void __attribute__ ((always_inline))
+elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
+		 const ElfW(Sym) *sym, const struct r_found_version *version,
+		 void *const reloc_addr)
+{
+}
+
+auto inline void __attribute__ ((always_inline))
+elf_machine_rel_relative (ElfW(Addr) l_addr, const Elf32_Rel *reloc,
+			  void *const reloc_addr)
+{
+}
+
 /* The SVR4 ABI specifies that the JMPREL relocs must be inside the
    DT_RELA table.  */
 #define ELF_MACHINE_PLTREL_OVERLAP 1
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 5ddc22e3c9..6fc9df056a 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -487,7 +487,7 @@ extern void _dl_reloc_overflow (struct link_map *map,
                                 const Elf64_Sym *refsym)
                                 attribute_hidden;
 
-static inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
 			   void *const reloc_addr_arg)
 {
@@ -497,7 +497,7 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
 
 #if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD)
 /* This computes the value used by TPREL* relocs.  */
-static Elf64_Addr __attribute__ ((const))
+auto inline Elf64_Addr __attribute__ ((always_inline, const))
 elf_machine_tprel (struct link_map *map,
 		   struct link_map *sym_map,
 		   const Elf64_Sym *sym,
@@ -518,7 +518,7 @@ elf_machine_tprel (struct link_map *map,
 
 /* Perform the relocation specified by RELOC and SYM (which is fully
    resolved).  MAP is the object containing the reloc.  */
-static inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_rela (struct link_map *map,
 		  const Elf64_Rela *reloc,
 		  const Elf64_Sym *sym,
@@ -803,11 +803,24 @@ elf_machine_rela (struct link_map *map,
   MODIFIED_CODE_NOQUEUE (reloc_addr);
 }
 
-static inline void
+auto inline void __attribute__ ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
 {
   /* elf_machine_runtime_setup handles this.  */
 }
 
+auto inline void __attribute__ ((always_inline))
+elf_machine_rel (struct link_map *map, const Elf64_Rel *reloc,
+		 const ElfW(Sym) *sym, const struct r_found_version *version,
+		 void *const reloc_addr)
+{
+}
+
+auto inline void __attribute__ ((always_inline))
+elf_machine_rel_relative (ElfW(Addr) l_addr, const Elf64_Rel *reloc,
+			  void *const reloc_addr)
+{
+}
+
 #endif /* RESOLVE */