This is the mail archive of the binutils@sources.redhat.com 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]

Re: RFA: Extensions to the .eh_frame linker code


Alan Modra <amodra@bigpond.net.au> writes:
>> @@ -289,6 +289,8 @@ struct eh_cie_fde
>>    /* For FDEs, this points to the CIE used.  */
>>    struct eh_cie_fde *cie_inf;
>>    unsigned int size;
>> +  unsigned int growth;
>> +  unsigned int new_size;
>>    unsigned int offset;
>>    unsigned int new_offset;
>>    unsigned char fde_encoding;
>
> Can you do without these extra fields?  It seems a waste of memory to
> have them in a struct kept for all FDEs.  Perhaps you could split this
> struct into two variants, one for CIEs and one for FDEs.

Well, if we're adding a 'z' augmentation, both CIEs and FDEs can grow,
so the fields aren't fully redundant for FDEs.  If space is a concern,
would it be OK to have:

     unsigned char growth : 4;
     unsigned char rounded_growth : 4;

(I'll try to think of better names ;) after the three existing
"unsigned char" fields?  The old "new_size" field would then
be "size + rounded_growth".

(Although at the moment it's easy to work out rounded_growth from
growth, I'll need the two fields for the "eat existing padding"
optimisation).

Richard


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