diff --git a/disas.h b/disas.h index 06abab21ebc6032763747b1d06c62aa24fde7cd2..6a9332d6ccbd2a33700dc62a56137d595a46aa2e 100644 --- a/disas.h +++ b/disas.h @@ -22,7 +22,11 @@ struct syminfo; struct elf32_sym; struct elf64_sym; +#if defined(CONFIG_USER_ONLY) +typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_ulong orig_addr); +#else typedef const char *(*lookup_symbol_t)(struct syminfo *s, target_phys_addr_t orig_addr); +#endif struct syminfo { lookup_symbol_t lookup_symbol; diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 1d5f6518ceb065bd6fceae11f77db63da763f926..71ed2d60d1cba2e30d4c2cff0d2cacf33fc1da97 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1448,10 +1448,10 @@ static void load_symbols(struct elfhdr *hdr, int fd) s->disas_num_syms = nsyms; #if ELF_CLASS == ELFCLASS32 s->disas_symtab.elf32 = syms; - s->lookup_symbol = (lookup_symbol_t)lookup_symbolxx; + s->lookup_symbol = lookup_symbolxx; #else s->disas_symtab.elf64 = syms; - s->lookup_symbol = (lookup_symbol_t)lookup_symbolxx; + s->lookup_symbol = lookup_symbolxx; #endif s->next = syminfos; syminfos = s;