mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 15:22:21 -04:00
rust: Make __udivdi3() and __umoddi3() panic
The core crate currently depends on these two functions for i64/u64/ i128/u128/core::time::Duration formatting, but we shouldn’t use that in the kernel so let’s panic if they are ever called. This doesn’t yet fix drm_panic_qr.rs, which also uses __udivdi3 when CONFIG_CC_OPTIMIZE_FOR_SIZE=y, but at least makes the rest of the kernel build on PPC32. Signed-off-by: Link Mauve <linkmauve@linkmauve.fr> Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260708082454.1254320-6-mkchauras@gmail.com
This commit is contained in:
committed by
Madhavan Srinivasan
parent
e299147cdc
commit
c93c194e4e
@@ -687,6 +687,10 @@ ifneq ($(or $(CONFIG_ARM64),$(and $(CONFIG_RISCV),$(CONFIG_64BIT))),)
|
||||
__ashrti3 \
|
||||
__ashlti3 __lshrti3
|
||||
endif
|
||||
ifdef CONFIG_PPC32
|
||||
redirect-intrinsics += \
|
||||
__udivdi3 __umoddi3
|
||||
endif
|
||||
|
||||
ifdef CONFIG_MODVERSIONS
|
||||
cmd_gendwarfksyms = $(if $(skip_gendwarfksyms),, \
|
||||
|
||||
@@ -97,5 +97,11 @@ pub extern "C" fn $ident() {
|
||||
__aeabi_uldivmod,
|
||||
});
|
||||
|
||||
#[cfg(target_arch = "powerpc")]
|
||||
define_panicking_intrinsics!("`u64` division/modulo should not be used", {
|
||||
__udivdi3,
|
||||
__umoddi3,
|
||||
});
|
||||
|
||||
// NOTE: if you are adding a new intrinsic here, you should also add it to
|
||||
// `redirect-intrinsics` in `rust/Makefile`.
|
||||
|
||||
Reference in New Issue
Block a user