Re: git: b882d21558f3 - main - arm: link all .rodata variants into one output section

From: John Baldwin <jhb_at_FreeBSD.org>
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.

-- 
John Baldwin