diff options
author | Alan Modra <amodra@gmail.com> | 2004-03-22 22:58:04 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2004-03-22 22:58:04 +0000 |
commit | b9cf773d1a267941d84772b54847c931f11bdec5 (patch) | |
tree | 47c492c9d707c7965e3593ce067dbe0fbcf9a96a /bfd/linker.c | |
parent | 8e645ae742d75eb41ecaea60b3d097b69f126838 (diff) | |
download | gdb-b9cf773d1a267941d84772b54847c931f11bdec5.zip gdb-b9cf773d1a267941d84772b54847c931f11bdec5.tar.gz gdb-b9cf773d1a267941d84772b54847c931f11bdec5.tar.bz2 |
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 c55fb93..58befc3 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); |