[PATCH] um: Allow multiple symbol definitions for GCOV builds
Alex Hung
alex.hung at amd.com
Tue Jul 21 15:23:51 PDT 2026
On 7/21/26 15:58, Johannes Berg wrote:
> On Wed, 2026-07-08 at 16:40 -0600, Alex Hung wrote:
>> GCOV-enabled UML builds link GCC's libgcov into the final vmlinux
>> image. libgcov provides helper symbols such as mangle_path(), which
>> collide with kernel symbols of the same name (for example the one in
>> fs/seq_file.o). This makes the link fail:
>>
>> ld: libgcov.a(_gcov.o): in function `mangle_path':
>> multiple definition of `mangle_path';
>> fs/seq_file.o: first defined here
>>
>> Pass --allow-multiple-definition to the linker when CONFIG_GCOV is set
>> so the final UML link succeeds while keeping the kernel-provided
>> definition.
>>
>
> I cannot see how that would possibly result in correct behaviour (beyond
> being able to link)??
Hi Johannes,
Good point. --allow-multiple-definition silences the linker error, but
picking kernel or libgcov's mangle_path() will break the other at runtime.
I saw your previous patch
(https://lkml.iu.edu/hypermail/linux/kernel/2103.1/06604.html) to rename
mangle_path() to seq_mangle_path(). How about reviving it to avoid name
conflicts instead?
Alex
>
> johannes
More information about the linux-um
mailing list