On Fri, Aug 28, 2020 at 12:21:13PM +0200, Miroslav Benes wrote: > > Hi there! I was trying to find a super easy way to address this, so I > > thought the best thing would be if there were a compiler or linker > > switch to just eliminate any duplicate symbols at compile time for > > vmlinux. I filed this question on the binutils bugzilla looking to see > > if there were existing flags that might do this, but H.J. Lu went ahead > > and created a new one "-z unique", that seems to do what we would need > > it to do. > > > > https://sourceware.org/bugzilla/show_bug.cgi?id=26391 > > > > When I use this option, it renames any duplicate symbols with an > > extension - for example duplicatefunc.1 or duplicatefunc.2. You could > > either match on the full unique name of the specific binary you are > > trying to patch, or you match the base name and use the extension to > > determine original position. Do you think this solution would work? > > Yes, I think so (thanks, Joe, for testing!). > > It looks cleaner to me than the options above, but it may just be a matter > of taste. Anyway, I'd go with full name matching, because -z unique-symbol > would allow us to remove sympos altogether, which is appealing. > > > If > > so, I can modify livepatch to refuse to patch on duplicated symbols if > > CONFIG_FG_KASLR and when this option is merged into the tool chain I > > can add it to KBUILD_LDFLAGS when CONFIG_FG_KASLR and livepatching > > should work in all cases. > > Ok. > > Josh, Petr, would this work for you too? Sounds good to me. Kristen, thanks for finding a solution! -- Josh