Re: [PATCH 1/1[RFC] um: include .fini_array.* in linker scripts
Alex Hung <[email protected]> Wed, 8 Jul 2026 15:42:11 -0600
| Newsgroups | org.infradead.lists.linux-um |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> >> 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 >> >