This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
RFA: [buildsym.c] Turn off unused addr bits in linetable
- To: gdb-patches at sources dot redhat dot com, Nick Clifton <nickc at cygnus dot com>
- Subject: RFA: [buildsym.c] Turn off unused addr bits in linetable
- From: Fernando Nasser <fnasser at redhat dot com>
- Date: Mon, 12 Mar 2001 19:58:30 -0500
- Organization: Red Hat Canada
Some systems like ARM may have extra bits set in the address to indicate
a mode or something else (the LSB=1 means thumb mode for ARM).
So, before storing line number addresses we may need to turn this bits
off as they may be passed to gdb with the bits on as result of
relocation (ld has no way of knowing it is for a line table entry).
The following patch passes the line addresses through the target
dependent macro ADDR_BITS_REMOVE() before storing it on the table.
OK to commit?
ChangeLog:
* buildsym.c (record_line): Turn off unused addr bits.
--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9
Index: gdb/buildsym.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/buildsym.c,v
retrieving revision 2.104
diff -c -p -r2.104 buildsym.c
*** buildsym.c 2000/02/21 10:02:58 2.104
--- buildsym.c 2001/03/12 23:50:04
*************** record_line (register struct subfile *su
*** 725,731 ****
e = subfile->line_vector->item + subfile->line_vector->nitems++;
e->line = line;
! e->pc = pc;
}
/* Needed in order to sort line tables from IBM xcoff files. Sigh! */
--- 725,731 ----
e = subfile->line_vector->item + subfile->line_vector->nitems++;
e->line = line;
! e->pc = ADDR_BITS_REMOVE(pc);
}
/* Needed in order to sort line tables from IBM xcoff files. Sigh! */