On Thu, 2021-03-04 at 14:38 +0900, Hajime Tazaki wrote: > > Now, I don't know how to fix it (short of changing your nsswitch > > configuration) - maybe we could somehow rename sem_init()? Or maybe we > > can somehow give the kernel binary a lower symbol resolution than the > > libc/libpthread. > > objcopy (from binutils) can localize symbols (i.e., objcopy -L > sem_init $orig_file $new_file). It also does renaming symbols. But > not sure this is the ideal solution.
Yes, we started thinking about it but it was too late at night when I replied ... I think there's basically a way to have an external list of symbols to export, for symbol versioning, that we could/should use to basically not export any of the kernel symbols out to libs. > How does UML handle symbol conflicts between userspace code and Linux > kernel (like this case sem_init) ? AFAIK, libnl has a same symbol as > Linux kernel (genlmsg_put) and others can possibly do as well. I fear it doesn't? johannes