This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix ppc


On Thu, Jan 30, 2003 at 06:08:18PM +0100, Jakub Jelinek wrote:
> Hi!
> 
> GCC inliner needs to be improved, but in the mean time we can help
> it a little bit.

This patch broke ppc{32,64}, because on that arch elf_machine_lazy_rel
was declared in the dl_machine_h, not RESOLVE section of dl-machine.h,
thus the always_inline prototype for it came after that and gcc
got upset. Bootstrapped and regtested on ppc32.

2003-01-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_lazy_rel):
	Move to RESOLVE protected part of the header.
	* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_lazy_rel):
	Likewise.

--- libc/sysdeps/powerpc/powerpc32/dl-machine.h.jj	2002-09-05 04:24:49.000000000 -0400
+++ libc/sysdeps/powerpc/powerpc32/dl-machine.h	2003-01-30 13:52:40.000000000 -0500
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  PowerPC version.
-   Copyright (C) 1995-2000,01,02 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -295,13 +295,6 @@ extern int __elf_machine_runtime_setup (
 					int lazy, int profile);
 #define elf_machine_runtime_setup __elf_machine_runtime_setup
 
-static inline void
-elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
-{
-  /* elf_machine_runtime_setup handles this. */
-}
-
 /* Change the PLT entry whose reloc is 'reloc' to call the actual routine.  */
 extern Elf32_Addr __elf_machine_fixup_plt (struct link_map *map,
 					   const Elf32_Rela *reloc,
@@ -411,6 +404,13 @@ elf_machine_rela_relative (Elf32_Addr l_
   *reloc_addr = l_addr + reloc->r_addend;
 }
 
+static inline void
+elf_machine_lazy_rel (struct link_map *map,
+		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
+{
+  /* elf_machine_runtime_setup handles this. */
+}
+
 /* The SVR4 ABI specifies that the JMPREL relocs must be inside the
    DT_RELA table.  */
 #define ELF_MACHINE_PLTREL_OVERLAP 1
--- libc/sysdeps/powerpc/powerpc64/dl-machine.h.jj	2002-10-10 08:05:06.000000000 -0400
+++ libc/sysdeps/powerpc/powerpc64/dl-machine.h	2003-01-30 13:52:27.000000000 -0500
@@ -1,6 +1,6 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  
    PowerPC64 version.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -452,13 +452,6 @@ elf_machine_runtime_setup (struct link_m
   return lazy;
 }
 
-static inline void
-elf_machine_lazy_rel (struct link_map *map,
-		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
-{
-  /* elf_machine_runtime_setup handles this.  */
-}
-
 /* Change the PLT entry whose reloc is 'reloc' to call the actual
    routine.  */
 static inline Elf64_Addr
@@ -747,4 +740,11 @@ elf_machine_rela (struct link_map *map,
   MODIFIED_CODE_NOQUEUE (reloc_addr);
 }
 
+static inline void
+elf_machine_lazy_rel (struct link_map *map,
+		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
+{
+  /* elf_machine_runtime_setup handles this.  */
+}
+
 #endif /* RESOLVE */


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]