Correct symbolic display of addresses when high bit is set (eg in omap kernel). After installing patch, rebuild db, acid and 5i. Before: acid: asm(main) main 0xc0314d74 MOVW.W R14,#-0x10(R13) main+0x4 0xc0314d78 MOVW $#0xc03c1bfc-SB(SB),R6 main+0x8 0xc0314d7c MOVW $#0x35014542,R11 main+0xc 0xc0314d80 CMN.S R11,R6 main+0x10 0xc0314d84 B.EQ etext+0xaa584 main+0x14 0xc0314d88 MOVW $#0xc03c0000,R0 main+0x18 0xc0314d8c MOVW $#0xc03bf328,R1 main+0x1c 0xc0314d90 MOVW R1,#0x8(R13) main+0x20 0xc0314d94 MOVW $#0xc0488c70,R3 main+0x24 0xc0314d98 SUB R0,R3,R3 main+0x28 0xc0314d9c MOVW R3,#0xc(R13) main+0x2c 0xc0314da0 BL etext+0xcce0 After: acid: asm(main) main 0xc0314d74 MOVW.W R14,#-0x10(R13) main+0x4 0xc0314d78 MOVW $vfy$19-SB(SB),R6 main+0x8 0xc0314d7c MOVW $#0x35014542,R11 main+0xc 0xc0314d80 CMN.S R11,R6 main+0x10 0xc0314d84 B.EQ main+0x30 main+0x14 0xc0314d88 MOVW $msg$1,R0 main+0x18 0xc0314d8c MOVW $#0xc03bf328,R1 main+0x1c 0xc0314d90 MOVW R1,#0x8(R13) main+0x20 0xc0314d94 MOVW $xlists,R3 main+0x24 0xc0314d98 SUB R0,R3,R3 main+0x28 0xc0314d9c MOVW R3,#0xc(R13) main+0x2c 0xc0314da0 BL memmove Reference: /n/sources/patch/applied/libmach-arm-symoff Date: Sun Jul 29 12:47:20 CES 2012 Signed-off-by: miller@hamnavoe.com --- /sys/src/libmach/5db.c Sun Jul 29 12:41:55 2012 +++ /sys/src/libmach/5db.c Sun Jul 29 12:41:52 2012 @@ -298,7 +298,7 @@ * Print value v as name[+offset] */ static int -gsymoff(char *buf, int n, long v, int space) +gsymoff(char *buf, int n, ulong v, int space) { Symbol s; int r; @@ -1011,7 +1011,7 @@ case 'b': i->curr += symoff(i->curr, i->end-i->curr, - i->imm, CTEXT); + (ulong)i->imm, CTEXT); break; case 'g':