Re: [PATCH V11 1/4] rust: Fix "multiple candidates for rmeta dependency core" error

Gary Guo
2026-04-21T16:51:45Z

On Tue Apr 21, 2026 at 5:36 PM BST, Link Mauve wrote:

> This works fine for the core crate, but now panic_qr also gets the same
> issue, here it is with V=1:
> ```
> + powerpc-linux-musl-ld -EB -m elf32ppc -z noexecstack --no-warn-rwx-segments -Bstatic --build-id=sha1 --orphan-handling=warn --script=./arch/powerpc/kernel/vmlinux.lds --strip-debug -o .tmp_vmlinux1 --whole-archive vmlinux.a .vmlinux.export.o init/version-timestamp.o --no-whole-archive --start-group --end-group .tmp_vmlinux0.kallsyms.o
> powerpc-linux-musl-ld: drivers/gpu/drm/drm_panic_qr.o: in function `<drm_panic_qr::SegmentIterator as core::iter::traits::iterator::Iterator>::next':
> drm_panic_qr.f39a15fa3c72e9fe-cgu.0:(.text+0x200c): undefined reference to `__udivdi3'
> ```
>
> From a cursory look at the SegmentIterator::next() function I don’t
> understand where the division could come up, but it’s actually nice to
> get an error when operations which shouldn’t happen happen anyway, it
> makes it more likely to get them fixed.

There is divide / modular by 10 code. Although, this shouldn't really cause
__udivdi3 to be generated for constant divisor, unless `-C opt-level=s` is used.
Do you happen to use that opt-level?

Best,
Gary