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

From: Michal Meloun <mmel_at_FreeBSD.org>
Date: Tue, 19 Nov 2024 16:02:06 UTC

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?

Michal