diff options
author | Ulrich Drepper <[email protected]> | 2006-07-05 07:34:27 +0000 |
---|---|---|
committer | Ulrich Drepper <[email protected]> | 2006-07-05 07:34:27 +0000 |
commit | 4ba68f475d305b11e55c83994bad4824dad156d3 (patch) | |
tree | 80193be4e20320e129fcef4859685132c23e6b1a /backends | |
parent | d5a7519085f35bf48c9b33b8698835b24caa2da1 (diff) |
Linker work.
GNU hash support.
64-bit SysV hash support.
Diffstat (limited to 'backends')
-rw-r--r-- | backends/ChangeLog | 13 | ||||
-rw-r--r-- | backends/alpha_init.c | 3 | ||||
-rw-r--r-- | backends/common-reloc.c | 11 | ||||
-rw-r--r-- | backends/ia64_reloc.def | 4 | ||||
-rw-r--r-- | backends/s390_init.c | 4 |
5 files changed, 32 insertions, 3 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog index b5ae1304..e7416332 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,14 @@ +2006-07-05 Ulrich Drepper <[email protected]> + + * alpha_init.c: Initialize sysvhash_entrysize. + * s390_init.c: Likewise. + +2006-07-04 Ulrich Drepper <[email protected]> + + * common-reloc.c (relative_reloc_p): New function. + (init_reloc): Hook it up. + * ia64_reloc.def: Define NO_RELATIVE_RELOC. + 2006-06-13 Roland McGrath <[email protected]> * ppc64_retval.c: Remove SVR4_STRUCT_RETURN braino. @@ -5,7 +16,7 @@ 2006-06-12 Ulrich Drepper <[email protected]> * common-reloc.c (none_reloc_p): New function. - (init_reloc): Hoop it up. + (init_reloc): Hook it up. 2006-02-22 Roland McGrath <[email protected]> diff --git a/backends/alpha_init.c b/backends/alpha_init.c index 98400280..1590fc88 100644 --- a/backends/alpha_init.c +++ b/backends/alpha_init.c @@ -1,5 +1,5 @@ /* Initialization of Alpha specific backend library. - Copyright (C) 2002, 2005 Red Hat, Inc. + Copyright (C) 2002, 2005, 2006 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -54,6 +54,7 @@ alpha_init (elf, machine, eh, ehlen) HOOK (eh, dynamic_tag_check); HOOK (eh, reloc_simple_type); HOOK (eh, return_value_location); + eh->sysvhash_entrysize = sizeof (Elf64_Xword); return MODVERSION; } diff --git a/backends/common-reloc.c b/backends/common-reloc.c index 9b956557..191b22a2 100644 --- a/backends/common-reloc.c +++ b/backends/common-reloc.c @@ -121,6 +121,14 @@ EBLHOOK(none_reloc_p) (int reloc) return reloc == R_TYPE (NONE); } +#ifndef NO_RELATIVE_RELOC +bool +EBLHOOK(relative_reloc_p) (int reloc) +{ + return reloc == R_TYPE (RELATIVE); +} +#endif + static void EBLHOOK(init_reloc) (Ebl *ebl) { @@ -129,4 +137,7 @@ EBLHOOK(init_reloc) (Ebl *ebl) ebl->reloc_valid_use = EBLHOOK(reloc_valid_use); ebl->copy_reloc_p = EBLHOOK(copy_reloc_p); ebl->none_reloc_p = EBLHOOK(none_reloc_p); +#ifndef NO_RELATIVE_RELOC + ebl->relative_reloc_p = EBLHOOK(relative_reloc_p); +#endif } diff --git a/backends/ia64_reloc.def b/backends/ia64_reloc.def index 0dc001da..a4234656 100644 --- a/backends/ia64_reloc.def +++ b/backends/ia64_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for ia64. -*- C -*- - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2006 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -106,3 +106,5 @@ RELOC_TYPE (DTPREL32LSB, REL|EXEC|DYN) RELOC_TYPE (DTPREL64MSB, REL|EXEC|DYN) RELOC_TYPE (DTPREL64LSB, REL|EXEC|DYN) RELOC_TYPE (LTOFF_DTPREL22, REL) + +#define NO_RELATIVE_RELOC 1 diff --git a/backends/s390_init.c b/backends/s390_init.c index 64e5639b..80cbb832 100644 --- a/backends/s390_init.c +++ b/backends/s390_init.c @@ -53,5 +53,9 @@ s390_init (elf, machine, eh, ehlen) HOOK (eh, register_name); HOOK (eh, return_value_location); + /* Only the 64-bit format uses the incorrect hash table entry size. */ + if (eh->class == ELFCLASS64) + eh->sysvhash_entrysize = sizeof (Elf64_Xword); + return MODVERSION; } |