RFC: syntax for a section ordering file
H.J. Lu
hjl.tools@gmail.com
Wed Apr 24 14:22:18 GMT 2024
On Wed, Apr 24, 2024 at 6:58 AM Nick Clifton <nickc@redhat.com> wrote:
>
> Hi H.J. Hi Fangrui,
>
> Is there a defined syntax for the contents of a section ordering file ?
> IE one passed to the linker via the --section-ordering= option ?
>
> I am attempting to take H.J.'s bfd linker text section ordering file
Thank you for doing it.
> patch and extend it to cover other sections. In doing so, I need to
> be sure that I have the syntax right.
>
> To my mind if the section ordering file contains the following:
>
> # A comment
> .text.hot .text.cold,.text.warm
> .data.big
> .data.small
> .text.foo*
>
> Then this should be roughly equivalent to:
>
> SECTIONS
> {
> .text : {
> *(.text.hot)
> *(.text.cold)
> *(.text.warm)
> *(.text.foo*)
> *(.text)
> }
> .data : {
> *(.data.big)
> *(.data.small)
> *(.data)
> }
> }
This looks correct to me.
> So all of the .text.<something> entries in the section ordering
> file are placed at the start of the output .text section (even
> if some of them occur after entries for other output sections)
> and all of the .data.<something> entries are placed at the start
> of the .data section.
>
> This will require co-operation from the linker script to have
> the "INCLUDE config.section-ordering-file" statements at the
> correct places, but I think that it could work.
>
> But obviously I want the option to be compatible with GOLD and
> LLD and I could not find any clear definitions or examples of
> the syntax used.
lld doesn't support --section-ordering-file. I tried different syntaxes
with gold. Gold doesn't complain about any inputs. But only
.text.yyy
.text.bar
.text.xxx
.text.foo
works and it doesn't support wildcards. I think wildcards are useful.
--
H.J.
More information about the Binutils
mailing list