diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2007-05-14 08:53:23 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2007-05-14 08:53:23 +0000 |
commit | b7b7fe3f8fd2580eb6f437d9324f807177b65a61 (patch) | |
tree | af5a873d0b4cc81e513ee0e3eb61d6400412c37a /ld/emultempl | |
parent | 2e74ed18043f3cc9d8edc3fe4beb82cca6bbc30e (diff) | |
download | gdb-b7b7fe3f8fd2580eb6f437d9324f807177b65a61.zip gdb-b7b7fe3f8fd2580eb6f437d9324f807177b65a61.tar.gz gdb-b7b7fe3f8fd2580eb6f437d9324f807177b65a61.tar.bz2 |
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern):
Handle null pattern.
testsuite/:
* ld-elf/dl2a.list: New file.
* ld-elf/shared.exp: Add test using --dynamic-list=dl2a.list.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/ppc64elf.em | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index 1fcf3ab..9372f88 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -414,17 +414,22 @@ gld${EMULATION_NAME}_new_vers_pattern (struct bfd_elf_version_expr *entry) unsigned int len; char *dot_pat; - if (!dotsyms || entry->pattern[0] == '*' || entry->pattern[0] == '.') + if (!dotsyms + || (entry->pattern != NULL + && (entry->pattern[0] == '*' || entry->pattern[0] == '.'))) return entry; dot_entry = xmalloc (sizeof *dot_entry); *dot_entry = *entry; dot_entry->next = entry; - len = strlen (entry->pattern) + 2; - dot_pat = xmalloc (len); - dot_pat[0] = '.'; - memcpy (dot_pat + 1, entry->pattern, len - 1); - dot_entry->pattern = dot_pat; + if (entry->pattern != NULL) + { + len = strlen (entry->pattern) + 2; + dot_pat = xmalloc (len); + dot_pat[0] = '.'; + memcpy (dot_pat + 1, entry->pattern, len - 1); + dot_entry->pattern = dot_pat; + } if (entry->symbol != NULL) { len = strlen (entry->symbol) + 2; |