This is the mail archive of the binutils@sourceware.org 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: How to make section take no space in output file?


On Saturday 12 January 2008, H.J. Lu wrote:
> On Fri, Jan 11, 2008 at 02:11:31PM -0800, Rick Mann wrote:
> > On Jan 11, 2008, at 12:43 PM, DJ Delorie wrote:
> >> If they're memory mapped devices, I think a better approach is to make
> >> them "extern" in your C program, and assign them values in the linker
> >> script or an auxiliary asm file, like this:
> >>
> >>        .global framebuffer
> >> framebuffer = 0xc8000000
> >>
> >> If your C sources create data, the linker has to put it somewhere.
> >> The solution is to not create data.
> >>
> >> You could also try the DISCARD section, but whether it's useful or not
> >> depends on your specific situation.
> >
> > They are not memory-mapped devices; they're strictly allocated RAM. The
> > only requirement is that they be of specific size and alignment, and I'd
> > like for the linker to just assign addresses accordingly. However, in the
> > output file, they don't need to exist at all; I just want references to
> > the symbols to have the right values at run time.
>
> Have you tried "NOLOAD"? See
>
> http://www.sourceware.org/bugzilla/show_bug.cgi?id=5522
>
> However, this feature may a bug in linker:
>
> http://sourceware.org/ml/binutils/2008-01/msg00083.html

I had to do the same in an embedded system. I think I used something like 
DISCARD or NOLOAD in the linker script, but with some version of binutils the 
behaviour changed, and while this section wasn't loaded anymore, it was still 
present in the output file (the section was around 60 MB big, so this was an 
issue).
I think then I used objcopy --remove-section=<sectionname> to get completely 
rid of the section.

Alex


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