summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc32/dl-machine.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-03 01:05:12 +0000
committerRoland McGrath <roland@gnu.org>2003-03-03 01:05:12 +0000
commit7551556fa11c0158829757e437e80a1787aa95f8 (patch)
treedc42874eee55ce70bf1bfdae02afaec36f2f4c59 /sysdeps/powerpc/powerpc32/dl-machine.c
parent3a601d31b6ac9686665a2d103c2e57f6c6443f57 (diff)
* sysdeps/powerpc/powerpc32/dl-machine.c (_dl_reloc_overflow): Renamed
from dl_reloc_overflow, make global. (__process_machine_rela): Update callers. * sysdeps/powerpc/powerpc32/dl-machine.h: Declare _dl_reloc_overflow. Add attribute_hidden to __process_machine_rela decl. (elf_machine_type_class, elf_machine_rela): Handle 16-bit TLS relocs.
Diffstat (limited to 'sysdeps/powerpc/powerpc32/dl-machine.c')
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index 065a1db6df..866380a940 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995-2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995-2001,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
@@ -368,12 +368,12 @@ __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,
return finaladdr;
}
-static void
-dl_reloc_overflow (struct link_map *map,
- const char *name,
- Elf32_Addr *const reloc_addr,
- const Elf32_Sym *sym,
- const Elf32_Sym *refsym)
+void
+_dl_reloc_overflow (struct link_map *map,
+ const char *name,
+ Elf32_Addr *const reloc_addr,
+ const Elf32_Sym *sym,
+ const Elf32_Sym *refsym)
{
char buffer[128];
char *t;
@@ -423,19 +423,19 @@ __process_machine_rela (struct link_map *map,
case R_PPC_ADDR24:
if (__builtin_expect (finaladdr > 0x01fffffc && finaladdr < 0xfe000000, 0))
- dl_reloc_overflow (map, "R_PPC_ADDR24", reloc_addr, sym, refsym);
+ _dl_reloc_overflow (map, "R_PPC_ADDR24", reloc_addr, sym, refsym);
*reloc_addr = (*reloc_addr & 0xfc000003) | (finaladdr & 0x3fffffc);
break;
case R_PPC_ADDR16:
if (__builtin_expect (finaladdr > 0x7fff && finaladdr < 0xffff8000, 0))
- dl_reloc_overflow (map, "R_PPC_ADDR16", reloc_addr, sym, refsym);
+ _dl_reloc_overflow (map, "R_PPC_ADDR16", reloc_addr, sym, refsym);
*(Elf32_Half*) reloc_addr = finaladdr;
break;
case R_PPC_UADDR16:
if (__builtin_expect (finaladdr > 0x7fff && finaladdr < 0xffff8000, 0))
- dl_reloc_overflow (map, "R_PPC_UADDR16", reloc_addr, sym, refsym);
+ _dl_reloc_overflow (map, "R_PPC_UADDR16", reloc_addr, sym, refsym);
((char *) reloc_addr)[0] = finaladdr >> 8;
((char *) reloc_addr)[1] = finaladdr;
break;
@@ -456,7 +456,7 @@ __process_machine_rela (struct link_map *map,
case R_PPC_ADDR14_BRTAKEN:
case R_PPC_ADDR14_BRNTAKEN:
if (__builtin_expect (finaladdr > 0x7fff && finaladdr < 0xffff8000, 0))
- dl_reloc_overflow (map, "R_PPC_ADDR14", reloc_addr, sym, refsym);
+ _dl_reloc_overflow (map, "R_PPC_ADDR14", reloc_addr, sym, refsym);
*reloc_addr = (*reloc_addr & 0xffff0003) | (finaladdr & 0xfffc);
if (rinfo != R_PPC_ADDR14)
*reloc_addr = ((*reloc_addr & 0xffdfffff)
@@ -468,7 +468,7 @@ __process_machine_rela (struct link_map *map,
{
Elf32_Sword delta = finaladdr - (Elf32_Word) reloc_addr;
if (delta << 6 >> 6 != delta)
- dl_reloc_overflow (map, "R_PPC_REL24", reloc_addr, sym, refsym);
+ _dl_reloc_overflow (map, "R_PPC_REL24", reloc_addr, sym, refsym);
*reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
}
break;