[Ups-cvs] ups/ups ao_dwftype.c,1.12,1.13 ao_symscan.c,1.7,1.8
Brought to you by:
ianedwards
From: Tom H. <th...@us...> - 2006-01-09 10:23:07
|
Update of /cvsroot/ups/ups/ups In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19653 Modified Files: ao_dwftype.c ao_symscan.c Log Message: Take the symbol table base address into account for an OP_ADDR in a location description so that we can find static variables in shared libraries correctly. Index: ao_symscan.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symscan.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ao_symscan.c 21 Feb 2005 16:38:16 -0000 1.7 --- ao_symscan.c 9 Jan 2006 10:22:54 -0000 1.8 *************** *** 1954,1959 **** for (v = fil->fi_block->bl_vars; v != NULL; ! v = v->va_next) v->va_addr += delta; } } --- 1954,1963 ---- for (v = fil->fi_block->bl_vars; v != NULL; ! v = v->va_next) { v->va_addr += delta; + if (v->va_location && + v->va_location->v_op == OP_ADDR) + v->va_location->v_addr += delta; + } } } Index: ao_dwftype.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwftype.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ao_dwftype.c 20 Dec 2005 12:43:12 -0000 1.12 --- ao_dwftype.c 9 Jan 2006 10:22:54 -0000 1.13 *************** *** 485,489 **** else class = CL_LSTAT; ! addr = vaddr->v_addr + stf->stf_addr; } else if (vaddr->v_op == OP_U_OFFSET) { --- 485,489 ---- else class = CL_LSTAT; ! addr = vaddr->v_addr = vaddr->v_addr + stf->stf_addr; } else if (vaddr->v_op == OP_U_OFFSET) { |