This is the mail archive of the 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: Accumulation of similar size data items to reduce ROM space.

On Wed, Nov 03, 2004 at 01:57:19PM +0530, Nitin Yewale wrote:
> Even if compiler does the job of accumulating similar size data items
> but it will be file wise. So it will be better if linker reads all the
> object files and does the accumulation of similar size data items on the
> data type basis. 

No, doing this sort of thing in the compiler is by far the easiest way
to accomplish what you want.  Have the compiler emit 1 byte variables
to .data.s1, two byte variables to .data.s2 and so on.  Then the linker
can easily combine like sized data items.

If you really must do this in the linker alone, then you'll need to
a) determine data item boundaries
b) rearrange section contents
c) adjust all relocs pointing into the rearranged sections.
d) adjust all relocs in the rearranged sections.
e) adjust all symbols defined in those sections too.

(a) is non-trivial.  How will you handle aggregates?

Alan Modra
IBM OzLabs - Linux Technology Centre

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