[PATCH] um: fix CONFIG_GCOV for built-in code

Alex Hung alex.hung at amd.com
Mon Aug 10 06:51:56 PDT 2026


Hi,

Any comments or concerns on this patch? Is it ready to be merged?

On 7/27/26 13:55, Alex Hung wrote:
> From: Johannes Berg <johannes at sipsolutions.net>
> 
> With contemporary toolchains, CONFIG_GCOV doesn't work because
> gcov now relies on both init and exit handlers, but those are
> discarded from the binary. Fix the linker scripts to keep them
> instead, so that CONFIG_GCOV can work again.
> 
> Note that this does not make it work in modules yet, since we
> don't call their exit handlers.
> 
> Note: the .init_array.* wildcard and the RUNTIME_DISCARD_EXIT
> define are already present in this tree; only the matching
> .fini_array.* wildcard remained to be added.
> 
> Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
> Signed-off-by: Alex Hung <alex.hung at amd.com>
> ---
> 
> This is a revived patch. The original can be found at
> https://lkml.iu.edu/hypermail/linux/kernel/2103.1/06608.html
> 
>   arch/um/include/asm/common.lds.S | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/common.lds.S
> index fd481ac371de..2ed213913afe 100644
> --- a/arch/um/include/asm/common.lds.S
> +++ b/arch/um/include/asm/common.lds.S
> @@ -91,6 +91,7 @@
>     .fini_array : {
>   	__fini_array_start = .;
>   	*(.fini_array)
> +	*(.fini_array.*)
>   	__fini_array_end = .;
>     }
> 
> --
> 2.43.0
> 




More information about the linux-um mailing list