This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Some extensions to the .section directive for ELF and COFF
- From: Eric Christopher <echristo at gmail dot com>
- To: Cary Coutant <ccoutant at gmail dot com>
- Cc: Rafael EspÃndola <rafael dot espindola at gmail dot com>, Binutils <binutils at sourceware dot org>, Nick Clifton <nickc at redhat dot com>, Richard Sandiford <rsandifo at linux dot vnet dot ibm dot com>, Reid Kleckner <rnk at google dot com>
- Date: Thu, 26 Mar 2015 13:00:25 -0700
- Subject: Re: Some extensions to the .section directive for ELF and COFF
- Authentication-results: sourceware.org; auth=none
- References: <CAG3jReLKTfN_o1x7_jpMDVzMHemmx9K9P4-yU4qNLm2xtPpd+Q at mail dot gmail dot com> <20150326015631 dot GT26234 at bubble dot grove dot modra dot org> <CAJimCsGPLYFYfAvF3OzyhCmCBvXp3FT3rF-7zb7H2jbi-3+BSQ at mail dot gmail dot com>
On Wed, Mar 25, 2015 at 8:29 PM, Cary Coutant <ccoutant@gmail.com> wrote:
>>> The extension was to add an optional ",unique":
>>>
>>> -----------------------------------------
>>> .section .text,"ax",@progbits,unique
>>> .section .text,"ax",@progbits,unique
>>> -----------------------------------------
>>>
>>> Creates two sections named ".text".
>>
>> Sounds reasonable, but, having changed from one of these sections, how
>> do you change back into the right one? Hmm, I guess .pushsection
>> .popsection will work, and .previous, but plain .text won't. Oh well,
>> I guess that's not a really big problem, but something that assembly
>> programmers will need to consider.
>
> I'd prefer to extend the .section directive so you can give each
> section both an "internal" (or "assembler") name, and an "external"
> (or "linker") name. You can give each section a unique internal name
> and switch back and forth at will, but they'll all get written to the
> output file with the external name.
>
This would more than double the amount of memory for strings that the
assembler needs for this sort of thing. The general case for this is
for compiler generated code and it should be able to do that without
switching. Another option is to maybe have a numeric identifier after?
, unique NUM
to switch back? I'm not sure what the point of switching back is going
to be in the general case (other than "hey, this might be useful").
-eric