[PATCH 1/1[RFC] um: include .fini_array.* in linker scripts

Alex Hung alex.hung at amd.com
Wed Jul 8 14:42:11 PDT 2026


Ping for comments again.

I found a similar patch from 2021 by Johannes Berg: 
https://lkml.iu.edu/hypermail/linux/kernel/2103.1/06608.html

Is there a reason that this or previous patch has concerns and cannot be 
included in kernel?

Cheers,
Alex

On 6/2/26 18:19, Alex Hung wrote:
> Hi,
> 
> Are there any concerns or comments on this patch?
> 
> On 5/12/26 17:26, Alex Hung wrote:
>> GCC emits per-translation-unit gcov destructors into
>> .fini_array.NNNNN sections (prioritized). The UML linker
>> scripts only captured *(.fini_array), silently discarding
>> all prioritized destructor entries.
>>
>> As a result, gcov's __gcov_exit never ran at process halt
>> and no .gcda files were written after KUnit tests completed.
>>
>> Add *(.fini_array.*) to common.lds.S and dyn.lds.S, mirroring
>> the existing *(.init_array.*) pattern already present for
>> constructors.
>>
>> Signed-off-by: Alex Hung <alex.hung at amd.com>
>> Assisted-by: Copilot:Claude-Sonnet-4.6
>> ---
>>   arch/um/include/asm/common.lds.S | 1 +
>>   arch/um/kernel/dyn.lds.S         | 2 +-
>>   2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/ 
>> common.lds.S
>> index fd481ac371de..336361412b47 100644
>> --- a/arch/um/include/asm/common.lds.S
>> +++ b/arch/um/include/asm/common.lds.S
>> @@ -90,6 +90,7 @@
>>     }
>>     .fini_array : {
>>       __fini_array_start = .;
>> +    *(.fini_array.*)
>>       *(.fini_array)
>>       __fini_array_end = .;
>>     }
>> diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S
>> index ad3cefeff2ac..fbd8d559f21f 100644
>> --- a/arch/um/kernel/dyn.lds.S
>> +++ b/arch/um/kernel/dyn.lds.S
>> @@ -113,7 +113,7 @@ SECTIONS
>>       *(.init_array.*)
>>       *(.init_array)
>>     }
>> -  .fini_array     : { *(.fini_array) }
>> +  .fini_array     : { *(.fini_array.*) *(.fini_array) }
>>     .data           : {
>>       INIT_TASK_DATA(KERNEL_STACK_SIZE)
>>       DATA_DATA
>> -- 
>> 2.43.0
>>
> 




More information about the linux-um mailing list