On Tue, Apr 2, 2019 at 10:05 AM Richard Henderson <r...@twiddle.net> wrote:
>
> On 4/1/19 8:53 PM, Sudakshina Das wrote:
> >> This could stand to use a comment, a moment's thinking about the sizes, 
> >> and to
> >> use the existing asm output functions.
> >>
> >>      /* PT_NOTE header: namesz, descsz, type.
> >>         namesz = 4 ("GNU\0")
> >>         descsz = 12 (see below)
> > I was trying out these changes but the descsz of 12 gets rejected by
> > readelf. It hits the following
> >
> >    unsigned int    size = is_32bit_elf ? 4 : 8;
> >
> >    printf (_("      Properties: "));
> >
> >    if (pnote->descsz < 8 || (pnote->descsz % size) != 0)
> >      {
> >        printf (_("<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"),
> > pnote->descsz);
> >        return;
> >      }
>
> Hmm, interesting.  The docs say that padding is not to be included in descsz
> (gabi4.1, page 82).  To my eye this is a bug in binutils, but perhaps we will
> have to live with it.
>
> Nick, thoughts?

descsz is wrong.  From:

https://github.com/hjl-tools/linux-abi/wiki/Linux-Extensions-to-gABI

n_desc The note descriptor. The first n_descsz bytes in n_desc is the pro-
gram property array.

The program property array
Each array element represents one program property with type, data
size and data.
In 64-bit objects, each element is an array of 8-byte integers in the
format of the
target processor. In 32-bit objects, each element is an array of
4-byte integers in
the format of the target processor.


-- 
H.J.

Reply via email to