[LLVMdev] [lld] How do I prevent .note sections from being eliminated?

Simon Atanasyan simon at atanasyan.com
Tue Jun 16 15:02:54 PDT 2015


On Tue, Jun 16, 2015 at 5:06 PM, Tom Stellard <tom at stellard.net> wrote:
> On Tue, Jun 16, 2015 at 12:05:39PM +0300, Simon Atanasyan wrote:
>> On Mon, Jun 15, 2015 at 6:12 PM, Tom Stellard <tom at stellard.net> wrote:
>> > In ELFDefinedAtom::doContentType(), SHT_NOTE sections are only assigned
>> > the typeR[OW]Note ContentType if they have the SHF_ALLOC flag.  This is
>> > because any section without SHF_ALLOC is assigned the typeNoAlloc
>> > ContentType before the section type is ever considered.  Is this a bug
>> > or are SHT_NOTE sections required to have the SHF_ALLOC flag?
>>
>> It depends on your ABI requirement. If a .note section does not need
>> to occupy memory during a process execution it should not have
>> the SHF_ALLOC flag.
>>
>
> What I want to do is emit a .note section *without* SHF_ALLOC.  However,
> the current implementation won't let me do this, because it assigns the
> section a content type of typeNoAlloc, rather than typeR[OW]Note.
> I'm just wondering the best way to fix this.

Oh, now I see the point. The simplest way to fix the problem is to teach
the ELFDefinedAtom::doContentType() method to understand that there is
SHT_NOTE sections without SHF_ALLOC flag. It is enough to return typeRWNote
for such sections. But maybe a more accurate solution is to introduce
new ContentType like typeNoAllocNote.

-- 
Simon Atanasyan



More information about the llvm-dev mailing list