Re: [patch] AVR: Sort .text.* input sections by their name.
Alan Modra <[email protected]> Wed, 22 Jul 2026 21:24:10 +0930
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 21, 2026 at 01:32:44PM +0200, Georg-Johann Lay wrote: > Am 21.07.26 um 07:46 schrieb Alan Modra: > > On Mon, Jul 20, 2026 at 08:44:51PM +0200, Georg-Johann Lay via Binutils wrote: > > > This patch sorts the .text.* input sections by their name > > > in order to increase code locality, e.g. for code from > > > libgcc and AVR-LibC. For example, libgcc puts their > > > multiplications and helpers in .text.libgcc.mul, but > > > without SORT the linker may locate functions related by > > > their input section far apart, inserting function from > > > unrelated input sections in between them. > > > > While you may have found one particular case where sorting by name > > helps, I suspect this is generally not a good idea. I believe in > > general you will make -ffunction-sections code locality worse by using > > this patch. Consider an object file with lots of small functions, > > calls mostly within that object file. You don't want to sort them > > such that functions from other object files separate them. > > Maybe something like this would be more appropriate then? Yes, I think thay would be better. > *(EXCLUDE_FILE(*/libgcc.a: */libm.a: */libc.a:) .text.*) > */libgcc.a:(SORT(.text.*)) > */libc.a:(SORT(.text.*)) > */libm.a:(SORT(.text.*)) > > What I don't know is whether / works as a dir separator on > Window-ish hosts. If not, maybe something like Then you'll need to experiment, or look into the source. I'm not sure myself without doing a little digging. -- Alan Modra