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,10 +127,12 @@ | ||
127 | typedef int32_t host_long; | 127 | typedef int32_t host_long; |
128 | typedef uint32_t host_ulong; | 128 | typedef uint32_t host_ulong; |
129 | #define swabls(x) swab32s(x) | 129 | #define swabls(x) swab32s(x) |
130 | +#define swablss(x) swab32ss(x) | ||
130 | #else | 131 | #else |
131 | typedef int64_t host_long; | 132 | typedef int64_t host_long; |
132 | typedef uint64_t host_ulong; | 133 | typedef uint64_t host_ulong; |
133 | #define swabls(x) swab64s(x) | 134 | #define swabls(x) swab64s(x) |
135 | +#define swablss(x) swab64ss(x) | ||
134 | #endif | 136 | #endif |
135 | 137 | ||
136 | #ifdef ELF_USES_RELOCA | 138 | #ifdef ELF_USES_RELOCA |
@@ -284,11 +286,21 @@ void swab32s(uint32_t *p) | @@ -284,11 +286,21 @@ void swab32s(uint32_t *p) | ||
284 | *p = bswap32(*p); | 286 | *p = bswap32(*p); |
285 | } | 287 | } |
286 | 288 | ||
289 | +void swab32ss(int32_t *p) | ||
290 | +{ | ||
291 | + *p = bswap32(*p); | ||
292 | +} | ||
293 | + | ||
287 | void swab64s(uint64_t *p) | 294 | void swab64s(uint64_t *p) |
288 | { | 295 | { |
289 | *p = bswap64(*p); | 296 | *p = bswap64(*p); |
290 | } | 297 | } |
291 | 298 | ||
299 | +void swab64ss(int64_t *p) | ||
300 | +{ | ||
301 | + *p = bswap64(*p); | ||
302 | +} | ||
303 | + | ||
292 | uint16_t get16(uint16_t *p) | 304 | uint16_t get16(uint16_t *p) |
293 | { | 305 | { |
294 | uint16_t val; | 306 | uint16_t val; |
@@ -397,7 +409,7 @@ void elf_swap_rel(ELF_RELOC *rel) | @@ -397,7 +409,7 @@ void elf_swap_rel(ELF_RELOC *rel) | ||
397 | swabls(&rel->r_offset); | 409 | swabls(&rel->r_offset); |
398 | swabls(&rel->r_info); | 410 | swabls(&rel->r_info); |
399 | #ifdef ELF_USES_RELOCA | 411 | #ifdef ELF_USES_RELOCA |
400 | - swabls(&rel->r_addend); | 412 | + swablss(&rel->r_addend); |
401 | #endif | 413 | #endif |
402 | } | 414 | } |
403 | 415 | ||
@@ -505,7 +517,7 @@ int load_object(const char *filename) | @@ -505,7 +517,7 @@ int load_object(const char *filename) | ||
505 | } | 517 | } |
506 | 518 | ||
507 | sec = &shdr[ehdr.e_shstrndx]; | 519 | sec = &shdr[ehdr.e_shstrndx]; |
508 | - shstr = sdata[ehdr.e_shstrndx]; | 520 | + shstr = (char *)sdata[ehdr.e_shstrndx]; |
509 | 521 | ||
510 | /* swap relocations */ | 522 | /* swap relocations */ |
511 | for(i = 0; i < ehdr.e_shnum; i++) { | 523 | for(i = 0; i < ehdr.e_shnum; i++) { |
@@ -541,7 +553,7 @@ int load_object(const char *filename) | @@ -541,7 +553,7 @@ int load_object(const char *filename) | ||
541 | strtab_sec = &shdr[symtab_sec->sh_link]; | 553 | strtab_sec = &shdr[symtab_sec->sh_link]; |
542 | 554 | ||
543 | symtab = (ElfW(Sym) *)sdata[symtab_sec - shdr]; | 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 | nb_syms = symtab_sec->sh_size / sizeof(ElfW(Sym)); | 558 | nb_syms = symtab_sec->sh_size / sizeof(ElfW(Sym)); |
547 | if (do_swap) { | 559 | if (do_swap) { |