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