Commit a86c8f29de76536db368714297ed13beb05ef771
1 parent
5dc4b744
Fix compiler warnings, add signed versions of some swab functions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2252 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
15 additions
and
3 deletions
dyngen.c
| ... | ... | @@ -127,10 +127,12 @@ |
| 127 | 127 | typedef int32_t host_long; |
| 128 | 128 | typedef uint32_t host_ulong; |
| 129 | 129 | #define swabls(x) swab32s(x) |
| 130 | +#define swablss(x) swab32ss(x) | |
| 130 | 131 | #else |
| 131 | 132 | typedef int64_t host_long; |
| 132 | 133 | typedef uint64_t host_ulong; |
| 133 | 134 | #define swabls(x) swab64s(x) |
| 135 | +#define swablss(x) swab64ss(x) | |
| 134 | 136 | #endif |
| 135 | 137 | |
| 136 | 138 | #ifdef ELF_USES_RELOCA |
| ... | ... | @@ -284,11 +286,21 @@ void swab32s(uint32_t *p) |
| 284 | 286 | *p = bswap32(*p); |
| 285 | 287 | } |
| 286 | 288 | |
| 289 | +void swab32ss(int32_t *p) | |
| 290 | +{ | |
| 291 | + *p = bswap32(*p); | |
| 292 | +} | |
| 293 | + | |
| 287 | 294 | void swab64s(uint64_t *p) |
| 288 | 295 | { |
| 289 | 296 | *p = bswap64(*p); |
| 290 | 297 | } |
| 291 | 298 | |
| 299 | +void swab64ss(int64_t *p) | |
| 300 | +{ | |
| 301 | + *p = bswap64(*p); | |
| 302 | +} | |
| 303 | + | |
| 292 | 304 | uint16_t get16(uint16_t *p) |
| 293 | 305 | { |
| 294 | 306 | uint16_t val; |
| ... | ... | @@ -397,7 +409,7 @@ void elf_swap_rel(ELF_RELOC *rel) |
| 397 | 409 | swabls(&rel->r_offset); |
| 398 | 410 | swabls(&rel->r_info); |
| 399 | 411 | #ifdef ELF_USES_RELOCA |
| 400 | - swabls(&rel->r_addend); | |
| 412 | + swablss(&rel->r_addend); | |
| 401 | 413 | #endif |
| 402 | 414 | } |
| 403 | 415 | |
| ... | ... | @@ -505,7 +517,7 @@ int load_object(const char *filename) |
| 505 | 517 | } |
| 506 | 518 | |
| 507 | 519 | sec = &shdr[ehdr.e_shstrndx]; |
| 508 | - shstr = sdata[ehdr.e_shstrndx]; | |
| 520 | + shstr = (char *)sdata[ehdr.e_shstrndx]; | |
| 509 | 521 | |
| 510 | 522 | /* swap relocations */ |
| 511 | 523 | for(i = 0; i < ehdr.e_shnum; i++) { |
| ... | ... | @@ -541,7 +553,7 @@ int load_object(const char *filename) |
| 541 | 553 | strtab_sec = &shdr[symtab_sec->sh_link]; |
| 542 | 554 | |
| 543 | 555 | symtab = (ElfW(Sym) *)sdata[symtab_sec - shdr]; |
| 544 | - strtab = sdata[symtab_sec->sh_link]; | |
| 556 | + strtab = (char *)sdata[symtab_sec->sh_link]; | |
| 545 | 557 | |
| 546 | 558 | nb_syms = symtab_sec->sh_size / sizeof(ElfW(Sym)); |
| 547 | 559 | if (do_swap) { | ... | ... |