RFA: [buildsym.c] Turn off unused addr bits in linetable

Fernando Nasser fnasser@redhat.com
Mon Mar 12 17:01:00 GMT 2001


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!  */


More information about the Gdb-patches mailing list