diff options
author | Alan Modra <amodra@bigpond.net.au> | 2004-03-22 22:58:02 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2004-03-22 22:58:02 +0000 |
commit | 655b7ac0a24eca1174ce2e150362b622e74fb3c4 (patch) | |
tree | 8b96518fe81079397f56a9636a7df959aebce1cc /bfd/linker.c | |
parent | 2922cdf905ab9ac73f05358d28f0f333c64f5633 (diff) | |
download | gdb-655b7ac0a24eca1174ce2e150362b622e74fb3c4.tar.gz |
include/
PR 51.
* bfdlink.h (struct bfd_link_info): Add wrap_char.
bfd/
PR 51.
* linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.
ld/
PR 51.
* emultempl/ppc64elf.em (ppc_create_output_section_statements): Set
link_info.wrap_char.
Diffstat (limited to 'bfd/linker.c')
-rw-r--r-- | bfd/linker.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/bfd/linker.c b/bfd/linker.c index c55fb9338ad..58befc3632e 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -1,6 +1,6 @@ /* linker.c -- BFD linker routines - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 - Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004 Free Software Foundation, Inc. Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support This file is part of BFD, the Binary File Descriptor library. @@ -523,10 +523,14 @@ bfd_wrapped_link_hash_lookup (bfd *abfd, if (info->wrap_hash != NULL) { const char *l; + char prefix = '\0'; l = string; - if (*l == bfd_get_symbol_leading_char (abfd)) - ++l; + if (*l == bfd_get_symbol_leading_char (abfd) || *l == info->wrap_char) + { + prefix = *l; + ++l; + } #undef WRAP #define WRAP "__wrap_" @@ -544,8 +548,7 @@ bfd_wrapped_link_hash_lookup (bfd *abfd, if (n == NULL) return NULL; - /* Note that symbol_leading_char may be '\0'. */ - n[0] = bfd_get_symbol_leading_char (abfd); + n[0] = prefix; n[1] = '\0'; strcat (n, WRAP); strcat (n, l); @@ -576,8 +579,7 @@ bfd_wrapped_link_hash_lookup (bfd *abfd, if (n == NULL) return NULL; - /* Note that symbol_leading_char may be '\0'. */ - n[0] = bfd_get_symbol_leading_char (abfd); + n[0] = prefix; n[1] = '\0'; strcat (n, l + sizeof REAL - 1); h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow); |