diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2003-07-08 18:05:34 +0000 |
---|---|---|
committer | Joern Rennecke <joern.rennecke@embecosm.com> | 2003-07-08 18:05:34 +0000 |
commit | fb319d8d1d764e846fd7a84e76d7104706ac344f (patch) | |
tree | d525abac0e65022269b63c911d8d7095b5d1d51c /ld/emultempl | |
parent | dc5dd1eba02996a994edfee80c746af6ffe72de5 (diff) | |
download | gdb-fb319d8d1d764e846fd7a84e76d7104706ac344f.zip gdb-fb319d8d1d764e846fd7a84e76d7104706ac344f.tar.gz gdb-fb319d8d1d764e846fd7a84e76d7104706ac344f.tar.bz2 |
* emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation):
Allow second call from ldemul_finish.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/sh64elf.em | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ld/emultempl/sh64elf.em b/ld/emultempl/sh64elf.em index 3c348fd..7f2b037 100644 --- a/ld/emultempl/sh64elf.em +++ b/ld/emultempl/sh64elf.em @@ -375,7 +375,14 @@ sh64_elf_${EMULATION_NAME}_after_allocation (void) } } - BFD_ASSERT (cranges->contents == NULL); + /* ldemul_after_allocation may be called twice. First directly from + lang_process, and the second time when lang_process calls ldemul_finish, + which calls gld${EMULATION_NAME}_finish, e.g. gldshelf32_finish, which + is defined in emultempl/elf32.em and calls ldemul_after_allocation, + if bfd_elf${ELFSIZE}_discard_info returned true. */ + if (cranges->contents != NULL) + free (cranges->contents); + BFD_ASSERT (sh64_elf_section_data (cranges)->sh64_info != NULL); /* Make sure we have .cranges in memory even if there were only |