This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Fwd: [PATCH: Bug debug/39527] wrong function name and line numbers with -g -O2 option]


Hello,
Could you please review the below patch (ie bfd/elf32-crx.c.diff file).

Thanks
Swami

-------- Original Message --------
Subject: [PATCH: Bug debug/39527] wrong function name and line numbers with -g -O2 option
Date: Tue, 24 Mar 2009 15:39:40 +0530
From: M R Swami Reddy <MR.Swami.Reddy@nsc.com>
To: GCC Patches <gcc-patches@gcc.gnu.org>, "binutils@sources.redhat.com" <binutils@sources.redhat.com>


Patch to fix the PR 39527 for crx-elf target.
Ran the PR testcase and its working as expected and also ran the binutils tests.
No regressions.

Is this ok gcc trunk?

gcc/ChangeLog

        PR debug/39527
        * config/crx/crx.c (DWARF2_FRAME_INFO, PREFERRED_DEBUGGING_TYPE and
          DWARF2_ASM_LINE_DEBUG_INFO): Define

bfd/ChangeLog

        * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
        the reloc descriptions.


Thanks Swami

Index: crx.h
===================================================================
--- crx.h	(revision 144812)
+++ crx.h	(working copy)
@@ -63,8 +63,16 @@
     } while (0)
 
 /* Show we can debug even without a frame pointer.  */
-#define CAN_DEBUG_WITHOUT_FP
+#define CAN_DEBUG_WITHOUT_FP 1
 
+#define DWARF2_FRAME_INFO 1
+
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+
+/* Generate .file/.loc directives, so that the assembler generates the
+   line table. */
+#define DWARF2_ASM_LINE_DEBUG_INFO 1
+
 /*****************************************************************************/
 /* STORAGE LAYOUT							     */
 /*****************************************************************************/

*** elf32-crx.c.orig	2009-03-24 14:20:04.000000000 +0530
--- elf32-crx.c	2009-03-24 14:29:40.000000000 +0530
***************
*** 104,110 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL4",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xf,			/* src_mask */
  	 0xf,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 104,110 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL4",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xf,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 118,124 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL8",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xff,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 118,124 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL8",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 132,138 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL8_CMP",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xff,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 132,138 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL8_CMP",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 146,152 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffff,		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 146,152 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 160,166 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL24",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffff,		/* src_mask */
  	 0xffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 160,166 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL24",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 174,180 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 174,180 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REL32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 188,194 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL12",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xfff,			/* src_mask */
  	 0xfff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 188,194 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL12",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xfff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 202,208 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL22",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x3fffff,		/* src_mask */
  	 0x3fffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 202,208 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL22",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0x3fffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 216,222 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL28",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xfffffff,		/* src_mask */
  	 0xfffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 216,222 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL28",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xfffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 230,236 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL32",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 230,236 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_REGREL32",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 244,250 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_ABS16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffff,		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 244,250 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_ABS16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 258,264 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_ABS32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 258,264 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_ABS32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 272,278 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM8",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xff,	  		/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 272,278 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM8",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,	  		/* src_mask */
  	 0xff,			/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 286,292 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffff,  		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 286,292 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,	  		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 300,306 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,  		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 300,306 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_NUM32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,	  		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 314,320 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_IMM16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffff,  		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
--- 314,320 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_IMM16",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0, 	 		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
  
***************
*** 328,334 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_IMM32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,  		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
   
--- 328,334 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_IMM32",		/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,  			/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 FALSE),		/* pcrel_offset */
   
***************
*** 345,351 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH8",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xff,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 TRUE),			/* pcrel_offset */
  
--- 345,351 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH8",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xff,			/* dst_mask */
  	 TRUE),			/* pcrel_offset */
  
***************
*** 362,368 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH16",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffff,		/* src_mask */
  	 0xffff,		/* dst_mask */
  	 TRUE),			/* pcrel_offset */
  
--- 362,368 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH16",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffff,		/* dst_mask */
  	 TRUE),			/* pcrel_offset */
  
***************
*** 379,385 ****
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH32",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 TRUE)			/* pcrel_offset */
  };
--- 379,385 ----
  	 bfd_elf_generic_reloc,	/* special_function */
  	 "R_CRX_SWITCH32",	/* name */
  	 FALSE,			/* partial_inplace */
! 	 0x0,			/* src_mask */
  	 0xffffffff,		/* dst_mask */
  	 TRUE)			/* pcrel_offset */
  };


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]