diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-04-04 12:56:28 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-04-04 12:56:28 +0000 |
commit | 40c3bac35a868c275e083cad9ff39d3119847707 (patch) | |
tree | 5971aea492fe5ca89b2e13afd876d3f06f97091a /dyngen.c | |
parent | 6eaee4614437e3a99af817485963487efd84e771 (diff) | |
download | qemu-40c3bac35a868c275e083cad9ff39d3119847707.zip qemu-40c3bac35a868c275e083cad9ff39d3119847707.tar.gz qemu-40c3bac35a868c275e083cad9ff39d3119847707.tar.bz2 |
win32 port (Kazu)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@702 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'dyngen.c')
-rw-r--r-- | dyngen.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1215,6 +1215,19 @@ void gen_code(const char *name, host_ulong offset, host_ulong size, error("unsupported i386 relocation (%d)", type); } #elif defined(CONFIG_FORMAT_COFF) + { + char *temp_name; + int j; + EXE_SYM *sym; + temp_name = get_sym_name(symtab + *(uint32_t *)(rel->r_reloc->r_symndx)); + if (!strcmp(temp_name, ".data")) { + for (j = 0, sym = symtab; j < nb_syms; j++, sym++) { + if (strstart(sym->st_name, sym_name, NULL)) { + addend -= sym->st_value; + } + } + } + } type = rel->r_type; switch(type) { case DIR32: |