fix various bugs for sunos

This commit is contained in:
rsc 2004-04-20 00:54:58 +00:00
parent 20b33daf59
commit 929ba9b98f
6 changed files with 13 additions and 13 deletions

View file

@ -68,7 +68,7 @@ crackelf(int fd, Fhdr *fp)
if(elfmap(elf, s1) >= 0 && elfmap(elf, s2) >= 0){ if(elfmap(elf, s1) >= 0 && elfmap(elf, s2) >= 0){
fp->stabs.stabbase = s1->base; fp->stabs.stabbase = s1->base;
fp->stabs.stabsize = s1->size; fp->stabs.stabsize = s1->size;
fp->stabs.strbase = s2->base; fp->stabs.strbase = (char*)s2->base;
fp->stabs.strsize = s2->size; fp->stabs.strsize = s2->size;
fp->stabs.e2 = elf->hdr.e2; fp->stabs.e2 = elf->hdr.e2;
fp->stabs.e4 = elf->hdr.e4; fp->stabs.e4 = elf->hdr.e4;

View file

@ -117,7 +117,7 @@ crackmacho(int fd, Fhdr *fp)
if(i < m->ncmd){ if(i < m->ncmd){
fp->stabs.stabbase = load(fp->fd, m->cmd[i].sym.symoff, m->cmd[i].sym.nsyms*16); fp->stabs.stabbase = load(fp->fd, m->cmd[i].sym.symoff, m->cmd[i].sym.nsyms*16);
fp->stabs.stabsize = m->cmd[i].sym.nsyms*16; fp->stabs.stabsize = m->cmd[i].sym.nsyms*16;
fp->stabs.strbase = load(fp->fd, m->cmd[i].sym.stroff, m->cmd[i].sym.strsize); fp->stabs.strbase = (char*)load(fp->fd, m->cmd[i].sym.stroff, m->cmd[i].sym.strsize);
if(fp->stabs.stabbase == nil || fp->stabs.strbase == nil){ if(fp->stabs.stabbase == nil || fp->stabs.strbase == nil){
fp->stabs.stabbase = nil; fp->stabs.stabbase = nil;
fp->stabs.strbase = nil; fp->stabs.strbase = nil;

View file

@ -544,7 +544,7 @@ getstring(DwarfBuf *b, int form, char **s)
/* don't return error - maybe can proceed */ /* don't return error - maybe can proceed */
*s = nil; *s = nil;
}else }else
*s = b->d->str.data + u; *s = (char*)b->d->str.data + u;
return 0; return 0;
} }

View file

@ -109,12 +109,12 @@ dwarfpctoline(Dwarf *d, ulong pc, char **cdir, char **dir, char **file, ulong *l
} }
/* just skip the files and dirs for now; we'll come back */ /* just skip the files and dirs for now; we'll come back */
dirs = b.p; dirs = (char*)b.p;
while(b.p!=nil && *b.p!=0) while(b.p!=nil && *b.p!=0)
dwarfgetstring(&b); dwarfgetstring(&b);
dwarfget1(&b); dwarfget1(&b);
files = b.p; files = (char*)b.p;
while(b.p!=nil && *b.p!=0){ while(b.p!=nil && *b.p!=0){
dwarfgetstring(&b); dwarfgetstring(&b);
dwarfget128(&b); dwarfget128(&b);
@ -278,7 +278,7 @@ dwarfpctoline(Dwarf *d, ulong pc, char **cdir, char **dir, char **file, ulong *l
*line = emit.line; *line = emit.line;
/* skip over first emit.file-2 guys */ /* skip over first emit.file-2 guys */
b.p = files; b.p = (uchar*)files;
for(i=emit.file-1; i > 0 && b.p!=nil && *b.p!=0; i--){ for(i=emit.file-1; i > 0 && b.p!=nil && *b.p!=0; i--){
dwarfgetstring(&b); dwarfgetstring(&b);
dwarfget128(&b); dwarfget128(&b);
@ -315,7 +315,7 @@ dwarfpctoline(Dwarf *d, ulong pc, char **cdir, char **dir, char **file, ulong *l
if(i == 0) if(i == 0)
*dir = nil; *dir = nil;
else{ else{
b.p = dirs; b.p = (uchar*)dirs;
for(i--; i>0 && b.p!=nil && *b.p!=0; i--) for(i--; i>0 && b.p!=nil && *b.p!=0; i--)
dwarfgetstring(&b); dwarfgetstring(&b);
if(b.p==nil || *b.p==0){ if(b.p==nil || *b.p==0){

View file

@ -195,7 +195,7 @@ elfinit(int fd)
for(i=0; i<e->nsect; i++) for(i=0; i<e->nsect; i++)
if(e->sect[i].name) if(e->sect[i].name)
e->sect[i].name = s->base + (ulong)e->sect[i].name; e->sect[i].name = (char*)s->base + (ulong)e->sect[i].name;
e->symtab = elfsection(e, ".symtab"); e->symtab = elfsection(e, ".symtab");
if(e->symtab){ if(e->symtab){
@ -375,7 +375,7 @@ elfsym(Elf *elf, int i, ElfSym *sym)
if(elfmap(elf, symtab) < 0 || elfmap(elf, strtab) < 0) if(elfmap(elf, symtab) < 0 || elfmap(elf, strtab) < 0)
return -1; return -1;
p = symtab->base + i * sizeof(ElfSymBytes); p = symtab->base + i * sizeof(ElfSymBytes);
s = strtab->base; s = (char*)strtab->base;
x = elf->hdr.e4(p); x = elf->hdr.e4(p);
if(x >= strtab->size){ if(x >= strtab->size){
werrstr("bad symbol name offset 0x%lux", x); werrstr("bad symbol name offset 0x%lux", x);

View file

@ -18,9 +18,9 @@ ieeeftoa64(char *buf, uint n, u32int h, u32int l)
return 0; return 0;
if(h & (1L<<31)){ if(h & (1UL<<31)){
*buf++ = '-'; *buf++ = '-';
h &= ~(1L<<31); h &= ~(1UL<<31);
}else }else
*buf++ = ' '; *buf++ = ' ';
n--; n--;
@ -55,9 +55,9 @@ ieeeftoa32(char *buf, uint n, u32int h)
if (n <= 0) if (n <= 0)
return 0; return 0;
if(h & (1L<<31)){ if(h & (1UL<<31)){
*buf++ = '-'; *buf++ = '-';
h &= ~(1L<<31); h &= ~(1UL<<31);
}else }else
*buf++ = ' '; *buf++ = ' ';
n--; n--;