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

Alex Hung alex.hung at amd.com
Tue Jun 2 17:19:20 PDT 2026


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