This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Fwd: [PATCH: Bug debug/39527] wrong function name and line numbers with -g -O2 option]
- From: "M R Swami Reddy" <MR dot Swami dot Reddy at nsc dot com>
- To: "binutils at sources dot redhat dot com" <binutils at sources dot redhat dot com>
- Date: Wed, 25 Mar 2009 11:27:08 +0530
- Subject: [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 */
};