[PATCH] um: fix CONFIG_GCOV for built-in code
Alex Hung
alex.hung at amd.com
Mon Jul 27 12:55:15 PDT 2026
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