[PATCH] ARM: mach-rpc: fix zImage build after recent font-related changes
Helge Deller
deller at gmx.de
Mon May 18 23:56:22 PDT 2026
On 5/10/26 04:39, Ethan Nelson-Moore wrote:
> The text display code used in the Risc PC kernel image decompression
> code uses arch/arm/boot/compressed/font.c, which includes
> lib/fonts/font_acorn_8x8.c, which further includes <linux/font.h>.
>
> Since commit 97df8960240a ("lib/fonts: Provide helpers for calculating
> glyph pitch and size") <linux/font.h> contains inline functions that
> require __do_div64, which is not linked into the ARM kernel
> decompressor. This makes Risc PC zImages fail to build.
>
> Resolve this issue in the least intrusive way possible by preventing
> the inclusion of <linux/font.h> (and the definition of a struct that
> relies on it) when the decompressor is being built.
I don't think we really require 64-bit integer support/division in the
font code, as 32-bit should be sufficient.
Can't you try to find out where this 64-bit division is done, and fix
this instead?
Helge
> Fixes: 97df8960240a ("lib/fonts: Provide helpers for calculating glyph pitch and size")
> Signed-off-by: Ethan Nelson-Moore <enelsonmoore at gmail.com>
> ---
> arch/arm/boot/compressed/Makefile | 6 +++++-
> lib/fonts/font_acorn_8x8.c | 2 ++
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index a159120d1e42..0e198a6ce447 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -157,4 +157,8 @@ $(obj)/piggy_data: $(obj)/../Image FORCE
>
> $(obj)/piggy.o: $(obj)/piggy_data
>
> -CFLAGS_font.o := -Dstatic=
> +# Defining _VIDEO_FONT_H prevents including <linux/font.h>, which contains
> +# inline functions that require __do_div64, which is not linked into the
> +# decompressor. OMIT_FONT_DESC is used in lib/fonts/font_acorn_8x8.c to omit the
> +# definition of the font's font_desc structure, which requires <linux/font.h>.
> +CFLAGS_font.o := -Dstatic= -D_VIDEO_FONT_H -DOMIT_FONT_DESC
> diff --git a/lib/fonts/font_acorn_8x8.c b/lib/fonts/font_acorn_8x8.c
> index 36c51016769d..6b5291c23fc8 100644
> --- a/lib/fonts/font_acorn_8x8.c
> +++ b/lib/fonts/font_acorn_8x8.c
> @@ -265,6 +265,7 @@ static const struct font_data acorndata_8x8 = {
> /* FF */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
> } };
>
> +#ifndef OMIT_FONT_DESC /* Used by arch/arm/boot/compressed/Makefile */
> const struct font_desc font_acorn_8x8 = {
> .idx = ACORN8x8_IDX,
> .name = "Acorn8x8",
> @@ -278,3 +279,4 @@ const struct font_desc font_acorn_8x8 = {
> .pref = 0,
> #endif
> };
> +#endif /* OMIT_FONT_DESC */
More information about the linux-arm-kernel
mailing list