Re: git: b882d21558f3 - main - arm: link all .rodata variants into one output section
Date: Thu, 05 Dec 2024 03:51:56 UTC
[I appearently never sent the below at the time.] On Nov 20, 2024, at 08:03, Mark Millard <marklmi@yahoo.com> wrote: John Baldwin <jhb_at_FreeBSD.org> wrote on Date: Wed, 20 Nov 2024 14:52:06 UTC : > On 11/19/24 08:02, Michal Meloun wrote: >> >> >> On 19.11.2024 16:15, John Baldwin wrote: >>> On 11/17/24 03:36, Michal Meloun wrote: >>>> The branch main has been updated by mmel: >>>> >>>> URL: https://cgit.FreeBSD.org/src/commit/? >>>> id=b882d21558f37e6a565694ac9b8f2a519e5b86fa >>>> >>>> commit b882d21558f37e6a565694ac9b8f2a519e5b86fa >>>> Author: Michal Meloun <mmel@FreeBSD.org> >>>> AuthorDate: 2024-11-17 11:28:47 +0000 >>>> Commit: Michal Meloun <mmel@FreeBSD.org> >>>> CommitDate: 2024-11-17 11:35:55 +0000 >>>> >>>> arm: link all .rodata variants into one output section >>>> MFC after: 1 week >>>> --- >>>> sys/conf/ldscript.arm | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/sys/conf/ldscript.arm b/sys/conf/ldscript.arm >>>> index d9edcfac9f78..7cf904ce39ff 100644 >>>> --- a/sys/conf/ldscript.arm >>>> +++ b/sys/conf/ldscript.arm >>>> @@ -17,7 +17,7 @@ SECTIONS >>>> _etext = .; >>>> PROVIDE (etext = .); >>>> .fini : { *(.fini) } =0x9090 >>>> - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } >>>> + .rodata : { *(.rodata*) *(.gnu.linkonce.r*) } >>>> .rodata1 : { *(.rodata1) } >>> >>> Is this line now spurious or do linker scripts prefer more exact matches? >>> >>>> .interp : { *(.interp) } >>>> .hash : { *(.hash) } >>> >> Right hit. I want write { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } >> >> Warner already tried to tell me the same thing, but I didn't get it :( >> Btw arm64 has the same problem. >> >> This gives me another question. Who generates the .rodata1 section? This >> section appeared in gnu ld three decades ago, with no real description. >> Do we still need it? > > I have no idea if we still need .rodata1 (or why it exists), I was just > reading the diff of the linker script. Looking around at examples on the web I'm seeing mostly the likes of the following for analogous text: .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } (and somewhat similarly for .data.*) I saw some examples of *(.rodata.str1.4) for examples that lacked use of .rodata.* , giving some idea what would be expected to match the .* part of the pattern. === Mark Millard marklmi at yahoo.com