Patchworkβ Out of order unwind entry warning

login
register
about
Submitter John David Anglin
Date 2009-10-29 21:07:32
Message ID <20091029210733.96E8B4E38@hiauly1.hia.nrc.ca>
Download mbox | patch
Permalink /patch/56524/
State Not Applicable
Headers show

Comments

John David Anglin - 2009-10-29 21:07:32
> > Still need to look at readelf -u on .o's.
> 
> Yes, I see this too. readelf -u doesn't print any longer the second line of:
> <arch_mod_section_prepend>: [0x1011fc4c-0x1011fc74]
>            Entry_GR=1 Save_SP Total_frame_size=8

Actually, the entries are still there.  For weak functions that
are not used, they appear as "<foo+x>:" where foo is the closest
preceding symbol before the unused weak function.  In practice,
the code shouldn't be entered, so the lack of an associated function
symbol shouldn't matter.

I have a fix for the readelf -u bug.  See below.

Dave
Helge Deller - 2009-10-29 22:22:04
On 10/29/2009 10:07 PM, John David Anglin wrote:
>>> Still need to look at readelf -u on .o's.
>>
>> Yes, I see this too. readelf -u doesn't print any longer the second line of:
>> <arch_mod_section_prepend>: [0x1011fc4c-0x1011fc74]
>>             Entry_GR=1 Save_SP Total_frame_size=8
>
> Actually, the entries are still there.  For weak functions that
> are not used, they appear as "<foo+x>:" where foo is the closest
> preceding symbol before the unused weak function.  In practice,
> the code shouldn't be entered, so the lack of an associated function
> symbol shouldn't matter.
>
> I have a fix for the readelf -u bug.  See below.

Sorry, but I don't fully understand...

With your patch to gas, the unwind info for the weak functions are completely gone in the final executable (which is good).

But "readelf -u" doesn't show the "Entry_GR=..." lines for _any_ function any longer (in the final executable).
I really mean _all_ functions, weak, non-weak, standard, ...
The patch you attached only changes the start and end addresses of the symbols...?

Helge
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

Index: readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.467
diff -u -3 -p -r1.467 readelf.c
--- readelf.c	23 Oct 2009 00:15:07 -0000	1.467
+++ readelf.c	29 Oct 2009 20:59:26 -0000
@@ -5589,11 +5589,11 @@  slurp_hppa_unwind_table (FILE * file,
 	    {
 	    case 0:
 	      aux->table[i].start.section = sym->st_shndx;
-	      aux->table[i].start.offset += sym->st_value + rp->r_addend;
+	      aux->table[i].start.offset  = sym->st_value + rp->r_addend;
 	      break;
 	    case 1:
 	      aux->table[i].end.section   = sym->st_shndx;
-	      aux->table[i].end.offset   += sym->st_value + rp->r_addend;
+	      aux->table[i].end.offset    = sym->st_value + rp->r_addend;
 	      break;
 	    default:
 	      break;